专利名称:一种带有时间戳的网络监测数据包的方法及用途的制作方法
一种带有时间戳的网络监测数据包的方法及用途本发明涉及网络通信的监测技术领域,具体的说是一种带时间戳的网络监测数据包的数据结构或帧格式(Data Frame)定义的方法及用途。现在IT技术越来越多地依赖于网络对数据的传输。对各种网络上传输的数据进行抓取和分析的网络监测技术是现代网络必不可少的一部分。当需要将抓取数据包的时间戳与抓取到的数据包一起传输或呈现出来时,现有技术主要是通过读取时间信息模块,通过用户请求把时间戳与数据包相关联。国内专利03142734. 0公开了一种计算机网络端主机系统精确标记时间戳的方法,该方法在时间戳存取模块中设置了先进先出的队列顺序,在获得时间戳后根据用户请求发送或接受时间戳,该方法能够精确标记时间戳,但是无法事先进行筛选和保存,无法用于大量数据包的处理和传送,传送效率低。本发明的目的就是要解决现有技术的不足,提供一种带时间戳的网络监测数据包的数据结构或帧格式(Data Frame)定义方法及用途。为实现上述目的设计一种带时间戳的网络监测数据包的方法,包括服务器、交换器或路由器,数据采集设备,其特征在于该方法包括原始数据包获得和处理步骤,如
图1、图 4所示A、原始数据包的获得步骤a、在服务器和服务器连接的交换机或路由器间串联一个分路器TAP,分路器TAP 的分路连接数据采集设备,所述的数据采集设备与后续处理机连接或两者为同一机器;b、经过分路器TAP实时复制经过交换机或路由器发送或接收的各种数据包并发送到数据采集设备,数据采集设备采集到的数据包为原始数据包;B、原始数据包处理a、通过数据采集设备采集过滤出来所有需要的原始数据包,并且通过数据采集设备的操作系统、驱动程序或应用程序对原始数据包进行保存;b、根据需要的时间精确程度要求,选择相应时间戳的表达方式及相关表达的字节长度,将这个相应字节的时间戳增加到每一个原始数据包的前头或末尾;C、将完成的带时间戳的网络监测数据包发送到后续处理机上;d、后续处理机对接收到的复合网络监测数据包进行数据结构或帧格式DataFrame 定义,并从这些带时间戳的网络检测数据包中提取全部或部分数据信息。所述的数据结构或帧格式定义其具体步骤如下数据采集设备可以采用任何网络层协议、任何传输层协议、任何会话层协议、任何表述层协议、任何应用层协议、任何内存复制或共享、任何存储器的存储和读取或共享方式发送到后续处理机的应用软件中进行后续处理,如图2所示。该方法的原始数据包的获得步骤还可以是以下步骤在交换机上设置镜像端口连接数据采集设备,所述的数据采集设备与后续处理机连接或两者为同一机器;经过分路器 TAP实时复制经过交换机或路由器发送或接收的各种数据包并发送到数据采集设备,数据采集设备采集到的数据包为原始数据包。所述的服务器可用网络终端设备代替如图3所示。所述的数据采集设备与后续处理机连接或两者为同一机器。所述的操作系统是LINUX、WINDOWS或其他如实时操作系统的操作系统。所述方法的具体实现可以是通过C/C++语言,Java语言、OpenCL语言、FORTRAN语言、PERL语言或其他任何可实现的计算机语言的实现。所述的数据采集设备的硬件平台可以是基于CPU为核心构件的计算机、或FPGA为核心构件的硬件系统、或DSP为核心构件的硬件系统。所述的数据采集设备是C98Ipm0n或其他网络数据采集设备。该方法应用于被监测的网络可以是计算机局域网或以太网、WIFI无线网络或 WLAN或包括自组织WLAN MESH网络、第二代或2G GSM或2G CMDA移动通信网络,第三代或 3G移动通信网络、第四代或LTE移动通信网络、企业内部网络、EPON无源光网络中、GPON无源光网络、智能交换光网络或ASON网络、ZigBee无线物联网、RFID无线物联网、PCIe协议的计算机联网、基于网络存储系统协议的计算机存储联网、基于云计算技术联网的网络、智能电网通信网络及调度网络、基于卫星通信的网络、基于微波通信的网络、泛在网络。本发明同现有技术相比,能够在被监测的网络中数据流量很大的时候,对抓取到的数据包进行定义、筛选和保存,并对筛选后的数据包增加时间戳,时间戳和数据包合并在一起传输,使传输过程更加的高效简单;减少处理过程中数据包丢失的可能性,从而显著提供网络监测后续分析的准确性。图1是本发明通过分路器采集网络数据的设备连接示意图;图2是本发明通过交换机镜像端口采集数据包的设备连接示意图;图3是本发明通过网络终端设备采集数据包的设备连接示意图;图4是本发明的流程示意图;图5是抓取原始数据包时的时间戳表达式;图6是时间戳解码;图7是带有时间戳的网络数据包;图中1、服务器2、分路器TAP 3、IP交换器或路由器4、数据采集器5、后续处理机。结合附图对本发明做进一步说明,这种装置的制造技术对本专业的人来说是非常清楚的。1)网络数据包采集设备通过与被监测网络的一个或多个物理接口,实时地抓取被监测网络上的数据包(个数为W)。2)在网络数据包采集设备的操作系统,驱动程序或应用程序(以下简称程序)中, 通过事先设置的过滤规则,对这些数据包进行过滤;确定需要分析的数据包(个数为X的数据包,其数据包类型为数据包类型A);3)将这些数据包类型A的X个数数据包存放在这些程序中对应的缓存空间里。4)依据这个网络数据包采集设备输出接口的最大容许输出的数据帧或数据包的长度L,定义一种合并H个数据包类型A的数据包,到一个组成复合网络监测数据包的方案 (简称数据包BP,其数据包类型B,要求这H个被组合的数据包的长度LH总合小于长度L)。5)如果需要对采集到的一个长度为N字节的数据包(简称数据包P,其类型为数据包类型A)与采集这个数据包的时间关联时,依据测试对时间戳的精度要求不同,定义一个M个字节的时间戳的格式来表达、存储和传输这个时间戳(简称时间戳T)。6)将数据包P和其对应的时间戳T融合成一个N字节的数据包Pl (其类型为数据包类型C);具体做法是在数据包P中寻找不重要的M个字节,用这个抓包的时间戳T来替代 P中不重要的M个字节。这种方法是数据包本身含有时间戳信息,但是数据包的长度不变。7)依据这个网络数据包采集设备输出端口的最大容许输出的数据帧或数据包的长度L,合并多个数据包类型C的类似Pl的数据包,到一个带有时间戳的复合网络监测数据包(简称数据包DP,其数据包类型C,要求这H个被组合的数据包的长度总合小于长度L)。 每个带有时间戳的复合网络监测数据包,一次性单独传输出来。8)网络数据包采集设备一次性地将这个复合网络监测数据DP包传输到本机的应用程序或远端的后续处理机。在计算机局域网(LAN)或以太网络中应用实现的技术方案实施案例。优化方案如果在一项网络协议分析过程中,我们只需要分析TCP协议的数据包。上述的技术方案可以按照下列实施案例实现步骤一数据采集以太网的网络数据包采集设备可以通过与以太网交换机提供的镜像端口的连接来抓取流经这个以太网交换机的网络数据包。以太网网络数据包采集设备也可以通过以太网电分路器或光分路器的连接方式来抓取流经这个以太网交换机的网络数据包。这些以太网电分路器或光分路器是跨接在以太网交换机和其它网络设备的电缆线或光缆线上。通过这些分路器与以太网网络数据包采集设备的连接,可以将流经这些电路或光路的以太网数据包传输到采集器。例如抓取到如下的五个以太网网络数据包(W = 5)抓取到的数据包1有M个字节长度,其内容表达为16进制如下01 00 01 00 00 00 7a 62 20 00 01 00 08 00 45 00 00 28 01 0000 00 6d 06 e2 a4 de ba 32 4f 3a 29 Ie f9 17 70 05 99 7f eb00 00 00 00 00 00 50 02 40 00 68 c2 00 00它是一个TCP数据包。抓取这个数据包的时间戳是2011年1月5号15时11分 27. 312500000秒。这个时间戳可以表示成技术方案B中列举的结构。这个时间戳采用72位长度格式(即9个字节长)的表达形式如图5所示其二进位表达为OOOOO 11111011011 OOOl OOlOl OOlll OOlOll OllOll 0100111000 01111101000000000000十六进位表达07 DB 12 9C B6 D3 87 DO OO以下各个数据包的时间戳采用同此方法进行处理。解码出来的如图6:抓取到的数据包2有M个字节长度,其内容表达为16进制如下Ol OO Ol OO OO OO 7a 62 20 OO Ol OO 08 OO 45 OO OO 28 Ol OOOO OO 6f 06 3a d6 3d 93 79 45 3a 29 Ie f9 17 70 05 99 7f 55OO OO OO OO OO OO 50 02 40 OO c3 89 OO OO它是一个TCP数据包。抓取这个数据包的时间戳是日期为2011年1月5号,时 间为 15时 11 分 27. 31,984,375 秒(即 15:11:31,984,375)抓取到的数据包3有72个字节长度,其内容表达为16进制如下7a 62 20 OO Ol OO Ol OO Ol OO OO OO 08 OO 45 OO OO 3a 80 80OO OO 80 11 ad 55 3a 29 Ie f9 b4 a8 ff 12 c5 82 OO 35 OO 26d5 38 3a 98 Ol OO OO Ol OO OO OO OO OO OO 03 73 75 70 04 6c69 76 65 03 63 6f 6d OO OO Ol OO Ol它是一个DNS协议的数据包。抓取这个数据包的时间戳是日期为2011年1月5 号,时间为 15 时 11 分 27. 35,406,250 秒(即 15:11:35,406,250)抓取到的数据包4有132个字节长度,其内容表达为16进制如下Ol OO Ol OO OO OO 7a 62 20 OO Ol OO 08 OO 45 OO OO 76 85 8740 OO fa 11 ee 11 b4 a8 ff 12 3a 29 Ie f9 OO 35 c5 82 OO 62Ob 12 3a 98 81 80 OO Ol OO 02 OO OO OO OO 03 73 75 70 04 6c69 76 65 03 63 6f 6d OO OO Ol OO Ol cO Oc OO 05 OO Ol OO OOOb be OO 20 03 73 75 70 04 6c 69 76 65 03 63 6f 6d 06 67 6c62 64 6e 73 09 6d 69 63 72 6f 73 6f 66 74 cO 15 cO 2a OO OlOO Ol OO OO OO fc OO 04 41 36 a7 lb它是一个DNS协议的数据包。抓取这个数据包的时间戳是日期为2011年1月5号,时间为15时11分15:11:35,437,500秒(即 15:11:35,437, 500)抓取到的数据包5有62个字节长度,其内容表达为16进制如下7a 62 20 OO Ol OO Ol OO Ol OO OO OO 08 OO 45 OO OO 30 80 8140 OO 80 06 38 d3 3a 29 Ie f9 41 36 a7 lb 07 e6 OO 50 05 Od6d 45 OO OO OO OO 70 02 40 OO 87 37 OO OO 02 04 05 aO Ol Ol04 02它是一个TCP协议数据包。抓取这个数据包的时间戳是日期为2011年1月5号,时间为15时11分15:11:35,437,500秒(即15:11:35,437, 500)步骤二 数据过滤得到数据包类型A的数据包以下将过滤后需要后续分析的数据包定义为数据包类型A的数据包。由于我们只需要分析TCP协议的数据包,网络数据包采集设备采集到上述以太网网络数据包后,在操作系统(例如LINUX或WINDOWS操作系统)的驱动程序(也可以在内核程序或应用程序)中,就可以上述的数据包3和4过滤掉,就只剩下我们需要的三个数据包(X = 3)TCP数据包1 抓取到的数据包1有M个字节长度,其内容表达为16进制如下0100010000007a62200001000800450000280100
00006d06e2a4deba324f3a29Ief9177005997feb
0000000000005002400068c20000 TCP数据包2 抓取到的数据包2有M个字节长度,其内容表达为16进制如下0100010000007a62200001000800450000280100
00006f063ad63d9379453a29Ief9177005997f55
00000000000050024000c3890000 TCP数据包3 抓取到的数据包5有62个字节长度,其内容表达为16进制如下7a62200001000100010000000800450000308081
4000800638d33a29Ief94136a7lb07e6005005Od
6d45000000007002400087370000020405aO0101
0402步骤三数据包类型A的数据包的存放上述分析过滤主要是在网络数据包采集设备的操作系统,驱动程序或应用程序中实现;仅保存后续分析处理需要的这3个数据包以及相关的时间戳,存放在对应的这些程序中。步骤四封装成带有时间戳的网络监测数据包采用技术方案B,这个时间戳采用72位长度格式(即9个字节长),占据目的MAC 地址的低M位和全部源MAC地址的48位,目的MAC地址的高M位保持不变。封装成带有时间戳的网络监测数据包如图7所示DMAC 目的 MAC 地址;SMAC 源 MAC 地址封装后带有时间戳的网络监测数据包的长度和原来数据包的长度一样,保持不变。将第一个数据包0100010000007a622000010008004500 00 28 01 00
00006d06e2a4deba324f3a29Ief91、r 70 05 99 7f eb
0000000000005002400068c20000和时间戳07 DB 12 9C B6 D3 87 DO 00合并后的带有时间戳的网络监测数据包为01 00 01 XX XX XX XX XX XX XX XX XX 08 00 45 00 00 28
00 00 6d 06 e2 a4 de ba 32 4f 3a 29 Ie f9 17 70 05 99 7f eb00 00 00 00 00 00 50 02 40 00 68 c2 00 00上述带时间戳的网络监测数据包的具体内容用XX掩藏着了。依次可以将后续的数据包和对应的时间戳合并;步骤五网络数据包采集设备实时逐个传输带有时间戳的网络数据包网络数据包采集设备实时地逐个将这些带有时间戳的网络数据包传输到本机的应用程序或远端的后续处理机。步骤六后续处理机实时逐个接收带有时间戳的网络数据包后续处理机(本机的应用程序或远端的后续处理机)按照上述定义的带有时间戳的网络数据包结构分别读取出数据包和对应的时间戳。因为目的MAC地址和源MAC地址不重要,所以不再作分析。
权利要求
1.一种带有时间戳的网络监测数据包的方法,包括服务器、交换器或路由器,数据采集设备,其特征在于该方法包括原始数据包获得和处理步骤A、原始数据包的获得步骤a、在服务器和服务器连接的交换机或路由器间串联一个分路器TAP,分路器TAP的分路连接数据采集设备,所述的数据采集设备与后续处理机连接或两者为同一机器;b、经过分路器TAP实时复制经过交换机或路由器发送或接收的各种数据包并发送到数据采集设备,数据采集设备采集到的数据包为原始数据包;B、原始数据包处理a、通过数据采集设备采集过滤出来所有需要的原始数据包,并且通过数据采集设备的操作系统、驱动程序或应用程序对原始数据包进行保存;b、根据需要的时间精确程度要求,选择相应时间戳的表达方式及相关表达的字节长度,将这个相应字节的时间戳增加到每一个原始数据包的前头或末尾;c、将完成的带时间戳的网络监测数据包发送到后续处理机上;d、后续处理机对接收到的复合网络监测数据包进行数据结构或帧格式DataFrame定义,并从这些带时间戳的网络检测数据包中提取全部或部分数据信息。
2.如权利要求1所述的一种带有时间戳的网络监测数据包的方法,其特征在于所述的数据结构或帧格式定义其具体步骤如下数据采集设备可以采用任何网络层协议、任何传输层协议、任何会话层协议、任何表述层协议、任何应用层协议、任何内存复制或共享、任何存储器的存储和读取或共享方式发送到后续处理机的应用软件中进行后续处理。
3.如权利要求1所述的一种带有时间戳的网络监测数据包的方法,其特征在于该方法的原始数据包的获得步骤还可以是以下步骤在交换机上设置镜像端口连接数据采集设备,所述的数据采集设备与后续处理机连接或两者为同一机器;经过分路器TAP实时复制经过交换机或路由器发送或接收的各种数据包并发送到数据采集设备,数据采集设备采集到的数据包为原始数据包。
4.如权利要求1所述的一种带有时间戳的网络监测数据包的方法,其特征在于所述的服务器可用网络终端设备代替。
5.如权利要求1所述的一种带有时间戳的网络监测数据包的方法,其特征在于所述的数据采集设备与后续处理机连接或两者为同一机器。
6.如权利要求1所述的一种带有时间戳的网络监测数据包的方法,其特征在于所述的操作系统是LINUX、WINDOWS或其他如实时操作系统的操作系统。
7.如权利要求1所述的一种带有时间戳的网络监测数据包的方法,其特征在于所述方法的具体实现可以是通过C/C++语言,Java语言、OpenCL语言、FORTRAN语言、PERL语言或其他任何可实现的计算机语言的实现。
8.如权利要求1所述的一种带有时间戳的网络监测数据包的方法,其特征在于所述的数据采集设备的硬件平台可以是基于CPU为核心构件的计算机、或FPGA为核心构件的硬件系统、或DSP为核心构件的硬件系统。
9.如权利要求1所述的一种带有时间戳的网络监测数据包的方法,其特征在于所述的数据采集设备是C98IPmon。
10.权利要求1所述的一种带有时间戳的网络监测数据包的方法,其特征在于该方法应用于被监测的网络可以是计算机局域网或以太网、WIFI无线网络或WLAN或包括自组织 WLAN MESH网络、第二代或2G GSM或2G CMDA移动通信网络,第三代或3G移动通信网络、第四代或LTE移动通信网络、企业内部网络、EPON无源光网络中、GPON无源光网络、智能交换光网络或ASON网络、ZigBee无线物联网、RFID无线物联网、PCIe协议的计算机联网、基于网络存储系统协议的计算机存储联网、基于云计算技术联网的网络、智能电网通信网络及调度网络、基于卫星通信的网络、基于微波通信的网络、泛在网络。
全文摘要
本发明涉及网络监测数据包的帧格式定义和使用的技术领域,具体的说是一种带时间戳的网络监测数据包的方法和用途,在服务器和服务器连接的IP交换机或路由器间串联一个分路器TAP,分路器TAP的分路连接数据采集设备,数据采集设备与后续处理机连接;经过分路器TAP实时复制由服务器发送的各种数据包并发送到数据采集设备,数据采集设备对原始数据包进行帧格式的定义;通过数据采集设备采集所有需要类型的原始数据包,通过操作系统对原始数据包进行保存;根据需要的时间精确程度要求选择时间戳,将时间戳增加到每一个原始数据包的末尾,并且发送到后续处理机上进行后续处理,本发明提供了高效简单的抓取和保存数据包的方法,并且提高了数据包的时间精度。
文档编号H04L7/00GK102215102SQ20111015677
公开日2011年10月12日 申请日期2011年6月13日 优先权日2011年6月13日
发明者孙世敏 申请人:中亿企网实业发展(上海)有限公司