網路裝置有資料要傳送到另一台網路裝置時,必須要知道對方的網路層位址(ip)。ip位址由網路層來提供,但是僅有ip位址是不夠的,ip資料報文必須封裝成幀才能通過資料鏈路進行傳送。資料幀必須要包含目的mac位址,因此傳送端還必須獲取到目的mac位址。通通過目的ip位址而獲取目的mac位址的過程是arp(address resolution protocol)協議來實現的。
arp協議是二層的廣播協議
1.1.arp請求
任何時候,當主機需要找出這個網路中的另乙個主機的實體地址時,它就可以傳送乙個arp請求報文,這個報文包好了傳送方的mac位址和ip位址以及接收方的ip位址。因為傳送方不知道接收方的實體地址,所以這個查詢分組會在網路層中進行廣播。(見圖1)
1.2.arp響應
區域網中的每一台主機都會接受並處理這個arp請求報文,然後進行驗證,檢視接收方的ip位址是不是自己的位址,只有驗證成功的主機才會返回乙個arp響應報文,這個響應報文包含接收方的ip位址和實體地址。這個報文利用收到的arp請求報文中的請求方實體地址以單播的方式直接傳送給arp請求報文的請求方。(見圖2)
1.3舉例
pc1(10.1.1.1)和pc2(10.1.1.2)進行通訊,pc1和pc2都不知道大家的mac位址只知道對方的ip位址。
使用arp -a命令檢視當前主機的arp快取表是空的
現使用pc1去ping pc2。在ping完後,我們可以在抓包工具中看到,當pc1傳送資料時會先傳送arp請求報文,以廣播報的形式傳送到區域網後,當pc2檢測到ip位址與自己的ip相同,就會傳送給pc1響應報文。pc1收到pc2回應的mac位址後,pc1再把資料封裝後傳送到pc2。
對於arp響應包來說,源ip,目地ip,源mac,目地mac都是知道的。
再用arp -a命令,就可以分別檢視到pc1和pc2中都有對方的mac位址。
1.4舉例
如下圖:在pc1 ping pc2
用pc1去ping pc2時,pc1會發乙個arp的廣播報文,這時候pc1獲取到響應的mac位址是路由器介面ge0/0/0的mac位址,而不是pc2的mac位址。當pc1把資料封裝完後傳送到閘道器,閘道器會跟據自身獲取到的ip路由和mac位址進行資料的**,把資料跟據ip和mac位址傳送到pc2。
主機被分配了ip位址或者ip位址發生變化後,必須立刻檢測其所分配的ip位址在網路上是否是唯一的,以避免位址衝突。主機通過傳送arp request報文來進行位址衝突檢測。
主機a將arp request廣播報文中的目的ip位址字段設定為自己的ip位址,該網路中所有主機包括閘道器都會接收到此報文。當目的ip位址已經被某乙個主機或閘道器使用時,該主機或閘道器就會回應arp reply報文。通過這種方式,主機a就能探測到ip位址衝突了。
總結:
1)網路裝置在什麼情況下回傳送arp request?
源裝置在傳送資料給目的裝置前,會首先檢視自身的arp快取,查詢arp快取是否在目的裝置的ip位址和mac位址的對映。如果存在則直接使用,如果不存在則會傳送arp request。
2)網路裝置什麼時候會產生免費arp?
當網路上的乙個裝置被分配了ip位址或者ip位址發生變化後,可以通過免費arp來檢查ip位址是否衝突。
icmp協議是乙個網路層網路控制報文協議。
乙個新搭建好的網路,往往需要先進行乙個簡單的測試,來驗證網路是否暢通;但是ip協議並不提供可靠傳輸。如果丟包了,ip協議並不能通知傳輸層是否丟包以及丟包的原因。
如目標不可達時,會反回不可達報文到傳送端裝置。
tracert 命令也是常用的檢查聯通訊的命令,它可以測試pc從哪個路由路徑到達目的位址。它也是基於icmp協議的
ICMP協議和ICMP協議
一 icmp協議 因為ip協議不提供可靠的傳輸服務,也不提供端到端或點到點的確認,如果出錯可以通過icmp報告來看,它是在ip模組中實現。tcp ip協議設計的icmp協議就是為了彌補ip協議的不足。它是tcp ip協議族的乙個子協議,用於在ip主機 路由器之間傳遞控制訊息。控制訊息指網路通不通 主...
arp協議和ICMP協議的相關了解
參考部落格 arp協議 icmp協議 以下內容都是從上面大神部落格中摘下的 arp協議 不管網路層使用的是什麼協議,在實際網路的鏈路上傳送資料幀時,最終還是必須使用硬體位址。每乙個主機都設有乙個 arp快取記憶體 arp cache 裡面有所在的區域網上的各主機和路由器的ip位址到硬體位址的對映表。...
ARP協議和RARP協議
1.1 簡介 位址解析協議,即arp address resolution protocol 是根據ip位址獲取實體地址的乙個tcp ip協議。主機傳送資訊時將包含目標ip位址的arp請求廣播到區域網路上的所有主機,並接收返回訊息,以此確定目標的實體地址 收到返回訊息後將該ip位址和實體地址存入本機...