天天看點

《TCP/IP詳解 卷1:協定》讀書筆記 第八章 Traceroute程式第八章 Traceroute程式

第八章 Traceroute程式

1.引言

Traceroute程式可以讓我們看到IP資料報從一台主機傳到另一台主機所經過的路由。

(盡管不能保證從源端發往目的端的兩份連續的IP資料報具有相同的路由,但是大多數情況下是這樣的。)

Traceroute程式還可以讓我們使用IP源路由選項。

2.Traceroute程式的操作

traceroute程式使用ICMP封包和IP首部的TTL字段來實作。

運作原理:

(1)首先發送TTL為1的IP資料報給目标位址,處理這個IP資料報的第一個路由器把TTL減1為0,丢棄該資料報,并傳回一份逾時ICMP封包,由此得到第一個路由器的IP(入口IP).

(2)再次發送TTL為2的IP資料報給目标位址,第二個路由器把TTL減1為0,步驟同上,通過傳回的逾時ICMP封包,得到了第二個路由器的IP位址.

(3)然後依次發送TTL為3,4…n的資料報,分别記錄傳回的逾時ICMP封包的IP,即對應跳的路由IP.

(4)最終達到目标位址.判斷依據:發送的IP資料報封裝的為UDP資料報,【選擇的是一個不可能使用的UDP端口】,當到達目标位址時,目标位址将傳回’端口不可達’的ICMP封包,而不是路由傳回的逾時ICMP封包.

有兩種不同的ICMP“逾時”封包,它們的code字段不同。一種是在TTL值等于0時産生的,其code字段為0,另一種是主機在組裝分片時發生逾時而發送的“組裝封包逾時”封包,其code字段為1.

3.IP源站選路選項

源站選路的思想是由發送者指定路由,它有兩種形式:

  • 嚴格的源路由選擇,發送端指明IP資料報所必須采用的确切路由,如果發現下一個指定的路由器不在其直接連接配接的網絡上,就傳回一個“源站路由失敗”的ICMP差錯封包。
  • 寬松的源站選路,可以指明一個資料報經過的IP位址清單。

繼續閱讀