糯米文學吧

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

使用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值過小,則表示網絡中很可能存在傳輸故障,應及時檢查網絡中三層設備的路由表配置,以及各主機上的路由表信息。