2015年4月14日 星期二

ping結果中TTL是什麼意思

在昨天晚上的計算機網絡實驗中,老師讓我們做的實驗是試用一些網絡常用的命令,比如ping,tracert,netstat等。ping命令我們是常用的,但是你知道TTL是什麼意思麼?記得以前我在哪裡看到我們可以從TTL的值中可以看出目的主機的操作系統類型,是這樣的嗎?問了一下老師,明白了TTL的真是含義。
以下就是ping曙光博客的返回值:
C:\Documents and Settings\user>ping www.ezloo.com 
Pinging www.ezloo.com [66.235.202.42] with 32 bytes of data: 
Reply from 66.235.202.42: bytes=32 time=254ms TTL=51 
Reply from 66.235 .202.42: bytes=32 time=256ms TTL=51 
Request timed out. 
Reply from 66.235.202.42: bytes=32 time=260ms TTL=51 
Ping statistics for 66.235.202.42: Packets: Sent = 4, Received = 3, Lost = 1 (25% loss), Approximate round trip times in milli-seconds: Minimum = 254ms, Maximum = 260ms, Average = 256ms
從結果中我們可以看出曙光博客的服務器的IP地址是:66.235.202.42,所用的時間是256ms等,那TTL等與51是什麼意思呢?
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來判斷目的主機的操作系統還是有一定的依據的。


資料來源: http://www.ezloo.com/2007/05/ping_ttl.html

沒有留言:

TeraTerm是一款開放原始碼的遠程客戶端操作軟體

因為工作需求,有時我們需要從遠端登入某設備或是主機,又或者因為故障排除,需要透過serial port連入某設備進行檢查和操控。 偶然看到某SI的工程師,使用這個工具,想說也來使用看看。心中相信這應該是好工具,人家才會用它。 我自己通常都是簡單使用的話用 putty,想要用好一...