tracert命令判断故障方法,tracert命令工作原理是什么?

题图来自Unsplash,基于CC0协议
导读
tracert命令的工作原理是它会让数据包逐跳进行探测,每经过一跳就记录一次时间。具体来说,发送的ICMP请求数据包里包含了"记录路由"这个选项,不但指示了要存活多少跳,还携带跳变的源IP。当第一个路由器收到来包后,用上一跳的IP替换了源IP,如此往复直到抵达目标主机。每次发送三个回应报文(或默认值,可配置)时间的数据包,每一跳都有回音跳过,最终计算往返时间并显示出口跳数。
要想诊断网络故障,掌握tracert的基本语法很关键。对于Windows系统,使用tracert目标IP或域名,后者便于记忆和记忆。比如想查百度,可以输入tracert www.baidu.com。如果想限定跳数可以加-h参数,比如tracert -h 10 www.baidu.com,30跳后就放弃探测了(默认是64,Linux是30个hop)。
当网络发生故障时,tracert会给出不同的回应。常见的错误主要有四种:源抑制,是指某跳路由器无法处理数据流,通俗点说就是路由器被怼懵了,建议降低发送速率或更换路线;路由器没有回应就直接显示*号,可能的原因有防火墙挡路、路由器没响应、目标暂时关闭或者跳过了(路径改变);目标不可达,表示到目标的路径出错,可能是IP网段不对、防火墙策略拒绝,或者中间某跳设备出了故障;超时通常是暴力的,表示下一跳没响应,跟路由器不说话,可能是网络阻塞重路由或环路导致,也恐怕是防火墙把你的探测包过滤了。
tracert能显示完整的路由路径,也就是通向目标的路到底有多长,但它不返回ping那种连续的抖动探测结果。简单说,ping碰巧通没通,tracert量量爬山有多费劲,两者的判断逻辑完全不同,各司其职。如果发现中间某跳星号连连,那多半是地儿有拦路的大爷(防火墙配置问题)或者路径上出了单独的问题。有时候叫了好几个tracert到的同一个位置总是星号,就需要重新考虑探测路径了。
每当数据包经过每一跳,路由器回传的那一跳的响应时间就会记录下来,这个时间反映了该跳的处理效率。通常用ms来单位。如果所有响应都很短,除非顶级路由器,表示网络路径质量好;如果某跳时间到天荒地老,可能就是个瓶颈。丢包更是影响网络体验的元凶,如果某一跳丢包严重,就得多打几次,或者换其他节点测试,因为它会影响到体验,尤其在视频直播、云会议等实时场景中。如果丢包发生在始发端或最终节点,还得让目标自己好好养养精神。
主要是用来控制系统时间跳数的。拿Windows例子来说,常见参数有-m设定最大跳数,就是默认设成多少后不再继续,不能取零不能太小说,-h用来限制一条路径跟踪跳数的最大数目,-j除了基本的跟踪功能,还能让CPU掉档跑高速,它有个参数叫记录路由,相当于有限让路由器记住经过的节点。虽然有这些特性,但使用时别太兴奋,大量tracert可能在中间路由器上造成冲击,就像换个马甲绕路攻击一样。
网络就像一条认知之路,tracert好比行走时一边数步间一边感受路过的风景。测时长能看出路不够宽不够直,遇到堵点会觉察出来;看到标志就知道方位不对。但也要记得,每次这样做都会消耗那条路的承载能力,要学会间歇性地走,用友好的节奏去探索。虽然可能不被所有公司欣赏,但掌握这项本领,能让你在面对故障时更加耐心、更有方法地找到出口解法。
© 版权声明
本文由盾科技原创,版权归 盾科技所有,未经允许禁止任何形式的转载。转载请联系candieraddenipc92@gmail.com