ping和tracert命令
  

এ塔铃独语别黄昏এ 1503

{{ttag.title}}
ping和tracert命令
Ping简介
Ping是基于ICMP协议实现的。通过从源端向目的端发送ICMP回显请求(Echo Request)报文后,根据是否收到目的端的ICMP回显应答(Echo Reply)报文来判断目的端是否可达。即源端在一个有效时间内(等待回显应答报文超时时间之前)收到目的端返回的ICMP回显应答报文,则说明目的端可达。如果在有效时间内,没有收到应答报文,则说明目的端不可达。对于可达的目的端,根据发送报文个数、接收到响应报文个数来判断链路的质量,根据Ping报文的往返时间来判断链路的质量。


这里只列举了常用的参数,并对参数进行解释说明。详细的命令参数解释和使用方法请参见相应版本“命令参考” 网络管理与监控命令-Ping和Tracert配置命令中的ping命令。
ping [ ip ] [ -a source-ip-address | -c count | -f | -s packetsize | -t timeout ] *host
  • -a:设置发送ECHO-Request报文的源IP地址,如果不指定源IP地址,将采用出接口的IP地址作为ICMP ECHO-Request报文发送的源地址。
  • -c:设置发送ECHO-Request报文的次数,缺省为5。当网络质量不高时,可以增加发送报文数目,通过丢包率来检测网络质量。
  • -f:设置发送的报文不分片,如果MTU值小于报文大小会丢弃该报文。
  • -s:设置发送ECHO-Request报文大小(不含IP和ICMP头),缺省报文长度是56字节。
  • -t:设置发送完ECHO-Request后,等待ECHO-REPLY的超时时间。在网络状况不好的情况下,可以适当改大该参数。缺省为2s,即2s内没有收到回复报文即认为目的不可达。
  • host:可以是IP地址或域名,如果是域名会首先进行DNS解析,并显示解析后的IP地址。



可以配合-s和-f参数来探测中间链路最大的MTU(链路PMTU),如设置-s为1472可以通而1473不通,则该链路最大MTU为1500(1472+20IP头+8ICMP头)。
PC上的Ping功能与操作系统相关,这里以Windows操作系统为例说明:
ping [ -n number ] [ -t ] [ -l number ] [ -f ] [ -a ] ip-address
  • -n:Ping报文的个数,缺省值为5。
  • -t:持续地Ping直到人为中断,Ctrl+Break暂时中止Ping命令并查看当前的统计结果,而Ctrl+C则中断命令的执行。
  • -l:设置Ping报文所携带的数据部分的字节数,设置范围从0至65500。
  • -f:设置发送的报文不分片,如果MTU值小于报文大小会丢弃该报文。
  • -a:反向解析IP地址为主机名。
  • ip-address:设置Ping命令的目的IP地址。

ping信息说明<HUAWEI> ping 10.135.18.118  PING 10.135.18.118: 56  data bytes, press CTRL_C to break                          Reply from 10.135.18.118: bytes=56 Sequence=1 ttl=255 time=1 ms                  Reply from 10.135.18.118: bytes=56 Sequence=2 ttl=255 time=1 ms                  Reply from 10.135.18.118: bytes=56 Sequence=3 ttl=255 time=2 ms                  Reply from 10.135.18.118: bytes=56 Sequence=4 ttl=255 time=1 ms                  Reply from 10.135.18.118: bytes=56 Sequence=5 ttl=255 time=2 ms                --- 10.135.18.118 ping statistics ---                                              5 packet(s) transmitted                                                          5 packet(s) received                                                             0.00% packet loss                                                                round-trip min/avg/max = 1/1/2 ms
ping命令的显示信息说明:
  • 设备发出了5个ping包,均收到了回应。
  • 发出的ping包的大小为缺省的56字节。
  • ttl=255说明ping的目的设备与发出ping报文的设备直接相连。
  • time=1ms说明报文回应时间为1ms,该参数通常可以作为网络是否拥塞的参考。

缺省情况下,ping命令发送5个ping报文,建议使用-c参数进行多次ping,可以更准确反应当前网络的状况。根据返回的ping报文个数,可以对网络状况进行判断。
故障现象
可能原因

全部可达,但时间较长
  • 中间网络状况不佳。
  • 网关设备做了QoS,限制了转发速度。


全部不可达
  • 网络中断(含设备与线缆)。
  • 中间经过的防火墙设备不允许进行Ping探测,丢弃了ICMP报文。
  • 网络产生环路,TTL减到1后被丢弃。
  • 网络拥塞导致报文响应慢。


部分可达
  • 网络状况不佳,部分报文被丢弃。
  • 中间网络配置有负载分担,且其中部分分担网络故障。
  • 遭到“泛洪”攻击。

Tracert简介
Ping可以告诉用户目标是否可达,而Tracert命令用于测试数据报文从发送主机到目的地所经过的网关,它主要检查网络连接是否可达,以及分析网络什么地方发生了故障。
图1 Tracert工作流程图

