ping命令详解 ping不通处理方法

article/2025/10/7 5:51:38

概述:

Ping命令是一种用来测试ip层网络层可达的命令,属于icmp层的探查消息。当网络访问出现故障时,用来执行测试网络导通性,根据ping的结果回显来判断问题可能在哪里?

ping命令发出包是icmp协议的查询消息,路由正常导通时为双向消息,有发出requst的,有回复reply的。但有时也会出现ping命令发出,收到差错消息,这是后向单向消息,告知发送requset的源主机,通信节点故障。也会出现ping的rquest消息发出后,没有收到reply而定时器超时,显示请求超时的情况。

Ping命令正常导通情况下是icmp协议下的双向消息,通常主叫发出一串测试包,并携带对应id和序号,被测试方收到后送回对应这串测试包,并携带正确的id和序号。它是网络导通性的充分条件,能ping通,网络导通性肯定好。反之,ping不通(如请求超时)并不意味着网络不可达,有时,ping不通,但tcp和udp访问是正常的。另外返回时间和丢失包数也能反应经过路径的长短,和通信质量是否拥堵?如平时往返时间是20ms,但现在是100ms,明显有问题,要么发出慢,要么目标主机回复的慢,要么request或reply在传输经过节点造成传输延迟。

注意这里wireshark里显示的BE和LE为两种数据存储的方式时的值,实际的值只有一个。物理上对应一段数据。

Request消息如上图:

icmp层的data里封装一串字符串通常是32byte,发给对方ip。

Reply消息如下:

同样下一个request消息id不变,序号递增,默认cmd下是执行一次命令,ping的request消息发出四次,seq是连续的,步长是+1。

data里含有request里data里的数据,收发对照id,序号,data一致,就认为正常。

Ping的正常是结果回显内容:

回显一次ping的请求回显的结果三种,1正常,2不通(icmp错误,有原因值),3不通请求超时,导通时,里面有目的主机发出reply消息到达源主机时ttl值(能反映出经过路由次数),收发包数发出和收到的统计。往返的时间。通过往返时间可以看出网络传输经过节点书,传输质量,发送,接收包数判断是否拥堵丢失?

有错误原因的结果:

请求超时的回显

也有情况是在一次ping命令过程四次回显中,有的正常, 有的有错误或者请求超时,或者错误和超时的显示。会回显统计丢包。如下图:

    上图是过程中有丢包的情况。下图:是双网卡,先走直连路由,后走默认路由的情况。

 ping过程原理分析:

Ping的过程,对源主机来说,是执行命令后,分析目的主机ip,查路由表,确定ip层消息发出的接口和下一跳ip地址,确定是直连路由还是走默认路由,然后查arp缓存,是否有下一跳的mac地址缓存,有的话,直接组包发出,没有的话,要根据走直连路由还是默认路由来判断,直连路由,直接用自身接口ip发出arp消息去请求目的ipmac地址,走默认路由就去请求网关的mac地址,得到arp响应后,组包发出,没有得到arp响应就回显错误。

  获得下一跳mac地址后,就发出ping的请求消息,直连路由和默认路由是有区别的,直连路由,pingrequest发出后就两种结果,正常回包和time out请求超时。

而默认路由会有三种结果,正常回包,time out请求超时,和各种icmp层错误。原因是直连路由是对方设备直接处理pingrequst消息,而默认路由是由网关进行转发pingreuest消息,中间节点和目的主机的路由,是否在线等等情况,会影响ping的结果。

  Pingrequest被对方设备icmp层接收后,回包的过程和pingrequest消息发出过程一样,检查路由,检查arp缓存,发出pingreply消息。 

源主机ping命令的处理过程:

 

 

      cmd下ping会显示四次结果,不通情况下最多发出12次arp消息,每次一秒, time out的定时器是5s。

    目标设备收到ping的request回reply的流程如下:

 目的ip的网关处理ping的request消息如下:

 可以看到,是否回reply与目的主机的状态,位置,防火墙,是否有回程路由表项,反向路由检测有关系。

