具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种流量统计方法的流程示意图,如图1所示,包括:
101、获取上行数据流所包含的MSS值;
102、根据所述MSS值计算出所述上行数据流对应的下行数据流的MSS值;
103、基于所述下行数据流的MSS值计算出所述下行数据流的网络流量。
这样就可以实现通过上行数据流中的MSS值计算出下行数据流的MSS,从而计算下行数据流的网络流量。
需要说明的是,本实施例是分析上行数据流的流量分析设备来实现的。
作为一种可选的实施方式,所述上行数据流具体可以是指具体有相同的网络属性的一系列上行报文而组成的数据流,所述下行数据流具体可以是指具体有相同的网络属性的一系列下行报文而组成的数据流。如:因特网源IP地址、目的IP地址、源端口、目的端口以及所使用的协议等网络属性相同。
上述技术方案中,通过获取上行数据流所包含的MSS值;根据所述MSS值计算出所述上行数据流对应的下行数据流的MSS值;基于所述下行数据流的MSS值计算出所述下行数据流的网络流量。这样可以实现非对称路由的场景下分析上行数据流的流量分析设备统计出下行数据流的网络流量。
图2是本发明实施例提供的另一种流量统计方法的流程示意图,如图2所示,包括:
201、获取上行数据流所包含的MSS值;
202、解析所述上行数据流,并计算出所述上行数据流中第一个报文的确认序号(例如:Acknowledgement Number)与最后一个报文的确认序号的差值。
可选的,该差值具体可以是下述公式中的ACKDelta。
203、根据所述MSS值计算出所述上行数据流对应的下行数据流的MSS值;
204、基于所述下行数据流的MSS值通过下如公式计算出所述下行数据流的网络流量:
Y=Roundown(ACKDelta÷M,0)×(M+IP+TCP+H)+Mod(ACKDelta,M)+IP+TCP+H+P
其中,所述Y为下行数据流的网络流量,Roundown(ACKDelta÷M,0)为取ACKDelta÷M与0之间的最大整数,ACKDelta为上行数据流中第一个报文与最后一个报文的确认序号的差值,M为下行数据流的MSS值,IP为IP头长度,TCP为TCP头长度,H为常数,Mod(ACKDelta,M)为ACKDelta除以M得到的余数,P为估算的下行数据流中的第一个报文和最后一个报文的长度的和。
例如:ACKDelta和M分别为10和3时,Mod(ACKDelta,M)为Mod(10,3)等于1。
作为一种可选的实施方式,步骤201具体可以包括:
获取所述上行数据流中第一个报文(例如:SYN报文)包含的MSS值。
该实施方式中,可以实现在第一个报文(例如:SYN报文)获取MSS值。
可选的,上述SYN(该英语无具体中文意思,为网络协议中定义的报文名名称)报文,SYN报文是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN应答消息(例如:SYN-ACK)表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。SYN报文是TCP连接的第一个包。
可选的,FIN(该英语无具体中文意思,为网络协议中定义的报文名名称)报文为TCP报头的码位字段,该位置为1的含义为发送方字节流结束,用于关闭连接。当两端设备交换带有FIN标志的TCP报文并且每一端都确认另一端发送的FIN包时,TCP连接将会关闭。FIN位字面上的意思是连接一方再也没有更多新的数据发送。
作为一种可选的实施方式,所述上行数据流具体可以包括:
传输控制协议(Transmission Control Protocol,TCP)上行数据流或指超文本传送协议(Hypertext Transport Protocol,HTTP)上行数据流。
同理,下行数据流一样可以是TCP协议下行数据流或HTTP协议下行数据流。
作为一种可选的实施方式,上述公式中的TCP具体可以是指TCP头的长度。具体情况根据所述上行数据流传输时采用的传输协议而定。
作为一种可选的实施方式,上述公式中的H具体可以是上行数据流或下行数据流中的报文的二层长度,当然这个长度具体可以是根据本发明所在领域的技术人员的经验而预先设置的常数。
作为一种可选的实施方式,上述公式中的P具体可以是下行数据流中的第一个报文(例如:SYNAck报文)和最后一个报文(例如:FINAck报文)的长度的和。
作为一种可选的实施方式,步骤203具体可以包括:
计算所述MSS值的N倍值作为所述上行数据流对应的下行数据流的MSS值,其中,所述N为正实数。
可选的,该实施方式中,还可以是直接将所述上行数据流中获取MSS值作为所述上行数据流对应的下行数据流的MSS值。或者,根据本发明所有领域的技术人员的经验而预先设置所述N的值。或者,在步骤201之前收集一定数量上行数据流与下行数据流中的MSS值,根据收集的MSS计算出上行数据流和下行数据流的MSS值的关系,根据该关系设置所述N的值。
作为一种可选的实施方式,步骤201具体可以包括:
获取上行数据流包含的资源定位符(Uniform/Universal Resource Locator,URL)信息和MSS值。
可选的,该实施方式中,步骤201具体可以包括:
获取上行数据流包含的URL信息,以及获取所述上行数据流中第一个报文(例如:SYN报文)包含的MSS值。
可选的,获取上行数据流包含的URL信息,可以是在上行数据流中的GET报文、POST报文、PUT报文或DELETE报文等HTTP协议中其它请求报文中的URL信息。
需要说明的是,上述GET报文、POST报文、PUT报文或DELETE,这些报文无具体中文意思,为网络协议中定义的报文名称,且这些报文都为公知常识,此处不作详细说明。
该实施方式中,可以实现在上述请求报文中获取URL信息,以及在第一个报文(例如:SYN报文)获取MSS值。
可选的,该实施方式中,步骤203具体可以包括:
根据所述MSS值计算出所述URL信息对应的下行数据流的MSS值。
该实施方式中,可以实现统计出URL信息对应的下行数据流的网络流量。
作为一种可选的实施方式,本发明应用的场景具体可以如图3所示,图3所示的流量分析设备1可以用于执行本发明中描述的步骤。用户设备(例如:手机、电脑等通信设备)通过路由器1访问服务器的上行数据流,用户设备通过路由器2访问服务器的下行数据流,这样流量分析设备1就检测到上行数据流,而流量分析设备2只能检测到下行数据流。这样流量分析设备1就可以通过步骤201获取上行数据流包含的URL信息和MSS值,流量分析设备1通过步骤203计算出下行数据流的MSS值,流量分析设备1通过步骤203就可以统计出下行数据流的网络流量。
上述技术方案,在上面实施例的基础上,重点描述了计算下行数据流的网络流量的计算方式。
图4是本发明实施例提供的另一种流量统计方法的流程示意图,如图4所示,包括:
301、获取上行数据流所包含的MSS值;
302、根据所述MSS值计算出所述上行数据流对应的下行数据流的MSS值;
303、基于所述下行数据流的MSS值计算出所述下行数据流的网络流量;
304、计算所述上行数据流的网络流量;
305、计算所述上行数据流的网络流量和所述下行数据流的网络流量之和,并将计算得的和值作为所述上行数据流对应的TCP流的网络流量。
需要说明的,上述计算上行数据流的网络流量的计算方法可以参考现的计算方法,此处不作详细说明。
作为一种可选的实施方式,步骤301具体可以包括:
获取上行数据流所包含的URL信息和MSS值;
可选的,该实施方式中步骤302具体可以包括:
根据所述MSS值计算出所述URL信息对应的下行数据流的MSS值。
可选的,该实施方式中步骤305具体可以包括:
计算所述上行数据流的网络流量和所述下行数据流的网络流量之和,并将计算得的和值作为所述URL信息对应的网络流量。
该实施方式中,可以统计出URL信息对应的网络流量。
可选的,该实施方式中,通过上述步骤就可以计算出URL对应的网络流量,即URL对应的上行数据流和下行数据流的网络流量。这样网络运营商就可以根据URL对应的网络流量以及用户访问URL的访问次数选择出最适合的URL,即最适合的网页。例如:URL1对应的网络流量为100GB,访问次数为10万次,而URL2对应的网络流量为15GB,访问次数为20万次,运营商就可以对URL1和URL2进行网络流量和访问次数进行统计排名,选择出URL2为最适合的URL,即最适合的网页。
上述技术方案中,在上面实施例的基础上增加了计算上行数据流的网络流量的步骤,以实现计算出TCP流对应的网络流量。
下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例一至三实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例一、实施二和实施例三。
图5是本发明实施例提供的一种流量统计设备的结构示意图,如图5所示,包括:获取单元41、第一计算单元42和第二计算单元43,其中:
获取单元41,用于获取上行数据流所包含MSS值;
第一计算单元42,用于根据获取单元41获取的MSS值计算出所述上行数据流对应的下行数据流的MSS值;
第二计算单元43,用于基于第一计算单元42计算出的下行数据流的MSS值计算出所述下行数据流的网络流量。
这样就可以实现通过上行数据流中的MSS值计算出下行数据流的MSS,从而计算下行数据流的网络流量。
需要说明的是,所述设备是分析上行数据流的流量分析设备。
作为一种可选的实施方式,所述上行数据流具体可以是指具体有相同的网络属性的一系列上行报文而组成的数据流,所述下行数据流具体可以是指具体有相同的网络属性的一系列下行报文而组成的数据流。如:因特网源IP地址、目的IP地址、源端口、目的端口以及所使用的协议等网络属性相同。
上述技术方案中,通过获取上行数据流所包含的URL信息和MSS值;根据所述MSS值计算出所述上行数据流对应的下行数据流的MSS值;基于所述下行数据流的MSS值计算出所述下行数据流的网络流量。这样可以实现分析上行数据流的流量分析设备统计出下行数据流的网络流量。
图6是本发明实施例提供的另一种流量统计设备的结构示意图,如图6所示,包括:获取单元51、第一计算单元52、解析单元53和第二计算单元54,其中:
获取单元51,用于获取上行数据流所包含的最大片长MSS值;
第一计算单元52,用于根据获取单元51获取的MSS值计算出所述上行数据流对应的下行数据流的MSS值;
解析单元53,用于用于解析所述上行数据流,并计算出所述上行数据流中第一个报文的确认序号与最后一个报文的确认序号的差值;
第二计算单元54,用于基于所述下行数据流的MSS值通过下如公式计算出所述下行数据流的网络流量:
Y=Roundown(ACKDelta÷M,0)×(M+IP+TCP+H)+Mod(ACKDelta,M)+IP+TCP+H+P
其中,所述Y为下行数据流的网络流量,Roundown(ACKDelta÷M,0)为取ACKDelta÷M与0之间的最大整数,ACKDelta为上行数据流中第一个报文与最后一个报文的确认序号的差值,M为下行数据流的MSS值,IP为IP头长度,TCP为TCP头长度,H为常数,Mod(ACKDelta,M)为取ACKDelta除以M得到的余数,P为估算的下行数据流中的第一个报文和最后一个报文的长度的和。
作为一种可选的实施方式,获取单元51还可以用于获取上行数据流中的第一个报文(例如:SYN报文)包含的MSS值。
该实施方式中,可以实现在第一个报文(例如:SYN报文)获取MSS值。
作为一种可选的实施方式,所述上行数据流具体可以包括:
TCP协议上行数据流或指HTTP协议上行数据流。
同理,下行数据流一样可以是TCP协议下行数据流或HTTP协议下行数据流。
作为一种可选的实施方式,上述公式中的TCP具体可以是指TCP头的长度。具体情况根据所述上行数据流传输时采用的传输协议而定。
作为一种可选的实施方式,上述公式中的H具体可以是上行数据流或下行数据流中的报文的二层长度,当然这个长度具体可以是根据本发明所在领域的技术人员的经验而预先设置的常数。
作为一种可选的实施方式,上述公式中的P具体可以是下行数据流中的第一个报文(例如:SYNAck报文)和最后一个报文(例如:FINAck报文)的长度的和。
作为一种可选的实施方式,第一计算单元52还可以用于计算所述MSS值的N倍值作为所述上行数据流对应的下行数据流的MSS值,其中,所述N为正实数。
可选的,该实施方式中,还可以是直接将所述上行数据流中获取MSS值作为所述上行数据流对应的下行数据流的MSS值。或者,根据本发明所有领域的技术人员的经验而预先设置所述N的值。或者,预先收集一定数量上行数据流与下行数据流中的MSS值,根据收集的MSS计算出上行数据流和下行数据流的MSS值的关系,根据该关系设置所述N的值。
作为一种可选的实施方式,如图7所示,所述设备还可以包括:
第三计算单元55,用于计算所述上行数据流的网络流量;
第四计算单元56,用于计算第三计算单元55计算出的所述上行数据流的网络流量和第二计算单元54计算出的所述下行数据流的网络流量之和,并将计算得的和值作为所述上行数据流对应的TCP流的网络流量。
作为一种可选的实施方式,获取单元51还可以用于获取上行数据流包含的URL信息和MSS值。
可选的,该实施方式中,获取单元51还可以用于获取上行数据流包含的URL信息,以及获取所述上行数据流中第一个报文(例如:SYN报文)包含的MSS值。
可选的,获取上行数据流包含的URL信息,可以是在上行数据流中的GET报文、POST报文、PUT报文或DELETE报文等HTTP协议中其它请求报文中的URL信息。
该实施方式中,可以实现在上述请求报文中获取URL信息,以及在第一个报文(例如:SYN报文)获取MSS值。
可选的,该实施方式中,第一计算单元52还可以用于根据所述MSS值计算出所述URL信息对应的下行数据流的MSS值。
可选的,该实施方式中,第四计算单元56还可以用于计算第三计算单元55计算出的所述上行数据流的网络流量和第二计算单元54计算出的所述下行数据流的网络流量之和,并将计算得的和值作为所述URL信息对应的网络流量。
该实施方式中,可以实现统计出URL信息对应的下行数据流的网络流量。
需要说明的,上述计算上行数据流的网络流量的计算方法可以参考现的计算方法,此处不作详细说明。
通过上述步骤就可以计算出URL对应的网络流量,即URL对应的上行数据流和下行数据流的网络流量。这样网络运营商就可以根据URL对应的网络流量以及用户访问URL的访问次数选择出最适合的URL,即最适合的网页。例如:URL1对应的网络流量为100GB,访问次数为10万次,而URL2对应的网络流量为15GB,访问次数为20万次,运营商就可以对URL1和URL2进行网络流量和访问次数进行统计排名,选择出URL2为最适合的URL,即最适合的网页。
上述技术方案,在上面实施例的基础上,重点描述了计算下行数据流的网络流量的计算方式。
图8是本发明实施例提供的另一种流量统计设备的结构示意图,如图8所示,包括:接收器61、处理器62,其中:
接收器61,用于获取上行数据流;
处理器62用于执行如下步骤:
获取上行数据流所包含的MSS值;
根据所述MSS值计算出所述上行数据流对应的下行数据流的MSS值;
基于所述下行数据流的MSS值计算出所述下行数据流的网络流量。
这样就可以实现通过上行数据流中的MSS值计算出下行数据流的MSS,从而计算下行数据流的网络流量。
需要说明的是,本实施例是分析上行数据流的流量分析设备来实现的。
上述技术方案中,通过获取上行数据流所包含的MSS值;根据所述MSS值计算出所述上行数据流对应的下行数据流的MSS值;基于所述下行数据流的MSS值计算出所述下行数据流的网络流量。这样可以实现分析上行数据流的流量分析设备统计出下行数据流的网络流量。
图9是本发明实施例提供的另一种流量统计设备的结构示意图,如图9所示,包括:接收器71、处理器72,其中:
接收器71,用于获取上行数据流;
处理器72用于执行如下步骤:
获取上行数据流所包含的MSS值;
解析所述上行数据流,并计算出所述上行数据流中第一个报文的确认序号与最后一个报文的确认序号的差值;
根据所述MSS值计算出所述上行数据流对应的下行数据流的MSS值;
基于所述下行数据流的MSS值通过下如公式计算出所述下行数据流的网络流量:
Y=Roundown(ACKDelta÷M,0)×(M+IP+TCP+H)+Mod(ACKDelta,M)+IP+TCP+H+P
其中,所述Y为下行数据流的网络流量,Roundown(ACKDelta÷M,0)为取ACKDelta÷M与0之间的最大整数,ACKDelta为上行数据流中第一个报文与最后一个报文的确认序号的差值,M为下行数据流的MSS值,IP为IP头长度,TCP为TCP头长度,H为常数,Mod(ACKDelta,M)为ACKDelta除以M得到的余数,P为估算的下行数据流中的第一个报文和最后一个报文的长度的和。
作为一种可选的实施方式,处理器72执行的获取上行数据流所包含的MSS值的步骤具体可以包括:
获取所述上行数据流中第一个报文(例如:SYN报文)包含的MSS值。
该实施方式中,可以实现在第一个报文(例如:SYN报文)获取MSS值。
作为一种可选的实施方式,所述上行数据流具体可以包括:
TCP上行数据流或指HTTP上行数据流。
同理,下行数据流一样可以是TCP协议下行数据流或HTTP协议下行数据流。
作为一种可选的实施方式,上述公式中的TCP具体可以是指TCP头的长度。具体情况根据所述上行数据流传输时采用的传输协议而定。
作为一种可选的实施方式,上述公式中的H具体可以是上行数据流或下行数据流中的报文的二层长度,当然这个长度具体可以是根据本发明所在领域的技术人员的经验而预先设置的常数。
作为一种可选的实施方式,上述公式中的P具体可以是下行数据流中的第一个报文(例如:SYNAck报文)和最后一个报文(例如:FINAck报文)的长度的和。
作为一种可选的实施方式,处理器72执行的根据所述MSS值计算出所述上行数据流对应的下行数据流的MSS值的步骤具体可以包括:
计算所述MSS值的N倍值作为所述上行数据流对应的下行数据流的MSS值,其中,所述N为正实数。
可选的,该实施方式中,还可以是直接将所述上行数据流中获取MSS值作为所述上行数据流对应的下行数据流的MSS值。
作为一种可选的实施方式,处理器72执行的获取上行数据流所包含的MSS值的步骤具体可以包括:
获取上行数据流包含的统一资源定位符(Uniform/Universal ResourceLocator,URL)信息和MSS值。
可选的,该实施方式中,处理器72执行的获取上行数据流所包含的MSS值的步骤具体可以包括:
获取上行数据流中的GET报文包含的URL信息,以及获取所述上行数据流中第一个报文(例如:SYN报文)包含的MSS值。
该实施方式中,可以实现在GET报文中获取URL信息,以及在第一个报文(例如:SYN报文)获取MSS值。
可选的,该实施方式中,处理器72执行的根据所述MSS值计算出所述上行数据流对应的下行数据流的MSS值的步骤具体可以包括:
根据所述MSS值计算出所述URL信息对应的下行数据流的MSS值。
该实施方式中,可以实现统计出URL信息对应的下行数据流的网络流量。
作为一种可选的实施方式,处理器72还可以用于执行如下步骤:
计算所述上行数据流的网络流量;
计算所述上行数据流的网络流量和所述下行数据流的网络流量之和,并将计算得的和值作为所述上行数据流对应的TCP流的网络流量。
该实施方式中,可以实现计算出TCP流对应的网络流量。
可选的,该实施方式,处理器72执行计算所述上行数据流的网络流量和所述下行数据流的网络流量之和,并将计算得的和值作为所述上行数据流对应的TCP流的网络流量的步骤具体可以包括:
计算所述上行数据流的网络流量和所述下行数据流的网络流量之和,并将计算得的和值作为所述URL信息对应的网络流量。
当然计算URL信息对应的网络流量必需是结合上面计算URL信息对应的下行数据流的网络流量的实施方式一起实现的。
作为一种可选的实施方式,所述设备还可以包括:
存储器73,用于存储处理器72执行的程序。
上述技术方案,在上面实施例的基础上,重点描述了计算下行数据流的网络流量的计算方式。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器(Random Access Memory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。