ping
命令是网络管理员和用户用于测试网络连接的一个工具,它通过发送icmp(internet control message protocol)回应请求消息到目标主机,并等待回应响应来检测网络的状态,在讨论ping包的最大大小时,我们通常指的是icmp数据包的有效载荷大小。
默认ping包大小
大多数操作系统中的ping工具默认的数据包大小是32字节(64字节包括icmp头),加上8字节的icmp头,总计72字节,这个大小包括了icmp类型、代码、校验和和时间戳等字段。
自定义ping包大小
虽然默认大小是32字节,但是许多ping工具允许你自定义发送的数据包大小,在linux系统中,你可以使用s
选项来指定不同的数据包大小:
ping s <packetsize> <target>
其中<packetsize>
是你希望设置的数据包大小,而<target>
是你想要ping的目标地址。
操作系统对ping包大小的限制
不同的操作系统可能对可以发送的最大ping包大小有不同的限制,这些限制可能是由于底层协议栈的设计或安全考虑所决定的。
windows系统
windows系统的ping工具默认情况下会发送32字节的数据,但可以使用l
参数来指定更大的数据包大小,不过,windows ping有65500字节的最大数据包长度限制。
linux系统
linux系统中的ping工具也允许自定义数据包大小,并且通常没有严格的上限,但受到mtu(maximum transmission unit)的限制,以太网的标准mtu通常是1500字节,这意味着ip层的有效载荷不能超过1500字节,考虑到ip头通常占用20字节,所以实际可用于icmp数据的空间会更小。
其他系统
其他类unix系统如freebsd、macos等也有相似的功能和限制。
单元表格
操作系统 | 默认大小 | 自定义选项 | 最大数据包大小限制 | mtu影响 |
windows | 32字节 | l |
65500字节 | 无 |
linux | 32字节 | s |
受限于mtu | 是 |
freebsd | 32字节 | s |
受限于mtu | 是 |
macos | 32字节 | s |
受限于mtu | 是 |
相关问题与解答
q1: 为何需要调整ping包的大小?
a1: 调整ping包的大小可以帮助诊断不同类型的网络问题,较大的ping包可以模拟传输大文件时的网络表现,帮助发现可能的丢包或延迟问题,较小的包则可以用来快速检测网络连通性。
q2: 如果我想要发送比mtu还要大的ping包会发生什么?
a2: 如果你尝试发送比mtu还要大的ping包,那么数据包会在源主机上被分片,如果路径mtu发现(path mtu discovery)未启用或失败,这可能导致数据包到达不了目标主机,通常建议不要发送超过mtu大小的单包,以避免此类问题。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/20779.html