
-a:使ping在收到响应时发出声音(适用于某些操作系统)。-b:允许向广播地址发送ping。-c count:指定发送的ping请求的数量。例如,ping -c 5 google.com只发送 5 个请求。-i interval:指定两次请求之间的间隔时间(单位:秒)。-I interface:指定要使用的网络接口(例如eth0)。-l preload:在开始正式 ping 测试之前,预先发送指定数量的包。-n:显示数字而不是地址解析后的主机名。-p pattern:在每个 ICMP 请求中发送自定义的负载模式(例如ping -p 0xdeadbeef google.com)。-q:不显示输出,只显示最终的统计信息。-s packetsize:指定 ICMP 请求包的大小(字节)。-t ttl:设置 ICMP 请求的生存时间(TTL)。-v:显示详细的输出(适用于调试)。-V:显示ping命令的版本。-w deadline:设置ping命令的最大运行时间(单位:秒)。-W timeout:设置每个响应的超时时间(单位:秒)。-6:使用 IPv6 协议进行ping测试。

-
-M do:这个选项告诉ping在发送数据包时执行“防止分段”(Don't Fragment)。也就是说,要求网络设备在传输数据包时不允许对数据包进行分段。如果数据包大于路径 MTU(最大传输单元),就会导致错误。 -
-c 4:表示发送 4 个ping请求。 -
-s 1473:设置每个ping请求的数据大小为 1482 字节。 -
100.1.1.221:目标主机的 IP 地址,表示你在 ping 这个地址。
网络中传输的最大传输单元(MTU)是 1500 字节。由于 ping -M do 强制不允许数据包分段,因此如果数据包大于路径的 MTU,就会触发错误。
- 数据包总大小 =
1473字节的负载 + 28 字节的 ICMP 协议头和 IP 协议头,共计 1501字节。
| 协议头 | 字段 | 大小(字节) | 说明 |
|---|---|---|---|
| IP 协议头 | 版本与头部长度 | 1 | 4 位版本(IPv4),4 位头部长度(指示头部的长度,单位为 4 字节)。 |
| 服务类型 | 1 | 8 位服务类型(优先级、延迟、吞吐量等)。 | |
| 总长度 | 2 | 16 位,表示整个数据包的长度(包括头部和数据部分)。 | |
| 标识符 | 2 | 16 位,标识数据包,用于分片和重组。 | |
| 标志和片偏移 | 2 | 3 位标志、13 位片偏移,用于数据包分片的处理。 | |
| 生存时间(TTL) | 1 | 8 位,表示数据包的生存时间,防止数据包在网络中循环。 | |
| 协议 | 1 | 8 位,标识上层协议类型(例如 1 表示 ICMP,6 表示 TCP)。 | |
| 源 IP 地址 | 4 | 32 位,表示源主机的 IP 地址。 | |
| 目标 IP 地址 | 4 | 32 位,表示目标主机的 IP 地址。 | |
| 总计(IP 头) | 20 字节 | 总大小为 20 字节。 | |
| ICMP 协议头 | 类型 | 1 | 8 位,表示 ICMP 消息的类型(例如,8 表示 Echo 请求,0 表示 Echo 响应)。 |
| 代码 | 1 | 8 位,表示消息的具体子类型。 | |
| 校验和 | 2 | 16 位,表示数据的校验和,用于检测传输过程中数据是否损坏。 | |
| 标识符 | 2 | 16 位,用于标识请求的 ID,通常用于匹配请求和响应。 | |
| 序列号 | 2 | 16 位,用于标识请求的顺序。 | |
| 总计(ICMP 头) | 8 字节 | 总大小为 8 字节。 | |
| IP + ICMP 头总和 | 28 字节 | 20 字节(IP 头) + 8 字节(ICMP 头)= 28 字节。 |



















