pcap文件格式

pcap文件的格式为:
  文件头    24字节
   
数据包头 + 数据包  数据包头为16字节,后面紧跟数据包
   数据包头 + 数据包  ......

pcap 文件头的结构体为

struct pcap_file_header {
        bpf_u_int32 magic;
        u_short version_major;
        u_short version_minor;
        bpf_int32 thiszone;     /* gmt to local correction */
        bpf_u_int32 sigfigs;    /* accuracy of timestamps */
        bpf_u_int32 snaplen;    /* max length saved portion of each pkt */
        bpf_u_int32 linktype;   /* data link type (LINKTYPE_*) */
};

其中:

magic:    4字节 pcap文件标识 目前为“d4 c3 b2 a1”
major:    2字节 主版本号     #define PCAP_VERSION_MAJOR 2
minor:    2字节 次版本号     #define PCAP_VERSION_MINOR 4
thiszone:4字节 时区修正     并未使用,目前全为0
sigfigs: 4字节 精确时间戳   并未使用,目前全为0
snaplen: 4字节 抓包最大长度 如果要抓全,设为0x0000ffff(65535),
          tcpdump -s 0就是设置这个参数,缺省为68字节
 linktype:4字节 链路类型    一般都是1:ethernet

数据包头的结构为

struct pcap_pkthdr {
        struct timeval ts;        /* time stamp */
        bpf_u_int32 caplen;     /* length of portion present */
        bpf_u_int32 len;        /* length this packet (off wire) */
};

时间戳结构为

struct timeval {
        long            tv_sec;         /* seconds (XXX should be time_t) */
        suseconds_t     tv_usec;        /* and microseconds */
};
 ts:    8字节 抓包时间 4字节表示秒数,4字节表示微秒数
 caplen:4字节 保存下来的包长度(最多是snaplen)
 len:   4字节 数据包的真实长度,如果文件中保存的不是完整数据包,可能比caplen大


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值