5.4 RARP伺服器的設計
雖然R A R P在概念上很簡單,但是一個 R A R P伺服器的設計與系統相關而且比較複雜。相反,提供一個 A R P伺服器很簡單,通常是 T C P / I P在核心中實作的一部分。由于核心知道 I P位址和硬體位址,是以當它收到一個詢問 I P位址的A R P請求時,隻需用相應的硬體位址來提供應答就可以了。
5.4.1 作為使用者程序的RARP伺服器
R A R P伺服器的複雜性在于,伺服器一般要為多個主機(網絡上所有的無盤系統)提供硬體位址到I P位址的映射。該映射包含在一個磁盤檔案中(在 U n i x系統中一般位于/ e t c / e t h e r s目錄中)。由于核心一般不讀取和分析磁盤檔案,是以 R A R P伺服器的功能就由使用者程序來提供,而不是作為核心的T C P / I P實作的一部分。
更為複雜的是,R A R P請求是作為一個特殊類型的以太網資料幀來傳送的(幀類型字段值為0 x 8 0 3 5,如圖2 - 1所示)。這說明R A R P伺服器必須能夠發送和接收這種類型的以太網資料幀。在附錄A中,我們描述了 B S D分組過濾器、 S u n的網絡接口栓以及 S V R 4資料鍊路提供者接口都可用來接收這些資料幀。由于發送和接收這些資料幀與系統有關,是以 R A R P伺服器的實作是與系統捆綁在一起的。
5.4.2 每個網絡有多個RARP伺服器
R A R P伺服器實作的一個複雜因素是 R A R P請求是在硬體層上進行廣播的,如圖 5 - 2所示。這意味着它們不經過路由器進行轉發。為了讓無盤系統在R A R P伺服器關機的狀态下也能引導,通常在一個網絡上(例如一根電纜)要提供多個 R A R P伺服器。
當伺服器的數目增加時(以提供備援備份),網絡流量也随之增加,因為每個伺服器對每個R A R P請求都要發送R A R P應答。發送R A R P請求的無盤系統一般采用最先收到的 R A R P應答(對于A R P,我們從來沒有遇到這種情況,因為隻有一台主機發送 A R P應答)。另外,還有一種可能發生的情況是每個R A R P伺服器同時應答,這樣會增加以太網發生沖突的機率。