Chinaunix首页 | 论坛 | 博客
  • 博客访问: 105627
  • 博文数量: 10
  • 博客积分: 1685
  • 博客等级: 上尉
  • 技术积分: 120
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-13 23:11
文章分类
文章存档

2012年(1)

2010年(1)

2009年(2)

2008年(6)

我的朋友

分类: 系统运维

2012-12-02 11:52:33

使用wireshark抓包工具,默认存取为pcap文件,
Pcap文件头24B各字段说明:
Magic:4B:0x1A 2B 3C 4D:用来标示文件的开始
Major:2B,0x02 00:当前文件主要的版本号      
Minor:2B,0x04 00当前文件次要的版本号
ThisZone:4B当地的标准时间;全零
SigFigs:4B时间戳的精度;全零
SnapLen:4B最大的存储长度    
LinkType:4B链路类型

    0            BSD loopback devices, except for later OpenBSD
       1            Ethernet, and Linux loopback devices
       6            802.5 Token Ring
       7            ARCnet
       8            SLIP
       9            PPP
       10          FDDI
       100        LLC/SNAP-encapsulated ATM
       101        "raw IP", with no link
       102        BSD/OS SLIP
       103        BSD/OS PPP
       104        Cisco HDLC
       105        802.11
       108        later OpenBSD loopback devices (with the AF_value in network byte order)
       113        special Linux "cooked" capture
       114        LocalTalk

其中我们最为常见的类型就是1,以太网链路。

字段说明:
Timestamp:时间戳高位,精确到seconds      
Timestamp:时间戳低位,精确到microseconds
Caplen:当前数据区的长度,即抓取到的数据帧长度,由此可以得到下一个数据帧的位置。
Len:离线数据长度:网络中实际数据帧的长度,一般不大于caplen,多数情况下和Caplen数值相等。
Packet 数据:即 Packet(通常就是链路层的数据帧去掉前面用于同步和标识帧开始的8字节和最后用于CRC校验的4字节)具体内容,长度就是Caplen,这个长度的后面,就是当前PCAP文件中存放的下一个Packet数据包,也就是说:PCAP文件里面并没有规定捕获的Packet数据包之间有什么间隔字符串,我们需要靠第一个Packet包确定下一组数据在文件中的起始位置,向后以此类推。

图中最开始的绿色部分就是24 Bytes的Pcap Header,接下来红色的16 Bytes是第一个消息的Packet Header, 后面的红色的16 Bytes是第二个消息的Packet Header。两块蓝色的部分分别是两个消息从链路层开始的完整内容。在网络上实际传输的数据包在数据链路层上每一个Packet开始都会有7个用于同步的字节(10101010, 10101010, 10101010, 10101010, 10101010, 10101010, 10101010,)和一个用于标识该Packet开始的字节(10101011),最后还会有四个CRC校验字节;而PCAP文件中会把前8个字节和最后4个校验自己去掉,因为这些信息对于协议分析是没有用处的。
用Wireshark打开一个Pcap数据包后, 每条消息的所有field会被解析出来并会按照协议层次折叠起来。第一层显示的是Frame XXX,这一级别没有对应某层具体的协议,而是对本条消息的一个概括性总结,描述了一些有用的概括性信息,比如从里面我们可以看到本条消息各种协议的层次关系,展开其它协议层之后对应的是该协议的各个域;如下图所示



综述:pcap文件头:数据链路层14字节包头+20字节ip包头+20字节tcp包头或者udp;

目的MAC(6B)+源MAC(6B)+type(2B,0800,ip)+协议版本及头长度(0x45,1B)+区分服务(1B)

+总长度(2B)+唯一标示(2B)+标志与偏移量(2B)+TTL(1B)+协议(1B,TCP|UDP)+校验和(2B)

+源ip地址(4B)+目的ip地址(4B)+源端口(2B)+目的端口(2B)+序列号(4B)+确认号(4B)+头长度(1B)+ack标志(1b)+窗口大小(2B)+校验和(2B)+紧急数据偏移量(2B)

阅读(459) | 评论(0) | 转发(0) |
0

上一篇:《华为往事》整理版

下一篇:没有了

给主人留下些什么吧!~~