CN109039811B - 用于网络性能监控的网络数据包包头压缩方法及装置 - Google Patents

用于网络性能监控的网络数据包包头压缩方法及装置 Download PDF

Info

Publication number
CN109039811B
CN109039811B CN201810797108.6A CN201810797108A CN109039811B CN 109039811 B CN109039811 B CN 109039811B CN 201810797108 A CN201810797108 A CN 201810797108A CN 109039811 B CN109039811 B CN 109039811B
Authority
CN
China
Prior art keywords
packet header
network data
data packet
physical address
current
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.)
Active
Application number
CN201810797108.6A
Other languages
English (en)
Other versions
CN109039811A (zh
Inventor
向阳
邱布衣
王凯
苑超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING YUNSHAN NETWORKS Inc
Original Assignee
BEIJING YUNSHAN NETWORKS Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING YUNSHAN NETWORKS Inc filed Critical BEIJING YUNSHAN NETWORKS Inc
Priority to CN201810797108.6A priority Critical patent/CN109039811B/zh
Publication of CN109039811A publication Critical patent/CN109039811A/zh
Application granted granted Critical
Publication of CN109039811B publication Critical patent/CN109039811B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种用于网络性能监控的网络数据包包头压缩方法及装置,包括:获取发送当前网络数据包的发送设备的位置信息;若判断获知所述位置信息指示所述发送设备位于网络中的接入位置,则基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩。本发明提供的用于网络性能监控的网络数据包包头压缩方法及装置,通过根据采集网络数据包的位置,基于网络数据包包头的物理地址或者IP地址的粒度进行压缩,实现了较高的压缩率;并减小了网络性能监控时,网络数据包包头的采集、传输和存储过程中带宽和存储空间消耗;并且降低了解压时的容错率。

Description

用于网络性能监控的网络数据包包头压缩方法及装置
技术领域
本发明涉及网络监控技术领域,尤其涉及一种用于网络性能监控的网络数据包包头压缩方法及装置。
背景技术
网络性能监控(Network Performance Monitor,NPM)需要对网络数据包包头进行分析,涉及到网络数据包包头的采集、传输和存储。在传输和存储阶段,如何高效的对网络数据包包头进行压缩是降低带宽消耗和减小存储空间的关键。
现有技术中,采用sFlow技术进行网络监测,sFlow技术在网络数据包包头的采集、传输和存储过程中并未对包头进行压缩,由于IP和TCP都能携带至多40字节的可选字段,因此使用sFlow技术进行流量采集时需要至少截取网络数据包的138字节,其中,以太头为14字节,802.1Q头为4字节,IP头为60字节,TCP头为60字节。类似的,利用pcap格式对包头进行存储也需要至少保存每个网络数据包的前138字节。然而实际上一个TCP包头最短可能只有54字节,其中,以太头为14字节,IP头为20字节,TCP头为20字节。另一方面,虽然有大量RFC文件提出了对TCP/IP包头进行压缩的方法,但他们均针对业务路径中的端到端通信。这些方案的技术特点是基于会话(具有相同五元组)进行压缩,可实现90%左右的压缩率。
但是,在网络性能监控的场景下,压缩发生在网络通信的旁路路径上,压缩和解压缩时维护活跃的会话需要消耗大量内存。另外,由于这种方案的压缩粒度过细(过于分散),压缩后的内容不适合分片传输和存储,因为分片内部的一段内容可能依赖于上一个分片才能进行解压,但这种依赖可能由于传输的丢包或老旧数据的清理而变得无效。因此,网络性能监控的场景下,为了降低带宽消耗和减小存储空间,急需发明一种适用于网络性能监控的网络数据包包头压缩方法。
发明内容
本发明的目的是提供一种用于网络性能监控的网络数据包包头压缩方法及装置,解决了现有技术中网络数据包包头的采集、传输和存储过程中带宽和存储空间消耗大的技术问题。
为了解决上述技术问题,一方面,本发明提供一种用于网络性能监控的网络数据包包头压缩方法,包括:
获取发送当前网络数据包的发送设备的位置信息;
若判断获知所述位置信息指示所述发送设备位于网络中的接入位置,则基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩。
另一方面,本发明提供一种用于网络性能监控的网络数据包包头压缩装置,其特征在于,包括:
获取模块,用于获取发送当前网络数据包的发送设备的位置信息;
压缩模块,用于若判断获知所述位置信息指示所述发送设备位于网络中的接入位置,则基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩。
再一方面,本发明提供一种用于网络性能监控的网络数据包包头压缩的电子设备,包括:
存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述的方法。
又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
本发明提供的用于网络性能监控的网络数据包包头压缩方法及装置,通过根据采集网络数据包的位置,基于网络数据包包头的物理地址或者IP地址的粒度进行压缩,实现了较高的压缩率;并减小了网络性能监控时,网络数据包包头的采集、传输和存储过程中带宽和存储空间消耗;并且降低了解压时的容错率。
附图说明
图1为依照本发明实施例的用于网络性能监控的网络数据包包头压缩方法示意图;
图2为依照本发明实施例的用于网络性能监控的网络数据包包头压缩装置示意图;
图3为本发明实施例提供的用于网络性能监控的网络数据包包头压缩的电子设备的结构示意图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为依照本发明实施例的用于网络性能监控的网络数据包包头压缩方法示意图,如图1所示,本发明实施例提供一种用于网络性能监控的网络数据包包头压缩方法,该方法包括:
步骤S101、获取发送当前网络数据包的发送设备的位置信息;
步骤S102、若判断获知所述位置信息指示所述发送设备位于网络中的接入位置,则基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩。
具体的,在网络性能监控的场景下,采集到的网络数据包包头的压缩发生在网络通信的旁路路径上,需要使用第三方设备对网络中的流量等网络性能进行监控,因此,抓取网络数据包的位置可以根据实际情况而定,而在处于网络中的不同位置的设备上抓取到的网络数据包包头的压缩方法,不尽相同。
所以,首先需要获取发送当前网络数据包的发送设备的位置信息,当前的网络数据包是从该发送设备上抓取的。
然后,对发送设备的位置信息进行解析,若判断获知该位置信息指示发送设备位于网络中的接入位置,则基于获取到的终端服务器物理地址列表,对当前网络数据包的包头进行压缩。获取终端服务器物理地址列表的方法可以是手动输入,也可以是通过API接口直接获取。
例如,对于在网络中的接入位置抓取到的网络数据包,以终端服务器的MAC地址为粒度进行压缩。具体步骤如下:
1、输入终端服务器MAC地址列表M;
2、对于M中的每一个MAC地址Mi,维护该MAC地址分别作为源和目的时的上一个网络数据包包头Si和Di,以及到目前为止的压缩包头字节数组CHi
3、处理采集到的每一个网络数据包,对于当前网络数据包包头H的处理流程如下:
3.1、对H的包头字段进行解析和抽取;
3.2、若H的源MAC地址在M中,设其为Mj,则将当前网络数据包包头和Sj进行比较,Sj为MAC地址Mj维护该MAC地址作为源MAC地址时的上一个网络数据包的包头;
3.3、若H的目的MAC在M中,设其为Mk,则将当前网络数据包包头和Dk进行比较,Dk为MAC地址Mk维护该MAC地址作为目的MAC地址时的上一个网络数据包的包头;
3.4、H和Sj/Dk的比较结果输出为一个字节流CH;
3.5、若CH和CHi的长度之和超过了缓冲区大小,则将CHi发送(对于包头采集)或落盘(对于包头存储),并将CHi置为空数组;
3.6、否则将CH拼接至CHi的末尾。
本发明实施例提供的用于网络性能监控的网络数据包包头压缩方法,通过根据采集网络数据包的位置,基于网络数据包包头的物理地址或者IP地址的粒度进行压缩,实现了较高的压缩率;并减小了网络性能监控时,网络数据包包头的采集、传输和存储过程中带宽和存储空间消耗;并且降低了解压时的容错率。
在上述实施例的基础上,进一步地,所述基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩,具体为:
获取所述终端服务器物理地址列表,所述终端服务器物理地址列表中包含若干个物理地址,每一物理地址分别对应一个第一类包头,一个第二类包头和一个当前压缩包头字节数组,所述第一类包头为获取到的上一个以对应的物理地址为源物理地址的网络数据包的包头,所述第二类包头为获取到的上一个以对应的物理地址为目的物理地址的网络数据包的包头;
若判断获知所述当前网络数据包的包头的源物理地址与所述终端服务器物理地址列表中的某一第一物理地址相同,则比较所述当前网络数据包的包头和所述第一物理地址对应的第一类包头,获取比较结果字节流,所述比较结果字节流中包含所述当前网络数据包的包头中与网络性能监控有关的字段,还包含所述当前网络数据包的包头中包含且所述第一物理地址对应的第一类包头中未包含的字段,还包含所述当前网络数据包与所述第一物理地址对应的第一类包头所属的网络数据包之间的时间差,以及用于解压的元数据;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和大于等于预设缓冲区的大小,则发送所述当前压缩包头字节数组中的数据或者存储所述当前压缩包头字节数组中的数据,并清空所述当前压缩包头字节数组;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和小于所述预设缓冲区的大小,则将所述比较结果字节流拼接到所述当前压缩包头字节数组的末尾。
具体的,获取终端服务器物理地址列表,终端服务器物理地址列表中包含若干个物理地址,每一物理地址分别对应一个第一类包头,一个第二类包头和一个当前压缩包头字节数组,所述第一类包头为获取到的上一个以对应的物理地址为源物理地址的网络数据包的包头,所述第二类包头为获取到的上一个以对应的物理地址为目的物理地址的网络数据包的包头。
例如,输入终端服务器MAC地址列表M;对于M中的每一个MAC地址Mi,维护该MAC地址分别作为源和目的时的上一个网络数据包包头Si和Di,以及到目前为止的压缩包头字节数组CHi
若判断获知当前网络数据包的包头的源物理地址与终端服务器物理地址列表中的某一第一物理地址相同,则比较当前网络数据包的包头和第一物理地址对应的第一类包头,获取比较结果字节流,比较结果字节流中包含当前网络数据包的包头中与网络性能监控有关的字段,还包含当前网络数据包的包头中包含且第一物理地址对应的第一类包头中未包含的字段,还包含当前网络数据包与第一物理地址对应的第一类包头所属的网络数据包之间的时间差,以及用于解压的元数据。
例如,对于当前网络数据包包头H,首先,对H的包头字段进行解析和抽取;若H的源MAC地址在M中,设其为Mj,则将当前网络数据包包头和Sj进行比较,Sj为MAC地址Mj维护该MAC地址作为源MAC地址时的上一个网络数据包的包头;H和Sj/Dk的比较结果输出为一个字节流CH。
在比较的过程中,具体步骤如下:
1、忽略包头中的固定值字段,包括IP Version、TCP Reserved,这些字段在解压时能直接恢复;
2、忽略包头中能通过计算得到的字段,包括IP Checksum、TCP Checksum、UDPChecksum、UDP Length,这些字段在解压缩以后能通过计算得到;
3、忽略网络性能监控不需要的字段,包括IP DSCP、IP ECN、IP Options、TCPUrgent Pointer,这些字段的采集和存储对于网络性能的监控没有价值;
4、对于包头中不足1字节的字段,包括IP IHL和TCP Data Offset,将其拼接为1个字节;
5、对于以太头、IP头中的协议类型字段,包括EtherType、Protocol,将其常见值使用1个字节的HeaderType表示,对于常见值以外的协议,通过原始的3字节EtherType和Protocol表示;
6、经过前5步处理之后,对于当前网络数据包和上一个相邻包头中的高度重复字段,例如Source Mac、Destination Mac、VLAN、Source IP、Destination IP、HeaderType、Source Port、Destination Port、IP IHL+TCP Data Offset、IP Fragment、IP TTL、TCPFlags、TCP Window Size,共31字节,每一个字段分别与Sj/Dk中的对应字段进行比较,仅输出变化的字段,忽略重复字段;
7、对于TCP Option字段,去掉其中的NOP和对于网络性能监控的无意义字段,仅输出MSS、Window Scale、Selective Ack Permitted、Selective Ack;
8、剩余的字段直接输出;
9、除此之外,还需输出当前网络数据包和上一个网络数据包的时差及其他用于解压的元数据Meta Data,共6字节。
若判断获知比较结果字节流与当前压缩包头字节数组的长度之和大于等于预设缓冲区的大小,则发送当前压缩包头字节数组中的数据或者存储当前压缩包头字节数组中的数据,并清空所述当前压缩包头字节数组。例如,若CH和CHi的长度之和超过了缓冲区大小,则将CHi发送(对于包头采集)或落盘(对于包头存储),并将CHi置为空数组。
若判断获知比较结果字节流与当前压缩包头字节数组的长度之和小于预设缓冲区的大小,则将比较结果字节流拼接到当前压缩包头字节数组的末尾。例如,若CH和CHi的长度之和小于缓冲区大小,则将CH拼接至CHi的末尾。
本发明实施例提供的用于网络性能监控的网络数据包包头压缩方法,通过根据采集网络数据包的位置,基于网络数据包包头的物理地址或者IP地址的粒度进行压缩,实现了较高的压缩率;并减小了网络性能监控时,网络数据包包头的采集、传输和存储过程中带宽和存储空间消耗;并且降低了解压时的容错率。
在以上各实施例的基础上,进一步地,所述基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩,具体为:
获取所述终端服务器物理地址列表,所述终端服务器物理地址列表中包含若干个物理地址,每一物理地址分别对应一个第一类包头,一个第二类包头和一个当前压缩包头字节数组,所述第一类包头为获取到的上一个以对应的物理地址为源物理地址的网络数据包的包头,所述第二类包头为获取到的上一个以对应的物理地址为目的物理地址的网络数据包的包头;
若判断获知所述当前网络数据包的包头的目的物理地址与所述终端服务器物理地址列表中的某一第二物理地址相同,则比较所述当前网络数据包的包头和所述第二物理地址对应的第二类包头,获取比较结果字节流,所述比较结果字节流中包含所述当前网络数据包的包头中与网络性能监控有关的字段,还包含所述当前网络数据包的包头中包含且所述第二物理地址对应的第二类包头中未包含的字段,还包含所述当前网络数据包与所述第二物理地址对应的第二类包头所属的网络数据包之间的时间差,以及用于解压的元数据;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和大于等于预设缓冲区的大小,则发送所述当前压缩包头字节数组中的数据或者存储所述当前压缩包头字节数组中的数据,并清空所述当前压缩包头字节数组;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和小于所述预设缓冲区的大小,则将所述比较结果字节流拼接到所述当前压缩包头字节数组的末尾。
具体的,与上述实施例对应的,若判断获知当前网络数据包的包头的目的物理地址与终端服务器物理地址列表中的某一第二物理地址相同,则比较当前网络数据包的包头和第二物理地址对应的第二类包头,获取比较结果字节流,比较结果字节流中包含当前网络数据包的包头中与网络性能监控有关的字段,还包含当前网络数据包的包头中包含且第二物理地址对应的第二类包头中未包含的字段,还包含当前网络数据包与第二物理地址对应的第二类包头所属的网络数据包之间的时间差,以及用于解压的元数据。例如,若H的目的MAC在M中,设其为Mk,则将当前网络数据包包头和Dk进行比较,Dk为MAC地址Mk维护该MAC地址作为目的MAC地址时的上一个网络数据包的包头;H和Sj/Dk的比较结果输出为一个字节流CH。
本发明实施例提供的用于网络性能监控的网络数据包包头压缩方法,通过根据采集网络数据包的位置,基于网络数据包包头的物理地址或者IP地址的粒度进行压缩,实现了较高的压缩率;并减小了网络性能监控时,网络数据包包头的采集、传输和存储过程中带宽和存储空间消耗;并且降低了解压时的容错率。
在以上各实施例的基础上,进一步地,所述若判断获知所述位置信息指示所述发送设备位于网络中的接入位置,则基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩之后,还包括:
若判断获知所述位置信息指示所述发送设备位于网络中的中间位置,则基于获取到的终端服务器IP地址列表,对所述当前网络数据包的包头进行压缩。
具体的,对于在网络中的中间位置(例如:路由器、三层防火墙)抓取到的网包,以终端服务器所在的VLAN和IP地址为粒度进行压缩:
1、输入终端服务器VLAN+IP地址列表M;
2、对于M中的每一个VLAN+IP对Mi,维护其中IP地址分别作为源和目的时的上一个网包包头Si和Di,以及到目前为止的压缩包头字节流CHi
3、处理采集到的每一个网包,对于当前网包包头H的处理流程如下:
3.1、对H的包头字段进行解析和抽取;
3.2、若H的源IP地址在M中,且在同一VLAN下,设其为Mj,则将当前网络数据包包头和Sj进行比较,Sj为IP地址Mj维护该IP地址作为源IP地址时的上一个网络数据包的包头;
3.3、若H的目的IP在M中,且在同一VLAN下,设其为Mk,则将当前网络数据包包头和Dk进行比较,Dk为IP地址Mk维护该IP地址作为目的IP地址时的上一个网络数据包的包头;
3.4、H和Sj/Dk的比较结果输出为一个字节流CH;
3.5、若CH和CHi的长度之和超过了缓冲区大小,则将CHi发送(对于包头采集)或落盘(对于包头存储),并将CHi置为空数组;
3.6、否则将CH拼接至CHi的末尾。
本发明实施例提供的用于网络性能监控的网络数据包包头压缩方法,通过根据采集网络数据包的位置,基于网络数据包包头的物理地址或者IP地址的粒度进行压缩,实现了较高的压缩率;并减小了网络性能监控时,网络数据包包头的采集、传输和存储过程中带宽和存储空间消耗;并且降低了解压时的容错率。
在以上各实施例的基础上,进一步地,所述基于获取到的终端服务器IP地址列表,对所述当前网络数据包的包头进行压缩,具体为:
获取所述终端服务器IP地址列表,所述终端服务器物理地址列表中包含若干个IP地址,每一IP地址分别对应一个第三类包头,一个第四类包头和一个当前压缩包头字节数组,所述第三类包头为获取到的上一个以对应的IP地址为源IP地址的网络数据包的包头,所述第四类包头为获取到的上一个以对应的IP地址为目的IP地址的网络数据包的包头;
若判断获知所述当前网络数据包的包头的源IP地址与所述终端服务器IP地址列表中的某一第一IP地址相同,则比较所述当前网络数据包的包头和所述第一IP地址对应的第三类包头,获取比较结果字节流,所述比较结果字节流中包含所述当前网络数据包的包头中与网络性能监控有关的字段,还包含所述当前网络数据包的包头中包含且所述第一IP地址对应的第三类包头中未包含的字段,还包含所述当前网络数据包与所述第一IP地址对应的第三类包头所属的网络数据包之间的时间差,以及用于解压的元数据;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和大于等于预设缓冲区的大小,则发送所述当前压缩包头字节数组中的数据或者存储所述当前压缩包头字节数组中的数据,并清空所述当前压缩包头字节数组;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和小于所述预设缓冲区的大小,则将所述比较结果字节流拼接到所述当前压缩包头字节数组的末尾。
具体的,获取终端服务器IP地址列表,终端服务器物理地址列表中包含若干个IP地址,每一IP地址分别对应一个第三类包头,一个第四类包头和一个当前压缩包头字节数组,第三类包头为获取到的上一个以对应的IP地址为源IP地址的网络数据包的包头,第四类包头为获取到的上一个以对应的IP地址为目的IP地址的网络数据包的包头。
例如,输入终端服务器VLAN+IP地址列表M;对于M中的每一个VLAN+IP对Mi,维护其中IP地址分别作为源和目的时的上一个网包包头Si和Di,以及到目前为止的压缩包头字节流CHi
若判断获知当前网络数据包的包头的源IP地址与终端服务器IP地址列表中的某一第一IP地址相同,则比较当前网络数据包的包头和第一IP地址对应的第三类包头,获取比较结果字节流,比较结果字节流中包含当前网络数据包的包头中与网络性能监控有关的字段,还包含当前网络数据包的包头中包含且第一IP地址对应的第三类包头中未包含的字段,还包含当前网络数据包与所述第一IP地址对应的第三类包头所属的网络数据包之间的时间差,以及用于解压的元数据。
例如,对于当前网络数据包包头H,首先,对H的包头字段进行解析和抽取;若H的源IP地址在M中,且在同一VLAN下,设其为Mj,则将当前网络数据包包头和Sj进行比较,Sj为IP地址Mj维护该IP地址作为源IP地址时的上一个网络数据包的包头;H和Sj/Dk的比较结果输出为一个字节流CH。
在比较的过程中,具体步骤如下:
1、忽略包头中的固定值字段,包括IP Version、TCP Reserved,这些字段在解压时能直接恢复;
2、忽略包头中能通过计算得到的字段,包括IP Checksum、TCP Checksum、UDPChecksum、UDP Length,这些字段在解压缩以后能通过计算得到;
3、忽略网络性能监控不需要的字段,包括IP DSCP、IP ECN、IP Options、TCPUrgent Pointer,这些字段的采集和存储对于网络性能的监控没有价值;
4、对于包头中不足1字节的字段,包括IP IHL和TCP Data Offset,将其拼接为1个字节;
5、对于以太头、IP头中的协议类型字段,包括EtherType、Protocol,将其常见值使用1个字节的HeaderType表示,对于常见值以外的协议,通过原始的3字节EtherType和Protocol表示;
6、经过前5步处理之后,对于当前网络数据包和上一个相邻包头中的高度重复字段,例如Source Mac、Destination Mac、VLAN、Source IP、Destination IP、HeaderType、Source Port、Destination Port、IP IHL+TCP Data Offset、IP Fragment、IP TTL、TCPFlags、TCP Window Size,共31字节,每一个字段分别与Sj/Dk中的对应字段进行比较,仅输出变化的字段,忽略重复字段;
7、对于TCP Option字段,去掉其中的NOP和对于网络性能监控的无意义字段,仅输出MSS、Window Scale、Selective Ack Permitted、Selective Ack;
8、剩余的字段直接输出;
9、除此之外,还需输出当前网络数据包和上一个网络数据包的时差及其他用于解压的元数据Meta Data,共6字节。
若判断获知比较结果字节流与当前压缩包头字节数组的长度之和大于等于预设缓冲区的大小,则发送当前压缩包头字节数组中的数据或者存储当前压缩包头字节数组中的数据,并清空所述当前压缩包头字节数组。例如,若CH和CHi的长度之和超过了缓冲区大小,则将CHi发送(对于包头采集)或落盘(对于包头存储),并将CHi置为空数组。
若判断获知比较结果字节流与当前压缩包头字节数组的长度之和小于预设缓冲区的大小,则将比较结果字节流拼接到当前压缩包头字节数组的末尾。例如,若CH和CHi的长度之和小于缓冲区大小,则将CH拼接至CHi的末尾。
本发明实施例提供的用于网络性能监控的网络数据包包头压缩方法,通过根据采集网络数据包的位置,基于网络数据包包头的物理地址或者IP地址的粒度进行压缩,实现了较高的压缩率;并减小了网络性能监控时,网络数据包包头的采集、传输和存储过程中带宽和存储空间消耗;并且降低了解压时的容错率。
在以上各实施例的基础上,进一步地,所述基于获取到的终端服务器IP地址列表,对所述当前网络数据包的包头进行压缩,具体为:
获取所述终端服务器IP地址列表,所述终端服务器物理地址列表中包含若干个IP地址,每一IP地址分别对应一个第三类包头,一个第四类包头和一个当前压缩包头字节数组,所述第三类包头为获取到的上一个以对应的IP地址为源IP地址的网络数据包的包头,所述第四类包头为获取到的上一个以对应的IP地址为目的IP地址的网络数据包的包头;
若判断获知所述当前网络数据包的包头的目的IP地址与所述终端服务器IP地址列表中的某一第二IP地址相同,则比较所述当前网络数据包的包头和所述第二IP地址对应的第四类包头,获取比较结果字节流,所述比较结果字节流中包含所述当前网络数据包的包头中与网络性能监控有关的字段,还包含所述当前网络数据包的包头中包含且所述第二IP地址对应的第四类包头中未包含的字段,还包含所述当前网络数据包与所述第二IP地址对应的第四类包头所属的网络数据包之间的时间差,以及用于解压的元数据;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和大于等于预设缓冲区的大小,则发送所述当前压缩包头字节数组中的数据或者存储所述当前压缩包头字节数组中的数据,并清空所述当前压缩包头字节数组;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和小于所述预设缓冲区的大小,则将所述比较结果字节流拼接到所述当前压缩包头字节数组的末尾。
具体的,与上述实施例对应的,若判断获知当前网络数据包的包头的目的IP地址与终端服务器IP地址列表中的某一第二IP地址相同,则比较当前网络数据包的包头和第二IP地址对应的第四类包头,获取比较结果字节流,比较结果字节流中包含当前网络数据包的包头中与网络性能监控有关的字段,还包含当前网络数据包的包头中包含且第二IP地址对应的第四类包头中未包含的字段,还包含当前网络数据包与第二IP地址对应的第四类包头所属的网络数据包之间的时间差,以及用于解压的元数据。例如,若H的目的IP在M中,且在同一VLAN下,设其为Mk,则将当前网络数据包包头和Dk进行比较,Dk为IP地址Mk维护该IP地址作为目的IP地址时的上一个网络数据包的包头;H和Sj/Dk的比较结果输出为一个字节流CH。
本发明实施例提供的用于网络性能监控的网络数据包包头压缩方法,通过根据采集网络数据包的位置,基于网络数据包包头的物理地址或者IP地址的粒度进行压缩,实现了较高的压缩率;并减小了网络性能监控时,网络数据包包头的采集、传输和存储过程中带宽和存储空间消耗;并且降低了解压时的容错率。
在以上各实施例的基础上,进一步地,位于网络中的接入位置的发送设备为物理接入交换机、虚拟化服务器上的虚拟交换机、虚拟化服务器上的网桥、服务器网卡或者网络地址转换设备。
具体的,对于在网络中的接入位置抓取到的网络数据包,位于网络中的接入位置的发送设备为物理接入交换机、虚拟化服务器上的虚拟交换机、虚拟化服务器上的网桥、服务器网卡或者网络地址转换设备。
本发明实施例提供的用于网络性能监控的网络数据包包头压缩方法,通过根据采集网络数据包的位置,基于网络数据包包头的物理地址或者IP地址的粒度进行压缩,实现了较高的压缩率;并减小了网络性能监控时,网络数据包包头的采集、传输和存储过程中带宽和存储空间消耗;并且降低了解压时的容错率。
使用本发明实施例所述方法实现包头压缩,在压缩率和内存消耗上较现有算法有显著优势。
一个压缩后的TCP包头,不含Option字段的最小长度为10字节,最大长度为41字节。相比sFlow/tcpdump的138字节分别降低了92.8%和70%。
内存消耗方面,由于仅维护了MAC或VLAN+IP列表双方向上一个包头中需要用于压缩的31个字节,总的内存消耗是固定的MAC(N(MAC),N(VLAN+IP))*2*31。相比基于会话的压缩算法,需要维护网络中所有活跃会话(五元组)的包头信息,其值远大于MAC(N(MAC),N(VLAN+IP))。
基于本发明实施例的方法实现的包头压缩,对数据中心实际流量进行压缩,平均每个包头压缩后的大小为17字节,相比sFlow/tcpdump的消耗降低了87.7%。压缩过程中的内存消耗不足1M字节。
图2为依照本发明实施例的用于网络性能监控的网络数据包包头压缩装置示意图,如图2所示,本发明实施例提供一种用于网络性能监控的网络数据包包头压缩装置,用于完成上述实施例中所述的方法,具体包括获取模块201和压缩模块202,其中,
获取模块201用于获取发送当前网络数据包的发送设备的位置信息;
压缩模块202用于若判断获知所述位置信息指示所述发送设备位于网络中的接入位置,则基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩。
本发明实施例提供一种用于网络性能监控的网络数据包包头压缩装置,用于完成上述实施例中所述的方法,通过本实施例提供的装置完成上述实施例中所述的方法的具体步骤与上述实施例相同,此处不再赘述。
本发明实施例提供的用于网络性能监控的网络数据包包头压缩装置,通过根据采集网络数据包的位置,基于网络数据包包头的物理地址或者IP地址的粒度进行压缩,实现了较高的压缩率;并减小了网络性能监控时,网络数据包包头的采集、传输和存储过程中带宽和存储空间消耗;并且降低了解压时的容错率。
图3为本发明实施例提供的用于网络性能监控的网络数据包包头压缩的电子设备的结构示意图,如图3所示,所述设备包括:处理器301、存储器302和总线303;
其中,处理器301和存储器302通过所述总线303完成相互间的通信;
处理器301用于调用存储器302中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:
获取发送当前网络数据包的发送设备的位置信息;
若判断获知所述位置信息指示所述发送设备位于网络中的接入位置,则基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
获取发送当前网络数据包的发送设备的位置信息;
若判断获知所述位置信息指示所述发送设备位于网络中的接入位置,则基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩。
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:
获取发送当前网络数据包的发送设备的位置信息;
若判断获知所述位置信息指示所述发送设备位于网络中的接入位置,则基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置及设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种用于网络性能监控的网络数据包包头压缩方法,其特征在于,包括:
获取发送当前网络数据包的发送设备的位置信息;
若判断获知所述位置信息指示所述发送设备位于网络中的接入位置,则基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩;
所述基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩,具体为:
获取所述终端服务器物理地址列表,所述终端服务器物理地址列表中包含若干个物理地址,每一物理地址分别对应一个第一类包头,一个第二类包头和一个当前压缩包头字节数组,所述第一类包头为获取到的上一个以对应的物理地址为源物理地址的网络数据包的包头,所述第二类包头为获取到的上一个以对应的物理地址为目的物理地址的网络数据包的包头;
若判断获知所述当前网络数据包的包头的源物理地址与所述终端服务器物理地址列表中的某一第一物理地址相同,则比较所述当前网络数据包的包头和所述第一物理地址对应的第一类包头,获取比较结果字节流,所述比较结果字节流中包含所述当前网络数据包的包头中与网络性能监控有关的字段,还包含所述当前网络数据包的包头中包含且所述第一物理地址对应的第一类包头中未包含的字段,还包含所述当前网络数据包与所述第一物理地址对应的第一类包头所属的网络数据包之间的时间差,以及用于解压的元数据;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和大于等于预设缓冲区的大小,则发送所述当前压缩包头字节数组中的数据或者存储所述当前压缩包头字节数组中的数据,并清空所述当前压缩包头字节数组;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和小于所述预设缓冲区的大小,则将所述比较结果字节流拼接到所述当前压缩包头字节数组的末尾。
2.根据权利要求1所述的方法,其特征在于,所述若判断获知所述位置信息指示所述发送设备位于网络中的接入位置,则基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩之后,还包括:
若判断获知所述位置信息指示所述发送设备位于网络中的中间位置,则基于获取到的终端服务器IP地址列表,对所述当前网络数据包的包头进行压缩。
3.根据权利要求1所述的方法,其特征在于,用如下步骤替换所述基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩的具体步骤:
获取所述终端服务器物理地址列表,所述终端服务器物理地址列表中包含若干个物理地址,每一物理地址分别对应一个第一类包头,一个第二类包头和一个当前压缩包头字节数组,所述第一类包头为获取到的上一个以对应的物理地址为源物理地址的网络数据包的包头,所述第二类包头为获取到的上一个以对应的物理地址为目的物理地址的网络数据包的包头;
若判断获知所述当前网络数据包的包头的目的物理地址与所述终端服务器物理地址列表中的某一第二物理地址相同,则比较所述当前网络数据包的包头和所述第二物理地址对应的第二类包头,获取比较结果字节流,所述比较结果字节流中包含所述当前网络数据包的包头中与网络性能监控有关的字段,还包含所述当前网络数据包的包头中包含且所述第二物理地址对应的第二类包头中未包含的字段,还包含所述当前网络数据包与所述第二物理地址对应的第二类包头所属的网络数据包之间的时间差,以及用于解压的元数据;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和大于等于预设缓冲区的大小,则发送所述当前压缩包头字节数组中的数据或者存储所述当前压缩包头字节数组中的数据,并清空所述当前压缩包头字节数组;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和小于所述预设缓冲区的大小,则将所述比较结果字节流拼接到所述当前压缩包头字节数组的末尾。
4.根据权利要求2所述的方法,其特征在于,所述基于获取到的终端服务器IP地址列表,对所述当前网络数据包的包头进行压缩,具体为:
获取所述终端服务器IP地址列表,所述终端服务器物理地址列表中包含若干个IP地址,每一IP地址分别对应一个第三类包头,一个第四类包头和一个当前压缩包头字节数组,所述第三类包头为获取到的上一个以对应的IP地址为源IP地址的网络数据包的包头,所述第四类包头为获取到的上一个以对应的IP地址为目的IP地址的网络数据包的包头;
若判断获知所述当前网络数据包的包头的源IP地址与所述终端服务器IP地址列表中的某一第一IP地址相同,则比较所述当前网络数据包的包头和所述第一IP地址对应的第三类包头,获取比较结果字节流,所述比较结果字节流中包含所述当前网络数据包的包头中与网络性能监控有关的字段,还包含所述当前网络数据包的包头中包含且所述第一IP地址对应的第三类包头中未包含的字段,还包含所述当前网络数据包与所述第一IP地址对应的第三类包头所属的网络数据包之间的时间差,以及用于解压的元数据;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和大于等于预设缓冲区的大小,则发送所述当前压缩包头字节数组中的数据或者存储所述当前压缩包头字节数组中的数据,并清空所述当前压缩包头字节数组;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和小于所述预设缓冲区的大小,则将所述比较结果字节流拼接到所述当前压缩包头字节数组的末尾。
5.根据权利要求2所述的方法,其特征在于,所述基于获取到的终端服务器IP地址列表,对所述当前网络数据包的包头进行压缩,具体为:
获取所述终端服务器IP地址列表,所述终端服务器物理地址列表中包含若干个IP地址,每一IP地址分别对应一个第三类包头,一个第四类包头和一个当前压缩包头字节数组,所述第三类包头为获取到的上一个以对应的IP地址为源IP地址的网络数据包的包头,所述第四类包头为获取到的上一个以对应的IP地址为目的IP地址的网络数据包的包头;
若判断获知所述当前网络数据包的包头的目的IP地址与所述终端服务器IP地址列表中的某一第二IP地址相同,则比较所述当前网络数据包的包头和所述第二IP地址对应的第四类包头,获取比较结果字节流,所述比较结果字节流中包含所述当前网络数据包的包头中与网络性能监控有关的字段,还包含所述当前网络数据包的包头中包含且所述第二IP地址对应的第四类包头中未包含的字段,还包含所述当前网络数据包与所述第二IP地址对应的第四类包头所属的网络数据包之间的时间差,以及用于解压的元数据;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和大于等于预设缓冲区的大小,则发送所述当前压缩包头字节数组中的数据或者存储所述当前压缩包头字节数组中的数据,并清空所述当前压缩包头字节数组;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和小于所述预设缓冲区的大小,则将所述比较结果字节流拼接到所述当前压缩包头字节数组的末尾。
6.根据权利要求1所述的方法,其特征在于,位于网络中的接入位置的发送设备为物理接入交换机、虚拟化服务器上的虚拟交换机、虚拟化服务器上的网桥、服务器网卡或者网络地址转换设备。
7.一种用于网络性能监控的网络数据包包头压缩装置,其特征在于,包括:
获取模块,用于获取发送当前网络数据包的发送设备的位置信息;
压缩模块,用于若判断获知所述位置信息指示所述发送设备位于网络中的接入位置,则基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩;
所述基于获取到的终端服务器物理地址列表,对所述当前网络数据包的包头进行压缩,具体为:
获取所述终端服务器物理地址列表,所述终端服务器物理地址列表中包含若干个物理地址,每一物理地址分别对应一个第一类包头,一个第二类包头和一个当前压缩包头字节数组,所述第一类包头为获取到的上一个以对应的物理地址为源物理地址的网络数据包的包头,所述第二类包头为获取到的上一个以对应的物理地址为目的物理地址的网络数据包的包头;
若判断获知所述当前网络数据包的包头的源物理地址与所述终端服务器物理地址列表中的某一第一物理地址相同,则比较所述当前网络数据包的包头和所述第一物理地址对应的第一类包头,获取比较结果字节流,所述比较结果字节流中包含所述当前网络数据包的包头中与网络性能监控有关的字段,还包含所述当前网络数据包的包头中包含且所述第一物理地址对应的第一类包头中未包含的字段,还包含所述当前网络数据包与所述第一物理地址对应的第一类包头所属的网络数据包之间的时间差,以及用于解压的元数据;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和大于等于预设缓冲区的大小,则发送所述当前压缩包头字节数组中的数据或者存储所述当前压缩包头字节数组中的数据,并清空所述当前压缩包头字节数组;
若判断获知所述比较结果字节流与所述当前压缩包头字节数组的长度之和小于所述预设缓冲区的大小,则将所述比较结果字节流拼接到所述当前压缩包头字节数组的末尾。
8.一种用于网络性能监控的网络数据包包头压缩的电子设备,其特征在于,包括:
存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至6任一所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一所述的方法。
CN201810797108.6A 2018-07-19 2018-07-19 用于网络性能监控的网络数据包包头压缩方法及装置 Active CN109039811B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810797108.6A CN109039811B (zh) 2018-07-19 2018-07-19 用于网络性能监控的网络数据包包头压缩方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810797108.6A CN109039811B (zh) 2018-07-19 2018-07-19 用于网络性能监控的网络数据包包头压缩方法及装置

Publications (2)

Publication Number Publication Date
CN109039811A CN109039811A (zh) 2018-12-18
CN109039811B true CN109039811B (zh) 2020-07-07

Family

ID=64644334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810797108.6A Active CN109039811B (zh) 2018-07-19 2018-07-19 用于网络性能监控的网络数据包包头压缩方法及装置

Country Status (1)

Country Link
CN (1) CN109039811B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111510419B (zh) * 2019-01-31 2021-03-30 华为技术有限公司 一种数据压缩的方法及基站
CN114070890B (zh) * 2021-09-29 2024-07-16 深圳市易聆科网络安全有限公司 一种文件压缩方法、系统、终端及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731878A (zh) * 2012-10-16 2014-04-16 意法半导体公司 用于无线网络通信的帧规范
CN105309004A (zh) * 2012-01-31 2016-02-03 马维尔国际贸易有限公司 远程无线局域网中的mac报头压缩

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9363175B2 (en) * 2011-12-16 2016-06-07 Stmicroelectronics, Inc. Sub-1GHz MAC frame header compression

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105309004A (zh) * 2012-01-31 2016-02-03 马维尔国际贸易有限公司 远程无线局域网中的mac报头压缩
CN103731878A (zh) * 2012-10-16 2014-04-16 意法半导体公司 用于无线网络通信的帧规范

Also Published As

Publication number Publication date
CN109039811A (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
US8149705B2 (en) Packet communications unit
JP5673805B2 (ja) ネットワーク装置、通信システム、異常トラヒックの検出方法およびプログラム
US11196649B2 (en) Processing local area network diagnostic data
EP3122012B1 (en) Data processing method and apparatus for openflow network
US20090296738A1 (en) Method and apparatus for frame relay
US11108801B2 (en) Low-complexity detection of potential network anomalies using intermediate-stage processing
CN109039811B (zh) 用于网络性能监控的网络数据包包头压缩方法及装置
CN111314179A (zh) 网络质量检测方法、装置、设备和存储介质
CN105392053A (zh) 一种实时接收和处理网络视频流的方法
CN112335203B (zh) 处理局域网诊断数据
EP2741449B1 (en) Processing of call data records
GB2575246A (en) Processing local area network diagnostic data
CN106230660B (zh) sFlow采样的方法及装置
US11979477B2 (en) Processing local area network diagnostic data
GB2587427A (en) Processing local area network diagnostic data
CN106470166A (zh) 一种数据通信报文的处理方法和装置
CN116319468B (zh) 网络遥测方法、装置、交换机、网络、电子设备和介质
CN103746930B (zh) 一种窄带串行链路tcp报文头部压缩的改进方法
CN115348337B (zh) 一种基于多协议的tcp数据包解析分析方法及装置
CN116436775A (zh) 一种数据包转发方法、装置、设备及存储介质
CN108234155B (zh) 数据包采集方法、装置和服务器
CN116032853A (zh) 流量控制方法、装置、电子设备和存储介质
CN116094950A (zh) 一种流量采集带宽的控制方法、装置及流量分析服务器
GB2575245A (en) Processing local area network diagnostic data
JPH11252111A (ja) トラヒック監視装置

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