CN113783825A - 一种报文流量统计方法和装置 - Google Patents
一种报文流量统计方法和装置 Download PDFInfo
- Publication number
- CN113783825A CN113783825A CN202010969715.3A CN202010969715A CN113783825A CN 113783825 A CN113783825 A CN 113783825A CN 202010969715 A CN202010969715 A CN 202010969715A CN 113783825 A CN113783825 A CN 113783825A
- Authority
- CN
- China
- Prior art keywords
- message
- address
- port
- port number
- message flow
- 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
- 238000007619 statistical method Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000004458 analytical method Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 abstract description 13
- 230000008569 process Effects 0.000 abstract description 10
- 238000012544 monitoring process Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 12
- 230000003287 optical effect Effects 0.000 description 11
- 238000005070 sampling Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文流量统计方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:确定接收IP报文的端口,获取所述端口的第一端口号,确定与所述第一端口号对应的上报服务器;解析所述IP报文,创建数据包,将所述第一端口号和解析得到的源IP地址、目标IP地址、报文大小,存储至所述数据包的负载中;将所述数据包传输至所述上报服务器,以在所述上报服务器上对接收所述IP报文的端口进行报文流量统计。该实施方式p4交换机通过分光口连接核心交换机,仅获取每个报文中的有效字段并截断成64字节小包,压缩以达到dpdk服务器集群能够处理的规模;在dpdk服务器集群侧进行流量监控及IP微突发检测,不再受限于交换机设备是否支持sFlow功能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种报文流量统计方法和装置。
背景技术
相对于电信级网络,企业网络通常具有规模相对较小、组网灵活、易受攻击等特性,因此易出现流量异常,需要一种以设备接口为基本采样单元的流量监控技术,及时发现异常流量以及攻击源头,保证企业网络的正常稳定运行。在这样的背景下,sFlow(SampledFlow)应运而生,sFlow是一种基于报文采样的网络流量监控技术,基于接口的流量分析,为企业用户的日常巡检及维护提供了极大的方便。
在实现本发明的过程中,发明人发现现有技术至少存在如下问题:
sFlow本身是以采样为基础、属于秒级的网络流量监控,无法做到更细粒度的IP微突发检测,在还原时会与实际值存在偏差,导致无法准确反映现网的流量情况,且采样率设置会直接影响监控数据的准确性。
发明内容
有鉴于此,本发明实施例提供一种报文流量统计方法和装置,至少能够解决现有技术采样及还原时报文流量统计不准确的现象。
为实现上述目的,根据本发明实施例的一个方面,提供了一种报文流量统计方法,应用于第一交换机,所述第一交换机包括多个端口,通过端口接收第二交换机传输的IP报文,其特征在于,包括:
确定接收IP报文的端口,获取所述端口的第一端口号,确定与所述第一端口号对应的上报服务器;
解析所述IP报文,创建数据包,将所述第一端口号和解析得到的源IP地址、目标IP地址、报文大小,存储至所述数据包的负载中;
将所述数据包传输至所述上报服务器,以在所述上报服务器上对接收所述IP报文的端口进行报文流量统计。
可选的,所述确定接收IP报文的端口,包括:
接收所述第二交换机传输的报文,基于所述报文中的协议字段确定报文类别,若所述报文类别为IP类,则确定接收所述报文的第一端口号,否则剔除。
可选的,所述将所述第一端口号和解析得到的源IP地址、目标IP地址、报文大小,存储至所述数据包的负载中,包括:
获取所述第二交换机的IP地址、第二端口号和端口方向;其中,端口方向为接收和输出中的一种;
将所述源IP地址、所述目标IP地址、所述报文大小、所述第一端口号、所述第二交换机的IP地址、所述第二端口号和所述端口方向,存储至所述数据包的负载中。
可选的,在所述上报服务器上对接收所述IP报文的端口进行报文流量统计,包括:
基于所述第一交换机的IP地址、所述第一端口号、所述上报服务器的IP地址和第三端口号、所述数据包的协议类型,生成五元组信息;
对所述五元组信息进行哈希处理,得到哈希索引,查找所述上报服务器中与所述哈希索引对应的处理线程,以在所述处理线程上对接收所述IP报文的端口进行报文流量统计。
可选的,在所述处理线程上对接收所述IP报文的端口进行报文流量统计,包括:
确定与所述源IP地址对应的第一存储路径,在所述第一存储路径中,对与所述源IP地址和所述第一端口号对应的IP报文进行报文大小统计,得到第一报文流量值;以及
确定与所述目标IP地址对应的第二存储路径,在所述第二存储路径中,对与所述目标IP地址和所述第一端口号对应的IP报文进行报文大小统计,得到第二报文流量值。
可选的,所述确定与所述源IP地址对应的第一存储路径,包括:对所述源IP地址进行哈希处理,得到源IP哈希索引,从源IP哈希表中查询与所述源IP哈希索引对应的第一存储路径;
所述确定与所述目标IP地址对应的第二存储路径,包括:对所述目标IP地址进行哈希处理,得到目标IP哈希索引,从目标IP哈希表中查询与所述目标IP哈希索引对应的第二存储路径。
可选的,所述第一报文流量值包括报文流量峰值和报文流量均值;
所述对与所述源IP地址和所述第一端口号对应的IP报文进行报文大小统计,得到第一报文流量值,包括:
将预定时间段划分为多个子时间段,将所述报文大小累加至当前子时间段已累加的报文流量值中;
在所述预定时间段超时时,比对各子时间段累加的报文流量值,将最大的报文流量值作为所述预定时间段的报文流量峰值;以及
将所有子时间段累加的报文流量值之和与所述预定时间段的比值,作为所述预定时间段的报文流量均值。
可选的,还包括:
在所述当前子时间段超时时,获取在所述预定时间段内且位于所述当前子时间段之前,上一次确定的报文流量峰值;
将数值较大的所述上一次确定的报文流量峰值或当前子时间段内累加的报文流量值,作为本次确定的报文流量峰值。
为实现上述目的,根据本发明实施例的另一方面,提供了一种报文流量统计装置,应用于第一交换机,所述第一交换机包括多个端口,通过端口接收第二交换机传输的IP报文,其特征在于,包括:
确定模块,用于确定接收IP报文的端口,获取所述端口的第一端口号,确定与所述第一端口号对应的上报服务器;
存储模块,用于解析所述IP报文,创建数据包,将所述第一端口号和解析得到的源IP地址、目标IP地址、报文大小,存储至所述数据包的负载中;
上报模块,用于将所述数据包传输至所述上报服务器,以在所述上报服务器上对接收所述IP报文的端口进行报文流量统计。
可选的,所述确定模块,用于:接收所述第二交换机传输的报文,基于所述报文中的协议字段确定报文类别,若所述报文类别为IP类,则确定接收所述报文的第一端口号,否则剔除。
可选的,所述存储模块,用于:获取所述第二交换机的IP地址、第二端口号和端口方向;其中,端口方向为接收和输出中的一种;
将所述源IP地址、所述目标IP地址、所述报文大小、所述第一端口号、所述第二交换机的IP地址、所述第二端口号和所述端口方向,存储至所述数据包的负载中。
可选的,所述上报模块,用于:
基于所述第一交换机的IP地址、所述第一端口号、所述上报服务器的IP地址和第三端口号、所述数据包的协议类型,生成五元组信息;
对所述五元组信息进行哈希处理,得到哈希索引,查找所述上报服务器中与所述哈希索引对应的处理线程,以在所述处理线程上对接收所述IP报文的端口进行报文流量统计。
可选的,所述上报模块,用于:
确定与所述源IP地址对应的第一存储路径,在所述第一存储路径中,对与所述源IP地址和所述第一端口号对应的IP报文进行报文大小统计,得到第一报文流量值;以及
确定与所述目标IP地址对应的第二存储路径,在所述第二存储路径中,对与所述目标IP地址和所述第一端口号对应的IP报文进行报文大小统计,得到第二报文流量值。
可选的,所述上报模块,用于:
对所述源IP地址进行哈希处理,得到源IP哈希索引,从源IP哈希表中查询与所述源IP哈希索引对应的第一存储路径;以及
对所述目标IP地址进行哈希处理,得到目标IP哈希索引,从目标IP哈希表中查询与所述目标IP哈希索引对应的第二存储路径。
可选的,所述第一报文流量值包括报文流量峰值和报文流量均值;
所述上报模块,用于:
将预定时间段划分为多个子时间段,将所述报文大小累加至当前子时间段已累加的报文流量值中;
在所述预定时间段超时时,比对各子时间段累加的报文流量值,将最大的报文流量值作为所述预定时间段的报文流量峰值;以及
将所有子时间段累加的报文流量值之和与所述预定时间段的比值,作为所述预定时间段的报文流量均值。
可选的,所述上报模块,还用于:
在所述当前子时间段超时时,获取在所述预定时间段内且位于所述当前子时间段之前,上一次确定的报文流量峰值;
将数值较大的所述上一次确定的报文流量峰值或当前子时间段内累加的报文流量值,作为本次确定的报文流量峰值。
为实现上述目的,根据本发明实施例的再一方面,提供了一种报文流量统计电子设备。
本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的报文流量统计方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的报文流量统计方法。
根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:p4交换机通过分光口连接核心交换机,在接收Tbps级流量后获取每个报文中的有效字段,并截断成64字节小包,压缩以达到dpdk服务器集群能够处理的规模;dpdk服务器根据p4交换机组包上送的报文,统计每个源IP地址和目标IP地址的毫秒级流量峰值以及秒级内的流量均值,检测IP的微突发以及流量分布情况,不再受限于交换机设备是否支持sFlow功能;由于每个包都参与了统计,所以最终得到的监控统计数据无疑是最准确的。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种报文流量统计方法的主要流程示意图;
图2是IP微突发检测数据中心部署拓扑示意图;
图3是barefoot交换机原理的示意图;
图4是根据本发明实施例的一种可选的报文流量统计方法的流程示意图;
图5是为IP微突发检测p4和dpdk数据流向的流程示意图;
图6是根据本发明实施例的一种报文流量统计装置的主要模块示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的移动设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
参见图1,示出的是本发明实施例提供的一种报文流量统计方法的主要流程图,包括如下步骤:
S101:确定接收IP报文的端口,获取所述端口的第一端口号,确定与所述第一端口号对应的上报服务器;
S102:解析所述IP报文,创建数据包,将所述第一端口号和解析得到的源IP地址、目标IP地址、报文大小,存储至所述数据包的负载中;
S103:将所述数据包传输至所述上报服务器,以在所述上报服务器上对接收所述IP报文的端口进行报文流量统计。
上述实施方式中,对于步骤S101,第一交换机例如为p4交换机,用以接收作为核心交换机(即第二交换机)传输的报文;其中,p4为一种与协议无关的数据包处理编程语言。可以理解的是,本方案公开所述的第一交换机不限于此。
参见图2所示为IP微突发检测数据中心部署拓扑,p4交换机上设置有多个端口,分为分光口和出端口,分光口与核心交换机连接,而出端口则连接至server-dpdk(即上报服务器)集群;其中,dpdk为英特尔开源的数据平面开发套件,可以理解的是本方案公开的上报服务器不限于此。
p4交换机的参数可由工作人员自行配置。在一个实施例中,p4交换机设置为6.4T,考虑出端口的带宽限制,共计连接56个100G的分光口和4个100G的出端口。每台dpdk服务器设有一个25G网卡,使用两个口,总带宽可达到50G。
可编程的IP微突发检测方法采用可编程芯片来实现流量压缩,例如barefoot的tofino芯片,如图3所示为barefoot交换机原理。通过在白盒交换机硬件上,设计parser解析包头(即后续提及的ipv4、ipv6等),match-action的表结构(即后续表项),实现对接口配置表的匹配以及获取相关的action转发策略。
由于各种技术原因,truncate()原语在tofino上不可用,在p4交换机上实现数据包的截断比较困难,需要通过mirror_sessions来完成,在本方案中使用了ingress_mirror,在控制面下发配置时指定克隆的数据包修整到的长度,以此实现了截断的功能。
虽p4交换机可以从核心交换机中接收多种报文,但本方案中仅处理ip类报文,如ipv4、ipv6,因此在流量统计之前还需进行过滤处理,后续仅针对ip类报文进行IP微突发检测。
参见图5所示,在p4的ingress-parse中,解析报文以太层中的Protocol协议字段,该字段指明了报文类别,保留ip类报文,剔除非ip类报文;其中,Protocol字段长度为8位,给出了主机到主机层或传输层协议的“地址”或协议号,指定了数据包中信息的类型。
p4交换机中预先建立分光口与server-dpdk之间的对应关系,一个分光口仅对应于一个server-dpdk,但一个server-dpdk可以对应于一个或多个分光口,例如整个集群部署7台server-dpdk,每台处理8个分光口的流量。通过确定接收IP报文的分光口的第一端口号,可以确定与之对应的server-dpdk。
另外,p4交换机控制面下发conf_tbl表项,为每个分光口配置一条表项,用以标识相关转发信息以及对应的具体的一台server-dpdk的IP地址。参见图5所示501,matchcontf_tbl表项中记载了inqress_port,inqress_port中的src_mac对应于上报服务器的MAC地址,与多个分光口对应。
对于步骤S102,为减少后续传输信息的大小,p4交换机会从解析IP报文得到的信息中提取出主要信息,本方案中主要以其源IP地址、目标IP地址和IP报文大小为例进行说明。
p4交换机是以数据包形式传输数据的,因此需针对该报文创建数据包,以将上述源IP地址、目标IP地址和IP报文大小,存储至数据包的负载中。且考虑一个server-dpdk可能对应于多个分光口,因此还需将该分光口的第一端口号存储至数据包的负载中。
上述信息提取和数据包传输,实质为数据压缩。经实际环境测试验证,p4交换机对流量压缩前后的比例约为20:1,因此按照该压缩比例,单台server-dpdk的承载最大带宽为45G,实际带宽限额50G即可满足带宽需求。
参见图5示出了数据包形式502,本方案中的数据包为udp报文,长度统一,均为64字节,其中,SIP表示源IP地址、DIP表示目标IP地址、SPORT表示接收IP报文的分光口的第一端口号。除了上述信息外,还可以将核心交换机的IP地址、第二端口号以及端口方向(0/1,0表示出,1表示入),对应于图中sw_ip、sw_port以及sw_dir,同样记载至数据包的负载中,以表示IP报文的来源。
对于步骤S103,同样参见图5所示,若P4交换机中未配置出端口,所接收的报文ingress处理后续会drop;但若在ingress_mirror中配置了出端口并设置截断大小到64字节,在egress中对截断后的报文进行处理,获取相关的源IP地址、目标IP地址以及原报文总长度。
入向端口匹配conf_tbl表项,进行重新组包到64字节数据包上,之后通过确定的server-dpdk的IP地址,将数据包发送到server-dpdk处理。server-dpdk解析数据包,获取数据包中的源IP地址、目标IP地址和报文大小。具体统计流量方式参见后续图4所示描述,IP微突发检测实施手段本方案暂不涉及。
上述实施例所提供的方法,p4交换机通过分光口连接核心交换机,在接收Tbps级流量后获取每个报文中的有效字段,并截断成64字节小包,压缩以达到dpdk服务器集群能够处理的规模;在dpdk服务器集群侧进行流量监控及IP微突发检测,不再受限于交换机设备是否支持sFlow功能。
参见图4,示出了根据本发明实施例的一种可选的报文流量统计方法流程示意图,包括如下步骤:
S401:确定接收IP报文的端口,获取所述端口的第一端口号,确定与所述第一端口号对应的上报服务器;
S402:解析所述IP报文,创建数据包,将所述第一端口号和解析得到的源IP地址、目标IP地址、报文大小,存储至所述数据包的负载中;
S403:将所述数据包传输至所述上报服务器,基于所述第一交换机的IP地址、所述第一端口号、所述上报服务器的IP地址和第三端口号、所述数据包的协议类型,生成五元组信息;
S404:对所述五元组信息进行哈希处理,得到哈希索引,查找所述上报服务器中与所述哈希索引对应的处理线程;
S405:在所述处理线程上,确定与所述源IP地址对应的第一存储路径,在所述第一存储路径中,对与所述源IP地址和所述第一端口号对应的IP报文进行报文大小统计,得到第一报文流量值;
S406:确定与所述目标IP地址对应的第二存储路径,在所述第二存储路径中,对与所述目标IP地址和所述第一端口号对应的IP报文进行报文大小统计,得到第二报文流量值。
上述实施方式中,对于步骤S403和S404,一个server-dpdk可以对应于一个或多个分光口,因此,为区分不同分光口接收的报文,可以设置有多个处理线程进行分别处理。
设置五元组信息,包括p4交换机的IP地址、分光口的第一端口号、server-dpdk的IP地址和第三端口号、数据包的协议类型(此处为udp)。因此,针对同一server-dpdk,p4交换机上送的udp报文的五元组信息只有源端口是变化的,设置为ingress_port。
为提高查询效率,可以对该五元组信息进行哈希处理,从server-dpdk上查找与该哈希索引对应的处理线程。由于网卡的RSS特性,可以保证不同源端口接收的报文能够哈希到不同的处理线程上进行处理,同一个源端口接收的报文一定在同一个处理线程上处理,保证dpdk多核处理时的高效性。
对于步骤S405和S406,可以预先针对源IP地址和目标IP地址建立第一存储路径和第二存储路径,以分别进行报文流量统计。
进一步的,还可以预先分别为源IP地址和目标IP地址建立IP哈希索引表。server-dpdk服务器内存充裕,大页可以设置很大,每个IP地址的哈希表可以做到上千万的大小,使得哈希冲突概率可以降到很低,提高dpdk处理性能,实际环境测试验证冲突链最长为3。
以源IP地址为例,通过哈希处理得到源IP哈希索引,之后从源IP哈希表中查询与之相应的第一存储路径;对于目标IP地址同理,查找到第二存储路径。
同样以源IP地址报文流量统计为例,将10s拆分为多个毫秒级子时间段,首先判断当前秒级时间段是否超时(参见图5所示):
1)若超时,获取当前记录的毫秒级流量峰值,并计算10s内流量的均值;
2)若未超过,判断当前毫秒级时间段是否超时:
①若未达到,则将本次获取的报文大小累加至该毫秒级时间段已累计的报文流量中;
②若达到,则获取当前秒级时间段内记录的流量峰值(即上一次流量峰值),同时累加这一毫秒内获取的流量。比对当前流量峰值与当前毫秒级时间段累加的流量值,将取值较大的上一次流量峰值或当前流量峰值,作为当前秒级时间段内本次的流量峰值。
通过生产者消费者模式,生产一组IP微突发检测数据,至此清除所有流量统计数据,重新计时;消费者线程不断的获取每组IP微突发检测数据,通过组包将每组IP微突发检测数据按一定格式封装(参见图5所示503),上报给采集系统进行数据可视化处理。
上述实施例所提供的方法,dpdk服务器根据p4交换机组包上送的报文,统计每个源IP地址和目标IP地址的毫秒级流量峰值以及十秒内的流量均值,检测IP的微突发以及流量分布情况;由于每个包都参与了统计,所以最终得到的监控统计数据无疑是最准确的。
本发明实施例提供的方法,通过高效灵活的可编程交换机技术,对接收的IP报文截断到64字节,获取IP头部有效字段,重新组包填充所需字段,上送到dpdk服务器集群处理,由dpdk集群负责检测并统计毫秒级IP微突发情况。整个实施过程无需采样,因而计算结果与实际结果之间误差较小,不受CPU等因素的限制。
另外,现有sFlow采样频率如果设置过小,在端口流量过大时容易给CPU造成过大的服务压力,影响网络设备的正常运行。本方案针对该问题,也可以通过在p4交换机上设置采样比,压缩成单台dpdk服务器能够处理的规模,以将dpdk服务器集群替换为单台;p4交换机上设置的采样比不受CPU等因素的限制,因此可以调节的尽可能的小,而sFlow受资源限制采样比无法做到很小。
参见图6,示出了本发明实施例提供的一种报文流量统计装置700的主要模块示意图,应用于第一交换机,所述第一交换机包括多个端口,通过端口接收第二交换机传输的IP报文,其特征在于,包括:
确定模块601,用于确定接收IP报文的端口,获取所述端口的第一端口号,确定与所述第一端口号对应的上报服务器;
存储模块602,用于解析所述IP报文,创建数据包,将所述第一端口号和解析得到的源IP地址、目标IP地址、报文大小,存储至所述数据包的负载中;
上报模块603,用于将所述数据包传输至所述上报服务器,以在所述上报服务器上对接收所述IP报文的端口进行报文流量统计。
本发明实施装置中,所述确定模块601,用于:接收所述第二交换机传输的报文,基于所述报文中的协议字段确定报文类别,若所述报文类别为IP类,则确定接收所述报文的第一端口号,否则剔除。
本发明实施装置中,所述存储模块602,用于:
获取所述第二交换机的IP地址、第二端口号和端口方向;其中,端口方向为接收和输出中的一种;
将所述源IP地址、所述目标IP地址、所述报文大小、所述第一端口号、所述第二交换机的IP地址、所述第二端口号和所述端口方向,存储至所述数据包的负载中。
本发明实施装置中,所述上报模块603,用于:
基于所述第一交换机的IP地址、所述第一端口号、所述上报服务器的IP地址和第三端口号、所述数据包的协议类型,生成五元组信息;
对所述五元组信息进行哈希处理,得到哈希索引,查找所述上报服务器中与所述哈希索引对应的处理线程,以在所述处理线程上对接收所述IP报文的端口进行报文流量统计。
本发明实施装置中,所述上报模块603,用于:
确定与所述源IP地址对应的第一存储路径,在所述第一存储路径中,对与所述源IP地址和所述第一端口号对应的IP报文进行报文大小统计,得到第一报文流量值;以及
确定与所述目标IP地址对应的第二存储路径,在所述第二存储路径中,对与所述目标IP地址和所述第一端口号对应的IP报文进行报文大小统计,得到第二报文流量值。
本发明实施装置中,所述上报模块603,用于:
对所述源IP地址进行哈希处理,得到源IP哈希索引,从源IP哈希表中查询与所述源IP哈希索引对应的第一存储路径;以及
对所述目标IP地址进行哈希处理,得到目标IP哈希索引,从目标IP哈希表中查询与所述目标IP哈希索引对应的第二存储路径。
本发明实施装置中,所述第一报文流量值包括报文流量峰值和报文流量均值;
所述上报模块603,用于:
将预定时间段划分为多个子时间段,将所述报文大小累加至当前子时间段已累加的报文流量值中;
在所述预定时间段超时时,比对各子时间段累加的报文流量值,将最大的报文流量值作为所述预定时间段的报文流量峰值;以及
将所有子时间段累加的报文流量值之和与所述预定时间段的比值,作为所述预定时间段的报文流量均值。
本发明实施装置中,所述上报模块603,还用于:
在所述当前子时间段超时时,获取在所述预定时间段内且位于所述当前子时间段之前,上一次确定的报文流量峰值;
将数值较大的所述上一次确定的报文流量峰值或当前子时间段内累加的报文流量值,作为本次确定的报文流量峰值。
另外,在本发明实施例中所述装置的具体实施内容,在上面所述方法中已经详细说明了,故在此重复内容不再说明。
图7示出了可以应用本发明实施例的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705(仅仅是示例)。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,以供用户使用;还可以是工作人员用于配置conf_tbl的装置。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,服务器705可以是提供各种服务的服务器。
需要说明的是,本发明实施例所提供的方法一般由服务器705执行,相应地,装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分908加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括确定模块、存储模块、上报模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,确定模块还可以被描述为“端口确定模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
确定接收IP报文的端口,获取所述端口的第一端口号,确定与所述第一端口号对应的上报服务器;
解析所述IP报文,创建数据包,将所述第一端口号和解析得到的源IP地址、目标IP地址、报文大小,存储至所述数据包的负载中;
将所述数据包传输至所述上报服务器,以在所述上报服务器上对接收所述IP报文的端口进行报文流量统计。
根据本发明实施例的技术方案,通过高效灵活的可编程交换机技术,对接收的IP报文截断到64字节,获取IP头部有效字段,重新组包填充所需字段,上送到dpdk服务器集群处理,由dpdk集群负责检测并统计毫秒级IP微突发情况。整个实施过程无需采样,因而计算结果与实际结果之间误差较小,不受CPU等因素的限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (11)
1.一种报文流量统计方法,应用于第一交换机,所述第一交换机包括多个端口,通过端口接收第二交换机传输的IP报文,其特征在于,包括:
确定接收IP报文的端口,获取所述端口的第一端口号,确定与所述第一端口号对应的上报服务器;
解析所述IP报文,创建数据包,将所述第一端口号和解析得到的源IP地址、目标IP地址、报文大小,存储至所述数据包的负载中;
将所述数据包传输至所述上报服务器,以在所述上报服务器上对接收所述IP报文的端口进行报文流量统计。
2.根据权利要求1所述的方法,其特征在于,所述确定接收IP报文的端口,包括:
接收所述第二交换机传输的报文,基于所述报文中的协议字段确定报文类别,若所述报文类别为IP类,则确定接收所述报文的第一端口号,否则剔除。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一端口号和解析得到的源IP地址、目标IP地址、报文大小,存储至所述数据包的负载中,包括:
获取所述第二交换机的IP地址、第二端口号和端口方向;其中,端口方向为接收和输出中的一种;
将所述源IP地址、所述目标IP地址、所述报文大小、所述第一端口号、所述第二交换机的IP地址、所述第二端口号和所述端口方向,存储至所述数据包的负载中。
4.根据权利要求1所述的方法,其特征在于,在所述上报服务器上对接收所述IP报文的端口进行报文流量统计,包括:
基于所述第一交换机的IP地址、所述第一端口号、所述上报服务器的IP地址和第三端口号、所述数据包的协议类型,生成五元组信息;
对所述五元组信息进行哈希处理,得到哈希索引,查找所述上报服务器中与所述哈希索引对应的处理线程,以在所述处理线程上对接收所述IP报文的端口进行报文流量统计。
5.根据权利要求4所述的方法,其特征在于,在所述处理线程上对接收所述IP报文的端口进行报文流量统计,包括:
确定与所述源IP地址对应的第一存储路径,在所述第一存储路径中,对与所述源IP地址和所述第一端口号对应的IP报文进行报文大小统计,得到第一报文流量值;以及
确定与所述目标IP地址对应的第二存储路径,在所述第二存储路径中,对与所述目标IP地址和所述第一端口号对应的IP报文进行报文大小统计,得到第二报文流量值。
6.根据权利要求5所述的方法,其特征在于,所述确定与所述源IP地址对应的第一存储路径,包括:对所述源IP地址进行哈希处理,得到源IP哈希索引,从源IP哈希表中查询与所述源IP哈希索引对应的第一存储路径;
所述确定与所述目标IP地址对应的第二存储路径,包括:对所述目标IP地址进行哈希处理,得到目标IP哈希索引,从目标IP哈希表中查询与所述目标IP哈希索引对应的第二存储路径。
7.根据权利要求5所述的方法,其特征在于,所述第一报文流量值包括报文流量峰值和报文流量均值;
所述对与所述源IP地址和所述第一端口号对应的IP报文进行报文大小统计,得到第一报文流量值,包括:
将预定时间段划分为多个子时间段,将所述报文大小累加至当前子时间段已累加的报文流量值中;
在所述预定时间段超时时,比对各子时间段累加的报文流量值,将最大的报文流量值作为所述预定时间段的报文流量峰值;以及
将所有子时间段累加的报文流量值之和与所述预定时间段的比值,作为所述预定时间段的报文流量均值。
8.根据权利要求7所述的方法,其特征在于,还包括:
在所述当前子时间段超时时,获取在所述预定时间段内且位于所述当前子时间段之前,上一次确定的报文流量峰值;
将数值较大的所述上一次确定的报文流量峰值或当前子时间段内累加的报文流量值,作为本次确定的报文流量峰值。
9.一种报文流量统计装置,应用于第一交换机,所述第一交换机包括多个端口,通过端口接收第二交换机传输的IP报文,其特征在于,包括:
确定模块,用于确定接收IP报文的端口,获取所述端口的第一端口号,确定与所述第一端口号对应的上报服务器;
存储模块,用于解析所述IP报文,创建数据包,将所述第一端口号和解析得到的源IP地址、目标IP地址、报文大小,存储至所述数据包的负载中;
上报模块,用于将所述数据包传输至所述上报服务器,以在所述上报服务器上对接收所述IP报文的端口进行报文流量统计。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010969715.3A CN113783825B (zh) | 2020-09-15 | 2020-09-15 | 一种报文流量统计方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010969715.3A CN113783825B (zh) | 2020-09-15 | 2020-09-15 | 一种报文流量统计方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113783825A true CN113783825A (zh) | 2021-12-10 |
CN113783825B CN113783825B (zh) | 2023-12-05 |
Family
ID=78835007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010969715.3A Active CN113783825B (zh) | 2020-09-15 | 2020-09-15 | 一种报文流量统计方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113783825B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422413A (zh) * | 2021-12-15 | 2022-04-29 | 清华大学 | 带宽高效的微突发测量系统和方法 |
CN116192805A (zh) * | 2023-01-13 | 2023-05-30 | 北京信而泰科技股份有限公司 | 一种适用于网络测试仪的动态ip分发方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549496A (zh) * | 2003-05-07 | 2004-11-24 | 华为技术有限公司 | 一种网际协议报文的统计方法 |
CN101005381A (zh) * | 2006-01-17 | 2007-07-25 | 华为技术有限公司 | 一种在终端上实现的基于用户业务的流量统计系统与方法 |
CN102916896A (zh) * | 2011-08-01 | 2013-02-06 | 赛尔网络有限公司 | 多路端口镜像混合数据流分流方法及设备 |
CN106452868A (zh) * | 2016-10-12 | 2017-02-22 | 中国电子科技集团公司第三十研究所 | 一种支持多维度聚合分类的网络流量统计实现方法 |
CN110719215A (zh) * | 2019-10-21 | 2020-01-21 | 北京百度网讯科技有限公司 | 虚拟网络的流信息采集方法及装置 |
-
2020
- 2020-09-15 CN CN202010969715.3A patent/CN113783825B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549496A (zh) * | 2003-05-07 | 2004-11-24 | 华为技术有限公司 | 一种网际协议报文的统计方法 |
CN101005381A (zh) * | 2006-01-17 | 2007-07-25 | 华为技术有限公司 | 一种在终端上实现的基于用户业务的流量统计系统与方法 |
CN102916896A (zh) * | 2011-08-01 | 2013-02-06 | 赛尔网络有限公司 | 多路端口镜像混合数据流分流方法及设备 |
CN106452868A (zh) * | 2016-10-12 | 2017-02-22 | 中国电子科技集团公司第三十研究所 | 一种支持多维度聚合分类的网络流量统计实现方法 |
CN110719215A (zh) * | 2019-10-21 | 2020-01-21 | 北京百度网讯科技有限公司 | 虚拟网络的流信息采集方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422413A (zh) * | 2021-12-15 | 2022-04-29 | 清华大学 | 带宽高效的微突发测量系统和方法 |
CN114422413B (zh) * | 2021-12-15 | 2024-04-26 | 清华大学 | 带宽高效的微突发测量系统和方法 |
CN116192805A (zh) * | 2023-01-13 | 2023-05-30 | 北京信而泰科技股份有限公司 | 一种适用于网络测试仪的动态ip分发方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113783825B (zh) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE49126E1 (en) | Real-time adaptive processing of network data packets for analysis | |
CN106815112B (zh) | 一种基于深度包检测的海量数据监控系统及方法 | |
US6839751B1 (en) | Re-using information from data transactions for maintaining statistics in network monitoring | |
Inacio et al. | {YAF}: Yet another flowmeter | |
US10003614B2 (en) | Method, device, and storage medium for deep packet inspection control | |
US20170171050A1 (en) | A system and method for integrating legacy flow-monitoring systems with sdn networks | |
US11336545B2 (en) | Network device measurements employing white boxes | |
CN111769998A (zh) | 一种网络时延状态的探测方法及装置 | |
CN113783825B (zh) | 一种报文流量统计方法和装置 | |
US20180309647A1 (en) | Length Control For Packet Header Sampling | |
CN112350854A (zh) | 一种流量故障定位方法、装置、设备及存储介质 | |
RU2668394C2 (ru) | Способ и система для сбора пакетов, сетевое устройство и центр управления сетью | |
CN112335203B (zh) | 处理局域网诊断数据 | |
US9356876B1 (en) | System and method for classifying and managing applications over compressed or encrypted traffic | |
CN113328956B (zh) | 一种报文处理方法及装置 | |
CN112436951A (zh) | 一种预知流量路径的方法和装置 | |
CN115277504A (zh) | 一种网络流量监控方法、装置和系统 | |
GB2575246A (en) | Processing local area network diagnostic data | |
CN111800311B (zh) | 分散计算状态实时感知方法 | |
CN116319468B (zh) | 网络遥测方法、装置、交换机、网络、电子设备和介质 | |
CN116319816A (zh) | 一种视频监控联网信令分片传输方法及装置 | |
CN116248438A (zh) | 信息的传输方法、装置、存储介质以及电子设备 | |
CN118573734A (zh) | 一种算力网络的业务处理方法、装置、设备及介质 | |
CN115314409A (zh) | 网络状态信息获取方法及系统 | |
CN118158169A (zh) | 数据采集方法、网络设备、服务器、电子设备、介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |