RARP

具有本地磁盤的系統引導時,一般是從磁盤上的配置文件中讀取IP地址。但是無盤機,如X終端或無盤工作站,則需要採用其他方法來獲得IP地址(RARP).

  無盤系統的RARP實現過程是從接口卡上讀取唯一的硬件地址,然後發送一份RARP請求,請求某個主機響應該無盤系統的IP地址(RARP應答)。
  RARP格式與ARP基本一致,它們之間主要的差別是RARP請求或應答的幀類型代碼爲0x8035,請求的操作代碼爲3,應答操作代碼爲4。
  RARP的例子:
  強制sun主機從網絡上引導,而不是從本地磁盤引導,在主機bsdi上運行RARP服務程序和tcpdump命令,可看到如下輸出:

第一行是sun用自己的硬件地址以廣播的方式進行請求,請求的意思是(誰是8:0:20:3:f6:42請告訴8:0:20:3:f6:42,即自己找自己)。

  第二行是bsdi進行響應,響應的意思是告訴請求主機"8:0:20:3:f6:42就是sun"。
  第三行是sun接收到了他自己的IP地址後,向bsdi主機的8CFCOD21.SUN4C文件發送一個TFTP讀請求,八個十六進制數字8CFCOD21表求主機sun的IP地址,文件名的後綴SUN4C表示被引導系統的類型。這一步就是無盤系統發送TFTP請求來讀取引導映象。
  第2行中的以太網數據幀長度比最小長度(60字節)要小,原因是我們在發送該以太網數據幀的系統(bsdi)上運行tcpdump命令,在鏈路層的上層,以太網還沒開始填充空白字符以達到最小傳輸長度。
  當網絡上沒有RARP服務器時,會以時間間隔遞增-復位的循環方式重發(比相同時間間隔重發要好)。
  RARP服務器的複雜性在於,服務器要爲網絡上所有的無盤系統提供硬件地址到IP地址的映射。該映射包含在一個磁盤文件中(在Unix系統中一般位於/etc/ethers目錄中)。由於內核一般不讀取和分析磁盤文件,因此RARP服務器的功能就由用戶進程來提供,而不是作爲內核的TCP/IP實現的一部分(ARP服務器通常是TCP/ IP在內核中實現的一部分)。
  更爲複雜的是,RARP請求是作爲一個特殊類型的以太網數據幀來傳送的(幀類型字段值爲0x8035)。這說明RARP服務器必須能夠發送和接收這種類型的以太網數據幀。由於發送和接收這些數據幀與系統有關,因此R ARP服務器的實現是與系統捆綁在一起的。
  另一個複雜因素是RARP請求是在硬件層上進行廣播的,意味着它們不經過路由器進行轉發。爲了讓無盤系統在RARP服務器關機的狀態下也能引導,通常在一個網絡上(例如一根電纜)要提供多個RARP服務器。當服務器的數目增加時(提供冗餘備份),網絡流量也隨之增加,因爲每個RARP服務器對每個RARP請求都要發送RARP應答。發送RARP請求的無盤系統一般採用最先收到的RARP應答。另外,還有一種可能發生的情況是每個RARP服務器同時應答,這樣會增加以太網發生衝突的概率。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章