天天看點

ARP位址解析原理ARP位址解析原理

摘自:《深入了解計算機網絡》 王達著 機械工業出版社

相關知識連結:

1. IPV4資料報頭部格式請點選這裡

2. IPv6資料報頭部格式請點選這裡

3. IPv4資料報的封裝與解封裝請點選這裡

4. IPv4資料報的分段與重組請點選這裡

5. ARP協定封包格式及ARP表

ARP位址解析原理

ARP位址解析原理ARP位址解析原理

在上圖中,現假設主機A和B在同一個網段(均位于192.168.1.0/24網段) ,主機A要向主機B發送資訊。主機A和主機B的IP位址和MAC位址均在圖中已有辨別,此時主機A已知道主機B的IP位址,要想獲得主機B的MAC位址,棘突的位址解析流程如下。

同一網段的ARP位址解析流程

  1. 主機A首先檢視自己的ARP表(它是一個IP位址與MAC位址的映射表),确定其中是否包含有主機B的IP位址和對應的MAC位址。如果找到了對應的MAC位址,則主機A直接利用ARP表中的MAC位址對IP資料包進行幀封裝,并将資料包發送給主機B。
  2. 如果主機A在ARP表中找不到對應的MAC位址,則先緩存該資料封包,然後以廣播方式(目的MAC位址為廣播位址——FFFFFF,任意網段的節點都可以接受到)發送一個ARP請求封包。ARP請求封包中的發送端(源)IP位址和發送端MAC位址分别為主機A的IP位址(192.168.1.1)和MAC位址(0002-6779-0F4C),目的IP位址和目的MAC位址為主機B的IP位址(192.168.1.2)和全0的MAC位址。因為ARP請求封包是以廣播方式發送,是以該網段上的所有主機都可以接收到該請求包,但隻有其IP位址與目的IP位址一緻的主機B才會對該請求進行處理。
  3. 主機B将ARP請求封包中的發送端(即主機A)的IP位址和MAC位址存入自己的ARP表中。然後以單點傳播方式向主機A發送一個ARP相應封包,應答封包中就包含了自己的MAC位址,也就是原來在請求封包中要請求的目的MAC位址。
  4. 主機A收到來自主機B的ARP響應封包之後,将主機B的MAC位址加入到自己的ARP表中以用于後續封包的轉發,同時将原來緩存的IP資料包再次修改(在目的MAC位址字段填上主機B的MAC位址)後發送出去。

不同網段的ARP位址解析流程

  1. 如果主機A不知道網關的MAC位址(也就是主機A的ARP表中沒有網關對應的MAC位址表項),則主機A先在本網段中發出一個ARP請求廣播,ARP請求封包中的目的IP位址為網關的IP位址,代表其目的就是想獲得網關的MAC位址。如果主機A已經知道網關的MAC位址,則略過此步。
  2. 網關收到ARP廣播包後同樣會向主機A發回一個ARP應答包。當主機A收到的應答包中獲得網關的MAC位址後,在主機A向主機B發送的原封包的目的MAC位址字段填上網關的MAC位址後發給網關。
  3. 如果網關的ARP表中已有主機B對應的MAC位址,則網關直接将在來自主機A的封包中的目的MAC位址字段填上主機B的MAC位址後轉發給B。
  4. 如果網關ARP表中沒有主機B的MAC位址,網關會再次向主機B所在的網段發送ARP廣播請求,此時目的IP位址為主機B的IP位址,當網關從收到來自主機B的應答封包中獲得主機B的MAC位址後,就可以将主機A發來的封包重新再目的MAC位址字段填上主機B的MAC位址後發送給B。

繼續閱讀