1、Ping包的基本概念
Ping是工作在TCP/IP网络体系结构中的应用层的一个服务命令,用于测试网络连接量以及DNS解析是否正常,它通过向特定的目的主机发送ICMP Echo请求报文,测试目的站是否可达及了解其有关状态。
2、不同操作系统默认的Ping包字节数
Windows系统:默认发送字节是32,最大字节是65500,不过在软考网络工程师教程里,提出最大字节是65527,但实际应为65500。
Linux系统:默认发送字节是64,最大字节是65507。
3、Ping包字节数的组成
以太网头部:源目MAC各6个字节,Type 2个字节,共14个字节。
IP包头:固定20个字节。
ICMP数据部分:8个固定字节+数据部分(data)的字节数,当不指定ping包大小时,Windows系统默认data部分字节数为32,Linux系统默认为64;当指定ping包大小,如使用“ping l”命令后,data部分字节数则为用户指定的数值减去ICMP报文头的8个字节和IP报头的20个字节。
4、MTU与Ping包字节数的关系
MTU(Maximum Transmission Unit)是指网络能够传输的最大数据包大小,以字节为单位,MTU的大小决定了发送端一次能够发送报文的最大字节数,如果MTU超过了接收端所能够承受的最大值,或者是超过了发送路径上途经的某台设备所能够承受的最大值,就会造成报文分片甚至丢弃,加重网络传输的负担。
通常情况下MTU用以指示整个IP报文的最大长度(IP头+三层Payload),换句话说MTU是一个三层的定义,此外IP报文头固定20字节,所以当MTU为1500时,数据载荷可以封装1480字节(如果是发送ping包,这里的1480就是指ICMP报文的长度)。
5、示例说明
假设ping 5000字节平均耗费1ms而ping 45000字节平均耗费4ms,往返额外花费3ms单程额外花费1.5ms,多发送40000字节即320000比特,吞吐量近似计算为(450005000)8 bit / (10241024*0.0015s )= 203.45Mbps,当然这一估算是非常粗略的,假设路径上其他数据流基本不变的情况,也没有考虑路径上所有链路的异常情况。
在Linux中通过假设ping 5500字节平均耗费0.696ms而ping 65500字节平均耗费4.207ms,往返额外花费3.511ms单程额外花费1.7555ms,多发送60000字节即480000比特,吞吐量近似计算为(655005500)8 bit / (10241024*0.0017555s )= 260.7597Mbps,同样这一估算也是非常粗略的,假设路径上其他数据流基本不变的情况,也没有考虑路径上所有链路的异常情况。
网络测试ping包的字节数因操作系统、用户设置等因素而异,了解ping包字节数的组成、MTU与ping包字节数的关系有助于更好地进行网络测试和故障排查。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/149584.html