[TCP/IP詳解:學習筆記]ARP:位址解析通訊協定

來源:互聯網
上載者:User

ARP:位址解析通訊協定

       當一台主機把乙太網路資料幀發送到位於同一區域網路上的另一台主機時,是根據48 bit的乙太網路地址來確定目的介面的。裝置驅動程式從不檢查IP資料報中的目的IP地址。

       位址解析為32 bit的IP地址和資料連結層使用的任何類型的地址提供動態映射。RFC 826是ARP規範描述文檔。

 

       用一個例子來解釋ARP的運行過程

輸入下面形式的命令:

       % ftp bsdi

       會發生如下步驟,這些步驟的序號1所示:

 

圖1 當使用者輸入命令”ftp 主機名稱”時ARP的操作

  1. 應用程式FTP用戶端調用函數gethostbyname把主機名稱(bsdi)轉換成32 bit的IP地址。該函數在DNS系統中成為解析器;
  2. FTP用戶端用得到IP地址建立TCP串連;
  3. TCP發送一個串連請求分段到遠端的主機,即用上述IP地址發送一份IP資料報;
  4. 如果目的主機在本網上,那麼IP資料報可以直接發送到目的主機上;如果目的主機在一個遠程網路上,那麼就通過IP選路函數來確定位於本網上的下一站路由器地址;
  5. 假定是一個乙太網路,那麼發送端必須把32 bit的IP地址變換成48 bit的乙太網路地址。從邏輯Internet地址到對應的物理硬體地址需要進程翻譯,這就是ARP的功能;
  6. ARP發送一份ARP請求的乙太網路資料幀給乙太網路上的每個主機,該過程稱為廣播。其中,ARP請求資料幀中包含目的主機的IP地址,即如果你是這個IP地址的擁有者,請回答你的硬體地址;
  7. 目的主機的ARP層識別出這份廣播是發送端在尋問它的硬體地址,於是發送一個ARP應答。(英文原文:The destination host's ARP layer receives this broadcast, recognizes that the sender is asking for its hardware address, and replies with an ARP reply.)ARP應答中包含IP地址及對應的硬體地址。
  8. 收到ARP應答後,使ARP進行請求-應答交換的IP資料報現在就可以發送了;
  9. 發送IP資料報到目的地址。

 

在硬體層次上進行的資料交換必須有正確的介面地址(即硬體地址)。核心(如乙太網路驅動程式)必須知道目的端的硬體地址才能發送資料(這句話也就解釋了ARP存在的意義)。每個主機上都有一個ARP快取,用於存放最近Internet地址到硬體地址的映射記錄。快取中每一項的存留時間一般為20分鐘,起始時間從被建立時開始算起(存留時間在再次使用後,重新更新為20分鐘)。

 

ARP的分組格式

       ARP請求和應答分組的格式2所示。

 

圖2 用於乙太網路的ARP請求或應答分許格式

 

  1. 乙太網路前序中的前兩個欄位是乙太網路的源地址和目的地址。其中,目的地址全為1的特殊地址是廣播位址;
  2. 乙太網路框架類型表示後面資料的類型。對於ARP請求或應答來說,該欄位的值為0x0806;
  3. 硬體類型欄位表示硬體地址的類型,它的值為1即表示乙太網路地址;
  4. 協議類型欄位表示要映射的協議地址類型,它的值為0x0800即表示IP地址。它的值與包含IP資料報的乙太網路資料幀中的類型欄位的值相同;
  5. 硬體地址長度和協議地址長度分別指出硬體地址和協議地址的長度,以位元組為單位。對於乙太網路上IP地址的ARP請求或應答來說,它們的值分別為6和4;
  6. 操作欄位指出四種操作類型,即ARP請求(值為1)、ARP應答(值為2)、RARP請求(值為3)、RARP應答(值為4);
  7. 接下來的四個欄位分別是發送端的硬體地址、發送端的協議地址(IP地址)、目的端的硬體地址和目的端的協議地址。

 

ARP請求和應答過程

對於一個ARP請求來說,除目的端硬體地址以外的所有其他的欄位都有填儲值。當系統收到一份目的端為原生ARP請求報文後,它就把硬體地址填進去,然後用兩個目的端地址分別替換兩個發送端地址,並把操作欄位置為2,然後把它發送回去。

 

如果ARP請求是從一個網路的主機發往另一個網路上的主機,那麼串連這兩個網路的路由器就可以回答該請求,這個過程稱為委託ARP或ARP代理。ARP代理通過兩個物理網路之間的路由器可以相互隱藏物理網路。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.