关于TTL大家容易忽略的地方

首先来科普一下什么是TTL:

TTL值(Time To Live)生存时间又称为生存周期.就是说这个ping的数据包能在网络上存在多少时间。
当我们对网络上的主机进行ping操作的时候,我们本地机器会发出一个ICMP数据包,数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络开销的增大。当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失。出现Request timed out的情况,增加TTL来减少网络资源的消耗。
关于TTL大家容易忽略的地方_第1张图片
那TTL等与52是什么意思呢?
默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255,当数据包传送到一个路由器之后,TTL就自动减1, 所以:
52 = 系统TTL默认值 - 经过的路由个数。

重点来了:
我窗口显示的是Windows系统啊,为什么不直接写64-经过的路由个数 = 52呢?这也是大家平时不太注意的地方,
因为这里的系统TTL默认值 是远端要ping 的服务端的系统TTL默认值 ,因为不同系统的默认值不同,因此无法确定远端的系统是什么操作系统,(当然,例如TTL为240,那肯定一下子就猜到了)

---------------------------------------
附:一些常用系统的TTL默认值
LINUX 64 
WIN2K/NT/XP 128 
UNIX 系列 255

你可能感兴趣的:(网络,TCP/IP)