1、ping介绍

ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序 。

Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo 请求报文,测试目的站是否可达及了解其有关状态

2、ping报文

Ping命令发送的数据使用ICMP协议

ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。
ICMP属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。
当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。

3、ping命令参数

(1)ping /? :ping命令使用帮助。

(2)无参数 ping :在默认情况下,一般都是只发送四个32字节数据包,通过这个命令从数据包返回的最短时间、最长时间、平均时间可以衡量网络速度、延迟,从丢失率可以衡量网络的稳定性。

  (3) ping -t :不间断地Ping指定计算机,直到管理员中断。

  (4) ping -n:跟无参数ping一个样。在默认情况下无参数ping一般都是只发送四个32字节数据包,-n的话可以指定发送多少数据包,通过这个命令从数据包返回的最短时间、最长时间、平均时间可以衡量网络速度、延迟,从丢失率可以衡量网络的稳定性.

  (5) ping -l:发送size指定大小的到目标主机的数据包。

在默认的情况下Windows的ping发送的数据包大小为32byte(字节),最大能发送65500byte(字节)。当一次发送的数据包大于或等于65500byte(字节)时,将可能导致接收方计算机瘫痪。所以微软限制了这一数值,这个参数配合其它参数同时使用危害非常强大,比如攻击者结合-t参数实施无限死亡之ping攻击。(所以它具有危险性,不要轻易向别人计算机使用)。
例如:ping -l 65500 -t 192.168.1.79 会连续对192.168.1.79的IP地址执行无限死亡之ping攻击,直到被用户以Ctrl+C中断。当然,如果你只有一台计算机也许没有什么效果,但如果有很多计算机一起发出攻击(例如几百、几千、甚至上万台计算机同时对某个IP进行死亡之ping,那么就可以使对方完全瘫痪,网络严重堵塞,由此可见威力非同小可)。


  (6) ping -r:在“记录路由”字段中记录传出和返回数据包的路由,探测经过的路由个数,但最多只能跟踪到9个路由。例如:ping 39.156.66.14 -n 1 -r 8(发送一个数据包,最多记录9个路由)。 

ping -r 路由跟踪原理详情可查看ping -r 和 tracert 测试结果分析→传送门

(7) for /L %D in (1,1,255) do ping XXX.XXX.X.%D:批量ping网段,对于一个网段ip地址众多,如果单个检测实在麻烦,那么可以直接批量ping网段检测是那个ip地址出了问题,一目了然。例如:for /L %D in (1,1,255) do ping 192.168.2.%D可以批量ping192.168.2.1-192.168.2.255的IP地址。

 

4、使用ping检测MTU值

在默认的情况下Windows的ping发送的数据包大小为32byte(字节),最大能发送65500byte(字节)。当一次发送的数据包大于或等于65500byte(字节)时,将可能导致接收方计算机瘫痪。所以微软限制了这一数值,这个参数配合其它参数同时使用危害非常强大,比如攻击者结合-t参数实施无限死亡之ping攻击。(所以它具有危险性,不要轻易向别人计算机使用)。

802.3对数据帧的长度都有一个限制,其最大值分别是1500字节和1492字节
链路层的这个特性称为MTU,即最大传输单元。不同类型网络的数帧长度大多数都有一个上限。

ping -l 1492:发送一个定长数据包
ping -f :通知操作系统不能私自更改数据包大小

ping -l 1465 -f www.baidu.com

 1465超过了本网络所允许的最大帧长,需要分片(DF=1)才能发送,但是-f参数要求操作系统不能私自更改数据包大小导致数据帧发送失败。

继续测试……

 这是访问外网的情况,访问局域网是否一样,试一下:

不一样欸……,于是得出结论:

我这台机器访问外网的MTU是1464字节,访问本地局域网的MTU是65500字节

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