当前位置: 首页 > biancheng >正文

ping命令简单总结

ping测失败是最长出现的网络故障,面对ping不通的问题,需要有一个排查顺序,接下来就简单总结下:

1、ping命令简介

当192.168.1.1向192.168.1.2发出ping测,ping命令生成固定格式的ICMP数据请求包,ICMP协议将数据包和地址“192.168.1.2”一起交给IP层协议,IP层协议将以地址“192.168.1.2”作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并在一个映射表中查找出IP地址192.168.1.2所对应的物理地址,一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。

主机B收到这个数据帧后,先检查它的目的地址,并和本机的物理地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层协议。同样,IP层检查后,将有用的信息提取后交给ICMP协议,后者处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一模一样。

简单来说,就是利用设备间IP地址的唯一性,给目标IP地址发送数据包,并要求目的地址返回同样大小的数据包来确定设备间网络连通性。

2、同网段ping不通

同网段ping不通,返回结果是“无法访问目标主机”,该情况属于ping请求没有正常发出。

原因可能有如下几点:

A.目的地址没有开机;

B.IP地址不存在;

C.默认网管不正确;

D.子网掩码不正确;

E.是否应该走默认路由,而走了直连路由;

ping的请求已经成功发出了,但目标主机没有回复。

原因可能有如下几点:

A.防火墙端启用禁ping;

B.子网掩码不正确;

C.IP地址冲突;

D.网关不正确;

E.设备硬件故障,导致设备没有对应的mac地址,无法生成路由表,而走默认路由。

3、不同网段ping不通,返回结果是“无法访问目标主机”,该情况属于请求没有成功发出,获取不了目的ip地址与mac地址。

原因可能有如下几点:

A.目的ip地址不存在

B.检查路由表是否有缺省的路由

C.检查arp表是否有网关的mac地址

D.网关不正确

E.走默认路由

4、同网段ping不通,返回结果是“超时(time out)”,该情况属于源地址的request消息已经发出,目的地址的网关已经获取到目的地址的mac地址,但是目的地址主机没有回复,或源地址主机无法收到。这些应该检查回程路由和节点回程路由。

原因可能有如下几点:

A.防火墙端启用禁ping;

B.检查经过节点的路由是否正确,或者是否有回程路由。

C.回程路由的硬件网卡出口和ping的request的入口网卡不是同一个

D.交换机vlan对应的接口全部down了,导致vlan状态down,vlan的对应路由没有生成。

ping命令语法

64 bytes from 8.8.8.8: icmp_seq=1 ttl=111 time=45.5 ms

  • Bytes:数据字节的总数,默认值为 56 个字节,然后转换为 64 个数据字节,在这种情况下,输出为 64 字节。

  • IP 地址:目的服务器 IP 地址,这里是 8.8.8.8。

  • 序列号:每个 ICMP 包的序列号,在这种情况下为 icmp_seq=1。

  • TTL:请求的生存时间,这里是 111。

    一般 TTL 值:

    100~130ms 之间,Windows 系统 ;

    240~255ms 之间,UNIX/Linux 系统。

  • Ping Time:往返时间,以毫秒为单位测量 ping。该时间是从数据包到达目的地并在源上返回响应的那一刻计算的。此处,Ping 时间为 45.5 毫秒.

 自定义ping包数量

默认情况下,ping命令会一直发送数据包,直到使用ctrl + C 中断,使用 -c 选项则可以限制 ping 命令发送的数据包数量

自定义ping包大小

ping 的默认数据包大小为 56 (86) 字节,可以使用 ping 命令的 -s 选项来指定数据包的大小,大于或小于默认值

自定义时间间隔

默认情况下,每个请求之间的间隔是一秒,可以使用 -i 选项来增加或减少 ping 请求之间的时间间隔。

自定义超时时间

可以使用 -w 命令指定 Linux ping 命令停止发送数据包的时间量,要在 4 秒后停止显示 ping 命令,可以使用-w命令:

 添加时间戳

使用 -D 选项为 ping 响应添加时间戳

 批量 Ping 网段

对于一个网段 ip 地址众多,如果单个检测实在麻烦,那么我们可以直接批量 ping 网段检测,那个 ip 地址出了问题,一目了然。

先看代码,直接在命令行窗口输入:

for /L %D in (1,1,255) do ping 192.168.1.%D

IP 地址段修改成你要检查的 IP 地址段。

当输入批量命令后,那么它就自动把网段内所有的 ip 地址都 ping 完为止。

那么这段 “for /L %D in(1,1,255) do ping 10.168.1.%D” 代码是什么意思呢?

代码中的这个 (1,1,255) 就是网段起与始,就是检测网段 192.168.1.1 到 192.168.1.255 之间的所有的 ip 地址,每次逐增 1,直接到 1 到 255 这 255 个 ip 检测完为止。

相关文章:

  • 牛客练习赛#84 F 莫比乌斯反演+杜教筛+技巧+斐波那契数列和gcd的结论+矩阵快速幂
  • ZZNUOJ_用C语言编写程序实现1342:支配值数目(附完整源码)
  • java毕业设计后勤管理系统餐饮评价监督系统(附源码、数据库)
  • 前端基础学习笔记
  • 【TS】联合类型--类型断言--类型推断
  • 谈笑风声的秘密
  • QT影城网上售票系统
  • NetCDF数据在ArcMap中的使用
  • 打怪升级(考验思路)
  • 持续精进,改变自己