在昨天晚上的計算機網絡實驗中,老師讓我們做的實驗是試用一些網絡常用的指令,比如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來判斷目的主機的作業系統還是有一定的依據的。 /有收獲。。。