CN106027414A - 一种面向hdfs的网络报文并行读取方法 - Google Patents

一种面向hdfs的网络报文并行读取方法 Download PDF

Info

Publication number
CN106027414A
CN106027414A CN201610353612.8A CN201610353612A CN106027414A CN 106027414 A CN106027414 A CN 106027414A CN 201610353612 A CN201610353612 A CN 201610353612A CN 106027414 A CN106027414 A CN 106027414A
Authority
CN
China
Prior art keywords
message
pcap
hdfs
byte
block
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.)
Pending
Application number
CN201610353612.8A
Other languages
English (en)
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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN201610353612.8A priority Critical patent/CN106027414A/zh
Publication of CN106027414A publication Critical patent/CN106027414A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

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

Abstract

本发明提供一种面向HDFS的网络报文并行读取方法,包括网络数据捕获与pcap报文解析两个阶段。本方法依托Hadoop平台的分布式框架MapReduce与分布式文件系统HDFS,将捕获的网络数据包写入HDFS,并通过本发明实现的二进制pcap流解析方法将pcap报文并行的解析出来,形成key‑value对然后交由MapReduce框架进行分析处理。通过本发明中的方法大大提高了HDFS下pcap格式文件的并行读取能力,进而提高了后续网络数据包的并行分析与处理效率。

Description

一种面向HDFS的网络报文并行读取方法
技术领域
本发明涉及互联网技术领域,具体而言涉及一种面向HDFS的网络报文并行读取方法。
背景技术
随着互联网信息交换的爆发式增长以及网络设备性能的大幅提升,网络设备之间的流量管理与分析工作正面临着巨大挑战。
传统的网络流量管理与分析软件都是在单台服务器上通过部署网络管理软件进行分析监控的,例如:Snort、CiscoNetFlow等商业软件。移动互联网的到来,使互联网信息交换呈爆发式增长,动辄上PB级别的网络流量。管理和分析如此庞大的网络数据集需要巨大的存储空间与高性能的计算能力,而传统网络管理软件并不适合处理大规模的高速网络数据,再加上单一服务器上有限的计算与存储资源,传统运行在单一服务器上的网络管理软件已经无法满足对海量网络数据包的快速分析与处理的需求。
HDFS是一种分布式文件系统,大文件被分割成若干固定大小的block存放于分布式集群当中,网络流量数据一般以二进制的pcap格式进行存储,每个pcap报文由16字节pcap报文头(参加附图1:依次为4字节秒级时间戳、4字节微秒级时间戳、4字节捕获报文长度、4字节原始报文长度)和若干字节报文内容组成。由于pcap报文之间没有任何边界分隔符,一个pcap报文完全有可能被分割到两个block分别存储,这就导致无法知道每个block前多少字节是从上一个block中分割过来的,只能通过有序的方式来串行读取,否则Map操作无法并行的读取到正确的pcap报文,这样的读取效率是非常低下的。
发明内容
本发明目的在于提供一种面向HDFS的网络报文并行读取方法,解决了海量网络数据包的分布式并行处理问题。
为达成上述目的,本发明提出一种面向HDFS的网络报文并行读取方法,包括下列步骤:
1)网络数据捕获阶段
1a)pcap报文采集器从交换机或路由设备实时捕获网络数据包;
1b)通过HDFS流写入模块将数据包以二进制pcap格式写入HDFS;
1c)分割容量V大于HDFS默认block(64MB)的文件,使大文件以V/64MB或者V/64MB+1个数据块(block)存储于分布式文件系统当中;
2)pcap报文解析阶段:
2a)通过给定规则探测出每个block中首个pcap报文的起始偏移量;
2b)跳过起始位置之前的所有字节;
2c)依次解析block中所有的pcap报文;
2d)将每次解析的pcap报文结果输入Map操作;
2e)结束。
本发明的有益效果:本发明采用给定规则匹配方式,准确的定位到每个block中起始pcap报文的偏移量,从而很好的解决了存储在HDFS分布式文件系统中的pcap数据包文件难以并行化正确读取的问题,为后续基于MapReduce框架的海量数据分析过程提供了原始数据输入,该输入同样也适用于其他基于HDFS的分布式数据处理框架,例如:Storm、Spark等,很好的解决了海量网络数据包的分布式并行处理问题。
附图说明
附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例,其中:
图1是pcap报文格式以及其在HDFS中的存储情况;
图2为本发明的面向HDFS的网络报文并行读取方法的方法流程图;
图3为图2中探测每个block中首个pcap报文的起始偏移量的方法流程图。
具体实施方式
为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。
如图1中pcap报文结构可知,pcap报文头的第1-8字节为时间戳timestamp1,9-12字节为捕获报文长度caplen1,13-16字节为原始报文长度wiredlen1,根据caplen1可以得出下一个连续pcap报文的起始偏移量,进而得到下一个连续pcap报文的时间戳timestamp2,捕获报文长度caplen2以及原始报文长度wiredlen2。
图2为本发明的面向HDFS的网络报文并行读取方法的方法流程图。如图2所示,包括下列步骤:
1)网络数据捕获阶段
1a)pcap报文采集器从交换机或路由设备实时捕获网络数据包;
1b)通过HDFS流写入模块将数据包以二进制pcap格式写入HDFS;
1c)分割容量V大于HDFS默认block(64MB)的文件,使大文件以V/64MB或者V/64MB+1个数据块(block)存储于分布式文件系统当中;
2)pcap报文解析阶段:
2a)通过给定规则探测出每个block中首个pcap报文的起始偏移量;
2b)跳过起始位置之前的所有字节;
2c)依次解析block中所有的pcap报文;
2d)将每次解析的pcap报文结果输入Map操作;
2e)结束。
图3为图2中探测每个block中首个pcap报文的起始偏移量的方法流程图。具体说明如下:
步骤0为本发明的起始状态;
步骤1定位到下一个字节偏移量的位置,初始时偏移量地址为block首字节地址;
步骤2读取偏移量位置后的连续16字节数据,作为假定的pcap报文头;
步骤3将1-8字节的二进制数据转换为时间戳格式,供后续进行比较;
步骤4将步骤3中得到的时间戳与捕获开始时的系统时间t1以及当前系统时间t2进行比较,参照附图2规则1。满足则继续下一步,不满足则返回步骤1;
步骤5将9-12字节的二进制数据转换为捕获报文长度,供后续比较;
步骤6将步骤5中得到的捕获报文长与最大pcap报文长进行比较,参照附图2规则2。满足则继续下一步,不满足则返回步骤1;
步骤7将13-16字节的二进制数据转换为原始报文长度,供后续比较;
步骤8将步骤7中得到的原始报文长与最大pcap报文长进行比较,参照附图2规则3。满足则继续下一步,不满足则返回步骤1;
步骤9用步骤7中得到的原始报文长减去步骤5中得到的捕获报文长,得到二者差值,供后续比较;
步骤10将步骤9中得到的差值与最大pcap报文长和0进行比较,参照附图2规则4。满足则继续下一步,不满足则返回步骤1;
步骤11根据步骤5中得到的捕获报文长,确定下一个连续报文的起始偏移位置;
步骤12是根据新的偏移位置重复步骤2至步骤10;
步骤13是判断步骤12中的所有规则匹配是否都满足,若所有规则都满足,则进行下一步骤,否则返回步骤1;
步骤14是用步骤12中得到的第二个报文时间戳减去步骤3中得到的首个报文时间戳,得到二者差值,供后续比较;
步骤15是将步骤14中得到的差值与系统预设的两个连续报文的捕获时间差阈值和0进行比较,参照附图2规则5。若满足则继续下一步,否则返回步骤1;
步骤16即得到了该block的首个pcap报文起始偏移位置;
步骤17是结束步骤。
综上所述,本方法依托Hadoop平台的分布式框架MapReduce与分布式文件系统HDFS,将捕获的网络数据包写入HDFS,并通过本发明实现的二进制pcap流解析方法将pcap报文并行的解析出来,形成key-value对然后交由MapReduce框架进行分析处理。通过本发明中的方法大大提高了HDFS下pcap格式文件的并行读取能力,进而提高了后续网络数据包的并行分析与处理效率。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。

Claims (7)

1.一种面向HDFS的网络报文并行读取方法,其特征在于,包括网络数据捕获与pcap报文解析两个阶段,具体包括下列步骤:
1)网络数据捕获阶段
1a)pcap报文采集器从交换机或路由设备实时捕获网络数据包;
1b)通过HDFS流写入模块将数据包以二进制pcap格式写入HDFS;
1c)分割容量V大于HDFS默认64MB的文件,使大文件以V/64MB或者
V/64MB+1个block存储于分布式文件系统当中;
2)pcap报文解析阶段:
2a)通过给定规则探测出每个block中首个pcap报文的起始偏移量;
2b)跳过起始位置之前的所有字节;
2c)依次解析block中所有的pcap报文;
2d)将每次解析的pcap报文结果输入Map操作;
2e)结束。
2.根据权利要求1所述的面向HDFS的网络报文并行读取方法,其特征在于,上述步骤1a)中pcap报文采集器是一个基于libpcap实现的网络数据包收集器,用于获取数据。
3.根据权利要求1所述的面向HDFS的网络报文并行读取方法,其特征在于,上述步骤1b)中HDFS流写入模块指HDFSstreamwriter,用于保存1a)中捕获到的数据报到HDFS。
4.根据权利要求1所述的面向HDFS的网络报文并行读取方法,其特征在于,上述步骤1c)中每个固定大小的block包含若干完整以及不完整的pcap报文段,以二进制pcap格式保存到一个存储节点,同时复制到另外2个节点做数据容错备份。
5.根据权利要求1所述的面向HDFS的网络报文并行读取方法,其特征在于,上述步骤2a)中给定规则探测方法为:
2a-i)假定当前block的起始字节就是完整pcap报文的起始字节,即起始字节偏移量为0;
2a-ii)由pcap报文结构可知,pcap报文头的第1-8字节为时间戳timestamp1,9-12字节为捕获报文长度caplen1,13-16字节为原始报文长度wiredlen1,根据caplen1可以得出下一个连续pcap报文的起始偏移量,进而得到下一个连续pcap报文的时间戳timestamp2,捕获报文长度caplen2以及原始报文长度wiredlen2;
2a-iii)当假设2a-i)成立时,必须同时满足以下5条规则:
1)所有时间戳类型数据都必须满足t1<=timestamp<=t2,其中t1表示捕获开始运行时间,t2表示当前系统时间;
2)所有捕获报文长必须满足caplen<=max(packet length),即捕获报文长不能超过pcap报文最大报文长度;
3)所有原始报文长必须满足wiredlen<=max(packet length),即原始报文长不能超过pcap报文最大报文长度;
4)0<=wiredlen–caplen<=max(packet length),即原始报文长度必须不小于捕获的报文长度,且二者的差不超过一个pcap报文内容的最大长度;
5)0<timestamp2-timestamp1<Δt,即第一个数据报的捕获时间必须早于第二个数据报的捕获时间,且二者的间隔不能大于Δt;
2a-iv)若条件2a-iii)的规则都满足,则说明已经找到该block的首个pcap报文的起始偏移位置;若有任一规则不满足,则2a-i)中假设的起始偏移位置向后移动一个字节,重复运用2a-iii)中的规则进行匹配,直到找到满足规则的起始偏移位置;
2a-v)结束。
6.根据权利要求1所述的面向HDFS的网络报文并行读取方法,其特征在于,上述步骤2c)中pcap报文的解析步骤如下:
2c-i)读取当前pcap报文起始偏移位置后面的第9-12字节,得到4字节的捕获报文长度L;
2c-ii)若捕获报文长度L小于等于block剩余字节数,则连续读取本block中当前pcap报文起始偏移位置后面的第17-17+L字节,得到L字节的捕获报文内容;
2c-iii)若捕获报文长度L大于block剩余字节数,读取完本block剩余数据后,继续在下一个连续的block中读取剩余的字节数,即两个block共读取L个字节,得到L字节的捕获报文内容,一个block读取完毕,直接跳至步骤2c-vi)结束;
2c-iv)确定下一个pcap报文起始偏移位置;
2c-v)重复步骤2c-ii)-2c-iv)直到所有pcap报文解析完毕;
2c-vi)结束。
7.根据权利要求1所述的面向HDFS的网络报文并行读取方法,其特征在于,上述步骤2d)中输入Map操作的具体步骤如下:
2d-i)步骤2c)中每个pcap报文解析后都会得到一个当前pcap报文的偏移量和该pcap报文的内容部分;
2d-ii)以当前pcap报文所在位置的字节偏移量为key,格式为LongWritable,二进制报文内容部分为value,格式为BytesWritable,作为map函数的输入;
2d-iii)结束。
CN201610353612.8A 2016-05-25 2016-05-25 一种面向hdfs的网络报文并行读取方法 Pending CN106027414A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610353612.8A CN106027414A (zh) 2016-05-25 2016-05-25 一种面向hdfs的网络报文并行读取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610353612.8A CN106027414A (zh) 2016-05-25 2016-05-25 一种面向hdfs的网络报文并行读取方法

