原址
本期,我就來解答一下關於arp的工作原理吧!
思路1、思考arp到底是幹嘛的? 為什麼要有它?why?
2、掌握arp的工作原理。
技術人,要掌握一種技術,絕對離不開以上兩點基本思路,帶著這兩個思路去學習新技術,你絕對是不可能學不會的。再笨,你也會學得很深刻的。甚至,你還可以有更多的思路,比如,可不可以沒有它? 有它?跟沒有它的情況又是什麼樣的?等等。
1、arp到底是幹嘛的?
我們都知道區域網裡面通訊,都是靠mac位址來通訊的。arp簡單說,就是用來把ip位址轉換成mac位址,就是某個去往目的ip位址翻譯成mac位址。
現在,有了這張圖,就更容易理解arp的作用了。
電腦從上層往下封裝,到了二層,要封裝幀頭部時,就需要把目的mac位址封裝上,形成完整的二層頭部後,就可以傳送出去了。
現在的問題就是,電腦如何知道對方的mac位址?
計算機a要傳送訊息,給計算機e。他們是第一次通訊。
當使用者計算機a在上使用qq聊天工具,輸入:你好,約嗎?
回車,計算機a就先從上層往下封裝頭部。如ip頭部就將
目的ip:1.1.1.2 , 源ip就是:1.1.1.1 等資訊進行封裝,到了二層,就需要將目的mac位址,源mac位址進行封裝。計算機a肯定知道自己網絡卡的mac位址,為1111.1111.1111.1111。但是目的mac位址(計算機e的mac位址)就不知道了,因為他們是第一次通訊,**知道啊~ 要是知道,就上天了!
於是,這時候,計算機a就執行arp程式,傳送乙個arp請求報文的廣播包:
該資料報的關鍵字段如下:
二層:型別:0x0806
arp的關鍵內容如下:
source mac:1111.1111.1111.1111.1111
source ip: 1.1.1.1
target ip:1.1.1.2
這樣,交換機收到這個報文,看到目的mac位址是全f就進廣播!
阿龍這裡要提醒初學者的是,因為交換機是二層裝置,只會拆包、解析到二層資訊而已,不會進行更深入的解析,如網路層資訊。換句話說,就是交換機根本不知道裡面是什麼資料,只知道這個資料報的源、目mac位址而已。
這樣,所有的計算機收到這個廣播包,會進行更深入的解析,看到裡面的target ip 是1.1.1.2, 與自己的ip位址進行對比,發現不一樣,就丟棄。發現一樣,就回應arp報文。單播回應喔!
arp的響應報文裡的關鍵字段如下,
二層:型別:0x0806
arp的關鍵內容如下:
source mac:2222.2222.2222.2222
source ip: 1.1.1.1
target ip:1.1.1.1
這樣,計算機a收到這個報文後,就將計算機e的mac位址記錄下來,存在計算機a的乙個資料庫,叫做arp快取表。下次通訊時,如果快取未超時,就可以直接使用了。如果超時了,就再次進行arp請求廣播了。
如果你還不信的話,那龍哥就親自動手做實驗吧!
計算機a的資訊:
計算機e的資訊:
用計算機a ping 計算機e來模擬a傳送訊息給計算機e,並且抓包:
抓包就會發現抓到了2個arp的報文:
分別如下:
這時,你就可以在計算機a看到arp快取表了:
感覺您的閱讀! 祝您學習愉快!
ARP協議的工作原理
you can not!arp協議分為請求和響應兩種,在請求時,乙太網幀將會產生target mac address為全1的廣播位址,對於二層廣播,路由器是不 的,主要是為了避免產生廣播風暴。也就是說arp請求分組根本無法跨越到其他網路中。更談不上獲取其他網路主機的mac位址了。有兩種可行的辦法 第...
ARP協議的工作原理
每個主機都會在自己的arp緩衝區中建立乙個arp列表,以表示ip位址和mac位址之間的對應關係。當源主機要傳送資料時,首先檢查arp列表中是否有對應ip位址的目的主機的mac位址,如果有,則直接傳送資料,如果沒有,就向本網段的所有主機傳送arp資料報,該資料報包括的內容有 源主機 ip位址,源主機m...
ARP與RARP的工作原理
arp是位址解析協議,其工作原理是 首先,每個主機都會在自己的arp緩衝區中建立乙個arp列表,以表示ip位址和mac位址之間的對應關係。當源主機要傳送資料時,首先檢查arp列表中是否有對應的ip位址的目的位址的主機的mac位址,如果有,則直接傳送資料。如果沒有,就向本網段的所有主機傳送arp資料報...