本文首先介绍对pcapng格式进行介绍,然后讲解pcapng的整体结构,并使用Python语言进行块(block)的解包。
在此需要说明的是,本文是为了能够深入对pcapng格式进行分析,所以不使用python的scapy库。
文章目录
- 前言
- 一、pcapng文件
-
- 1、pcapng概述
- 2、特点
-
- (1)支持从多接口捕获
- (2)提高时间戳分辨率
- (3)可以嵌入注释信息
- (4)可嵌入额外数据
- (5)可扩展文件格式
- 二、块(block)结构
-
- 1、块结构
- 2、字段含义
-
- (1)block type
- (2)block total length。
- (3)block body
- (4)block total length
- 三、block的类型
-
- 1、节头块(Section Header Block)
- 2、接口描述块(Interface Description Block)
- 3、分组块(Packet Block)
- 4、简单分组块(Simple Packet Block)
- 5、名称解析块(Name Resolution Block
- 6、接口统计块(Interface Statistics Block)
- 7、增强分组块(Enhanced Packet Block)
- 四、块解析源代码(Python)
- 五、运行结果
对网络传输数据进行处理,需使用专用的抓包工具,例如WireShark等,对于抓包后的数据进行分析,就需要用到一些专用的数据格式,pcapng就是其中广为使用的一种。我们先对其进行简要介绍。
网络上的数据是以流的方式进行数据传输的,我们从网络上抓包后,需要进行数据分析,所以需要对数据进行存储,pcapng就是用于存储的格式。
pcnpng来源于IETF(互联网工程工作组),是pcap的新一代格式,相比较于原有的pcap格式,更具有逻辑性和可扩展性。
(1)支持从多接口捕获
pcapng允许捕获文件使用“接口描述块”定义多个接口。 每个包都可以与特定的接口相关联。
(2)提高时间戳分辨率
pcap的时间戳分辨率是微秒,pcapng的时间戳是一个64位数,表示自1970年1月1日以来的时间单位数量。
(3)可以嵌入注释信息
pcapng允许在捕获文件中嵌入注释信息。
(4)可嵌入额外数据
使用pcapng,接口描述块允许描述字段、操作系统字段和过滤器字段,这些字段可以提供捕获源的额外细节。
(5)可扩展文件格式
该格式部署了一个通用的块结构,该结构允许工具忽略未理解的块。 这允许格式随着时间的推移而演进。 特定的块是为接口和包定义的。 额外的元数据可以存储在可选块中。
pcapng由各种block组成,其结构描述如下:

(1)block type
不同类型的块有不同的类型值。
(2)block total length。
(3)block body
4字节对齐。
(4)block total length
重复长度。
主要块类型如下:
0x00000003
简单分组块是可选的,用于存储来自网络的分组的轻量级容器。
简单分组块类似于分组块(见第3.5节),但它更小、处理起来更简单,只包含了一组最小信息集合。当性能或占用空间是关键因素时,这个块将优先于标准分组块被使用,如在持续流量转储应用程序。一个捕获文件可以同时包含分组块和简单的数据包块:例如硬件资源成为瓶颈时,捕捉工具可以从分组块切换到简单分组块。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/11750.html