Publications (1)

Publication Number Publication Date
CN106027414A true CN106027414A (zh) 2016-10-12

Family

ID=57093740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610353612.8A Pending CN106027414A (zh) 2016-05-25 2016-05-25 一种面向hdfs的网络报文并行读取方法

Country Status (1)

Country Link
CN (1) CN106027414A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109246117A (zh) * 2018-09-27 2019-01-18 郑州云海信息技术有限公司 一种pcap数据报文的分析方法、系统及相关装置
CN109783535A (zh) * 2018-12-26 2019-05-21 航天恒星科技有限公司 基于ElasticSearch和Hbase技术的网络传输数据检索系统
CN110912752A (zh) * 2019-12-06 2020-03-24 成都安恒信息技术有限公司 一种基于网络抓包的网络故障智能定位分析方法
CN113468124A (zh) * 2021-09-02 2021-10-01 江苏泰治科技股份有限公司 一种快速全量解析stdf文件的方法和设备
CN113505102A (zh) * 2021-07-23 2021-10-15 北京林业大学 一种基于奇偶一致性区间的内容分块方法
CN115225730A (zh) * 2022-07-05 2022-10-21 北京赛思信安技术股份有限公司 一种支持多任务的高并发离线数据包分析方法
CN115657090A (zh) * 2022-10-24 2023-01-31 上海时空奇点智能技术有限公司 Gnss北斗定位模块接口数据低延时解析处理方法
CN115225730B (zh) * 2022-07-05 2024-05-31 北京赛思信安技术股份有限公司 一种支持多任务的高并发离线数据包分析方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120182891A1 (en) * 2011-01-19 2012-07-19 Youngseok Lee Packet analysis system and method using hadoop based parallel computation
CN105357302A (zh) * 2015-11-12 2016-02-24 成都科来软件有限公司 一种网络数据包断点续传方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120182891A1 (en) * 2011-01-19 2012-07-19 Youngseok Lee Packet analysis system and method using hadoop based parallel computation
CN105357302A (zh) * 2015-11-12 2016-02-24 成都科来软件有限公司 一种网络数据包断点续传方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LEE Y, KANG W, LEE Y.: "A hadoop-based packet trace processing tool", 《INTERNATIONAL WORKSHOP ON TRAFFIC MONITORING AND ANALYSIS》 *
LEE Y, LEE Y.: "Toward scalable internet traffic measurement and analysis with hadoop", 《ACM SIGCOMM COMPUTER COMMUNICATION REVIEW》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109246117A (zh) * 2018-09-27 2019-01-18 郑州云海信息技术有限公司 一种pcap数据报文的分析方法、系统及相关装置
CN109783535A (zh) * 2018-12-26 2019-05-21 航天恒星科技有限公司 基于ElasticSearch和Hbase技术的网络传输数据检索系统
CN110912752A (zh) * 2019-12-06 2020-03-24 成都安恒信息技术有限公司 一种基于网络抓包的网络故障智能定位分析方法
CN110912752B (zh) * 2019-12-06 2022-03-29 成都安恒信息技术有限公司 一种基于网络抓包的网络故障智能定位分析方法
CN113505102A (zh) * 2021-07-23 2021-10-15 北京林业大学 一种基于奇偶一致性区间的内容分块方法
CN113505102B (zh) * 2021-07-23 2023-08-01 北京林业大学 一种基于奇偶一致性区间的内容分块方法
CN113468124A (zh) * 2021-09-02 2021-10-01 江苏泰治科技股份有限公司 一种快速全量解析stdf文件的方法和设备
CN115225730A (zh) * 2022-07-05 2022-10-21 北京赛思信安技术股份有限公司 一种支持多任务的高并发离线数据包分析方法
CN115225730B (zh) * 2022-07-05 2024-05-31 北京赛思信安技术股份有限公司 一种支持多任务的高并发离线数据包分析方法
CN115657090A (zh) * 2022-10-24 2023-01-31 上海时空奇点智能技术有限公司 Gnss北斗定位模块接口数据低延时解析处理方法
CN115657090B (zh) * 2022-10-24 2023-04-28 上海时空奇点智能技术有限公司 Gnss北斗定位模块接口数据低延时解析处理方法

