CN104717102A - 流量统计方法、装置以及nat网关设备 - Google Patents
流量统计方法、装置以及nat网关设备 Download PDFInfo
- Publication number
- CN104717102A CN104717102A CN201310683855.4A CN201310683855A CN104717102A CN 104717102 A CN104717102 A CN 104717102A CN 201310683855 A CN201310683855 A CN 201310683855A CN 104717102 A CN104717102 A CN 104717102A
- Authority
- CN
- China
- Prior art keywords
- list item
- traffic statistics
- message
- statistics list
- outer net
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种流量统计方法、装置以及NAT网关设备,接收内部网络中的主机发送的报文;判断所述报文是否为会话首包;若所述报文为所述会话首包,则为所述主机分配外网地址和外网端口,并记录为所述主机进行分配外网地址和外网端口的尝试次数;当所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
Description
技术领域
本发明涉及通信领域,具体涉及一种流量统计方法、装置以及网络地址转换(Network address translate简称NAT)设备。
背景技术
随着计算机技术的飞速发展,现有的电子设备能够安装越来越多的应用,使得个人电脑、手持设备(如平板电脑(Personal Digital Assistant简称PDA)、手机)等主机能够安装和使用的应用也越来越多,为了更方便监控应用的使用的情况,越来越重视流量监控,通过流量监控以识别访问量大的应用,并对访问量大的应用进行流量统计,再对流量统计的数据进行分析,根据分析的结果进行针对性的处理。
但是,现有技术在对访问量的应用进行流量监控时,流量监控设备需要对所有数据流量进行分析统计和深度报文解析,对解析获得的载荷内容进行识别,再通过比较排序才能识别出访问量大的应用,而在对所有数据流量进行分析统计时,由于需要统计和分析的数据流量很大,例如数据流量可以是100G,1000G的数据,使得所述流量监控设备在统计和分析所述数据流量时,大量资源被占用,进一步导致所述流量监控设备资源开销增大,工作效率降低。
发明内容
本申请实施例通过提供一种流量统计方法、装置以及NAT网关设备,能够降低资源开销的情况下实现快速识别和统计热点应用,提高工作效率。
第一方面,提供一种流量统计方法,所述方法包括:
接收内部网络中的主机发送的报文;判断所述报文是否为会话首包;
若所述报文为所述会话首包,则为所述主机分配外网地址和外网端口,并记录为所述主机进行分配外网地址和外网端口的尝试次数;
当所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
在第一方面的第一种可能的实现方式中,所述流量统计表项还包含热度值,创建所述流量统计表项时所述热度值的初始值被设置为1。
在第一方面的第一种可能的实现方式中,还提供了第一方面的第二种可能的实现方式,还包括:若所述报文不为所述会话首包,则根据所述报文中包含的目的地址、目的端口和协议号查找对应的流量统计表项;在查找到对应的流量统计表项时,以设定累加步长更新查找到的流量统计表项中的热度值。
在第一方面的第二种可能的实现方式中,还提供了第一方面的第三种可能的实现方式,在根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项时,所述方法还包括:创建与所述流量统计表项对应的定时器;在查找到对应的流量统计表项时,还包括:刷新查找到的所述流量统计表项对应的定时器,并判断所述定时器是否超时;若所述定时器超时,则删除所述流量统计表项。
在第一方面的第三种可能的实现方式中,还提供了第一方面的第四种可能的实现方式,所述删除所述流量统计表项之前,还包括:确定所述流量统计表项中的热度值小于等于预设热度值。
在第一方面的第四种可能的实现方式中,还提供了第一方面的第五种可能的实现方式中,还包括:若确定所述流量统计表项中的热度值大于预设热度值,则保留所述流量统计表项,设定所述定时器的设定时间并开始重新计时。
在第一方面或第一方面的第一种至第五种中的任一种可能的实现方式中,还提供了第一方面的第六种可能的实现方式,在记录有多个所述尝试次数时,所述阈值通过以下步骤进行设定:从多个所述尝试次数中确定最大尝试次数;基于所述最大尝试次数,设定所述阈值。
第二方面,提供了一种流量统计装置,所述装置包括:
接收单元,用于接收内部网络中的主机发送的报文;
判断单元,用于接收所述接收单元发送的所述报文,判断所述报文是否为会话首包;
分配单元,用于在所述判断单元判断所述报文为所述会话首包时,为所述主机分配外网地址和外网端口;
记录单元,用于在所述分配单元在为所述主机分配外网地址和外网端口时,记录为所述主机进行分配外网地址和外网端口的尝试次数;
表项创建单元,用于在所述记录单元记录的所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
在第二方面的第一种可能的实现方式中,所述流量统计表项还包含热度值,创建所述流量统计表项时所述热度值的初始值被设置为1。
在第二方面的第一种可能的实现方式中,还提供了第二方面的第二种可能的实现方式,所述装置还包括表项查找单元,用于在所述判断单元判断出所述报文不为所述会话首包时,根据所述报文中包含的目的地址、目的端口和协议号查找对应的流量统计表项;所述装置还包括表项更新单元,用于在所述表项查找单元查找到对应的流量统计表项时,以设定累加步长更新查找到的流量统计表项中的热度值。
在第二方面的第二种可能的实现方式中,还提供了第二方面的第三种可能的实现方式,所述装置还包括定时器创建单元,用于在所述表项创建单元根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项时,创建与所述流量统计表项对应的定时器;所述装置还包括定时器刷新单元,用于在所述表项查找单元查找到对应的流量统计表项时,刷新查找到的所述流量统计表项对应的定时器;所述装置还包括表项删除单元,用于在所述定时器刷新单元刷新查找到的所述流量统计表项对应的定时器时,判断所述定时器是否超时,若所述定时器超时,则删除所述流量统计表项。
在第二方面的第三种可能的实现方式中,还提供了第二方面的第四种可能的实现方式,所述装置还包括热度值确定单元,用于在所述表项删除单元删除所述流量统计表项之前,确定所述流量统计表项中的热度值小于等于预设热度值。
在第二方面的第四种可能的实现方式中,还提供了第二方面的种可能的实现方式,所述装置还包括时间重设单元,用于在确定所述流量统计表项中的热度值大于预设热度值时,保留所述流量统计表项,设定所述定时器的设定时间并开始重新计时。
在第二方面或第二方面的第一种至第五种中的任一种可能的实现方式中,还提供了第二方面的第六种可能的实现方式,所述装置还包括阈值设定单元,用于在记录有多个所述尝试次数时,从多个所述尝试次数中确定最大尝试次数,基于所述最大尝试次数,设定所述阈值。
第三方面,提供了一种NAT网关设备,所述NAT网关设备包括:
存储器,用于存储程序代码;
接收器,用于接收内部网络中的主机发送的报文;
处理器,用于读取所述存储器中存储的程序代码,执行:
判断所述报文是否为会话首包,若所述报文为所述会话首包,则为所述主机分配外网地址和外网端口,并在所述存储器中记录为所述主机进行分配外网地址和外网端口的尝试次数,以及当所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
在第三方面的第一种可能的实现方式中,所述流量统计表项还包含热度值,创建所述流量统计表项时所述热度值的初始值被设置为1。
在第三方面的第一种可能的实现方式中,还提供了第三方面的第二种可能的实现方式,所述处理器,还用于在所述报文不为所述会话首包时,根据所述报文中包含的目的地址、目的端口和协议号查找对应的流量统计表项,以及在查找到对应的流量统计表项时,以设定累加步长更新查找到的流量统计表项中的热度值。
在第三方面的第二种可能的实现方式中,还提供了第三方面的第三种可能的实现方式,所述处理器,还用于在根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项时,创建与所述流量统计表项对应的定时器,以及在查找到对应的流量统计表项时,刷新查找到的所述流量统计表项对应的定时器,并判断所述定时器是否超时,若所述定时器超时,则删除所述流量统计表项。
在第三方面的第三种可能的实现方式中,还提供了第三方面的第四种可能的实现方式,所述处理器,还用于在删除所述流量统计表项之前,确定所述流量统计表项中的热度值小于等于预设热度值。
在第三方面的第四种可能的实现方式中,还提供了第三方面的第五种可能的实现方式,所述处理器,还用于在确定所述流量统计表项中的热度值大于预设热度值时,保留所述流量统计表项,设定所述定时器的设定时间并开始重新计时。
在第三方面或第三方面的第一种至第五种中的任一种可能的实现方式中,还提供了第三方面的第六种可能的实现方式,所述处理器,还用于在所述存储器中存储的多个所述尝试次数时,从多个所述尝试次数中确定最大尝试次数,基于所述最大尝试次数,设定所述阈值。
本发明有益效果如下:
本发明实施例中,由于本申请技术方案在接收内部网络中的主机发送的报文之后,若所述报文为所述会话首包,则为所述主机分配外网地址和外网端口,并记录为所述主机进行分配外网地址和外网端口的尝试次数,且当所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,由于在一时间间隔内存在有数量较多的主机访问同一个应用时,才会导致所述尝试次数的值增大,而在所述尝试次数大于所述阈值时,才创建流量统计表项,而所述尝试次数不大于所述阈值时,不会创建对应的流量统计表项,使得无需对所述尝试次数不大于所述阈值对应的报文的数据流量进行统计,从而使得统计的数据流量降低,从而降低了资源的开销,而且所述流量统计表项包含热点应用对应的服务器地址和服务器端口,使得通过统计所述流量统计表项就可以统计所述热度应用,能够降低资源开销的情况下实现快速识别和统计热点应用,使得工作效率得以提高。
附图说明
图1为本发明实施例中流量统计方法的方法流程图;
图2为本发明实施例中包含NAT网关设备的的系统架构图;
图3为本发明实施例中流量统计装置的结构图;
图4为本发明实施例中NAT网关设备的结构图。
具体实施方式
针对现有技术在对访问量的应用进行流量监控时,存在资源开销过大,工作效率低的技术问题,本发明实施例这里提出的技术方案中于本申请技术方案在接收内部网络中的主机发送的报文之后,若所述报文为所述会话首包,则为所述主机分配外网地址和外网端口,并记录为所述主机进行分配外网地址和外网端口的尝试次数,且当所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,由于在一时间间隔内存在有数量较多的主机访问同一个应用时,才会导致所述尝试次数的值增大,而在所述尝试次数大于所述阈值时,才创建流量统计表项,而所述尝试次数不大于所述阈值时,不会创建对应的流量统计表项,使得无需对所述尝试次数不大于所述阈值对应的报文的数据流量进行统计,从而使得统计的数据流量降低,从而降低了资源的开销,而且所述流量统计表项包含热点应用对应的服务器地址和服务器端口,使得通过统计所述流量统计表项就可以统计所述热度应用,能够降低资源开销的情况下实现快速识别和统计热点应用,使得工作效率得以提高。
下面结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细地阐述。
本发明实施例提出了一种流量统计方法,如图1所示,该方法具体处理过程如下:
步骤S101:接收内部网络中的主机发送的报文;
步骤S102:判断所述报文是否为会话首包;
步骤S103:若所述报文为所述会话首包,则为所述主机分配外网地址和外网端口,并记录为所述主机进行分配外网地址和外网端口的尝试次数;
步骤S104:当所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
其中,在步骤S101中,接收内部网络中的主机发送的报文。
在具体实施过程中,所述方法的执行主体为可以为NAT网关设备,所述NAT网关设备首先会接收到内部网络中的主机发送的报文,所述报文包含有目的地址、目的端口和协议号。
其中,所述报文具体为网络之间互连的协议(Internet Protocol简称IP)报文,所述IP报文中可以封装传输控制协议(Transmission Control Protocol简称TCP)报文,用户数据报协议(User Datagram Protocol简称UDP)报文、网络控制报文协议(Internet Control Message Protocol简称ICMP)报文。
具体来讲,所述目的地址为所述主机需要访问的目的服务器地址,所述目的端口为所述主机访问所述目的服务器的端口,所述协议号是指所述报文中使用的协议的协议号,例如TCP的协议号为6,UDP的协议号为17、以及ICMP的协议号为8,若所述报文中封装的是TCP报文时,则所述报文的协议号为TCP的协议号即为6;若所述报文中封装的是UDP报文时,则所述报文的协议号为UDP的协议号,即为17。
例如,参见图2,当笔记本电脑A需要访问国际互联网中的服务器B的80端口时,若服务器B的IP地址为125.70.133.212,笔记本电脑A根据访问的服务器B的80端口,生成一个IP报文,所述IP报文中封装有TCP报文,如此使得所述IP报文包含有服务器B的IP地址为125.70.133.212、服务器端口为80、协议号为6和访问数据,笔记本电脑A将所述IP报文发送给NAT网关设备E,使得NAT网关设备E能够接收到所述IP报文。
接下来执行步骤S102,在该步骤中,判断所述报文是否为会话首包。
由于所述NAT网关设备是基于用户的数据连接进行地址和端口分配的,所述数据连接是指TCP/IP协议族的传输层连接,而传输层协议主要包括TCP/UDP/ICMP,而一条数据连接包含许多交互报文,所述一条数据连接中的第一个报文通常称为会话首包,其它报文称为后续包,所述NAT网关设备收到数据连接的会话首包后,为发送报文的内部网络主机(也被称为私网主机)进行外部网络(也被称为公网)地址和端口分配,然后创建记录有(源目的IP地址、源目的端口、协议号)五元组的session表和记录NAT转换信息的地址映射表,具体的NAT转换信息包括但不限于上述主机的内部网络IP地址、端口与所分配的外部网络IP地址、端口的映射关系;当收到上述内部网络中的主机发送的后续包时不重新分配,而是查找地址映射表直接使用已分配的外部网络IP地址、端口替换后续包中的内部网络IP地址、端口,并将替换后的后续包发送出去。
所述NAT网关设备接收到所述报文之后,可以通过查找与所述报文对应的会话(session)表,根据查找结果判断所述报文是否为会话首包。
具体来讲,所述NAT网关设备接收到所述报文之后,根据该报文的五元组查找与所述报文对应的session表,若查找到与所述报文对应的session表时,则判定所述报文不为所述会话首包;若未查找到所述报文对应的session表时,则判定所述报文为所述会话首包。
例如,参见图2,NAT网关设备E接收到IP报文之后,根据所述IP报文的五元组查找与所述IP报文对应的session表,若未查找到所述报文对应的session表时,则判定所述IP报文为所述会话首包;若查找到所述IP报文对应的session表时,则判定所述IP报文不为所述会话首包。
若所述报文为所述会话首包,执行步骤S103,为所述主机分配外网地址和外网端口,并记录为所述主机进行分配外网地址和外网端口的尝试次数。
在具体实施过程中,在通过步骤S102判断所述报文为所述会话首包时,所述NAT网关设备为所述主机分配外网地址和外网端口,以使得所述主机通过分配的所述外网地址和外网端口来访问外网,并在所述NAT网关设备为所述主机分配外网地址和外网端口的同时记录所述尝试次数,也可以在为所述主机进行分配外网地址和外网端口完成时,才记录所述所述尝试次数,本申请不作具体限制。
例如,参见图2,NAT网关设备E若未查找到所述报文对应的session表时,则判定所述IP报文为所述会话首包,然后为笔记电脑A分配外网地址和外网端口,例如可以为笔记电脑A分配的公网地址为222.111.33.4和端口为5080,具体用222.111.33.4:5080进行表示。
具体来讲,在为所述主机分配外网地址和外网端口之后,可能会出现五元组冲突,这里的所述五元组具体为“协议+服务器端口(目的端口)+服务器地址(目的地址)+为内网主机主机分配的外网地址+为内网主机主机分配的外网端口”,而在所述主机将所述报文发送至所述NAT网关设备时,所述NAT网关设备为所述主机分配外网地址和外网端口,而所述五元组中的协议+服务器端口+服务器地址是不变的,因此,在出现五元组冲突时,则所述NAT网关设备会再次尝试为所述主机分配新的外网地址和/或新的外网端口,当所述NAT网关设备在对同一内网用户始终分配相同的外网地址时,这时,所述NAT网关设备主要是再次尝试为所述主机分配新的外网端口。
具体的,在首次为所述主机进行外网地址和外网端口分配之后,未出现五元组冲突时,则确定为所述主机进行分配外网地址和外网端口的所述尝试次数为1;若第一次分配出现了五元组冲突时,则所述NAT网关设备第二次为所述主机进行外网地址和外网端口分配,若在第二次为所述主机进行外网地址和外网端口分配之后,未出现五元组冲突时,则确定所述尝试次数为2,即,在尝试了K次为所述主机进行外网地址和外网端口分配之后,未出现五元组冲突时,则确定所述尝试次数为K,其中,K为不小于1的整数。
例如,参见图2,当笔记本电脑A需要访问服务器B的80端口时,NAT网关设备E会接收到所述笔记电脑A发送的IP报文,若所述IP报文为会话首包,NAT网关设备E会为笔记本电脑A分配外网地址和外网端口为222.111.33.4:5080,并通过计数器来对所述尝试次数进行计数,若未出现五元组冲突,则可以从所述计数器中读取所述尝试次数的值为1;若出现了五元组冲突,则再次为笔记本电脑A分配外网地址和外网端口为222.111.33.4:4000,若再次出现了五元组冲突,则进行再次尝试,直至到达最大尝试次数后确定分配失败,均可以从所述计数器中读取所述尝试次数的值。
当所述尝试次数大于阈值时,执行步骤S104,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
其中,所述热点应用为第一时间间隔内访问量大于预设访问量的应用,其中,所述预设访问量根据所述第一时间间隔的时长来确定,所述第一时间间隔的时长例如是30分钟(minute简称min)、50min、60min、120min等,例如在所述第一时间间隔的时长为60min时,所述预设访问量例如取大于等于10000的值,检测到一应用在60min的访问次数为15000次,若所述预设访问量为10000,由于15000>10000,则可以判定该应用为热点应用;若所述预设访问量为16000,由于15000<16000,则可以判定该应用不为热点应用。当然,上述热点应用的判别阈值可以根据网络规模和统计的目的不同而灵活设置。
进一步的,所述阈值可以通过静态设定和动态设定这两种方式进行设置,在静态设定所述阈值时,所述阈值可以选取大于等于3的值,例如可以为3,4,5,8等值;如果在动态设定所述阈值时,在所述NAT网关设备中记录有多个所述尝试次数时,从多个所述尝试次数中确定最大尝试次数;基于所述最大尝试次数,设定所述阈值。
具体的,可以通过创建计算器来统计多个所述尝试次数,然后从统计的多个的所述尝试次数中确定最大尝试次数为M,其中,M为正整数,若所述M小于等于5时,则所述阈值的取值可以为M-1;若M大于5时,所述阈值的取值为M-3,或M-2,或M-1等值;当然所述阈值也可以取大于等于M/2,且不大于M的值。
具体的,如果所述最大尝试次数为8次,则创建8个计数器,当为主机进行外网地址和外网端口分配时尝试第N次对应的计数器就增加1,例如某次分配尝试了6次,那么计数器1-6都各增加1,若检测到计数器1-6在增长,则统计的最大尝试次数为6,则所述阈值可以取大于等于6/2=3,且小于6的值,所述阈值例如可以为3、4和5。
具体来讲,当记录的所述尝试参数大于所述阈值时,则根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
具体的,在根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项时,所述目的地址即为所述服务器地址,所述目的端口即为所述服务器端口,与所述目的地址和所述目的端口对应的应用为热点应用,即,使得每一个流量统计表项对应一个热点应用,如此,通过查询所述NAT网关设备中流量统计表项就能够快速识别和统计热点应用。
具体的,所述流量统计表项还包含热度值,创建所述流量统计表项时所述热度值的初始值被设置为1,一个流量统计表项中的热度值可以用于表征在第二时间间隔内访问该流量统计表项的访问量,还可以用于表征在所述第二时间间隔内访问该流量统计表项的平均访问量,所述第二时间间隔例如5min、10min、20min、30min等值,其中,所述流量统计表项包括索引项和数据项,所述索引项包括协议号、服务器地址和服务器端口等目录项,所述数据项包括以下的至少一种或多种组合:包协议号、热度值、流量、报文数(包括总报文数、上行报文数和下行报文数)、传输数据量(包括上行流量的字节数和下行流量的字节数)应用协议类型等。
例如,参见图2,当笔记本电脑A需要访问服务器B的80端口时,NAT网关设备E会接收到所述笔记电脑A发送的IP报文,若所述IP报文为会话首包,NAT网关设备E会为笔记本电脑A分配外网地址和外网端口为222.111.33.4:5080,并通过计数器来对所述尝试次数进行计数,获得所述尝试为4次,而所述阈值为3,由于4>3,则根据服务器B的IP地址为125.70.133.212、服务器端口为80和协议号为6来创建流量统计表项,若所述IP报文的数据容量为1M时,具体如下表1所示。
表1
其中,表1中包含总流量,上行流量和下行流量,其中,所述上行流量为主机访问服务器的数据流量,所述下行流量为服务器传输给主机的数据流量,所述总流量为所述上行流量和下行流量之和,在创建表1时由于所述IP报文的容量为1M,且创建表1时仅有上行流量而没有下行流量,使得表1中的上行流量为1M,下行流量为空,总流量为1M;进一步的,表1中包含总报文数,上行报文数和下行报文数,其中,所述上行报文数为主机访问服务器的报文数量,所述下行报文数为服务器传输给主机的报文数量,所述总报文数为所述上行报文数和所述下行报文数之和,在创建表1时由于所述IP报文的数量为1个,且创建表1时仅有上行报文而没有下行报文,使得表1中的上行报文数为1个,下行报文数为空,总报文数为1个。
进一步的,表1中包含的应用协议类型,是指所述报文使用的应用层协议类型,例如可以为超文本传输协议(Hypertext transfer protocol简称HTTP),安全超文本传输协议(Secure Hypertext Transfer Protocol简称HTTPS),简单邮件传输协议(Simple Mail Transfer Protocol简称SMTP),域名系统(DomainName System简称DNS)协议,文件传输协议(File Transfer Protocol简称FTP),实时流传输协议(Real Time Streaming Protocol简称RTSP),简单网络协议(Simple Network Management Protoco简称SNMP)等,其中,TCP报文一般使用的应用层协议为FTP、SMTP、HTTP、HTTPS等,而UDP报文一般使用的协议为DNS、SNMP等,其中,若所述IP报文使用的应用层协议为HTTP,则使得表1的应用协议类型为HTTP。
进一步的,所述上行流量和所述上行报文数使用目的IP和目的端口进行查找,所述下行流量和所述下行报文数使用源IP和源端口进行查找。
由于每一个服务器均具有IP地址,且每一个服务器的端口会对应相应的应用,而且每一个流量统计表项对应一个热点应用,如此,可以根据创建的所述流量统计表项中的服务器地址和服务器端口查找到对应的热度应用。
在具体实施过程中,在通过步骤S102判断所述报文不为所述会话首包时,所述方法还包括:若所述报文不为所述会话首包,执行步骤S105,根据所述报文中包含的目的地址、目的端口和协议号查找对应的流量统计表项;
在查找到对应的流量统计表项时,执行步骤S106,以设定累加步长更新查找到的流量统计表项中的热度值。
例如,参见图2,当笔记本电脑A需要访问服务器B的80端口时,NAT网关设备E会接收到所述笔记电脑A发送的IP报文,若所述IP报文不为会话首包,则根据服务器B的IP地址为125.70.133.212、服务器端口为80和协议号为6查找对应的流量统计表项,其中,服务器B的IP地址为125.70.133.212、服务器端口为80和协议号为6具体用125.70.133.212:80:80表示。
在查找到对应的流量统计表项时,执行步骤S106,以设定累加步长更新查找到的流量统计表项中的热度值。
在具体实施过程中,在查找到对应的流量统计表项时,以设定累加步长更新查找到的流量统计表项中的热度值时,还需对所述流量统计表项中流量和报文数进行更新。
具体来讲,在一个流量统计表项中的热度值可以用于表征在第二时间间隔内访问该流量统计表项的累积访问量时,使得在每一个所述第二时间间隔内以以设定累加步长更新查找到的流量统计表项中的热度值时,其中,所述步长用J表示,例如可以是1、2、3和4等值,若第一流量统计表项中的热度值用K表示,在一个所述第二时间间隔内查找到所述第一流量统计表项时,更新所述第一流量统计表项中的热度值,则更新后的所述热度值为K+j,其中,K为正整数。
例如,参见图2,若NAT网关设备E在第一时刻创建了表1,在所述第一时刻,表1中的热度值为1,在所述第一时刻之后的第二时刻查找到了表1,则更新表1中的热度值,若所述第二时间间隔为20min,且所述第二时刻与所述第一时刻之间的时间差小于20min时,如果所述J=1,则更新表1后的热度值为1+1=2,以及在第一时刻之后的20min内,每查找表1一次,则将表1的热度值加1;若在所述第一时刻之后的第三时刻,又查找到表1,且所述第三时刻与所述第一时刻之间的时间差大于20min时,若所述第三时刻之前的20min至所述第三时刻内的查找表1的次数为L,则在所述第三时刻,表1中的热度值为L*j,以所述第三时刻为10:25:10秒为例,若10:05:10秒至10:25:10秒查找到表1的次数为10次,在J=1时,则在10:25:10秒,表1中的热度值为10*1=10,使得表1中的热度值是实时更新的,例如在表1在11:15:55秒时,表1中的热度值为10:55:55秒至11:15:55秒内查找表1的次数乘以j的值。
具体来讲,在一个流量统计表项中的热度值用于表征在所述第二时间间隔内访问该流量统计表项的平均访问量时,使得在创建流量统计表项之后,在每次访问所述流量统计表项时,需要累加一次步长,创建所述流量统计表项的时刻用T0表示,当前时刻用T1表示,则表1在T1时刻的热度值为(1+Q*J)*T2/(T1-T0),其中,Q为T0时刻至T1时刻查找到所述流量统计表项的次数,T2所述第二时间间隔。
例如,参见图2,若NAT网关设备E在T0创建了表1,在T0时刻,表1中的热度值为1,以及在T0时刻之后的T1时刻,若T1-T0=30min,且所述第二时间间隔为20min,如果在T0时刻至T1时刻查找到表1的次数为200次时,若J=1,则可以确定在T1时刻表1中的热度值为(1+200*1)*20/30=1;若T1-T0=50min,在T0时刻至T1时刻查找到表1的次数为1999次时,则可以确定在T1时刻表1中的热度值为(1+1999*1)*20/50=800。
具体的,在对所述流量统计表项中流量和报文数进行更新时,可以一直累加流量和报文数,例如,参见表1,在创建表1之后,每查找到表1一次,则将每次查找表1对应的数据流量和报文数量相加。
例如,参见图2,在NAT网关设备接收到笔记本电脑C发送的IP报文,所述IP报文中包含的目的地址为202.106.186.34,目的端口为25和协议号为8。由于所述IP报文不为会话首包,则根据目的地址为202.106.186.34,目的端口为25和协议号为8来查找对应的流量统计表项,若查找到对应的流量统计表项,具体如下表2所示。
表2
其中,由于查找到表2,则更新表2中的热度值,且由于是主机向服务器传输数据,因此,还需更新表2中的总报文数、上行报文数、上行流量和总流量。
进一步的,若所述NAT网关设备接收到笔记本电脑C发送的IP报文的个数为4,且包含的数据容量为2M,根据所述IP报文的个数来更新表2中的总报文数和上行报文数,以及更加所述IP报文包含的数据容量来更新总流量和上行流量,由于表2中的热度值是实时更新时,则更新后的热度值为100+J,以J=1为例,则更新后的热度值为101,则更新后表2的具体如下表2-1所示。
表2-1
在另一实施例中,在根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项时,所述方法还包括:创建与所述流量统计表项对应的定时器;在查找到对应的流量统计表项时,还包括:刷新查找到的所述流量统计表项对应的定时器,并判断所述定时器是否超时;若所述定时器超时,则删除所述流量统计表项。
具体来讲,在根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项时,创建与所述流量统计表项对应的定时器,所述定时器的设定时间例如可以为30min,60min、120min等时间,其中,在所述定时器创建之后,在查找到对应的流量统计表项的情况下,在更新查找到的所述流量统计表项时,还刷新查找到的所述流量统计表项对应的定时器,并还需判断所述定时器是否超时,如果超时,则删除所述流量统计表项,如果未超时,则继续保留所述流量统计表项。
具体的,为了使得更准确获取所述热度值,由于一个流量统计表项中的热度值用于表征在第二时间间隔内访问该流量统计表项的访问量,若所述定时器的设定时间小于所述第二时间间隔,则有一部分访问量未计入所述热度值中,因此,所述定时器的设定时间应大于所述第二时间间隔,例如在所述第二时间间隔为20min,所述定时器的设定时间应大于20min,例如可以是25min、30min等时间。
具体的,在每次创建所述流量统计表项的同时还需创建与之对应的定时器,在每次查找到所述流量统计表项的同时还需刷新与之对应的定时器,若定时器超时,则删除所述流量统计表项。
例如,参见表1,当笔记本电脑A需要访问服务器B的80端口时,NAT网关设备E会接收到所述笔记电脑A发送的IP报文,若所述IP报文为会话首包,NAT网关设备E会为笔记本电脑A分配外网地址和外网端口为222.111.33.4:5080,并通过计数器来对所述尝试次数进行计数,获得所述尝试为4次,而所述阈值为3,由于4>3,则根据服务器B的IP地址为125.70.133.212、服务器端口为80和协议号为6来创建表1。
其中,在创建表1的还创建与表1对应的第一定时器,若表1中的热度值为20min内访问该流量统计表项的访问量,则所述第一定时器的设定时间需要大于20min,例如可以为30min,若在创建所述第一定时器之后,所述NAT网关设备再次查找到表1时,在更新表1的同时还需刷新所述第一定时器,以及还需要判断所述第一定时器是否超时,如果所述第一定时器的设定时间为30min,若在30min时间内,NAT网关设备E未有一次查找到表1,这时所述第一定时器上显示的时间为0,则可以判定所述第一定时器超时,则删除表1。
由于在所述定时器超时时,则删除所述流量统计表项,使得所述流量统计表项的数量是实时变动的,而不会出现在流量统计表项在创建之后就不会删除,进而使得所述流量统计表项的数量保持在合适的数量级,以降低资源的开销。
在具体实施过程中,在所述定时器超时之后,在所述删除所述流量统计表项之前,还包括:确定所述流量统计表项中的热度值小于等于预设热度值;若确定所述流量统计表项中的热度值大于预设热度值,则保留所述流量统计表项,设定所述定时器的设定时间并开始重新计时。
具体的,由于在创建所述定时器,会第一次设定所述定时器的设定时间,而在所述定时器超时之后,在删除与所述定时器超时对应的流量统计表项之前,若确定所述流量统计表项中的热度值大于预设热度值,则保留所述流量统计表项,并再次设定所述定时器的设定时间,再次设定的时间可以小于第一次设定的时间,使得热点应用对应的流量统计表项能够保留更长时间,进而方便统计。
具体来讲,为了使得更准确删除所述流量统计表项,在判断所述定时器超时之后,还需确定所述流量统计表项中的热度值小于等于预设热度值,若小于所述预设热度值,则删除所述流量统计表项,所述预设热度值例如可以为不小于等于50的值,例如为50,100等;若确定所述流量统计表项中的热度值大于预设热度值,则保留所述流量统计表项,设定所述定时器的设定时间并开始重新计时。
具体的,在一个流量统计表项中的热度值可以用于表征在第二时间间隔内访问该流量统计表项的累积访问量时,若所述第二时间间隔小于所述定时器的设定时间,如果所述定时器超时,则与所述定时器超时对应的流量统计表项中的热度值为0,则必然小于所述预设热度值,进而删除与所述定时器超时对应的流量统计表项;若所述第二时间间隔大于所述定时器的设定时间,如果所述定时器超时,则与所述定时器超时对应的流量统计表项中的热度值不为0,则判断与所述定时器超时对应的流量统计表项中的热度值是否大于所述预设热度值,若干小于所述预设热度值,则删除与所述定时器超时对应的流量统计表项。
例如,参见图2,若NAT网关设备E在第一时刻创建了表1且创建了表1对应的第一定时器,若所述第二时间间隔为20min,且所述第一定时器的设定时间为30min,在第四时刻,所述第一定时器上的显示时间为0,则判定所述第一定时器超时,可以确定所述第四时刻到所述第四时刻之前的30min内没有一次查找到表1,使得表1在所述第四时刻的热度值为所述第四时刻之前的20min到所述第四时刻内访问表1的访问量为0,进而使得表1在所述第四时刻的热度值为0小于所述预设热度值,删除表1。
具体的,在一个流量统计表项中的热度值用于表征在所述第二时间间隔内访问该流量统计表项的平均访问量时,小于所述预设热度值,则删除所述流量统计表项,所述预设热度值例如可以为不小于等于50的值,例如为50,100等。
例如,参见图2,若NAT网关设备E在T0时刻创建了表1,在T0时刻还创建了表1对应的第一定时器,所述第一定时器的设定时间为20min,在T1时,所述第一定时器超时,判断表1在T1时刻的热度值是否小于所述预设热度值,若T1-T0=50min,在T0时刻至T1时刻查找到表1的次数为1999次时,则可以确定在T1时刻表1中的热度值为(1+1999*1)*20/50=800,在所述预设热度值为1000时,由于800<1000,则删除表1;如果所述预设热度值为500,由于800>500,则保留所述流量统计表项,重新设定所述第一定时器的设定时间为小于20min例如设置为10min,并开始重新计时,在重新设定所述第一定时器的设定时间之后,在查找到表1时,则刷新所述第一定时器,使得所述第一定时器的设定时间刷新为20min或10min。
本发明实施例中,于本申请技术方案在接收内部网络中的主机发送的报文之后,若所述报文为所述会话首包,则为所述主机分配外网地址和外网端口,并记录为所述主机进行分配外网地址和外网端口的尝试次数,且当所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,由于在一时间间隔内存在有数量较多的主机访问同一个应用时,才会导致所述尝试次数的值增大,而在所述尝试次数大于所述阈值时,才创建流量统计表项,而所述尝试次数不大于所述阈值时,不会创建对应的流量统计表项,使得无需对所述尝试次数不大于所述阈值对应的报文的数据流量进行统计,从而使得统计的数据流量降低,从而降低了资源的开销,而且所述流量统计表项包含热点应用对应的服务器地址和服务器端口,使得通过统计所述流量统计表项就可以统计所述热度应用,能够降低资源开销的情况下实现快速识别和统计热点应用,使得工作效率得以提高。
另外,本发明能够应用在NAT网关设备上,利用网络端口地址转换(Network Address Port Translation简称NAPT)分配端口和地址时五元组冲突的尝试机制,以此来创建流量统计表项进行热点应用识别,进而将热点应用统计功能与NAT功能结合在一起,能够快速识别网络出口的热点应用,提高网络运用的精细度,并有效的减少了资源投入。
基于与上述方法相同的技术构思,本发明实施例还提出了一种流量统计装置,参见图3,该装置包括:
接收单元301,用于接收内部网络中的主机发送的报文;
判断单元302,用于接收接收单元301发送的所述报文,判断所述报文是否为会话首包;
分配单元303,用于在判断单元302判断所述报文为所述会话首包时,为所述主机分配外网地址和外网端口;
记录单元304,用于在分配单元303在为所述主机分配外网地址和外网端口时,记录为所述主机进行分配外网地址和外网端口的尝试次数;
表项创建单元305,用于在记录单元304记录的所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
其中,接收单元301首先会接收到内部网络中的主机发送的报文,所述报文包含有目的地址、目的端口和协议号,所述报文具体为IP报文,所述IP报文中可以封装TCP报文,UDP报文、ICMP报文等。
具体的,所述目的地址为所述主机需要访问的目的服务器地址,所述目的端口为所述主机访问所述目的服务器的端口,所述协议号是指所述报文中使用的协议的协议号,例如TCP的协议号为6,UDP的协议号为17、以及ICMP的协议号为8,若所述报文中封装的是TCP报文时,则所述报文的协议号为TCP的协议号即为6;若所述报文中封装的是UDP报文时,则所述报文的协议号为UDP的协议号,即为17。
可选地,由于所述NAT网关设备是基于用户的数据连接进行地址和端口分配的,所述数据连接是指TCP/IP协议族的传输层连接,而传输层协议主要包括TCP/UDP/ICMP,而一条数据连接包含许多交互报文,所述一条数据连接中的第一个报文通常称为会话首包,其它报文称为后续包,所述NAT网关设备收到数据连接的会话首包后进行地址和端口分配,然后创建session表或相关表项记录NAT转换信息;当收到后续包时不重新分配,而是查找session表或相关表项直接使用已记录的转换信息。
如此,使得判断单元302接收到接收单元301发送的所述报文之后,通过查找与所述报文对应的会话(session)表,根据查找结果判断所述报文是否为会话首包。
具体的,在判断单元302判断所述报文为所述会话首包时,分配单元303,用于为所述主机分配外网地址和外网端口,以使得所述主机通过分配的所述外网地址和外网端口来访问外网。
可选地,在分配单元303在为所述主机分配外网地址和外网端口时,记录单元304具体用于记录为所述主机进行分配外网地址和外网端口的尝试次数。
具体的,分配单元303在为所述主机分配外网地址和外网端口之后,可能会出现五元组冲突,所述五元组具体为协议+服务器端口+服务器地址+公网地址+外网端口,而所述五元组中的协议+服务器端口+服务器地址是不变的,因此,在出现五元组冲突时,则分配单元303会再次尝试为所述主机分配新的外网地址和/或新的外网端口,当分配单元303在对同一内网用户始终分配相同的外网地址时,这时,分配单元303主要是再次尝试为所述主机分配新的外网端口。
具体的,分配单元303在首次为所述主机进行外网地址和外网端口分配之后,未出现五元组冲突时,则确定为所述主机进行分配外网地址和外网端口的所述尝试次数为1;若第一次分配出现了五元组冲突时,则分配单元303第二次为所述主机进行外网地址和外网端口分配,若在第二次为所述主机进行外网地址和外网端口分配之后,未出现五元组冲突时,则确定所述尝试次数为2,即,在尝试了K次为所述主机进行外网地址和外网端口分配之后,未出现五元组冲突时,则确定所述尝试次数为K,其中,K为不小于1的整数。
可选地,在记录单元304记录的所述尝试次数大于阈值时,表项创建单元305具体用于根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
其中,所述热点应用为第一时间间隔内访问量大于预设访问量的应用,其中,所述预设访问量根据所述第一时间间隔的时长来确定,所述第一时间间隔的时长例如是30min、50min、60min、120min等,例如在所述第一时间间隔的时长为60min时,所述预设访问量例如取大于等于10000的值,检测到一应用在60min的访问次数为15000次,若所述预设访问量为10000,由于15000>10000,则可以判定该应用为热点应用;若所述预设访问量为16000,由于15000<16000,则可以判定该应用不为热点应用。
可选地,所述装置还包括阈值设定单元306,用于在记录有多个所述尝试次数时,从多个所述尝试次数中确定最大尝试次数,基于所述最大尝试次数,设定所述阈值。
具体的,阈值设定单元306可以通过静态设定和动态设定这两种方式进行设置,在静态设定所述阈值时,所述阈值可以选取大于等于3的值,例如可以为3,4,5,8等值;在动态设定所述阈值时,若记录单元304中记录有多个所述尝试次数,则从多个所述尝试次数中确定最大尝试次数;基于所述最大尝试次数,设定所述阈值。
具体的,可以通过创建计算器来统计多个所述尝试次数,然后从统计的多个的所述尝试次数中确定最大尝试次数为M,其中,M为正整数,若所述M小于等于5时,则所述阈值的取值可以为M-1;若M大于5时,所述阈值的取值为M-3,或M-2,或M-1等值;当然所述阈值也可以取大于等于M/2,且不大于M的值。
可选地,所述流量统计表项还包含热度值,创建所述流量统计表项时所述热度值的初始值被设置为1,一个流量统计表项中的热度值可以用于表征在第二时间间隔内访问该流量统计表项的访问量,还可以用于表征在所述第二时间间隔内访问该流量统计表项的平均访问量,所述第二时间间隔例如5min、10min、20min、30min等值,其中,所述流量统计表项包括索引项和数据项,所述索引项包括协议号、服务器地址和服务器端口等目录项,所述数据项至少包括协议类型、热度值、流量、报文数、应用协议类型等目录项。
可选地,所述装置还包括表项查找单元307,用于在判断单元302判断出所述报文不为所述会话首包时,根据所述报文中包含的目的地址、目的端口和协议号查找对应的流量统计表项;
所述装置还包括表项更新单元308,用于在表项查找单元307查找到对应的流量统计表项时,以设定累加步长更新查找到的流量统计表项中的热度值。
可选地,所述装置还包括定时器创建单元309,用于在表项创建单元305根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项时,创建与所述流量统计表项对应的定时器。
可选地,所述装置还包括定时器刷新单元310,用于在表项查找单元307查找到对应的流量统计表项时,刷新查找到的所述流量统计表项对应的定时器。
可选地,所述装置还包括表项删除单元311,用于定时器创建单元309创建创建与所述流量统计表项对应的定时器之后,判断所述定时器是否超时,若所述定时器超时,则删除所述流量统计表项。
可选地,所述装置还包括热度值确定单元312,用于在表项删除单元311删除所述流量统计表项之前,确定所述流量统计表项中的热度值小于等于预设热度值。
可选地,所述装置还包括时间重设单元313,用于在确定所述流量统计表项中的热度值大于预设热度值时,保留所述流量统计表项,设定所述定时器的设定时间并开始重新计时。
本发明实施例中,于本申请技术方案在接收内部网络中的主机发送的报文之后,若所述报文为所述会话首包,则为所述主机分配外网地址和外网端口,并记录为所述主机进行分配外网地址和外网端口的尝试次数,且当所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,由于在一时间间隔内存在有数量较多的主机访问同一个应用时,才会导致所述尝试次数的值增大,而在所述尝试次数大于所述阈值时,才创建流量统计表项,而所述尝试次数不大于所述阈值时,不会创建对应的流量统计表项,使得无需对所述尝试次数不大于所述阈值对应的报文的数据流量进行统计,从而使得统计的数据流量降低,从而降低了资源的开销,而且所述流量统计表项包含热点应用对应的服务器地址和服务器端口,使得通过统计所述流量统计表项就可以统计所述热度应用,能够降低资源开销的情况下实现快速识别和统计热点应用,使得工作效率得以提高。
另外,本发明能够应用在NAT网关设备上,利用NAPT分配端口和地址时五元组冲突的尝试机制,以此来创建流量统计表项进行热点应用识别,进而将热点应用统计功能与NAT功能结合在一起,能够快速识别网络出口的热点应用,提高网络运用的精细度,并有效的减少了资源投入。
基于与上述方法相同的技术构思,本发明实施例还提出一种NAT网关设备,参见图4,该NAT网关设备400包括:
存储器401,用于存储程序代码;
接收器402,用于接收内部网络中的主机发送的报文;
处理器403,用于读取存储器401中存储的程序代码,执行:
判断所述报文是否为会话首包,若所述报文为所述会话首包,则为所述主机分配外网地址和外网端口,并在所述存储器中记录为所述主机进行分配外网地址和外网端口的尝试次数,以及当所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
其中,存储器401、接收器402和处理器403用于通过通信总线404进行通信。
进一步的,接收器402例如是网络接口,进一步的,处理器403例如是单独的处理芯片,也可以为NAT网关设备的处理器,进一步的,存储器401例如是硬盘、内存等电子设备。
可选地,接收器402首先会接收到内部网络中的主机发送的报文,所述报文包含有目的地址、目的端口和协议号,所述报文具体为IP报文,所述IP报文中可以封装TCP报文,UDP报文、ICMP报文等。
具体的,所述目的地址为所述主机需要访问的目的服务器地址,所述目的端口为所述主机访问所述目的服务器的端口,所述协议号是指所述报文中使用的协议的协议号,例如TCP的协议号为6,UDP的协议号为17、以及ICMP的协议号为8,若所述报文中封装的是TCP报文时,则所述报文的协议号为TCP的协议号即为6;若所述报文中封装的是UDP报文时,则所述报文的协议号为UDP的协议号,即为17。
可选地,由于NAT网关设备400是基于用户的数据连接进行地址和端口分配的,所述数据连接是指TCP/IP协议族的传输层连接,而传输层协议主要包括TCP/UDP/ICMP,而一条数据连接包含许多交互报文,所述一条数据连接中的第一个报文通常称为会话首包,其它报文称为后续包,NAT网关设备400接收到数据连接的会话首包后进行地址和端口分配,然后创建session表或相关表项记录NAT转换信息;当收到后续包时不重新分配,而是查找session表或相关表项直接使用已记录的转换信息。
如此,使得处理器403通过通信总线404接收到接收器402发送的所述报文之后,通过查找与所述报文对应的会话(session)表,根据查找结果判断所述报文是否为会话首包。
具体的,处理器403判断所述报文为所述会话首包时,用于为所述主机分配外网地址和外网端口,以使得所述主机通过分配的所述外网地址和外网端口来访问外网。
可选地,处理器403在为所述主机分配外网地址和外网端口时,还用于记录为所述主机进行分配外网地址和外网端口的尝试次数。
具体的,处理器403在为所述主机分配外网地址和外网端口之后,可能会出现五元组冲突,所述五元组具体为协议+服务器端口+服务器地址+公网地址+外网端口,而所述五元组中的协议+服务器端口+服务器地址是不变的,因此,在出现五元组冲突时,则处理器403会再次尝试为所述主机分配新的外网地址和/或新的外网端口,当处理器403在对同一内网用户始终分配相同的外网地址时,这时,处理器403主要是再次尝试为所述主机分配新的外网端口。
具体的,处理器403在首次为所述主机进行外网地址和外网端口分配之后,未出现五元组冲突时,则确定为所述主机进行分配外网地址和外网端口的所述尝试次数为1;若第一次分配出现了五元组冲突时,则处理器403第二次为所述主机进行外网地址和外网端口分配,若在第二次为所述主机进行外网地址和外网端口分配之后,未出现五元组冲突时,则确定所述尝试次数为2,即,在尝试了K次为所述主机进行外网地址和外网端口分配之后,未出现五元组冲突时,则确定所述尝试次数为K,其中,K为不小于1的整数。
可选地,处理器403记录的所述尝试次数大于阈值时,还用于根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
其中,所述热点应用为第一时间间隔内访问量大于预设访问量的应用,其中,所述预设访问量根据所述第一时间间隔的时长来确定,所述第一时间间隔的时长例如是30min、50min、60min、120min等,例如在所述第一时间间隔的时长为60min时,所述预设访问量例如取大于等于10000的值,检测到一应用在60min的访问次数为15000次,若所述预设访问量为10000,由于15000>10000,则可以判定该应用为热点应用;若所述预设访问量为16000,由于15000<16000,则可以判定该应用不为热点应用。
可选地,处理器403,可以通过静态设定和动态设定这两种方式进行设置,在静态设定所述阈值时,所述阈值可以选取大于等于3的值,例如可以为3,4,5,8等值;在动态设定所述阈值时,若所述存储器中存储的多个所述尝试次数,则从多个所述尝试次数中确定最大尝试次数,基于所述最大尝试次数,设定所述阈值。
具体的,可以通过创建计算器来统计多个所述尝试次数,然后从统计的多个的所述尝试次数中确定最大尝试次数为M,其中,M为正整数,若所述M小于等于5时,则所述阈值的取值可以为M-1;若M大于5时,所述阈值的取值为M-3,或M-2,或M-1等值;当然所述阈值也可以取大于等于M/2,且不大于M的值。
可选地,所述流量统计表项还包含热度值,创建所述流量统计表项时所述热度值的初始值被设置为1,一个流量统计表项中的热度值可以用于表征在第二时间间隔内访问该流量统计表项的访问量,还可以用于表征在所述第二时间间隔内访问该流量统计表项的平均访问量,所述第二时间间隔例如5min、10min、20min、30min等值,其中,所述流量统计表项包括索引项和数据项,所述索引项包括协议号、服务器地址和服务器端口等目录项,所述数据项至少包括协议类型、热度值、流量、报文数、应用协议类型等目录项。
可选地,处理器403,还用于判断出所述报文不为所述会话首包时,根据所述报文中包含的目的地址、目的端口和协议号查找对应的流量统计表项,以及在查找到对应的流量统计表项时,以设定累加步长更新查找到的流量统计表项中的热度值。
可选地,处理器403,还用于在根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项时,创建与所述流量统计表项对应的定时器,以及在查找到对应的流量统计表项时,刷新查找到的所述流量统计表项对应的定时器,并判断所述定时器是否超时,若所述定时器超时,则删除所述流量统计表项。
可选地,处理器403,还用于在删除所述流量统计表项之前,确定所述流量统计表项中的热度值小于等于预设热度值。
可选地,处理器403,还用于在确定所述流量统计表项中的热度值大于预设热度值时,保留所述流量统计表项,设定所述定时器的设定时间并开始重新计时。
本发明实施例中,于本申请技术方案在接收内部网络中的主机发送的报文之后,若所述报文为所述会话首包,则为所述主机分配外网地址和外网端口,并记录为所述主机进行分配外网地址和外网端口的尝试次数,且当所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,由于在一时间间隔内存在有数量较多的主机访问同一个应用时,才会导致所述尝试次数的值增大,而在所述尝试次数大于所述阈值时,才创建流量统计表项,而所述尝试次数不大于所述阈值时,不会创建对应的流量统计表项,使得无需对所述尝试次数不大于所述阈值对应的报文的数据流量进行统计,从而使得统计的数据流量降低,从而降低了资源的开销,而且所述流量统计表项包含热点应用对应的服务器地址和服务器端口,使得通过统计所述流量统计表项就可以统计所述热度应用,能够降低资源开销的情况下实现快速识别和统计热点应用,使得工作效率得以提高。
另外,本发明能够应用在NAT网关设备上,利用NAPT分配端口和地址时五元组冲突的尝试机制,以此来创建流量统计表项进行热点应用识别,进而将热点应用统计功能与NAT功能结合在一起,能够快速识别网络出口的热点应用,提高网络运用的精细度,并有效的减少了资源投入。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (13)
1.一种流量统计方法,其特征在于,所述方法包括:
接收内部网络中的主机发送的报文;
判断所述报文是否为会话首包;
若所述报文为所述会话首包,则为所述主机分配外网地址和外网端口,并记录为所述主机进行分配外网地址和外网端口的尝试次数;
当所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
2.如权利要求1所述的方法,其特征在于,所述流量统计表项还包含热度值,创建所述流量统计表项时所述热度值的初始值被设置为1。
3.如权利要求2所述的方法,其特征在于,还包括:
若所述报文不为所述会话首包,则根据所述报文中包含的目的地址、目的端口和协议号查找对应的流量统计表项;
在查找到对应的流量统计表项时,以设定累加步长更新查找到的流量统计表项中的热度值。
4.如权利要求3所述的方法,其特征在于,在根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项时,所述方法还包括:
创建与所述流量统计表项对应的定时器;
在查找到对应的流量统计表项时,还包括:
刷新查找到的所述流量统计表项对应的定时器,并判断所述定时器是否超时;
若所述定时器超时,则删除所述流量统计表项。
5.如权利要求4所述的方法,其特征在于,所述删除所述流量统计表项之前,还包括:
确定所述流量统计表项中的热度值小于等于预设热度值。
6.如权利要求5所述的方法,其特征在于,还包括:
若确定所述流量统计表项中的热度值大于预设热度值,则保留所述流量统计表项,设定所述定时器的设定时间并开始重新计时。
7.如权利要求1~6任一项所述的方法,其特征在于,在记录有多个所述尝试次数时,所述阈值通过以下步骤进行设定:
从多个所述尝试次数中确定最大尝试次数;
基于所述最大尝试次数,设定所述阈值。
8.一种流量统计装置,其特征在于,所述装置包括:
接收单元,用于接收内部网络中的主机发送的报文;
判断单元,用于接收所述接收单元发送的所述报文,判断所述报文是否为会话首包;
分配单元,用于在所述判断单元判断所述报文为所述会话首包时,为所述主机分配外网地址和外网端口;
记录单元,用于在所述分配单元在为所述主机分配外网地址和外网端口时,记录为所述主机进行分配外网地址和外网端口的尝试次数;
表项创建单元,用于在所述记录单元记录的所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
9.如权利要求8所述的装置,其特征在于,所述装置还包括表项查找单元,用于在所述判断单元判断出所述报文不为所述会话首包时,根据所述报文中包含的目的地址、目的端口和协议号查找对应的流量统计表项;
所述装置还包括表项更新单元,用于在所述表项查找单元查找到对应的流量统计表项时,以设定累加步长更新查找到的流量统计表项中的热度值。
10.如权利要求9所述的装置,其特征在于,所述装置还包括定时器创建单元,用于在所述表项创建单元根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项时,创建与所述流量统计表项对应的定时器;
所述装置还包括定时器刷新单元,用于在所述表项查找单元查找到对应的流量统计表项时,刷新查找到的所述流量统计表项对应的定时器;
所述装置还包括表项删除单元,用于在所述定时器创建单元创建与所述流量统计表项对应的定时器之后,判断所述定时器是否超时,若所述定时器超时,则删除所述流量统计表项。
11.如权利要求10所述的装置,其特征在于,所述装置还包括热度值确定单元,用于在所述表项删除单元删除所述流量统计表项之前,确定所述流量统计表项中的热度值小于等于预设热度值。
12.如权利要求11所述的装置,其特征在于,所述装置还包括时间重设单元,用于在确定所述流量统计表项中的热度值大于预设热度值时,保留所述流量统计表项,设定所述定时器的设定时间并开始重新计时。
13.一种网络地址转换NAT网关设备,其特征在于,所述NAT网关设备包括:
存储器,用于存储程序代码;
接收器,用于接收内部网络中的主机发送的报文;
处理器,用于读取所述存储器中存储的程序代码,执行:
判断所述报文是否为会话首包,若所述报文为所述会话首包,则为所述主机分配外网地址和外网端口,并在所述存储器中记录为所述主机进行分配外网地址和外网端口的尝试次数,以及当所述尝试次数大于阈值时,根据所述报文中包含的目的地址、目的端口和协议号创建流量统计表项,所述流量流量统计表项包含热点应用对应的服务器地址和服务器端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310683855.4A CN104717102B (zh) | 2013-12-12 | 2013-12-12 | 流量统计方法、装置以及nat网关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310683855.4A CN104717102B (zh) | 2013-12-12 | 2013-12-12 | 流量统计方法、装置以及nat网关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104717102A true CN104717102A (zh) | 2015-06-17 |
CN104717102B CN104717102B (zh) | 2018-06-05 |
Family
ID=53416093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310683855.4A Active CN104717102B (zh) | 2013-12-12 | 2013-12-12 | 流量统计方法、装置以及nat网关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104717102B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100297A (zh) * | 2015-06-30 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种资源处理方法及装置 |
CN106789450A (zh) * | 2017-03-01 | 2017-05-31 | 杭州迪普科技股份有限公司 | 一种报文的特征统计方法及装置 |
CN108024291A (zh) * | 2016-11-01 | 2018-05-11 | 中兴通讯股份有限公司 | 一种移动网络中共享上网检测的方法及装置 |
CN109905486A (zh) * | 2019-03-18 | 2019-06-18 | 杭州迪普科技股份有限公司 | 一种应用程序识别展示方法和装置 |
CN114374667A (zh) * | 2021-12-28 | 2022-04-19 | 中国电信股份有限公司 | 一种分配nat ip的方法、装置及存储介质 |
CN114745169A (zh) * | 2022-04-06 | 2022-07-12 | 北京天融信网络安全技术有限公司 | 基于nat映射的多端口访问方法、装置、设备、介质和产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335770A (zh) * | 2008-08-06 | 2008-12-31 | 杭州华三通信技术有限公司 | 一种网络地址端口转换方法和装置 |
CN101431440A (zh) * | 2008-11-28 | 2009-05-13 | 杭州华三通信技术有限公司 | 一种流量监控方法和设备 |
CN101800707A (zh) * | 2010-04-22 | 2010-08-11 | 华为技术有限公司 | 建立流转发表项的方法及数据通信设备 |
US20110047256A1 (en) * | 2009-08-21 | 2011-02-24 | Babu Prakash | Port chunk allocation in network address translation |
EP2469945A1 (en) * | 2010-12-23 | 2012-06-27 | British Telecommunications public limited company | WLAN location services |
-
2013
- 2013-12-12 CN CN201310683855.4A patent/CN104717102B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335770A (zh) * | 2008-08-06 | 2008-12-31 | 杭州华三通信技术有限公司 | 一种网络地址端口转换方法和装置 |
CN101431440A (zh) * | 2008-11-28 | 2009-05-13 | 杭州华三通信技术有限公司 | 一种流量监控方法和设备 |
US20110047256A1 (en) * | 2009-08-21 | 2011-02-24 | Babu Prakash | Port chunk allocation in network address translation |
CN101800707A (zh) * | 2010-04-22 | 2010-08-11 | 华为技术有限公司 | 建立流转发表项的方法及数据通信设备 |
EP2469945A1 (en) * | 2010-12-23 | 2012-06-27 | British Telecommunications public limited company | WLAN location services |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100297A (zh) * | 2015-06-30 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种资源处理方法及装置 |
CN105100297B (zh) * | 2015-06-30 | 2019-01-22 | 新华三技术有限公司 | 一种资源处理方法及装置 |
CN108024291A (zh) * | 2016-11-01 | 2018-05-11 | 中兴通讯股份有限公司 | 一种移动网络中共享上网检测的方法及装置 |
CN108024291B (zh) * | 2016-11-01 | 2023-02-24 | 中兴通讯股份有限公司 | 一种移动网络中共享上网检测的方法及装置 |
CN106789450A (zh) * | 2017-03-01 | 2017-05-31 | 杭州迪普科技股份有限公司 | 一种报文的特征统计方法及装置 |
CN106789450B (zh) * | 2017-03-01 | 2019-12-06 | 杭州迪普科技股份有限公司 | 一种报文的特征统计方法及装置 |
CN109905486A (zh) * | 2019-03-18 | 2019-06-18 | 杭州迪普科技股份有限公司 | 一种应用程序识别展示方法和装置 |
CN109905486B (zh) * | 2019-03-18 | 2021-09-21 | 杭州迪普科技股份有限公司 | 一种应用程序识别展示方法和装置 |
CN114374667A (zh) * | 2021-12-28 | 2022-04-19 | 中国电信股份有限公司 | 一种分配nat ip的方法、装置及存储介质 |
CN114374667B (zh) * | 2021-12-28 | 2024-04-16 | 中国电信股份有限公司 | 一种分配nat ip的方法、装置及存储介质 |
CN114745169A (zh) * | 2022-04-06 | 2022-07-12 | 北京天融信网络安全技术有限公司 | 基于nat映射的多端口访问方法、装置、设备、介质和产品 |
Also Published As
Publication number | Publication date |
---|---|
CN104717102B (zh) | 2018-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11411877B2 (en) | System and method for tracking domain names for the purposes of network management | |
EP3496338B1 (en) | Method for identifying application information in network traffic, and apparatus | |
CN104717102A (zh) | 流量统计方法、装置以及nat网关设备 | |
US8953479B2 (en) | System and method for license enforcement for data center monitoring applications | |
CN104580192B (zh) | 应用程序的网络访问请求的处理方法和装置 | |
US20090154363A1 (en) | Method of resolving network address to host names in network flows for network device | |
US20070162968A1 (en) | Rule-based network address translation | |
CN108259425A (zh) | 攻击请求的确定方法、装置及服务器 | |
CN103581044A (zh) | 一种流量统计方法和装置 | |
CN110677405A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
WO2011060368A1 (en) | Method and apparatus for storing and indexing high-speed network traffic data | |
CN109639796A (zh) | 一种负载均衡实现方法、装置、设备及可读存储介质 | |
US10897483B2 (en) | Intrusion detection system for automated determination of IP addresses | |
CN110943883A (zh) | 网络流量统计方法、系统、网关及计算机可读存储介质 | |
CN103051544A (zh) | 实现IPv4私网接入IPv6网络的方法及接入设备 | |
CN108124021A (zh) | 网际协议ip地址获取、网站访问的方法、装置及系统 | |
US20140136647A1 (en) | Router and operating method thereof | |
KR20130069009A (ko) | Snmp 및 ipfix를 이용한 ccn 정보 생성 방법 및 그를 이용한 ccn 모니터링 방법 | |
JP2016510916A (ja) | 写真の集中ストレージ方法及び装置 | |
CN103685367A (zh) | 离线下载系统和方法 | |
CN114039770B (zh) | 访问控制方法、装置、存储介质及电子设备 | |
KR101139537B1 (ko) | 이동통신망의 스캐닝 트래픽 탐지방법 | |
US20240163213A1 (en) | Expanding connection tables in smart switches in sdn networks | |
Hernandez et al. | SFP: Statistical filtering policy for caching in content-centric networking | |
Qin et al. | Research of Key Technologies of Big Data Security based on Fog Computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |