PING 命令中的TIL值

 
TTL是生存时间的意思,就是说这个ping的数据包能在网络上存在多少时间。当我们对网络上的主机进行ping操作的时候,我们本地机器会发出一个数据包,数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络开销的增大。当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失。就像上面ping曙光博客的时候第三次那样,出现Request timed out的情况,增加TTL来减少网络资源的消耗。默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。(这个是从网络上找到的),曙光博客的目的主机是采用FreeBSD系统的,在这里可能TTL值是64,而不是UNIX主机的255,所以在从我这里到目的主机经过了64-51=13个路由。当我们不知道目的主机的操作系统的时候我们可以根据TTL来猜测,但是不一定100%准确,如果目的主机是windows,但是经过了比如75个路由器,那么TTL的返回值是128-75=53,那么你可能认为这个目的主机是Linux系统,但是一般不会经过那么多的路由器,所以通过TTL来判断目的主机的操作系统还是有一定的依据的。 


  默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。

 

TTL并不能判断源地址到目的地址经过多少个路由,只是生存时间的设置,只是设定的值。
你ping到的ttl值,只是设置的值,windows系统的机器默认为128,linux一般默认为64。这个也是可以改的,比如我的winXP把ttl改为64,也可以一定程度上欺骗一些菜鸟黑客,让他以为我的是linux系统。
每过一个路由,ttl减1,所以ttl设定的过长,访问一个不存在的网站时,需要较长时间才能显示出“无法打开”,因为他尝试了较多的路径。TTL设置得过小,一些网络不好需要多绕一些路由的网站就有可能打不开,不过这是不太可能的,很少有目标地址,真的需要经过32个以上的路由。

你可能感兴趣的:(ping)