TCP/IP協議詳解 卷1 Traceroute程序

作用

可以讓我們看到IP數據報從1臺主機傳到另一臺主機所經過的路由。比Ping程序看到更多東西

優勢

  1. 不是所有路由器都支持RR選項。所以有些路由器上會出現不記錄IP的現象。Traceroute不需要路由器具備任何特殊的功能
  2. RR選項的數據報的目的Ping服務器(主機)會將接受到的RR清單Copy回去。然後再加上回去的IP清單。這樣就是X2。這會收到一些限制
  3. IP首部的空間有限,不能存放太多的IP(最多9個)
  4. 將TTL字段改成跳站的計數器

TTL

如果TTL的值爲1或0時,路由器丟棄該數據報。並且給源主機發送一份ICMP超時信息。Traceroute程序將該路由器的IP地址包含在這份ICMP數據報中

如果是主機返回的ICMP是端口不可達的ICMP數據報。以此來區分路由器發送回來的還是主機發送回來的

ICMP超時報文

在這裏插入圖片描述

如果是TTL值等於0的時候產生的那code字段的值爲0
如果是組裝分片的時候發生超時,則code字段的值爲1

Traceroute注意事項

不能保證ICMP報文的路由與Traceoute程序發送的UDP數據報採用同一路由
返回的ICMP數據報中包含的信源地址是路由器地址。但是IP記錄路由選項(RR)是記錄發送接口的地址。由於路由器有多個接口因此 A-B和B-A上運行Traceroute的返回結果可能會有所不同

IP源站選路選項

路由器發現下一站需要轉發的路由器通常是採用Traceroute這樣的程序完成。由發送者指定路由
規則有兩種,嚴格的源路由選擇(SSRR)和寬鬆的源路由選擇(LSRR)
嚴格的源路由選擇: 發送端指明IP數據報所要經過的確切路由,如果該IP不在其直接相連的網絡上,則返回一個“源站路由失敗”的ICMP差錯報文
寬鬆的源路由選擇:發送端指名IP數據報所要經過的IP清單,清單上的任意兩個IP地址之間可以通過其他路由器

IP首部路由選項通用格式
在這裏插入圖片描述
跟IP路由選項的格式一樣,不同的是源站選路一開始就要把清單填入。並且只需要分配足夠的空間即可(IP地址清單通長會少於9個)
寬鬆的源站選路的code是0x83,嚴格的是0x89

源站路由選項運行過程:

  1. 發送主機收到源站路由清單,將第1個表項去掉(數據報的最終目的地),將剩下的項往前移動,然後將目的地址作爲清單最後一項,類似把原本第一行的數據丟到最後一行去
  2. 每個處理數據報的路由都會檢查自己的IP是否是清單中的最終地址。如果不是則轉發(寬鬆的源站選路纔可以)
  3. 如果路由是最終地址了那就將路由器的外出接口相對應的IP設爲源地址,指針+4
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章