天天看點

解讀《TCP/IP詳解》(卷1):05章:RARP(逆位址解析協定) 1.分組格式2.過程3.RARP伺服器設計的複雜性

   上一節,我們講到的ARP協定是主機知道自己的IP來查詢自己的硬體位址。但是不同于PC,網絡上有一種裝置(比如無盤工作站)沒有本地磁盤,是以無法在系統引導時獲得自己的IP位址。但是這些裝置由網絡接口廠家配置了唯一的硬體位址,是以它們可以獲知自己的硬體位址。如果要得到自己的IP位址,它就會發送一個包含自己MAC位址的RARP請求的廣播包給網絡上某個主機,來響應該系統的IP位址。

1.分組格式

解讀《TCP/IP詳解》(卷1):05章:RARP(逆位址解析協定) 1.分組格式2.過程3.RARP伺服器設計的複雜性

    RARP的分組格式與ARP的分組格式相同。關于分組中每個字段的具體解釋,參見上一篇博文

解讀《TCP/IP詳解》(卷1):04章:ARP(位址解析協定)

    其不同之處是RARP的幀類型為0x8035而ARP幀類型為0x0806,以及對應的操作字段OP不同:

RARP   ARP
請求 3 1
應答 4 2

2.過程

    與ARP相同的是,它們的請求包都是廣播,而應答包都是單點傳播。當我們發送RARP請求的主機,收到了IP位址的響應之後,它就會發送一個TFTP(簡單檔案傳輸協定)的讀請求(RRQ)給一個檔案(其檔案名為IP位址,字尾名為系統的類型),是引導映像,用于引導系統。進而得到了本機IP位址。(筆者注:按照原書此過程是在BSD系統下,其他系統或許不同,是以才會産生系統相關性)

    另外,由剛才的分組格式我們可知RARP請求加上以太網首部共占用了42位元組,而以太網的最小傳遞機關是60位元組,是以會對請求封包填充空白字元。

    而當發送了RARP請求之後,卻得不到響應(比如網絡上沒有RARP伺服器)時,就會重發。每次重發的時間間隔會以兩倍的比例增加。而當間隔達到某一閥值時,又會恢複到初始值,再重複上一過程。

3.RARP伺服器設計的複雜性

    不像概念這般簡單,真正設計實作起來是相當複雜的。ARP服務是在TCP/IP的核心中實作的,核心知道IP位址和硬體位址,直接查表就可以了。

    RARP伺服器則要為網絡上的所有無盤系統提供IP位址與硬體位址的映射。該映射檔案儲存在磁盤上,而核心是不通路磁盤檔案的,是以讀取和分析該檔案的過程隻能由使用者程序完成。并不作為TCP/IP核心實作的一部分,原因大概是ARP協定的使用率要比RARP使用率多得多,畢竟無盤工作站還是少數。

    此外RARP請求本身也是一個以太網資料幀。這需要RARP伺服器能夠提供接收與發生這種資料幀的能力。但是RARP的資料幀的發送和接收是與系統相關的。是以RARP伺服器的實作是與系統捆綁在一起的。

    不僅一個RARP伺服器要為多個無盤系統提供映射,并且一個無盤系統的網絡也需要提供多個RARP伺服器。避免個别伺服器關機,并且提供備援備份。但伺服器數量增加,網絡的流量也會增加,而一個RARP請求發出後,多個伺服器都會響應,一般是采用最先收到的響應,但是如果多個響應同時收到,則會造成以太網沖突。

繼續閱讀