目录
一、IP数据报简介
二、Wireshark抓包分析
版本:占4比特,表示IP协议的版本。通信双发使用的IP版本必须一致
首部长度:占4比特,表示IP数据报首部的长度。该字段的取值以4字节为单位。
最小十进制取值为5,表示IP数据报首部只有20字节固定部分
最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分
可选字段:增加了IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了
每一个路由器处理IP数据报的开销。实际上可选字段很少被使用。
填充字段:确保首部长度为4字节的整数倍。使用全0进行填充。
区分服务:占8比特,用来获得更好的服务。1998年, 因特网工程任务组IETF把这个字段改名为
区分服务 利用该字段的不同数值可提供不同等级的服务质量。只有在使用区分服务时,该字段才
起作用。一般情况下都不使用该字段。
总长度:占16比特,表示IP数据报的总长度(首部+数据载荷)。最大取值为十进制的65535,以字节为单位。
标识:占16比特,属于同一个数据报的各分片数据报应该具有相同的标识。IP软件维持一个计数器,
每产生一个数据报,计数器值加1,井将此值赋给标识字段。
标志:占3比特,各比特含义如下: DF位: 1表示不允许分片 0表示允许分片;
MF位: 1表示“后面还有分片” 0表示“这是最后一个分片” 保留位: 必须为0。
片偏移占:13比特,指出分片数据报的数据载荷部分偏移其在原数据报的位置有多少个单位。片偏
移以8个字节为单位。
生存时间TTL:占8比特,表示IP数据报的生存时间。
最初以秒为单位,最大生存周期为255秒 路由器转发IP数据报时,将IP数据报首部中的该字段的值
减去IP数据报在本路由器上所耗费的时间,若不为0就转发,否则就丢弃。
现在以“跳数”为单位,路由器转发IP数据报时,将IP数据报首部中的该字段的值减1,若不为0就转
发,否则就丢弃。IP数据报每经过一个路由器,路由器都要重新计算首部检验和,因为某些字段
(生存时间、标志、片偏移等)的取值可能发生变化。
协议:占8比特,指明IPv4数据报的数据部分是何种协议数据单元。
常用的一些协议和相应的协议字段值
首部检验和:占16比特,用来检测首部在传输过程中是否出现差错。比CRC检验码简单,称为因特
网检验和。由于IP层本身并不提供可靠传输的服务,并且计算首部校验和是一项耗时的操作,因此
在IPv6中,路由器不再计算首部校验和,从而更快转发IP数据报。
源IP地址和目的IP地址:各占32比特,用来填写发送该IP数据报的源主机的IP地址和接收该IP数据
报的目的主机的IP地址。
例:一个IP数据报总长度为3820字节,标识为12345。 其数据部分为3800字节,使用以太网传
送该IP数据报,以太网的最大传送单元MTU为1500字节(数据部分为1480字节+固定首部20字节)
☀️1.首先打开Wireshark,选择监听的接口
注:若是准备ping同一WiFi下的主机,则选择WLAN
☀️2.打开cmd命令窗,ping IP地址
☀️3.Wireshark监听若干秒后停止监听,并筛选自己ping的ip地址和协议
使用 ip.addr eq + ip地址 + and 协议
☀️4.分析IP数据报
IP协议版本号 |
IPv4 |
服务类型 |
0x00(DSCP:CS0,ECN: Not-ECT) |
IP报文头长度 |
20bytes |
数据报总长度 |
60 |
标识 |
0x9349 |
数据报是否要求分段 |
否 |
分段偏移量 |
0 |
在发送过程中经过几个路由器 |
0 (同一网络下) |
上层协议名称 |
ICMP |
报文头校验和 |
0x0000 |
源地址 |
自己 的IP地址 |
目标地址 |
ping 的IP地址 |