一、traceroute概述
traceroute是一種將資料報途經路由,ip位址回顯的指令,基於icmp協議實現,通過不斷傳送不可交付的ip資料報,獲取從源主機到目標主機的路由ip。
二、traceroute工作原理
traceroute工具從源主機向目的主機傳送一連串的ip資料報,資料報中封裝的是無法交付的udp使用者資料報,預設資料報大小是40bytes。。第乙個資料報p1的生存時間ttl設定為1。當p1到達路徑上的第乙個路由器r1時,路由器r1先收下它,接著把ttl的值減一。由於ttl等於零了,r1就把p1丟棄了,並向源主機傳送了乙個icmp時間超過差錯報告報文。
源主機接著傳送第二個資料報p2,並把ttl設定為2。p2先到達路由器r1,r1收下後把ttl減1再**給路由器r2.r2收到p2時ttl為1,但減1後ttl變為零了。r2就丟棄p2,並向源主機傳送乙個icmp時間超過差錯報告報文。這樣一直繼續下去。當最後乙個資料報剛剛到達目的主機時,資料報的ttl時1.主機不**資料報,也不把ttl值減1。但因ip資料報中封裝的是無法交付的運輸層的udp使用者資料報,因此目的主機要向源主機傳送icmp終點不可達差錯報告報文。
這樣,源主機就達到了自己的目的,因為這些路由器和最後目的主機發來的icmp報文正好給出了源主機想知道的路由資訊———達到目的主機所經過的路由器的ip位址,以及到達其中的每乙個路由器的往返時間。
路由跟蹤所花費的時間受路由器數量以及網路擁塞程度影響。
三、traceroute命令引數
-d 使用socket層級的排錯功能。
-f《存活數值》 設定第乙個檢測資料報的存活數值ttl的大小。
-f 設定勿離斷位。
-g《閘道器》 設定**路由閘道器,最多可設定8個。
-i《網路介面》 使用指定的網路介面送出資料報。
-i 使用icmp回應取代udp資料資訊。
-m《存活數值》 設定檢測資料報的最大存活數值ttl的大小。
-n 直接使用ip位址而非主機名稱。
-p《通訊埠》 設定udp傳輸協議的通訊埠。
-q 設定每一跳的探測包數量。預設是3 。
-r 忽略普通的routing table,直接將資料報送到遠端主機上。
-s《**位址》 設定本地主機送出資料報的ip位址。
-t《服務型別》 設定檢測資料報的tos數值。
-v 詳細顯示指令的執行過程。
-w《超時秒數》 設定等待遠端主機回報的時間。
-x 開啟或關閉資料報的正確性檢驗。
[root@localhost ~]
traceroute baidu.com #最常用的方法
[root@localhost ~]
traceroute -m 10 baidu.com #把跳數設定為10次;
[root@localhost ~]
traceroute -n baidu.com #顯示ip位址,不查主機名
[root@localhost ~]
traceroute -p 6888 baidu.com #探測包使用的基本udp埠設定6888
[root@localhost ~]
traceroute -q 4 baidu.com #把探測包的個數設定為值4
[root@localhost ~]
traceroute -r baidu.com #繞過正常的路由表,直接傳送到網路相連的主機
[root@localhost ~]
traceroute -w 3 baidu.com #把對外發探測包的等待響應時間設定為3秒
traceroute 路由跟蹤
traceroute是乙個通用的tcp ip工具,它能顯示出資料報從本地機到達目標機時經過的所有路由器。由於traceroute會人為地給網路造成一些通訊負擔,所有它主要被系統或網路管理員,作為乙個簡單而有效的網路手工查錯工具使用,普通使用者最好少用。儘管如此,traceroute對於使用者了解in...
關於路由跟蹤指令 traceroute
我們都用過ping命令來檢查主機與目標位址是否連通,自己的主機與目標位址的通訊包通訊速率,所謂的通訊包也就是那些什麼tcp ip,udp包。原理 關於路由跟蹤 路由跟蹤指令對linux來說是traceroute,在windows則是tracert,這次就主要來說traceroute。tracerou...
跟蹤路由 Tracert
tracert 跟蹤路由 是路由跟蹤實用程式,用於確定 ip 資料報訪問目標所採取的路徑。tracert 命令用 ip 生存時間 ttl 欄位和 icmp 錯誤訊息來確定從乙個主機到網路上其他主機的路由。tracert 工作原理 通過向目標傳送不同 ip 生存時間 ttl 值的 internet 控...