Arp,這個命令用來操作系統的ARP緩存。當沒有參數時,打印(到屏幕上)當前表格的內容。
試試看:
原來這些都存儲在系統的ARP緩存裏。什麽是ARP?ARP緩存中的這些是什麽意思,有什麽作用?在上面pi@raspberrypi:~ $ man arp的輸出中有介紹:
ARP(註意,大寫)代表地址解析協議,用於查找網絡鄰居中給定IPv4地址對應的媒體訪問控制地址。
上面這句話是什麽意思?ARP是壹種協議。當您給軟件壹個IPv4地址時,它可以幫助您在您的網絡鄰居中找到與該IPv4地址對應的媒體訪問控制地址。
我知道IPv4的地址,也就是IP地址,但是有兩個問題:
網絡鄰居是和妳在同壹個局域網中的主機。
以太網規定,同壹個局域網中的主機如果要直接與另壹臺主機通信,就必須知道目標主機的介質訪問控制地址(MAC地址)。
MAC地址***48位(6字節),前24位由IEEE分配給某網絡設備廠商,後24位由實際生產該網絡設備的廠商指定。壹般來說,生產網卡的時候,網絡設備的廠商會給網卡壹個MAC地址。從這裏可以看出,MAC地址其實是全世界唯壹的。
綜上所述,通過MAC地址,我們可以識別局域網中的主機,這樣我們就可以和指定MAC地址的主機進行通信。
糊塗了,不是說了是用來識別局域網主機進行通信的嗎?為什麽還拍這個字幕?
其實我們不是用MAC地址來標識主機,而是用MAC地址來標識以太網上的主機。想壹想,如果IP地址也可以標識主機,為什麽要在這裏加壹個MAC地址來標識呢?
因為以太網是壹個* * *共享網絡,所以它使用壹種稱為CSMA/CD的介質訪問方法。
有關詳細信息,請參閱:什麽是帶沖突檢測的載波偵聽多路訪問(CSMA/CD)?
這裏我直接下結論。當主機通過以太網線路發送數據時,連接到該線路的所有主機都會收到發送主機發送的數據。
問:既然網鄰居上的所有主機都可以接收到我的主機發送的報文,那麽他們如何確定我的主機發送的數據是給他們的呢?
答:他們會檢查您發送的數據的“目的地”地址欄中是否填寫了您的地址。如果是這樣,他們會收到妳發送的數據。如果沒有,他們會丟棄數據。(這種簡單的處理方式使得以太網卡更加便宜,促進了以太網的普及。)
並且在發送數據的“目的地”的地址欄中填充的這個地址被用來在以太網上區分主機的媒體訪問控制地址。妳經常聽到的是它的英文縮寫MAC地址或者它的俗稱硬件地址。
放大照片...
MAC地址填寫在目的地址的地址欄和圖片中的原始地址。看到它們下面的數字“6”,表示這個地址是壹個6字節的地址,6字節=48位,與上面提到的MAC地址匹配48位。
其實有些非專屬網絡是不需要MAC地址的,比如SLIP,比如PPP,如下圖:
圖中顯示的是壹個PPP接口,在英文全稱圖的註釋中。這是壹個點對點協議。顧名思義,不需要和別人分享。如果這個接口出去了,下壹個接口壹定是那個接口,就不需要區分MAC地址了。
妳可以看看圖中的第壹個接口,eth0以太網接口,這個接口在鏈路封裝方法後面清楚的寫了HWaddr(硬件地址)硬件地址(也就是MAC地址)。而且下面這個接口w1g1後面沒有MAC地址。
同樣的,在w1g1的界面第二行,最後那幾個大寫的字,NOARP,妳懂嗎?不支持ARP。很簡單。它甚至沒有MAC地址。我能做些什麽來支持妳的ARP?
好了,現在可以回頭看這句話了。
首先,如果妳給的IP地址是妳的網絡鄰居的壹個主機的IP地址,那麽根據妳給的IP地址,我的軟件遵守ARP協議,我可以給妳這個IP地址對應的MAC地址。
那麽ARP緩存在這裏的意義也是顯而易見的,就是用來保存來自I查詢的結果(網絡鄰居的IP地址對應MAC地址),以便在需要的時候能以最快的速度告訴妳。
實際上,ARP的工作方式是先在ARP緩存中查找,如果找不到就在局域網上“發帖求助”。
在這裏輸入arp命令的顯示內容來理解,大意是:
我自己的接口wlan0連接的網絡鄰居中,IP地址為192.5438+068.253.1的主機,主機名為?網卡的硬件類型是以太網,對應的MAC地址是b0:d5:9d:37:5d:2e。
至於ARP如何根據IP查詢網絡鄰居對應的MAC地址,下次再說吧。
將手機連接到與樹莓派壹致的WLAN,檢查手機本地IP地址為192 438+068.253.6,然後斷開。
在樹莓派上用ssh連接手機的IP地址,因為手機是斷開的,當然連接不上。這個時候ARP緩存會發生什麽?
好的,這個時候我就把手機連上。...
有趣的事情發生了。
如果不是本地IP呢?我猜ARP緩存中的數據不會更新。妳想看嗎?妳自己試試,就像...噓...