溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ARP協議

發布時間:2020-07-14 16:44:27 來源:網絡 閱讀:2014 作者:kaikaiwang 欄目:網絡安全

一:引入

當網絡設備要發送數據給另一臺設備時,必須要知道對方的網絡層地址(即IP地址)。IP地址由網絡層來提供,但是僅有IP地址是不夠的,IP數據報文必須封裝成幀才能通過數據鏈路進行發送。數據幀必須包含目的MAC地址,因此發送端還必須獲取到目的MAC地址。通過目的IP地址而獲取目的MAC地址的過程是由ARP協議來實現的。
ARP協議是TCP/IP協議簇中的重要組成部分,ARP能夠通過目的IP地址發現目標設備的MAC地址,從而實現數據鏈路層的可達性。

二:ARP數據包的格式

ARP協議
注意:ARP報文不能穿越路由器,不能被轉發到其他廣播域。
各字段的含義:
Hardware Type表示硬件地址類型,一般為以太網
Protocol Type表示三層協議地址類型,一般為IP
Hardware Length和Protocol Length為MAC地址和IP地址的長度,單位是字節
OPeration Code制定了ARP報文的類型,包括ARP request 和ARP reply
Source Hardware Address 指的是發送ARP報文的設備MAC地址
Source Protocol Address 指的是發送ARP報文的設備IP地址
Destination Hardware Address指的是接收者MAC地址,在ARPrequest報文中,該字段值為0
Destination Protocol Address指的是接受者的IP地址

三:ARP的工作過程

ARP之簡單請求應答
當兩臺計算機在同一個局域網通信,我們以ping命令為例,該命令使用的ICMP協議

ARP協議
PC1依據OSI模型①依次從上至下對數據進行封裝,包括對ICMP Date加IP包頭的封裝,但是到了封裝MAC地址的時候,②PC1首先查詢自己的ARP緩存表,發現沒有IP2和他的MAC地址的映射,這個時候MAC數據幀封裝失敗。我們使用ping命令的時候,是指定PC2的IP2的,計算機是知道目的主機的IP地址,能夠完成網絡層的數據封裝,因為設備通信還需要對方的MAC地址,但是PC1的緩存表里沒有,所以在MAC封裝的時候填入不了目的MAC地址。

那么PC1為了獲取PC2的MAC地址,③PC1要發送詢問信息,詢問PC2的MAC地址,詢問信息包括PC1的IP和MAC地址、PC2的IP地址,這里我們想到一個問題,即使是詢問信息,也是需要進行MAC數據幀的封裝,那這個詢問信息的目的MAC地址填什么呢,規定當目的MAC地址為ff-ff-ff-ff-ff-ff時,就代表這是一個詢問信息,也即使后面我要說的廣播。

PC2收到這個詢問信息后,將這里面的IP1和MAC1(PC1的IP和MAC)添加到本地的ARP緩存表中,然后④PC2發送應答信息,對數據進行IP和MAC的封裝,發送給PC2,因為緩存表里已經有PC1的IP和MAC的映射了呢。這個應答信息包含PC2的IP2和MAC2。PC1收到這個應答信息,理所應當的就獲取了PC2的MAC地址,并添加到自己的緩存表中。

經過這樣交互式的一問一答,PC1和PC2都獲得了對方的MAC地址,值得注意的是,目的主機先完成ARP緩存,然后才是源主機完成ARP緩存。之后PC1和PC2就可以真正交流了。

ARP之廣播請求單播回應

上圖面的圖解是不完全的ARP協議,因為在局域網里邊不會只有兩臺主機,這里就要考慮如何在局域網眾多主機里獲得目的主機的MAC。

ARP協議

和上面的一樣,剛開始PC1并不知道PC2的MAC地址,同樣需要發送ARP請求,但是這個局域網里主機很多,怎么唯獨獲取PC2的MAC呢,①我們想到和一群陌生人交流一樣,可以挨著詢問一遍,這就是我們要說的廣播,首先PC1廣播發送詢問信息(信息和上一張圖介紹的一樣),在這個普通交換機上連接的設備都會受到這個PC1發送的詢問信息。

接下來②需要做的是,所有在這個交換機上的設備需要判斷此詢問信息,如果各自的IP和要詢問的IP不一致,則丟棄,如圖PC3、Route均丟棄該詢問信息,而對于PC2判斷該詢問信息發現滿足一致的要求,則接受,同樣的寫入PC1的IP和MAC到自己的ARP映射表中。

最后,③PC2單播發送應答信息給PC1,告訴PC1自己的IP和MAC地址。

四:ARP代理

ARP協議
上圖中,主機A需要與主機B通信時,目的IP地址與主機的IP地址位于不同網絡,但由于主機A未設置網關,所以他將會以廣播的形式發送ARP Request報文,請求B的MAC地址,但是廣播報文無法被路由器轉發,所以主機B無法收到主機A的請求報文。
在路由器上啟用代理ARP功能,就可以解決這個問題。啟用代理后,路由器接收到這樣的請求,會查找路由表,如果存在主機B的路由表項,路由器會將自己的G0/0/0接口的MAC地址回應該ARP Requestrian。主機A收到ARP Reply后,將一路有油漆的G0/0/0接口MAC地址作為目的MAC地址進行數據轉發。
小結:1如果兩臺主機在同一個網段,則直接發送ARP Request報文就好。
2 如果在不同網段,(1)主機A設置了網關,ARP協議可以正常使用。
(2)主機A沒有設置網關,這種情況下,我們要開啟ARP代理,路由器來重新封裝,轉發報文

五: 免費ARP

ARP協議
主機A將ARP Request 廣播報文中的目的IP地址字段設置為自己的IP地址,該網絡中的所有主機都會接受到此報文。當目的IP地址已經被某一個主機或網管室友是,該主機或網關就會回應ARP reply 報文,通過這種方式主機A就能探測到IP地址沖突了。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女