寝室网络割接导致本本上不了网了,于是在其他地方ping本本的IP来试,结果出现了TTL expired in transit的提示,这种提示并不常见,如下图所示:

TTL,expired,transit


ping 和 tracert 的结果

用tracert来看路由状况,原来是出现路由环路导致TTL超时。

出现路由环路的解决方法是重新设定路由配置,避免环路。这个一般要由网络运营商来处理了。

回顾一下TTL的概念:

TTL是Time To Live的缩写,是指一个网络层的数据包(package)的生存周期,即数据包被路由器丢弃之前允许通过的路由跳数。 TTL由发送主机设置,以防止数据包不断在IP网络上永不终止地循环(考虑到网络有环路的情况)。转发IP数据包时,要求路由器至少将TTL减小1,减为0则丢弃该数据包。

因而出现以上TTL expired in transit的原因有两种:

1.源主机与目标主机之间的路由跳数超过了设定的TTL值,可以通过增加TTL值来避免,ping命令中可以用-i参数来指定
2.网络路由上出现路由环路,需要通过修改路由配置来解决
回顾下学过的知识,备忘

Ping 出现TTL expired in transit错误原因分析及解决办法

Ping 出现: TTL expired in transit.   今天发现电信送的一条固定IP地址出现问题,查确认属于是他们私自更改了我们的IP地址.电话通知电信大客经理...在下午接通知,已经改好! 
我觉得还是自已测试一下,不能太相信别人的话,因此我通知他们稍等下. 

1、我先PING了一下IP地址,结果发现: 

C:\Documents and Settings\xm_dengwh>ping 218.xxx.xxx.xxx (这里是我们的IP地址) 
 
Pinging 218.xx.xx.xx with 32 bytes of data: ,~FyC_%*  
 
Reply from 218.85.151.173: TTL expired in transit. g/so3F%v .  
Reply from 218.85.151.173: TTL expired in transit. 
Reply from 218.85.151.173: TTL expired in transit. 
Reply from 218.85.151.173: TTL expired in transit. 
 
需要注意的是: 我的IP地址:218.xxx.xxx.xxx和218.85.151.173不同. 
 
不是正常的TTL返回时间,从提示来看应该是TTL耗尽了,为什么TTL会耗尽呢?难道是路由器配置错误,形成环路了使数据包不停的在两个路由器之间传送,使TTL耗尽?为了证实我的猜想,我觉定使用tracert看一下所经过的路由器情况. 
C:\Documents and Settings\xm_dengwh>tracert 218.85.xx.xx 
 
Tracing route to mx2.bestcheer.com [218.85.xxx.xxx]
over a maximum of 30 hops: 
 
1 10 ms 1 ms 1 ms 59.xx.xx.xx 
2 1 ms 2 ms 1 ms 61.154.238.102 
3 * * * Request timed out. 
4 1 ms 3 ms 1 ms 218.85.151.173 
5 * * * Request timed out. 
6 2 ms 2 ms 1 ms 218.85.151.173 
7 * * * Request timed out. 
8 2 ms 2 ms 2 ms 218.85.151.173 
9 * * * Request timed out. 
10 * 2 ms 2 ms 218.85.151.173 
11 * * * Request timed out. 
12 3 ms 3 ms 3 ms 218.85.151.173 
 
从结果来看,应该是第3hop转数据包到第4hop(218.85.151.173)上,然后又转第3hop上,因此数据在第3路由器与第4个路由器之间造成循环使数据不停的两个路由器之间转发. 
马上通知电信公司,把路由配置错误,造成数据包循环的情况告诉他们,20分钟后问题解决.