在网络诊断和测试中,ping
命令是一个非常常用的工具,它主要用于发送互联网控制消息协议(icmp)回显请求到目标主机,并等待回显回复来检查网络的连通性。ping
命令可以携带的数据量是有限的,这个限制通常被称为ping包的最大大小。
什么是ping包?
一个ping包,或称icmp数据包,是当使用ping
命令时发送的网络数据单元,它包含icmp头和可选的数据载荷。
默认ping包大小
在大多数系统中,默认的ping
数据包大小是32字节(octets),加上8字节的icmp头和ip头,总共是40字节的ip数据报文。
调整ping包大小
可以通过修改ping
命令的参数来改变数据包的大小,在很多系统上,可以使用s
参数后跟一个指定的大小(如65500字节)来设置自定义的ping包大小。
最大ping包大小
理论上,ip数据包的最大传输单元(mtu)决定了数据包的最大大小,以太网的默认mtu通常是1500字节,由于ip头和icmp头的存在,实际可用于数据的字节会更少。
在没有特别配置的情况下,你可以发送的最大ping包通常会小于mtu减去ip头和icmp头的大小,如果mtu是1500字节,而ip头和icmp头总共占用28字节,那么最大的ping包大约是1472字节。
实际中可能会遇到更小的限制,许多路由器和网络设备对通过的数据包大小有额外的限制,并且可能会丢弃超出其限制的数据包,操作系统本身也可能对可以发送的最大数据包大小有所限制。
如何测试最大ping包大小
要确定你的网络允许的最大ping包大小,你可以逐渐增加ping
命令的数据包大小参数,直到你发现开始丢包为止。
ping s 1472 <目标ip>
如果没有丢包,可以尝试更大的值,直到找到最大值。
单元表格:常见网络环境下的最大ping包大小
网络环境 | mtu | 预期最大ping包大小 | 备注 |
标准以太网 | 1500字节 | 约1472字节 | 扣除28字节的ip/icmp头 |
点对点协议(ppp) | 1492字节 | 约1464字节 | 扣除28字节的ip/icmp头 |
宽带/dsl | 1492字节 | 约1464字节 | 扣除28字节的ip/icmp头 |
其他类型网络 | 可变 | 可变 | 取决于具体的mtu和头信息 |
上述表格中的数值仅供参考,因为不同网络环境和配置可能有不同的限制。
相关问题与解答
q1: 如果我想要发送大于mtu的ping包,会发生什么?
a1: 如果你尝试发送大于mtu的ping包,它将需要被分片才能在网络上传输,分片是将一个大的数据包分成几个小的数据包的过程,接收方必须重新组装这些分片才能还原完整的数据包,不过,icmp协议通常不允许对回显请求或回显回复消息进行分片,因此过大的ping包将不会被发送或接收。
q2: 为什么有时候我发送的ping包比mtu小,但仍然会丢包?
a2: 即使ping包比mtu小,也可能会因为多种原因丢包,包括网络拥塞、防火墙设置、路由器配置错误、物理线路问题等,某些网络设备可能会对icmp流量施加额外的限制或过滤,这也可能是导致丢包的原因。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/26625.html