Wireshark分析IP数据报
1. IP数据报格式
- 总概
2. IP数据报首部的固定部分各字段
- 版本【4位】:IPv4或IPv6
- 首部长度【4位】:单位是32bit(4字节),比如:首部最小长度为20字节,此时为:0101(5);因此可以推测首部最大长度为15*4字节=60字节,而且数据部分永远是4字节的倍数。
- 区分服务【8位】:旧称服务类型,1998改为Differentiated Services
- 总长度【16位】:首部和数据之和。单位字节,因此数据报最大长度为2^16-1字节
- 标识【16位】:超过MTU分片时,同一源的该字段相同,便于重新组装
- 标志【3位】:
- MF【1位】:More Fragment,1还有分片,0分片最后一个
- DF【1位】:Don’t Fragment,0允许分片
- 片偏移【13位】:较长分组后,某片在原分组的相对位置,单位8字节
- 生存时间【8位】:TTL,Time To Live,数据包在网络中的寿命,现用跳数为单位
- 协议【8位】: 指出携带数据使用的协议,便于目的主机IP层对应协议处理
- ICMP(1)、IGMP(2)、IP(4)、TCP(6)、EGP(8)、IGP(9)、UDP(17)、IPv6(41)、ESP(50)、OSPF(89)
- 首部校验和【16位】:只校验数据报首部,不包含数据部分,没经过一个路由器都会重新校验
- 源地址【32位】:顾名思义
- 目标地址【32位】:顾名思义
2. 使用Wireshark分析IP数据报
-
打开Wireshark,选择监听的接口。此处由于我使用的是无线,故使用WLAN。
-
为方便查看,先停止监听。
-
在cmd中使用ping命令,ping目的主机,同时使用Wireshark监听数据
-
监听若干秒后,停止监听。
-
按照协议排序,其中下图中的ICMP的即是捕获到ping命令的数据包。(ping是ICMP协议的命令)
-
单击source为本身IP地址,查看其数据内容
-
以上捕获IP数据报首部含义
字段 含义 IP协议版本号 IPv4 服务类型 0x00(DSCP:CS0,ECN Not-ECT) IP报文头长度 20 bytes ,说明没有使用可选字段 数据报总长度 60 标识 0x0b96(2966) 数据报是否要求分段 Not set 分段偏移量 0 在发送过程中经过几个路由器 128-128=0,同一网段内 上层协议名称 ICMP 报文头校验和 0xabc9 源地址 192.168.1.5 目标地址 192.168.1.3