使用 Wireshark 选取你要抓包的网络接口,并设置你的过滤器之后,当有数据通信后即可抓到对应的数据包,这里将分析其每一帧数据包的结构。
-
每一帧数据都有类似的结构组成,我这里使用抓到一个对应的ping 包进行分析。
-
这一帧包包含以下四种信息.
- Frame: 物理层的数据帧情况。
- Ethernet II , Src: 数据链路层以太网帧头部信息。
- Internet Protocol Version 4, Src: 互联网层IP包头信息。
- Internet Control Message Protocol: 互联网控制信息协议。ping 小包所使用的协议。
- 前三层基本上都是一样的,第四层开始就可以出现TCP, UDP 协议,第五层就可能有HTTP 应用层协议等等。
-
第一层 : Frame: 物理层的数据帧概况
Frame 715: 98 bytes on wire (784 bits), 98 bytes captured (784 bits) on interface 0
//第715帧,有98个字节在线上,共784位,实际捕获到784字节在0接口
Interface id: 0 (DeviceNPF_{B67BEA54-B193-42D8-9DA9-11312F90107A}) //接口ID:0
Encapsulation type: Ethernet (1) //封装类型
Arrival Time: Mar 22, 2017 13:30:44.053763000 中国标准时间 //到达时间
Time shift for this packet: 0.000000000 seconds //包偏移时间,不懂。。.
Epoch Time: 1490160644.053763000 seconds //有可能是1990 到现在的时间
Time delta from previous captured frame: 0.000349000 seconds//两帧之间的时间间隔
Time delta from previous displayed frame: 0.000000000 seconds//捕获到显示的间隔时间
Time since reference or first frame: 274.038861000 seconds //此包和第一帧的时间间隔
Frame Number: 715 //帧号
Frame Length: 98 bytes (784 bits) //帧长度
Capture Length: 98 bytes (784 bits) //捕获的帧长度
Frame is marked: False //帧显著标志
Frame is ignored: False //帧忽略标志
Protocols in frame: eth:ethertype:ip:icmp:data //帧内封装的协议层次结构
Coloring Rule Name: ICMP //着色标记的协议
Coloring Rule String: icmp || icmpv6 //着色规则显示的字符串
- 第二层: Ethernet II , Src: 数据链路层以太网帧头部信息。
Ethernet II, Src: TexasIns_ce:a9:4b (68:c9:0b:ce:a9:4b), Dst: AplexTec_0d:4e (40:d8:55:16:ad:4e)
// 源MAC地址:TexasIns_ce:a9:4b (68:c9:0b:ce:a9:4b)
//目标MAC地址:AplexTec_0d:4e (40:d8:55:16:ad:4e)
Destination: AplexTec_0d:4e (40:d8:55:16:ad:4e) //目的MAC地址
Source: TexasIns_ce:a9:4b (68:c9:0b:ce:a9:4b) //源MAC地址
- 第三层: Internet Protocol Version 4, Src: 以太网协议层
Internet Protocol Version 4, Src: 192.168.0.199, Dst: 192.168.0.192
// IPv4 协议 源IP:192.168.0.199, 目的IP:192.168.0.192
0100 .... = Version: 4 // 版本4
.... 0101 = Header Length: 20 bytes (5) // 头长度20字节
Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) //差分服务区域
0000 00.. = Differentiated Services Codepoint: Default (0) // 差分服务字段
.... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
//明确的阻塞指示
Total Length: 84 // 总长度
Identification: 0x0000 (0) // 鉴别
Flags: 0x02 (Don't Fragment) // 标志
0... .... = Reserved bit: Not set // 保留位
.1.. .... = Don't fragment: Set // 不要分离碎片
..0. .... = More fragments: Not set // 分离
Fragment offset: 0 // 分的偏移量
Time to live: 64 // 生存期
Protocol: ICMP (1) // 协议名称
Header checksum: 0xb7d1 [validation disabled] // 头部校验和
Header checksum status: Unverified // 头部校验和检验状态:
Source: 192.168.0.199 // 源IP
Destination: 192.168.0.192 // 目的地IP
Source GeoIP: Unknown // 源的 基于IP 查询地理位置 Geo IP: Geolocation IP
Destination GeoIP: Unknown
- 第四层: UDP, TCP, ICMP, 等等协议层
// 这里面描述了这些协议独有的东西:
// ping 小包一般所使用的就是这种协议进行传输数据
Internet Control Message Protocol // 因特网控制信息协议
Type: 8 (Echo (ping) request) // 类型,ping 请求
Code: 0
Checksum: 0x6eb9 [correct] // 和校验
Checksum Status: Good // 和检验状态
Identifier (BE): 59906 (0xea02) // 标识符
Identifier (LE): 746 (0x02ea) // 标识符
Sequence number (BE): 5 (0x0005) // BE 序列号
Sequence number (LE): 1280 (0x0500) //LE 序列号
Data (56 bytes) // 数据
// ... ...