Similar Documents

Publication Publication Date Title
CN106027414A (zh) 一种面向hdfs的网络报文并行读取方法
US10567299B2 (en) Coflow identification method and system, and server using method
US10218598B2 (en) Automatic parsing of binary-based application protocols using network traffic
US11228513B2 (en) Traffic measurement method, device, and system
CN107634848B (zh) 一种采集分析网络设备信息的系统和方法
US8180916B1 (en) System and method for identifying network applications based on packet content signatures
US9479405B1 (en) Transaction based network application signatures for text based protocols
US20150180755A1 (en) System and Method for Network Packet Event Characterization and Analysis
EP3364627B1 (en) Adaptive session intelligence extender
US20120182891A1 (en) Packet analysis system and method using hadoop based parallel computation
US8694630B1 (en) Self-learning classifier for internet traffic
US9577898B1 (en) Identifying IP traffic from multiple hosts behind a network address translation device
CN108900374B (zh) 一种应用于dpi设备的数据处理方法和装置
CN105072196B (zh) 分布式数据包存储、回溯方法及系统
CN110674362B (zh) 搜索推荐方法、装置、电子设备及可读存储介质
CN108040069A (zh) 一种快速打开网络数据包文件的方法
Hayes et al. Online identification of groups of flows sharing a network bottleneck
WO2016197659A1 (zh) 网络媒体流收包方法、装置及系统
US11770360B1 (en) Correlating protocol data units transiting networks with differing addressing schemes
CN116032789A (zh) 时间戳获取方法及装置、计算机可读存储介质、终端
KR101200773B1 (ko) 하둡 맵리듀스에서 네트워크 패킷 분석을 위한 입력포맷 추출방법
CN114679395B (zh) 异构网络的数据传输探测方法及系统
CN110808915B (zh) 数据流所属应用识别方法、装置及数据处理设备
CN117061072B (zh) 报文传输方法、装置、设备及存储介质
CN111031044A (zh) 一种报文解析硬件装置及报文解析方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20161012