IP記錄路由選項
發表于:2007-05-26來源:作者:點擊數:
標簽:
ping程序為我們提供了查看IP記錄路由(RR)選項的機會。大多數不同版本的ping程序都提供-R選項,以提供記錄路由的功能。它使得ping程序在發送出去的IP數據報中設置IPRR選項(該IP數據報包含ICMP回顯請求報文)。這樣,每個處理該數據報的路由器都把它的IP地
ping程序為我們提供了查看IP記錄路由(RR)選項的機會。大多數不同版本的ping程序都提供-R選項,以提供記錄路由的功能。它使得ping程序在發送出去的IP數據報中設置IPRR選項(該IP數據報包含ICMP回顯請求報文)。這樣,每個處理該數據報的路由器都把它的IP地址放入選項字段中。當數據報到達目的端時,IP地址清單應該復制到ICMP回顯應答中,這樣返回途中所經過的路由器地址也被加入清單中。當ping程序收到回顯應答時,它就打印出這份IP地址清單。
這個過程聽起來簡單,但存在一些缺陷。源端主機生成RR選項,中間路由器對RR選項的處理,以及把ICMP回顯請求中的RR清單復制到ICMP回顯應答中,所有這些都是選項功能。幸運的是,現在的大多數系統都支持這些選項功能,只是有一些系統不把ICMP請求中的IP清單復制到ICMP應答中。
但是,最大的問題是IP首部中只有有限的空間來存放IP地址。我們從圖3-1可以看到,IP首部中的首部長度字段只有4bit,因此整個IP首部最長只能包括15個32bit長的字(即60個字節)。由于IP首部固定長度為20字節,RR選項用去3個字節(下面我們再討論),這樣只剩下37個字節(60-20-3)來存放IP地址清單,也就是說只能存放9個IP地址。對于早期的ARPANET來說,9個IP地址似乎是很多了,但是現在看來是非常有限的(在第8章中,我們將用Traceroute工具來確定數據報的路由)。除了這些缺點,記錄路由選項工作得很好,為詳細查看如何處理IP選項提供了一個機會。
IP數據報中的RR選項的一般格式如圖7-3所示。

圖7-3IP首部中的記錄路由選項的一般格式
code是一個字節,指明IP選項的類型。對于RR選項來說,它的值為7。len是RR選項總字節長度,在這種情況下為39(盡管可以為RR選項設置比最大長度小的長度,但是ping程序總是提供39字節的選項字段,最多可以記錄9個IP地址。由于IP首部中留給選項的空間有限,它一般情況都設置成最大長度)。
ptr稱作指針字段。它是一個基于1的指針,指向存放下一個IP地址的位置。它的最小值為4,指向存放第一個IP地址的位置。隨著每個IP地址存入清單,ptr的值分別為8,12,16,最大到36。當記錄下9個IP地址后,ptr的值為40,表示清單已滿。
當路由器(根據定義應該是多穴的)在清單中記錄IP地址時,它應該記錄哪個地址呢?是入口地址還是出口地址?為此,RFC791[Postel1981a]指定路由器記錄出口IP地址。我們在后面將看到,當原始主機(運行ping程序的主機)收到帶有RR選項的ICMP回顯應答時,它也要把它的入口IP地址放入清單中。
原文轉自:http://www.kjueaiud.com
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|