8.Traceroute程序

介紹

traceroute能夠記錄IP數據報從一臺主機傳到另外一臺主機所通過的路由。解決了IP記錄路由選項(RR)的一些問題:網絡

  1. 不是全部路由器都支持記錄路由選項。traceroute不須要每一個路由器具有某個特殊功能
  2. 記錄了「一去一回」的IP地址,略顯浪費。traceroute只記錄「去」的過程
  3. 空間有限,最多隻能記錄9個IP

traceroute利用ICMP報文、IP首部TTL字段(生存週期)、UDP協議來實現3d

工做原理

  1. 將IP數據報TTL字段設爲1,打包成UDP包,發送給目標主機+大端口
  2. 第一個路由器接收包,TTL減1,丟棄包,返回ICMP超時報文
  3. 源主機獲取超時報文,拿到第一個路由地址
  4. 將IP數據報TTL字段設爲2,打包成UDP包,發送給目標主機+大端口
  5. 通過第一個,到達第二個路由器,TTL減爲0,丟棄包,返回超時報文
  6. 源主機獲取超時報文,拿到第二個路由器地址
  7. ...
  8. 數據報到達目的主機,發現該UDP端口太大,無服務,返回「端口不可達」報文
  9. 源主機獲取端口不可達報文,拿到目的主機地址

之因此選UDP+大端口,是由於UDP服務每每不會使用大於30000的端口,必然形成「端口不可達」code

ICMP超時報文

image_1cibgng0s1l2tdi91iho12bd4jo13.png-55.7kB

其中上面討論的TTL超時報文,代碼等於0blog

局域網輸出

image_1cibgkbtkf6hkhv1q1qfqtag9.png-30kB

廣域網輸出

image_1cibglq1q1n0fc4fcvt14gh1fg8m.png-159.7kB

注意

  1. 連續兩份數據報可能採用不一樣路由。致使traceroute記錄不許確
  2. 返回ICMP超時超時報文的路由(回)與發送UDP數據報的路由(去)可能不一樣。致使計算的RTT不是去程或者回程的兩倍
  3. 只記錄入口IP。若是路由器有多個網絡接口,可能一去一回路由相同,但顯示的IP列表去發生變化

IP源站選路選項

源站選路就是讓用戶指定路由。分爲兩種:接口

  • 嚴格源站路由:用戶指定路由表,每項必須和後一項直連,不然返回「源站路由失敗」的ICMP差錯報文
  • 寬鬆源站路由:用戶指定路由表,每項無需和後一項直連,中間能夠間隔多個路由

一般在IP首部指定上述信息ci

image_1cic32n6i19vi1msf1pgj147vhmu1g.png-38kB

  • 嚴格源站路由code爲0x89
  • 寬鬆源站路由code爲0x83
  • 指定IP條目最多9個,而且數量能夠動態調整。因爲有寬鬆源站路由,IP條目一般並不大

從主機S發送數據報給D,用戶指定源站路由R一、R2和R3路由

image_1cic386puprn12011kn4oeg8b51t.png-32.5kB

源站路由危險性比較高,通常不支持qt

相關文章
相關標籤/搜索