使用 Wireshark 选择需要抓包的网络方式,并设置过滤器条件,当有数据通信后即可抓到对应的数据包,这里将分析其每一帧数据包的结构。

以HTTP协议为例,一帧数据包一般包括以下几个部分:

  • Frame:物理层的数据帧情况。
  • Ethernet II :数据链路层以太网帧头部信息。
  • Internet Protocol Version 4:以太网协议层。
  • Transmission Control Protocol:传输控制协议。
  • HyperText Transfer Protocol:超文本传输协议。

对于各种协议而言,前三层基本一样,第四层开始就可以出现TCP, UDP 协议,第五层就有HTTP 应用层协议等。

第一层:Frame:(物理层)

wireshark包序号 wireshark序号确认号_HTTP

1 // 第8056帧,有507个字节在线,共4056位,实际在接口0上捕获到507个字节
 2 Frame 8056: 507 bytes on wire (4056 bits), 507 bytes captured (4056 bits) on interface 0
 3     // 接口ID:0
 4     Interface id: 0 (\Device\NPF_{7920DB7B-B8DB-417F-8C85-72E6DCCD61C5}) 
 5     // 封装类型
 6     Encapsulation type: Ethernet (1) 
 7     // 到达时间
 8     Arrival Time: Aug  8, 2019 15:45:00.750794000 中国标准时间       
 9     // 包偏移量
10     [Time shift for this packet: 0.000000000 seconds]
11     // 新纪元时间
12     Epoch Time: 1565250300.750794000 seconds
13     // 两帧之间的时间间隔
14     [Time delta from previous captured frame: 0.000326000 seconds]
15     // 捕获到显示的时间间隔
16     [Time delta from previous displayed frame: 0.126423000 seconds]
17     // 此帧与第一帧的时间间隔
18     [Time since reference or first frame: 197.144051000 seconds]
19     // 帧号
20     Frame Number: 8056
21     // 帧长度
22     Frame Length: 507 bytes (4056 bits)
23     // 捕获的帧长度
24     Capture Length: 507 bytes (4056 bits)
25     // 帧是否标记
26     [Frame is marked: False]
27     // 帧是否忽略
28     [Frame is ignored: False]
29     // 帧内封装的协议层次结构
30     [Protocols in frame: eth:ethertype:ip:tcp:http]
31     // 着色标记的协议
32     [Coloring Rule Name: HTTP]
33     // 着色规则显示的字符串
34     [Coloring Rule String: http || tcp.port == 80 || http2]

wireshark包序号 wireshark序号确认号_HTTP

第二层:Ethernet II (数据链路层以太网帧头部信息)

wireshark包序号 wireshark序号确认号_HTTP

1 // 源MAC地址:TexasIns_ce:a9:4b (68:c9:0b:ce:a9:4b)  
2 // 目标MAC地址:AplexTec_0d:4e (40:d8:55:16:ad:4e)
3 Ethernet II, Src: AsustekC_4d:bc:f2 (70:8b:cd:4d:bc:f2), Dst: Hangzhou_91:be:b8 (d4:61:fe:91:be:b8)
4     // 目标MAC地址
5     Destination: Hangzhou_91:be:b8 (d4:61:fe:91:be:b8)
6     // 源MAC地址
7     Source: AsustekC_4d:bc:f2 (70:8b:cd:4d:bc:f2)
8     // IP类型
9     Type: IPv4 (0x0800)

wireshark包序号 wireshark序号确认号_HTTP

 第三层:Internet Protocol Version 4(以太网协议层)

wireshark包序号 wireshark序号确认号_HTTP

1 // IPv4 协议,源IP:192.168.1.50, 目的IP:111.202.102.36
 2 Internet Protocol Version 4, Src: 192.168.1.50, Dst: 111.202.102.36
 3     // 版本4
 4     0100 .... = Version: 4
 5     // 头长度20字节
 6     .... 0101 = Header Length: 20 bytes (5)
 7     // 差分服务字段
 8     Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
 9     // 总长度
10     Total Length: 493
11     // 鉴别
12     Identification: 0x90c2 (37058)
13     // 标志
14     Flags: 0x4000, Don't fragment
15     // 生存期
16     Time to live: 64
17     // 协议名称
18     Protocol: TCP (6)
19     // 头部校验和
20     Header checksum: 0x0000 [validation disabled]
21     // 头部校验和检测状态
22     [Header checksum status: Unverified]
23     // 源IP
24     Source: 192.168.1.50
25     // 目标IP
26     Destination: 111.202.102.36

wireshark包序号 wireshark序号确认号_HTTP

第四层:Transmission Control Protocol(传输控制协议)

wireshark包序号 wireshark序号确认号_HTTP

1 // 传输控制协议,源端口:4434,目标端口:80,序号1,确认号:1,长度:453
 2 Transmission Control Protocol, Src Port: 4434, Dst Port: 80, Seq: 1, Ack: 1, Len: 453
 3     // 源端口:4434
 4     Source Port: 4434
 5     // 目标端口:80
 6     Destination Port: 80
 7     // 流索引
 8     [Stream index: 105]
 9     // TCP段长度
10     [TCP Segment Len: 453]
11     // 序号
12     Sequence number: 1    (relative sequence number)
13     // 下一个序号
14     [Next sequence number: 454    (relative sequence number)]
15     // 确认号
16     Acknowledgment number: 1    (relative ack number)
17     // 头部长度
18     0101 .... = Header Length: 20 bytes (5)
19     // 标记
20     Flags: 0x018 (PSH, ACK)
21     // 窗口大小
22     Window size value: 32768
23     // 计算窗口大小
24     [Calculated window size: 262144]
25     // 窗口大小乘积因子
26     [Window size scaling factor: 8]
27     // 校验和
28     Checksum: 0x99a8 [unverified]
29     // 校验和监测状态
30     [Checksum Status: Unverified]
31     // 紧急指针
32     Urgent pointer: 0
33     [SEQ/ACK analysis]
34     [Timestamps]
35     // TCP负载
36     TCP payload (453 bytes)

wireshark包序号 wireshark序号确认号_HTTP

第五层:HyperText Transfer Protocol(超文本传输协议)

wireshark包序号 wireshark序号确认号_HTTP

1 // 超文本传输协议(HTML)
 2 Hypertext Transfer Protocol
 3     // POST请求
 4     POST /q HTTP/1.1\r\n
 5     // 缓存控制
 6     Cache-Control: no-cache\r\n
 7     // 连接类型
 8     Connection: Keep-Alive\r\n
 9     // 编辑注解
10     Pragma: no-cache\r\n
11     // 用户代理
12     User-Agent: SESC\r\n
13     // 内容长度
14     Content-Length: 719\r\n
15         [Content length: 719]
16     // 主机
17     Host: get.sogou.com\r\n
18     \r\n
19     // 完整请求地址
20     [Full request URI: http://get.sogou.com/q]
21     [HTTP request 47/57]
22     // 前一请求所在帧
23     [Prev request in frame: 5904]
24     // 响应帧
25     [Response in frame: 5910]
26     // 下一请求帧
27     [Next request in frame: 5912]
28     // 文件数据
29     File Data: 719 bytes
30     // 数据
31     Data (719 bytes)

wireshark包序号 wireshark序号确认号_HTTP

HTTP协议的内容根据请求情况会有所不同,需要具体情况具体分析。

螃蟹在剥我的壳,笔记本在写我,漫天的我落在枫叶上雪花上,而你在想我。 --章怀柔