|
數(shù)據(jù)包解析
從捕獲的數(shù)據(jù)報,我們可以看到Tracert命令是如何使用IP生存時間(TTL)字段和ICMP錯誤消息,確定一個主機到網(wǎng)絡(luò)上其他主機的路由。IP包頭的TTL(Time to Live)字段,是由發(fā)送端初始設(shè)置的一個8bit字段,它指出數(shù)據(jù)包的有效時間,即生存周期。每個處理數(shù)據(jù)報的路由器都需要把TTL值減1或減去數(shù)據(jù)報在路由器中的停留秒數(shù)。由于大多數(shù)的路由器轉(zhuǎn)發(fā)數(shù)據(jù)報的時延都小于1秒鐘,因此TTL最終成為一個跳站的計數(shù)器,按照ICMP協(xié)議的有關(guān)規(guī)定,當(dāng)路由器收到一份數(shù)據(jù)報,如果其TTL字段是0或1,則路由器丟棄該數(shù)據(jù)報,并給源主機發(fā)送一份ICMP“超時”信息。Tracert命令正是據(jù)此發(fā)現(xiàn)路由器、確定路由的。
下面我們來對數(shù)據(jù)包逐幀解析,體會Tracert命令的工作過程。
幀1:主機A(10.4.152.16)向主機B(10.4.153.165)發(fā)送一個信息類型為8,代碼為0的ECHO請求包。IP包頭的TTL值為1,如圖5所示。

圖5
幀2:由于目的主機在另一個網(wǎng)段,因此數(shù)據(jù)包被發(fā)往本地網(wǎng)關(guān)路由器A(10.4.152.254),路由器A收到主機A發(fā)來的的ECHO請求包后,返回了一個一個類型為11,代碼為0的ICMP包;貜(fù)“超時”(Time to live exceeded in transit),如圖6所示。

圖6
從這兩幀我們可以看到, 主機A首先發(fā)送TTL為1的回顯數(shù)據(jù)包,路徑上第一個路由器A(10.4.152.254)在轉(zhuǎn)發(fā)數(shù)據(jù)包之前將數(shù)據(jù)包上的TTL遞減 1,當(dāng)數(shù)據(jù)包上的TTL減為0時,路由器丟棄該數(shù)據(jù)包,并將“ICMP Time Exceeded”(超時)的消息發(fā)回源主機A,由此,發(fā)現(xiàn)路徑上的第一個路由器。
主機A為了獲得往返延遲時間的信息,在這一跳發(fā)送了三個TTL都為1、長度、目標地址相同的報文(幀1、幀3、幀5),路由器A依次丟棄這三個報文,并向主機A發(fā)送“超時”消息(幀2、幀4、幀6)。
幀7:主機A(10.4.152.16)向目標主機B(10.4.153.165)發(fā)送TTL值為2的回顯數(shù)據(jù)包。
幀8:路由器B(10.4.147.82)路由器B向源主機(主機A)發(fā)送一個“ICMP Time Exceeded(超時)”數(shù)據(jù)包。
我們看到,Tracert命令將 TTL 遞增1,主機A發(fā)送TTL值為2的回顯數(shù)據(jù)包,數(shù)據(jù)報由路由器A轉(zhuǎn)發(fā)至路由器B,由于該數(shù)據(jù)報的TTL值在第一跳時被減去了1,因此在到達路由器B后,TTL值為0。路由器B丟棄該數(shù)據(jù)包,并向主機A返回“ICMP Time Exceeded(超時)”的報文,從而獲得路徑上的第二個路由器信息。同樣主機A在這里也發(fā)送了相同TTL值的3個報文,以獲得平均往返的延遲時間信息。
幀13 、幀15、幀17:主機A(10.4.152.16) 發(fā)送TTL值為3的3個回顯數(shù)據(jù)包。
幀14 、幀16、幀18:主機B(10.4.153.165)回復(fù)類型為0,代碼為0的3個ECHO包。
至此,由于主機A發(fā)出的數(shù)據(jù)包TTL值為3,發(fā)出的數(shù)據(jù)包經(jīng)過兩次轉(zhuǎn)發(fā)后,到達目的主機B,主機B返回ECHO應(yīng)答包,至此實現(xiàn)主機A至主機B的路由跟蹤。
通過以上對數(shù)據(jù)報的解析,我們看到Tracert命令通過控制IP報文的生存期(TTL),實現(xiàn)路由跟蹤提供路由器到目的地址的每一跳的信息。TTL等于1的ICMP回顯請求報文被首先發(fā)送,路徑上的第一個路由器將會丟棄該報文并且發(fā)送回ICMP超時錯誤消息的報文。隨后,Tracert命令的每次發(fā)送過程都將 TTL遞增1,通過檢查中間路由器發(fā)送回的“ICMP Time Exceeded”消息來確定路由。這個過程將持續(xù)到目標響應(yīng)或TTL達到最大值,從而最終確定故障點或完整的路由路徑。 |
|
【收藏】【打印】【進入論壇】 |
|
|
|
|
|
|
|