糯米文學吧

位置:首頁 > 網路 > 網路診斷

使用TTL分析診斷網路故障

一、TTL簡介

使用TTL分析診斷網路故障

TTL,全稱是Time To Live,中文名為生存時間,它是IP報頭中一個非常重要的引數。通過TTL的值,我們可以判斷出當前網路IP層的工作狀況。

TTL告訴網路中的路由器資料包在網路中的時間是否太長而應被丟棄,TTL的最初設想是確定一個時間範圍,超過此時間就把包丟棄。由於資料包每經過一個路由器時,TTL值都會至少被路由器減1,所以TTL值通常表示包在被丟棄前還能最多經過的路由器個數。當TTL值為0時,路由器丟棄該資料包,併發送一個ICMP報文給資料包的.最初發送者。

有很多原因會導致資料包在一定時間內不能被傳遞到目的地。例如,不正確的路由表配置可能導致資料包的無限迴圈,而解決方法就是在一段時間後丟棄這個資料包,然後給傳送者傳送一個報文,由傳送者決定是否重發該資料包。當網路出現這種情況時,資料包就會在路由表中配置錯誤的路由器處重複傳送,每傳送一次,TTL值減1,直到TTL為0時路由器丟棄該資料包,造成網路中資料傳輸錯誤。

作業系統和傳輸協議不同,對應TTL的預設值也不同。表1列出了常見操作系統通過TCP和UDP協議傳輸時的TTL預設值。

二、 檢視資料包的TTL值並分析傳輸故障

網路中的網路裝置,其內部都是由作業系統進行處理的(有些硬體裝置將系統預裝在了硬體晶片裡面),在網路遇到傳輸故障時,我們可以使用網路檢測軟體,結合上表的資訊對網路中流通的資料包進行檢測,檢視資料包的TTL值,以確定故障是否由錯誤的路由等原因引起。圖1是使用科來網路分析系統5.0檢視一個數據包TTL值的情況。

  圖中的生存時間(TTL)是247,結合表1,確定出這個資料包在從源端(這裡是)到目的端(這裡是)共經歷了255-247=8個路由器,且在傳輸過程中未出現故障。

  注意:

1. 確定資料包在網路中經歷了多少個路由器,可用資料包源端裝置的TTL預設值減去捕獲到的資料包TTL值;

2. 在不知道資料包源端裝置的預設TTL時,一般用大於捕獲資料包的TTL,且最接近這個TTL的預設值。

3. TTL欄位長1個位元組,所以TTL的最大值255;

通過檢視資料包的TTL,可以確定網路傳輸是否正常。如果捕獲到的資料包的TTL值過小,則表示網路中很可能存在傳輸故障,應及時檢查網路中三層裝置的路由表配置,以及各主機上的路由表資訊。