TCP-IP學習筆記(八)——RARP:逆地址解析協議

1、引言

具有本地磁盤的系統引導時,一般是從磁盤上的配置文件中讀取 IP地址。但是無盤機,如X終端或無盤工作站,則需要採用其他方法來獲得 I P地址。
網絡上的每個系統都具有唯一的硬件地址,它是由網絡接口生產廠家配置的。無盤系統的RARP實現過程是從接口卡上讀取唯一的硬件地址,然後發送一份RARP請求(一幀在網絡上廣播的數據),請求某個主機響應該無盤系統的IP地址(在RARP應答中)。

2、RARP分組格式

這裏寫圖片描述
RARP分組的格式與ARP分組基本一致(見圖)。它們之間主要的差別是RARP請求或應答的幀類型代碼爲0x8035,而且RARP請求的操作代碼爲3,應答操作代碼爲4。
對應於ARP,RARP請求以廣播方式傳送,而R ARP應答一般是單播(unicast)傳送的。

3、RARP服務器

RARP在概念上簡單,但是服務器的設計與系統相關且比較複雜。但是提供一個ARP服務器很簡單,通常是TCP/ IP在內核中實現的一部分。由於內核知道IP地址和硬件地址,因此當它收到一個詢問 IP地址的ARP請求時,只需用相應的硬件地址來提供應答就可以了。
RARP服務器的複雜性在於,服務器一般要爲多個主機(網絡上所有的無盤系統)提供硬件地址到IP地址的映射。該映射包含在一個磁盤文件中(在 Unix系統中一般位於/etc/ethers目錄中)。由於內核一般不讀取和分析磁盤文件,因此RARP服務器的功能就由用戶進程來提供,而不是作爲內核的TCP/IP實現的一部分。
更爲複雜的是,RARP請求是作爲一個特殊類型的以太網數據幀來傳送的(幀類型字段值爲0x8035)。這說明RARP服務器必須能夠發送和接收這種類型的以太網數據幀。在附錄A中,我們描述了BSD分組過濾器、Sun的網絡接口栓以及SVR4數據鏈路提供者接口都可用來接收這些數據幀。由於發送和接收這些數據幀與系統有關,因此RARP服務器的實現是與系統捆綁在一起的。
RARP服務器實現的一個複雜因素是RARP請求是在硬件層上進行廣播的,這意味着它們不經過路由器進行轉發。爲了讓無盤系統在RARP服務器關機的狀態下也能引導,通常在一個網絡上(例如一根電纜)要提供多個RARP服務器。
當服務器的數目增加時(以提供冗餘備份),網絡流量也隨之增加,因爲每個服務器對每個RARP請求都要發送RARP應答。發送RARP請求的無盤系統一般採用最先收到的RARP應答(對於ARP,我們從來沒有遇到這種情況,因爲只有一臺主機發送 ARP應答)。另外,還有一種可能發生的情況是每個RARP服務器同時應答,這樣會增加以太網發生衝突的概率。

4、小結

RARP協議是許多無盤系統在引導時用來獲取IP地址的。RARP分組格式基本上與ARP分組一致。一個RARP請求在網絡上進行廣播,它在分組中標明發送端的硬件地址,以請求相應IP地址的響應。應答通常是單播傳送的。
RARP帶來的問題包括使用鏈路層廣播,這樣就阻止大多數路由器轉發RARP請求,只返回很少信息:只是系統的IP地址。雖然RARP在概念上很簡單,但是RARP服務器的實現卻與系統相關。因此,並不是所有的TCP/IP實現都提供RARP服務器。

發佈了33 篇原創文章 · 獲贊 11 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章