TCP/IP協議 卷1 ARP

ARP

地址解析協議
因爲物理硬件地址是48位(網卡,網線等鏈路層的設備傳輸的地址都是採用硬件地址6*8bit)
而IP是32bit地址
這樣就需要將IP地址轉換成硬件能夠識別的地址(48bit)

##RARP
逆地址解析協議
相反,將48位鏈路層地址轉換成IP地址的協議
RARP一般用於無盤工作站

在這裏插入圖片描述

例子:

ftp bsdi

步驟:

  1. ftp客戶端調用域名轉換函數(gethostbyname)將bsdi轉換成IP地址。使用域名解析系統(DNS)或本機中的hosts文件
  2. FTP請求TCP用得到的IP地址建立連接(到了傳輸層)
  3. TCP發送分段數據到遠端的FTP主機
  4. 如果目的主機在本地則直接發回目的主機。如果在遠程網絡上,則通過IP路由確認下一站的IP地址做轉發。這時候鏈路層會使用ARP將IP地址轉換成物理硬件地址
  5. ARP發送一份ARP數據幀至以太網上的每個主機(廣播)
    在這裏插入圖片描述
  6. 目的主機的ARP層收到了該廣播數據報,識別出他尋找的IP地址之後。於是就像這份ARP地址發一份應答。應答中包含了IP地址及其對應的硬件地址
  7. 源主機收到應答之後這條線就算是建立起來了。就可以進行數據報傳送了

ARP的功能就是將32bit的IP地址和採用不同網絡技術的硬件地址之間提供動態映射

點對點鏈路不實用ARP。因爲在設置這些鏈路時必須告知系統內核鏈路的每一端的IP地址

ARP高速緩存

用來存放映射記錄。存放時間一般是20分鐘。從記錄創建開始時計算
使用arp -a 看本機所有網卡上的記錄
在這裏插入圖片描述
48bit地址用’-'號間隔
ARP高速緩存可以設置超時設置

ARP數據報的格式

在這裏插入圖片描述
以太網目的地地址全爲1表示是廣播地址
幀類型: 表示後面的數據類型,ARP請求或應答的類型是0x0806(還有RARP)
硬件類型表示硬件地址的類型,如果值爲1則表示是以太網(還會有別的?)
協議類型表示要映射的協議地址 如果值是0x0800表示是IP協議地址
硬件地址長度協議地址長度:字節爲單位 對於ARP請求來說是6和4。
op: 操作字段 指出4中操作類型(序號就是值):
1. ARP請求
2. ARP應答
3. RARP請求
4. RARP應答
後面4個就是按字面理解就完事了
在鏈路層的以太網數據幀中已經有了發送端的硬件地址
以太網數據幀分組格式傳送門
這樣在接受到一個ARP請求之後還需要將數據報的請求地址寫到目的地址,op改成2發出去就完事了
以太網的數據幀要求長度是60字節。但是ARP的數據報時42接(28字節ARP數據和14字節的以太網幀頭)。不夠的部分填充

ARP代理

ARP請求是從一臺主機發往另一臺主機。這中間就會經過路由器之類的網絡設備,而這些網絡設備就能夠應答這些請求,這個過程就是ARP代理。這樣可以欺騙請求主機以爲路由器就是目的主機,路由器就起到了中轉轉發的作用。
在這裏插入圖片描述

免費ARP

指主機發送ARP查找自己的IP,一般在引導期間進行的
在這裏插入圖片描述
通過廣播的方式自己給自己發送請求。
作用:

  1. 檢查網絡上是否有與自己IP地址一樣的主機。有的話就產生錯誤日誌
  2. 如果主機更換了網卡。也剛好可以讓網絡中的其他主機更新ARP高速緩存中的地址
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章