ping命令的常用用法:

ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]      [-r count] [-s count] [[-j host-list] | [-k host-list]]      [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name

ping   选项     目的域名或者ip地址  选项可以在最后,也可以在地址前面

  -t Ping 指定的计算机直到中断,就是长ping,除非ctrl+c中断

  -a 将地址解析为计算机名    很少能成功

  -n count 发送 count 指定的发出request数据包数。默认值为 4

-l length 发送包含由 length 指定发出pingrequest消息的附加内容的字节数

-f 在数据包中发送"不要分段"标志。数据包就不会被路由上的网关分段。

  -i ttl 将发出request消息ipttl"生存时间"字段设置指定的值

  -v tos "服务类型"字段设置为 tos 指定的值。

-r count ip层选项里增加"记录路由"字段中记录传出和返回数据包的路由

  -s count 指定 count 指定的跃点数的时间戳。

  -j computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9

-k computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9

  -w timeout 指定超时间隔,单位为毫秒。就是等待pingreply的定时器时长,默认是5s

Target_name 指定要 ping 的远程计算机的域名或者ip地址

图上红色的字体的这些选项,很少能用到,它是发出request消息的ip层的option里利用参数进行的。需要经过节点设备的支持,实测无法实现既定的目标,不可用。测试经过节点ip地址可以用tracert,pathping这些命令来替代。

具体常用选项说明:

-t Ping 指定的计算机直到中断,就是长ping,除非ctrl+c中断

默认是ping的去request消息发出4次,但有的特殊场景下需要一直发包,这时,就需要-t选项了。排除故障,要在目的方看收发包情况,可以用这个命令。

-n选项   -n后面跟数字,表示发出pingrequest的个数,默认间隔是一秒一个,就是定次数显示ping结果时,可以执行这个命令。

-l length 发送包含由 length 指定发出pingrequest消息的附加内容data的字节数,就是icmp层里data的字节数,一般mtu1500字节,大于这个要进行分片。应用场景是当测试节点处理能力或者时,可以使用这个选项。

  ping  192.168.205.64  -l 4000为例,除去协议包头,就是data里净数据含量了

抓包看发出分片为三包,第一片里1480字节,data里总和为4000

-w timeout 指定超时间隔,单位为毫秒。就是等待pingreply的定时器时长,默认是5s

查看wireshark里表现:

    测试域名对应的ip地址,也可用ping命令,直接输入www后面域名,就可以看到域名

   


 Ping的不通几种情况的可能原因:

判断网络故障的,就看ping的结果回显,根据回显我们判断可能的原因。

Ping回显的三种情况,正常导通,回显错误,和请求超时。其中回显错误提示,又分ping的request消息发出,和没有发出。

   对回显正常导通的,有时是网络拥塞,ping的reply收到比正常超时严重。

这是我们关心一下reply的ttl,因为直连路由的ttl值64,128.255这三种的一种,走默认路由的经过一个路由器值减一。ping结果里有统计reply的最小时间,最大时间和平均时间,根据这些判断是否经过节点拥塞。一般局域网网内,不超过1ms,广域网ip不超过100ms,若出现几百甚至秒以上的回包,说明节点或者目标设备网络拥塞验证或者有突发包影响。

    从ping的过程我们可以看出,结果是和发送方的路由,mac地址缓存,arp请求发出,经过节点的路由,目的主机的状态,目的主机的回程路由,防火墙,mac地址这些因素都会影响结果。

      ping的request消息没有发出:

      1、没有找到路由,这时显示传输失败,根本没有ping的requset消息发送出去。

如上图中没有对应的路由表项,没有可用线路时,显示传输失败。

 2、 ping结果回显是自身ip显示无法访问目的主机

如自身ip192.168.205.201,去ping192.168.205.3,这样显示肯定目的ip匹配直连路由。用自身ip发出了arp请求,但没有得到响应。

 

arp发出没有得到响应。

可能的原因:

1、目的设备没有开机,或者开机但没有接入对应的广播域,导致arp查询消息没有得到应答。

2、目的ip不存在。

3、源设备本身路由错误,没有对应访问的路由。这种情况是所有网卡状态down,没有任何直连路由和默认路由的情况。

4、源设备自身路由错误(如自身ip的掩码配置错误),应该走默认网关的ping消息,认为是同一网段,发出arp查询消息,在广播域里没到得到应答。

无法访问目的主机,是icmp的错误消息,由网络节点发出,直连路由的网络节点是发出ping动作的设备自身ip地址。跨网段是经过的网络节点用正常时ip导通时的ip地址回icmp错误消息。

ping的request消息已经发出,用其他经过节点ip地址回复的icmp错误

这种情况一般是走默认路由的情况,ping的request已经发出,常见错误有以下几种:

目的主机不可达  destnation host  unreachable          目的网络中找不到目的主机,目的网关arp查询目的主机请求没有得到广播域范围内响应。

目的网络不可达  destnation network  unreachable    经过节点没有路由可达,或者经过节点设备存在acl拦截

传输失败,一般错误  transmit failed. General failure  源设备中没有默认路由

ttl传输中过期    ttl exceeded           目标ip网段在经过的节点环境中存在路由环路

ping的request消息已经发出,回显超时的情况:

在规定时间没有收到request的reply消息,显示超时,一般定时器为5秒。

超时可能的原因:

a、检查一下目的设备的防火墙是否开启,是否拦截了ping的请求消息,导致高层收不到而没有回reply消息?

b、检查经过节点的路由是否正确是否送到错误地方?或者目的设备是否有回程路由。

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

d、交换机vlan对应的接口全部down了,导致vlan状态down,vlan的对应路由没有生成。导致节点从路由器wan口发包到公网上去,而没有回包导致time out请求超时?

 e、还有极端情况就是跨网段,环境中有突发性大包,超出某一个节点的传输最大速率,造成转发端口丢弃大量的包。现象会出现时通时断,某一段时间ping显示time out请求超时。这种情况可以查看交换机的收发情况,是否有大量丢弃的包。如有查找源头处理。

还有就是ping的结果有时有回显,有的显示time out

   可能原因:

  1、源设备环境存在路由错误,或者下一跳ip冲突,导致一些包发给错误地方。

  2、目的网络回程路由或者经过节点存在路由或者下一跳错误。

  3、传输路径上质量不好,丢失一部分包,或者经过节点设备有突发流量,丢弃一些包。

出现这种情况,就在源和目的同时抓包,开启长ping -t命令,比对ping的消息的序号看看丢了那些?目的设备是否收到,是否正常回包,然后检查对应序号包的目的mac地址,是否错误?若丢在节点,就逐级镜像,确定丢在哪一级?并检查相应问题。


http://chatgpt.dhexx.cn/article/hx9bkoNE.shtml

相关文章

ping 命令的基本使用

ping 命令的基本使用 一、主要作用二、返回值参数的意义三、ping参数四、常用1、-c2、-n3、-i4、-p5、-r6、-R7、-s8、-S9、-t10、批量ping网段 五、如何禁止他人ping你的IP 一、主要作用 1.用来检测网络的连通情况和分析网络速度 2.根据域名得到服务器ip 3.根据ping返回的TTL…

图解:Ping 命令的工作原理

目录 一、ping 命令使用的是 ICMP 协议 二、ping —— 工作原理分析 1、打个 ICMP 数据包 - 网络层 2、打个 IP 数据包 - 网络层: 3、加入 Mac 头信息 - 数据链路层 4、接收端 拆解包:物理层-数据链路层-网络层 5、接收端 构建响应包,…

ping命令整个过程详解

转自:http://wanicy.blog.51cto.com/509018/335207/ 如果你想了解ping命令的原理,看了这篇文章,你会从对网络一窍不通,到豁然开朗。 先看拓朴图: 在这里讲ping的两情况:一种是同一网段内,一种…

计算机网络——ping命令过程的详解、原理

目录 一、ping命令是用来做什么的? 1、ICMP是什么呢? 2、ping命令和icmp的关系 二、ping命令的使用 三、ping过程的原理 ping过程的详解 1、ping的是相同网段 2、使用 Cisco实验拓扑图来演示这个原理: 3、ping不同网段之间的ip 4、使…

ping命令讲解

ping命令个人讲解(日常使用) 最近正在复习、研究DOS命令时,了解到之前个人理解的ping命令时对其功能作用了解模糊不清,近日在教学视频和查找网络资料,对ping命令有了如下见解: ping命令的使用方式 使用&…

ping命令的使用

ping命令的使用 一、ping命令的基本概念 ping是一个十分基本但又十分重要的TCPIP网络工具。它的作用主要为: (1)通常用来检测网络的连通情况和测试网络速度; (2)也可以根据域名得到相应主机的IP地址; (3)根据ping返回的TTL值来判断对方所使用的操作系统…

ping 命令的用法大全(图文详解)

1、ping/? :ping命令使用帮助。(用法如下图) 2、无参数 ping :在默认情况下,一般都是只发送四个32字节数据包,通过这个命令从数据包返回的最短时间、最长时间、平均时间可以衡量网络速度、延迟&#xff0c…

Linux命令详解(1)ping命令

之前写过一个简版的ping命令介绍。看的人比较多。这次决心写一个新的,尽可能详细的版本。 -c选项,这个选项设定对目标主机地址发送请求次数。 例子1:对网关和一个不存在的主机地址执行ping -c2 如图,对网关发松了2个包&#xff…

【Ping命令的使用】

目录 前言1、Ping命令的使用方法总结 前言 ping命令常用来检测局域网内网络信号发送与接收的检测以及网络速度的检测,还可以用来判断网络是否存在故障等,对于网络运维人员来说,经常会用到,是最实用最常用的网络命令之一。 Ping命…

Ping命令详解(使用Ping这命令来测试网络连通)

相关知识点 BIOS 在计算机领域,BIOS是 "Basic Input Output System"的缩略语,译为"基本输入输出系统", 与前者读法相同。计算机在运行时,首先会进入BIOS,它在计算机系统中起着非常重要的作用。一块…

Ping 命令详解

简述: ICMP协议是“Internet Control Message Protocol”(因特网控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。 ping (Packet Internet Groper),因特网包探索器&#xf…

ping命令详解 ping命令入门详解

在这个时代,科技越来越发达,网络已经越来越成为人们不可缺少的一部分。计算机也已经是很多学校的课程了,因为计算机技术是非常有技术性的专业,它其中涉及到很多专业知识,需要通过学习才能掌握。今日小编就为大家介绍一…

ping命令(详解)

简述: ICMP协议是“Internet Control Message Protocol”(因特网控制消息协议)的缩写。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。 ping (Packet Internet Groper),因特网包探索器&#xf…

Ubuntu系统中清理DNS缓存

在下一篇文章中,我们将看一看 我们如何在Ubuntu中刷新DNS缓存。 DNS被认为是Internet连接的关键部分之一。 目的是更快地访问访问的网站。更常见的是,我们的机器会跟踪DNS记录,或者将其缓存。 迄今为止,IP地址的命名是DNS协议中…

DNS 缓存查看以及清除(转载)

转载地址:https://blog.csdn.net/cogbee/article/details/27535039 你是否因修改网站DNS解析后,却因本机DNS缓存而需要等待... 你是否遇到修改了本机的hosts文件后,必须重起firefox和ie才起作用... 其实只要清空DNS缓存这些问题都可以解决。 …

【DNS】Linux上DNS缓存的开启和清理

DNS 缓存是一个临时数据库,用于存储有关以前的 DNS 查找的信息。 换句话说,每当你访问网站时,你的操作系统和网络浏览器都会保留该域和相应 IP 地址的记录。 这消除了对远程 DNS 服务器重复查询的需要,并允许你的 OS 或浏览器快…

如何刷新DNS缓存(Windows,Mac,Chrome)

对网站进行故障排除可能是一个令人生畏的责任。当涉及到诸如刷新域名服务器(DNS)缓存之类的任务时,在您开始之前就很容易感到不知所措和困惑。 幸运的是,即使没有什么技术经验,您也可以快速,轻松地执行此特…

如何清除浏览器的 DNS 缓存:Chrome、Edge、Firefox、Safari

请访问原文链接:https://sysin.org/blog/clear-browser-dns-cache/,查看最新版。原创作品,转载请保留出处。 作者:gc(at)sysin.org,主页:www.sysin.org 对普通用户而言,关闭后重新打开浏览器一…

本机电脑清除DNS缓存+浏览器清除DNS缓存

目录 前言 一、Windows 二、Mac OS 三、Linux 四、路由器 五、浏览器 谷歌浏览器 Edge浏览器 火狐浏览器 总结语 前言 有时候在我们配置好了DNS地址后没有生效,可能是缓存导致的,这个时候我们就需要通过清除缓存的手段才能使DNS生效了&#xff…

如何查看浏览器的DNS 缓存信息

浏览器的DNS缓存查看和清除 有dns的地方,就有缓存。浏览器、操作系统、Local DNS、根域名服务器,它们都会对DNS结果做一定程度的缓存。本文总结一些常见的浏览器和操作系统的DNS缓存时间 浏览器先查询自己的缓存,查不到,则调用域…