linux pcap文件格式,pcap文件格式

Libpcap已经成为Linux,Unix平台上网络数据捕获的一个事实上的标准。所以,掌握Libpcap文件的格式也非常重要。这里用version2.4来说明(实际上,这个文件格式自从Libpcap的0.4版本,既是1998年来就没有改变过)。Libpcap文件用.pcap作为后缀。

a4c26d1e5885305701be709a3d33442f.png

从上图可以看出来,每个Libpcap文件都有一个全局的头(Global

header),然后跟着是N(N>=0)个数据包组成的。每个数据包又分为包头(Packet

Header)和包数据(Packet Data)部分。

1.Global Header

typedef struct pcap_hdr_s {

guint32 magic_number;

guint16 version_major;

guint16 version_minor;

gint32 thiszone;

guint32 sigfigs;

guint32 snaplen;

guint32 network; } pcap_hdr_t;

这是Global Header的格式。

magic_number:用来识别文件自己和字节顺序。0xa1b2c3d4用来表示按照原来的顺序读取,0xd4c3b2a1表示下面的字节都要交换顺序读取。一般,我们使用0xa1b2c3d4

version_major, version_minor:Libpcap的版本

thiszone:

时区。GMT和本地时间的相差,用秒来表示。如果本地的时区是GMT,那么这个值就设置为0.这个值一般也设置为0

sigfigs:精确的time stamps,实际上都设置为0

snaplen:该值设置所抓获的数据包的最大长度,如果所有数据包都要抓获,将该值设置为65535;

例如:想获取数据包的前64字节,可将该值设置为64。

network:数据链路层类型。1是Ethernet,所以一般设置为1。

2.Packet Header

每个数据包都以一个Packet Header开始,下面是其结构:

typedef struct pcaprec_hdr_s {

guint32 ts_sec;

guint32 ts_usec;

guint32 incl_len;

guint32 orig_len; } pcaprec_hdr_t;

ts-sec:该数据包被捕获的时间(date and time),值是自从January 1,

1970 00:00:00 GMT以来的秒数来记。也就是linux

time_t

ts_usec:数据包被捕获时候的微秒(microseconds)数,是自ts-sec的偏移量。

incl_len:数据包实际抓获并且保存在文件中的长度(用bytes计算)。这个值不能大于orig_len和snaplen

orig_len:数据包被捕获是,在网络上出现的长度(用bytes计算)。如果incl_len与orig_len不同,则说明实际抓包的大小被snaplen所限制。

例如,实际上有一个包长度是1500 bytes(orig_len=1500),但是因为在Global

Header的snaplen=1300有限制,所以只能抓取这个包的前1300个字节,这个时候,incl_len

= 1300

3.Packet Data

Packet Data紧跟着Packet Header,长度是incl_len,没有格式

#########################功能说明################## pcapedit 程序可对pcap报文进行报文过滤,剥离部分包头及打标签功能。 支持通过pcap.conf配置文件设置标签内容及长度。 程序启动时,会导入配置文件中的标签内容,之后会将pcap包中的每个数据包末尾都打上该标签。标签内容填充不足,自动补0. ################################################## *************************可处理报文格式说明******** 可处理的报文格式需如下:ETH格式 --》ipv4 --> udp --> gtp_2152 --> ipv4 -->tcp -->http 剥离特殊包头后的帧格式:ETH格式 --》ipv4 --> tcp -->http *************************************************** @@@@@@@@@@@@@@@@@@@@@@@@@使用说明@@@@@@@@@@@@@@@@@ 将pcapedit 和 配置文件放到用一路径下,处理处的结果文件保存在当前路径。 [root@localhost cll]# ./pcapedit Input the pcap file name:3g_ctrl_data.pcap //符合帧格式的pcap文件处理结果 starting parse pcap file... 3g_ctrl_data.pcap input mark success! Input the pcap file name:aagxxx_data.pcap //符合帧格式的pcap文件处理结果 starting parse pcap file... aagxxx_data.pcap input mark success! Input the pcap file name:new3g_user.pcap //不符合帧格式的pcap文件处理结果 starting parse pcap file... cann't find target format packet. new3g_user.pcap input mark fail! Input the pcap file name:exit //exit 退出程序 [root@localhost cll]# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值