當前位置:編程學習大全網 - 源碼下載 - ARP協議概述

ARP協議概述

互聯網或者任何IP網絡中,運行IP協議的任何壹臺主機或者網絡設備上都有壹個ARP表,它記錄著本網絡中IP地址和MAC地址的映射,這個表由ARP協議自動管理和維護,也可手動添加刪除和更新表項,如果ARP表出現錯誤,那數據傳輸將寸步難行。下面我們深入討論它的重要性。

1.為什麽需要ARP

這得從TCP/IP網絡體系的數據流動說起。下圖是TCP/IP體系結構的簡單描述,也是TCP/IP相關協議關系的描述。

最下層為網絡接口層,實質上TCP/IP對網絡接口層沒有任何的規定,網絡接口層(對應標準參考模型OSI的物理層和數據鏈路層)實際是各種局域網、廣域網技術,比如以太網、令牌環網、無限局域網、4G網絡、5G網絡等等。這些物理網絡技術僅實現物理層和數據鏈路層的功能,在各自的網絡內實現數據傳輸,采用各自的網絡技術在網絡內解決主機到主機的數據(幀)傳輸問題,這些物理網絡技術壹般采用硬件地址標識主機或網絡節點,或者叫媒體訪問控制地址(MAC地址)。

而TCP/IP中的IP協議利用IP地址進行尋址,壹方面把各種網絡技術統壹起來,屏蔽了這些物理網絡技術之間的差異性,另壹方面通過路由協議實現了多種網絡、多個網絡的互連。IP協議的英文全稱是Internet protocol,直接翻譯即為網絡互聯協議。數據從IP層到數據鏈路層的轉發就必然需要IP地址到物理地址(MAC地址)的轉換,這就需要ARP地址解析協議來完成。

從上圖,我們能清晰的知道,互聯網上任何兩臺電腦上的應用程序A和B(準確地說是進程:運行著的程序)之間要進行通信,必然要經過如下的過程:A若要傳輸數據到B,A將數據按照應用層協議封裝數據報文,交給TCP或者UDP封裝成傳輸層數據報文,再由IP協議封裝成IP數據包,交給數據鏈路層封裝數據幀,在封裝數據幀時,會判斷B的IP地址和A是否在同壹個IP網絡內(判斷方法用B的IP地址和A的子網掩碼按位相與得出壹個網絡號,再與A的網絡號相比較,相等則在同壹子網),如果在同壹子網內,A則需要知道B的MAC地址,才能進行數據幀的封裝,如果不知道,就需要運行ARP協議,來廣播查詢B的MAC地址;查詢到B的MAC地址後即可進行幀的封裝,然後交給物理層進行bit流的傳輸。如果不在同壹個網絡內,A則按本機的IP路由表的指示將數據轉發給目標IP地址C,同樣需要使用C的MAC地址封裝為數據幀,如果不知道C的MAC地址,也需要利用ARP協議進行廣播查詢。當數據幀到達目標主機B後,各層進行數據解封裝,向上層傳遞相應數據,最終達到應用程序。

如果沒有ARP表,在進行數據幀封裝時就找不到目標IP地址對應的物理地址(MAC地址),因此維護正確的ARP表是極為重要的。不管利用WiFi還是以太網,或者4G、5G、FTTH等方式上網,都需要ARP協議的支撐,否則數據將無法傳輸。

2、如何管理維護ARP表

在Windows系統中,可以使用ARP命令來查看、管理本機的ARP表項。這裏介紹三種用法。

(1)查看ARP表:arp -a

在命令窗口中,輸入該命令,顯示結果為:

其顯示的有動態和靜態2種類型,動態類型是系統ARP協議動態添加的,比如192.168.1.1,是本機的網關地址,其物理地址為ec-f8-eb-e7-6b-00。靜態類型中的192.168.1.255是本網廣播地址,對應的MAC地址為所有位全1,代表物理網絡廣播,當運行ARP協議解析某個IP地址時,用ff-ff-ff-ff-ff-ff作為數據鏈路層的廣播地址。224、239開頭的靜態地址為組播地址,壹般視頻直播等應用使用該地址。255.255.255.255是默認廣播地址。

(2)添加靜態的ARP表項:arp -s 192.168.1.6 00-aa-00-62-c6-09

該命令在windows 10環境中需要管理員權限,可以運行powershell,開始菜單按右鍵,選擇windows powershell,然後輸入該命令。

運行成功系統沒有任何提示,可以運行arp –a查看添加的表項,如下圖。

(3)刪除靜態的ARP表項:arp -d 192.168.1.6

該命令在windows 10環境中也需要管理員權限。運行正確後系統無任何提示,表示刪除成功。-d參數後只需要寫將要刪除的IP地址。

擴展:默認網關地址表項對於我們訪問互聯網極其重要,它是默認路由地址。網絡中有時存在arp攻擊(比如ARP病毒),其原理是:發送錯誤的默認網關ARP表項給目標主機,目標主機會更新該表項,導致目標主機默認網關的ARP表項錯誤,訪問外網的所有數據幀被轉發給錯誤的MAC地址,造成網絡不可訪問。如果出現這種問題,可以使用此命令手動方式添加靜態的網關地址表項,保證正確數據轉發。

MAC地址:MAC地址也叫物理地址、硬件地址,由網絡設備制造商生產時燒錄在網卡上的固定地址,我們筆記本電腦的無線網卡、手機中均有MAC地址。MAC地址的長度為48位(6個字節),通常表示為12個16進制數,其中前6個16進制數代表網絡硬件制造商的編號,它由IEEE(電氣與電子工程師協會)分配,而後6位16進制數AE-3C-40代表該制造商所制造的某個網絡產品(如網卡)的系列號。只要不更改自己的MAC地址,MAC地址在世界上是唯壹的。就如前面所講的,MAC地址是數據鏈路層的地址,在網絡中標識壹個網絡節點,數據幀結構中壹般含有目的MAC,源MAC。

  • 上一篇:炸彈源安卓
  • 下一篇:1992年的8.10股民事件的前因後果是怎樣的?
  • copyright 2024編程學習大全網