Tracert也是基于ICMP协议来实现的,如[url=mkMSITStore:E:\%E8%B5%84%E6%96%99\%E5%8D%8E%E4%B8%BA\%E5%8D%8E%E4%B8%BAS%E7%B3%BB%E5%88%97%E5%9B%AD%E5%8C%BA%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%BB%B4%E6%8A%A4%E5%AE%9D%E5%85%B8.chm::/zh-cn_topic_0107651038.html#ZH-CN_TOPIC_0107651038__fig_dc_cfg_ping_000301]图1[/url]所示,Tracert的工作流程为:
  • 源端(SwitchA)向目的端(日志主机)发送一个UDP报文,TTL值为1,目的UDP端口号是大于30000的一个数,因为在大多数情况下,大于30000的UDP端口号是任何一个应用程序都不可能使用的端口号。
  • 第一跳(SwitchB)收到源端发出的UDP报文后,判断出报文的目的IP地址不是本机IP地址,将TTL值减1后,判断出TTL值等于0,则丢弃报文并向源端发送一个ICMP超时(Time Exceeded)报文(该报文中含有第一跳的IP地址10.1.1.2),这样源端就得到了SwitchB的地址。
  • 源端收到SwitchB的ICMP超时报文后,再次向目的端发送一个UDP报文,TTL值为2。
  • 第二跳(SwitchC)收到源端发出的UDP报文后,回应一个ICMP超时报文,这样源端就得到了SwitchC的地址(10.1.2.2)。
  • 以上过程不断进行,直到目的端收到源端发送的UDP报文后,判断出目的IP地址是本机IP地址,则处理此报文。根据报文中的目的UDP端口号寻找占用此端口号的上层协议,因目的端没有应用程序使用该UDP端口号,则向源端返回一个ICMP端口不可达(Destination Unreachable)报文(该报文含有目的端的IP地址10.1.3.2)。
  • 源端收到ICMP端口不可达报文后,判断出UDP报文已经到达目的端,则停止Tracert程序,从而得到数据报文从源端到目的端所经历的路径(10.1.1.2;10.1.2.2;10.1.3.2)。

tracert命令格式
tracert [ -a source-ip-address | -f first-ttl | -m max-ttl | -p port | -q nqueries | -w timeout ] *host
  • -a:指明本次Tracert命令配置的报文源地址。如果不指定源地址,将采用出接口的IP地址作为Tracert报文发送的源地址。
  • -f:指定初始TTL。设置first-TTL,当经过的跳数小于此参数值,由于TTL字段的值大于0,经过的这几个节点不会返回ICMP超时报文给源主机。如果已经设置了max-TTL参数值,first-TTL的取值必须小于max-TTL。
  • -m:指定最大TTL。通常情况下,max-TTL的值被设置为经过站点的跳数。如果已经设置了first-TTL参数值,max-TTL的取值必须大于first-TTL。缺省情况下,最大TTL为30。
  • -p:指定目的主机的UDP端口号。

      如果不指定目的主机的UDP端口号,Tracert命令使用大于32768的随机的端口作为目标设备的接收报文端口。
      如果指定目的UDP端口号,需要避免采用对端已经开启的端口号,否则会导致Tracert失败。
  • -q:指定每次发送的UDP探测数据报文的个数。当网络质量不高时,可以增加发送探测数据报文的数目,保证探测报文能够到达目的节点。缺省情况下,每次发送三个UDP探测数据报文。
  • -w:等待响应报文的超时时间。当发送数据报文到达某网关超时,则输出“ * ”。如果网络质量不高且速度很慢,建议增加发送数据报文的超时时间。缺省超时时间为5000毫秒。
  • host:可以是IP地址或域名,如果是域名会首先进行DNS解析,并显示解析后的IP地址。

PC上的Tracert功能与操作系统相关,这里以Windows操作系统为例说明:
tracert [ -d ] [ -h maximum_hops ] [ -j host-list ] [ -w timeout ] host
  • -d:不解析主机名。
  • -h:指定最大TTL的数值。
  • -j:设定松散源地址路由列表。
  • -w:用于设置UDP报文的超时时间,单位为毫秒。
  • host:指定目的主机的域名或IP地址。

tracert信息说明<HUAWEI> tracert 10.135.18.118 traceroute to  10.135.18.118(10.135.18.118), max hops: 30 ,packet length: 40,press CTRL_C to break  1 192.168.200.100 10 ms  2 ms  2 ms  2  *  *  *  3 10.135.18.118 10 ms  1 ms  2 ms
显示信息每行包含编号、到达的设备IP地址、3次报文的响应时间。中间部分显示为“* * *”,说明该节点设备配置不允许Ping和Tracert。
当网络上出现路由环路时,使用ping命令只能知道接收端出现超时错误,而tracert命令能够很容易发现路由环路等潜在问题。在Tracert某地址时,多次出现相同的地址,即可认为出现了路由环路

打赏鼓励作者,期待更多好文!

打赏
16人已打赏

JM 发表于 2022-11-3 16:05
  
谢谢分享,有助于工作!
新手031815 发表于 2022-11-5 22:04
  
感谢分享有助于工作和学习。
新手741261 发表于 2022-11-6 21:51
  
感谢分享,构建全联接的未来!
司马缸砸了光 发表于 2022-11-6 22:17
  
感谢分享,构建全联接的未来!
新手078326 发表于 2022-11-6 23:12
  
感谢分享,构建全联接的未来!
JM 发表于 2022-11-6 23:16
  
感谢分享,构建全联接的未来!
新手899116 发表于 2022-11-6 23:26
  
感谢分享,构建全联接的未来!
新手517842 发表于 2022-11-6 23:31
  
感谢分享,构建全联接的未来!
水若善 发表于 2022-11-7 09:14
  
坚持每日学习打卡
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
每周精选
干货满满
技术笔记
产品连连看
2024年技术争霸赛
技术咨询
标准化排查
技术晨报
GIF动图学习
2023技术争霸赛专题
安装部署配置
新版本体验
功能体验
自助服务平台操作指引
文档捉虫活动
通用技术
秒懂零信任
信服课堂视频
答题自测
每日一记
玩转零信任
技术圆桌
在线直播
问题分析处理
SDP百科
畅聊IT
专家问答
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
流量管理
运维工具
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
齐鲁TV
华北区交付直播

本版版主

12
185
6

发帖

粉丝

关注

本版达人

LoveTec...

本周分享达人

新手24116...

本周提问达人