ARP廣播詳解(FTP為例)


Ago linux運維群: 93324526 筆者QQ:578843228

任何時候我們敲入下面這個形式的命令:
% ftp bsdi
都會進行以下這些步驟。這些步驟的序號如圖 4 - 2所示。

1)應用程序FTP客戶端調用函數gethostbyname(3)把主機名(bsdi)轉換成32bit的IP地址。這個函數在DNS(域名系統)中稱作解析器,我們將在第14章對它進行介紹。這個轉換過程或者使用DNS,或者在較小網絡中使用一個靜態的主機文件(/etc/hosts)。
2)FTP客戶端請求TCP用得到的IP地址建立連接。
3)TCP發送一個連接請求分段到遠端的主機,即用上述IP地址發送一份IP數據報
4)如果目的主機在本地網絡上(如以太網、令牌環網或點對點鏈接的另一端),那么IP數據報可以直接送到目的主機上。如果目的主機在一個遠程網絡上,那么就通過IP選路函數來確定位於本地網絡上的下一站路由器地址,並讓它轉發IP數據報。在這兩種情況下,IP數據報都是被送到位於本地網絡上的一台主機或路由器。
5)假定是一個以太網,那么發送端主機必須把32bit的IP地址變換成48bit的以太網地址。從邏輯Internet地址到對應的物理硬件地址需要進行翻譯。這就是ARP的功能。ARP本來是用於廣播網絡的,有許多主機或路由器連在同一個網絡上。
6)ARP發送一份稱作ARP請求的以太網數據幀給以太網上的每個主機。這個過程稱作廣播,如圖4-2中的虛線所示。ARP請求數據幀中包含目的主機的IP地址(主機名為bsdi),其意思是“如果你是這個IP地址的擁有者,請回答你的硬件地址。”

7)目的主機的ARP層收到這份廣播報文后,識別出這是發送端在尋問它的IP地址,於是發送一個ARP應答。這個ARP應答包含IP地址及對應的硬件地址。
8)收到ARP應答后,使ARP進行請求—應答交換的IP數據報現在就可以傳送了。
9)發送IP數據報到目的主機。
在ARP背后有一個基本概念,那就是網絡接口有一個硬件地址(一個48bit的值,標識不同的以太網或令牌環網絡接口)。在硬件層次上進行的數據幀交換必須有正確的接口地址。但是,TCP/IP有自己的地址:32bit的IP地址。知道主機的IP地址並不能讓內核發送一幀數據給主機。內核(如以太網驅動程序)必須知道目的端的硬件地址才能發送數據。ARP的功能是在32bit的IP地址和采用不同網絡技術的硬件地址之間提供動態映射。


免責聲明!

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



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