第5章 RARP:逆位址解析協定
5.1 引言
具有本地磁盤的系統引導時,一般是從磁盤上的配置檔案中讀取 I P位址。但是無盤機,如X終端或無盤工作站,則需要采用其他方法來獲得 I P位址。
網絡上的每個系統都具有唯一的硬體位址,它是由網絡接口生産廠家配置的。無盤系統的R A R P實作過程是從接口卡上讀取唯一的硬體位址,然後發送一份 R A R P請求(一幀在網絡上廣播的資料),請求某個主機響應該無盤系統的 I P位址(在R A R P應答中)。
在概念上這個過程是很簡單的,但是實作起來常常比 A R P要困難,其原因在本章後面介紹。R A R P的正式規範是RFC 903 [Finlayson et al. 1984]。
5.2 RARP的分組格式
R A R P分組的格式與A R P分組基本一緻(見圖 4 - 3)。它們之間主要的差别是 R A R P請求或應答的幀類型代碼為0 x 8 0 3 5,而且R A R P請求的操作代碼為3,應答操作代碼為4。對應于A R P,R A R P請求以廣播方式傳送,而R A R P應答一般是單點傳播( u n i c a s t )傳送的。
5.3 RARP舉例
在網際網路中,我們可以強制 s u n主機從網絡上引導,而不是從本地磁盤引導。如果在主機b s d i上運作R A R P服務程式和t c p d u m p指令,就可以得到如圖5 - 1那樣的輸出。用-e參數使得t c p d u m p指令列印出硬體位址:

R A R P請求是廣播方式(第 1行),而第2行的R A R P應答是單點傳播方式。第 2行的輸出中 a ts u n表示R A R P應答包含主機s u n的I P位址(1 4 0 . 2 5 2 . 1 3 . 3 3)。
在第3行中,我們可以看到,一旦 s u n收到I P位址,它就發送一個T F T P讀請求(R R Q)給檔案8 C F C 0 D 2 1 . S U N 4 C(T F T P表示簡單檔案傳送協定。我們将在第 1 5章詳細介紹)。檔案名中的8個十六進制數字表求主機 s u n的I P位址1 4 0 . 2 5 2 . 1 3 . 3 3。這個I P位址在R A R P應答中傳回。檔案名的字尾S U N 4 C表示被引導系統的類型。
t c p d u m p在第3行中指出I P資料報的長度是6 5個位元組,而不是一個U D P資料報(實際上是一個U D P資料報),因為我們運作t c p d u m p指令時帶有- e參數,以檢視硬體層的位址。在圖5 - 1中需要指出的另一點是,第2行中的以太網資料幀長度比最小長度還要小(在4 . 5節中我們說過應該是6 0位元組)。其原因是我們在發送該以太網資料幀的系統(b s d i)上運作t c p d u m p指令。應用程式r a r p d寫4 2位元組到B S D分組過濾裝置上(其中1 4位元組為以太網資料幀的報頭,剩下的2 8位元組是R A R P應答),這就是t c p d u m p收到的副本。但是以太網裝置驅動程式要把這一短幀填充空白字元以達到最小傳輸長度(6 0)。如果我們在另一個系統上運作t c p d u m p指令,其長度将會是6 0。
從這個例子可以看出,當無盤系統從 R A R P應答中收到它的 I P位址後,它将發送 T F T P請求來讀取引導映象。在這一點上我們将不再進一步詳細讨論無盤系統是如何引導的(第 1 6章将描述無盤X終端利用R A R P、B O O T P以及T F T P進行引導的過程)。
當網絡上沒有R A R P伺服器時,其結果如圖5 - 2所示。每個分組的目的位址都是以太網廣播位址。在w h o- 後面的以太網位址是目的硬體位址,跟在t e l l後面的以太網位址是發送端的硬體位址。請注意重發的頻度。第一次重發是在 6 . 5 5秒以後,然後增加到 4 2 . 8 0秒,然後又減到 5 . 3 4秒和6 . 5 5秒,然後又回到 4 2 . 7 9秒。這種不确定的情況一直繼續下去。如果計算一下兩次重發之間的時間間隔,我們發現存在一種雙倍的關系:從 5 . 3 4到6 . 5 5是1 . 2 1秒,從 6 . 5 5到8 . 9 7是2 . 4 2秒,從 8 . 9 7到1 3 . 8 0是4 . 8 3秒,一直這樣繼續下去。當時間間隔達到某個門檻值時(大于4 2 . 8 0秒),它又重新置為5 . 3 4秒。
逾時間隔采用這樣的遞增方法比每次都采用相同值的方法要好。在圖 6 - 8中,我們将看到一種錯誤的逾時重發方法,以及在第 2 1章中将看到T C P的逾時重發機制。