(8)Traceroute程序

一、簡介

    Traceroute程序可以讓我們看到IP數據報從一臺主機傳到另一臺住進所經過的路由及IP源路由選項。

二、Traceroute程序的操作

    爲什麼不使用IP記錄路由選項,而是重新開發一個新的應用程序,原因有以下三點:

    (1)原來不是所有的路由器都支持記錄路由選項;

    (2)記錄路由一般是單向的選項。發送端設置了該選項,那麼接收端不得不從收到的IP首部中提取出所有的信息,然後全部返回給發送端;

    (3)IP首部中留給選項的空間有限。

    Traceroute程序使用ICMP報文和IP首部中的TTL字段。TTL初始值一般爲64,每個處理數據報的路由器都需要把TTL值減1。TTL值相當於一個跳站計數器。

    TTL字段的目的是防止數據報在選路時不休止的在網絡中流動。即它給數據報上加上了一個生存上限。路由器丟棄TTL字段爲0或1的數據報,並給信源機發一份ICMP超時信息,Traceroute程序的關鍵在於包含這份ICMP信息的IP報文的信源地址是該路由器的IP地址。

    Traceroute程序操作過程是這樣的:它發送一份TTL字段爲1的UDP數據報給目的主機,處理這份數據報的第一個路由器將TTL值減1,丟棄該數據報,併發回一份超時ICMP報文。這樣就得到了該路徑中的第一個路由器的地址。然後,“Traceroute”程序發送一份TTL值爲2的數據報,這樣我們就可以得到第二個路由器的地址。繼續這個過程,直至該數據報到達目的主機。Traceroute程序發送一份UDP數據報給目的主機,但它選擇一個不可能的值作爲UDP端口號(大於30000),使目的主機的任何一個應用程序都不可能使用該端口。因爲,當該數據報到達時,將使目的主機的UDP模塊產生一份“端口不可達”錯誤的ICMP報文。這樣,Traceroute程序就可以分析接收到的ICMP報文是端口不可達的還是超時報文來判斷是否到達目的主機。

三、IP源站選路選項

    源站選路的思想是由發送者指定路由。它可以採用以下兩種形式:

    (1)嚴格的源路由選擇。發送端指明IP數據報所必須採用的確切路由。如果一個路由器發現源路由所指定的下一個路由器不在其直接連接的網絡上,那麼它就返回一個“源站路由失敗”的ICMP差錯報文。

    (2)寬鬆的源站選路。發送端指明瞭一個數據報經過的IP地址清單,但是數據報在清單上指明的任意兩個地址之間可以通過其他路由器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章