ARP解析MAC地址的全過程(ARP的工作機制)


以太網環境下,同一個網段的主機之間需要互相知道對方的MAC地址,才能訪問。

TCP/IP協議棧從上層到下層的封裝過程中,第三層封裝需要知道目的IP,第二層封裝需要知道目的MAC。

目的IP一般由用戶手工輸入,或者由應用程序填充,也可以通過名稱解析系統解析得到,而目的MAC就需要使用ARP來解析

ARP解析MAC地址的過程:

第一步:

上層應用產生數據,這里用FTP協議為例,在FTP協議中定位了目的IP。

第二步:

那么,封裝的過程如下:

  • 應用層:需要FTP的控制信息,包括用戶名、密碼等;

  • 傳輸層:目的端口號為21,源為隨機端口號;

  • 網絡層:目的IP為172.16.1.200,源IP為172.16.1.1;

  • 數據鏈路層:因為不知道目的IP 172.16.1.200對應的MAC,所以目的IP到目的MAC的封裝映射失敗;

三層到二層的封裝失敗,由於二層是以太網,ARP的工作機制便會產生ARP Request去解析目的MAC,此時,源MAC為數據發起者的MAC,目的MAC地址為 ff-ff-ff-ff-ff-ff(代表所有MAC)

第三步:

ARP Request到達本網段中的所有設備上,因為目的為ff-ff-ff-ff-ff-ff,所以所有設備都可以拆掉二層的封裝,然后解讀ARP數據包中需要解析的目的IP。

第四步:

目的IP不正確的設備直接忽略這個ARP請求包,目的IP正確的設備,會產生一個ARP Reply去回應這個ARP Request。

此時,二層的源MAC為被解析設備的MAC,目的為ARP解析發起者的MAC。

第五步:

數據的發起者接到ARP Reply后,將目的IP與目的MAC的對應關系添加到自己的ARP表中。

第六步:

之前未完成二層封裝的FTP數據,這時重新開始封裝二層頭部,此時,正確的目的MAC就被封裝到了整個數據幀中。

只有完成了整個TCP/IP協議棧封裝的數據幀,才能正常的從主機上發出去。

這就是ARP解析MAC地址的整個過程。

 

本文轉自: https://blog.51cto.com/tenderrain/1983572


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM