使用arp查看樹莓派的ARP高速緩存

命令arp是來做什么的

仍舊褐鸥, pi@raspberrypi:~ $ man arp 摘錄一些,得

NAME
arp - manipulate the system ARP cache

DESCRIPTION
Arp manipulates or displays the kernel's IPv4 network neighbour cache. It can add entries to the table, delete one or display the current content.
ARP stands for Address Resolution Protocol, which is used to find the media access control address of a network neighbour for a given IPv4 Address.

MODES
arp with no mode specifier will print the current content of the table.

arp,該命令用于操縱系統(tǒng)的ARP緩存(ARP cache)又憨。當沒有參數(shù)時打佣Ф帧(到屏幕上)當前表中的內(nèi)容。

試一下:

我的樹莓派arp輸出結(jié)果
arp -a 以BSD風格輸出ARP緩存中的內(nèi)容

原來系統(tǒng)的ARP緩存中保存著這些零如,什么是ARP呢,ARP緩存中放的這些又是什么意思考蕾,干什么的呢?上面的 pi@raspberrypi:~ $ man arp 的輸出中有介紹:

ARP stands for Address Resolution Protocol, which is used to find the media access control address of a network neighbour for a given IPv4 Address.

ARP(注意肖卧,大寫)表示Address Resolution Protocol(地址解析協(xié)議)蚯窥,用于在網(wǎng)絡鄰居中(network neighbour)查找給定IPv4地址對應的媒體訪問控制地址(media access control address)塞帐。

上面這句話什么意思呢拦赠?ARP是個協(xié)議,對于遵守這個協(xié)議開發(fā)出的軟件葵姥,當你給這個軟件一個IPv4的地址的時候荷鼠,它能幫你在你的網(wǎng)絡鄰居中查找這個IPv4地址對應的媒體訪問控制地址。

IPv4的地址我知道榔幸,就是IP地址允乐,但還有兩個問題:

  • 這里的網(wǎng)絡鄰居是指?
  • 什么是媒體訪問控制地址削咆?

網(wǎng)絡鄰居是指牍疏?

網(wǎng)絡鄰居,就是指和你處于同一局域網(wǎng)中的主機拨齐。

什么是媒體訪問控制地址鳞陨?

以太網(wǎng)規(guī)定,同一局域網(wǎng)中的一臺主機要和另一臺主機進行直接通信奏黑,必須要知道目標主機的媒體訪問控制地址(MAC地址)炊邦。

MAC地址共48位(6字節(jié)),前24位由IEEE決定分配給某一網(wǎng)絡設備廠商熟史,后24位由實際生產(chǎn)該網(wǎng)絡設備的廠商自行指定馁害。通俗地講,在生產(chǎn)一塊網(wǎng)卡時蹂匹,該網(wǎng)絡設備的廠商就會給這塊網(wǎng)卡一個MAC地址碘菜。從這里可看出,實際上MAC地址在世界范圍內(nèi)都是唯一的。

總結(jié)一下忍啸,通過MAC地址仰坦,我們可以辨別局域網(wǎng)中的主機,從而可以與指定的MAC地址的主機通信计雌。

MAC地址有什么用悄晃?

疑惑了吧,上面不是說了么凿滤,用來辨別局域網(wǎng)的主機來通信啊妈橄,還取這個小標題干嘛?

實際上翁脆,我們并不是用MAC地址來辨別主機眷蚓,而是用MAC地址來辨別以太網(wǎng)上的主機。想想反番,如果說辨別沙热,IP地址也同樣可以辨別主機罢缸,為什么這里還要再加一個MAC地址來辨別祖能?

因為以太網(wǎng)是一種共享型的網(wǎng)絡蛾洛,它采用的是一種稱為CSMA/CD的媒體接入方法轧膘。

詳情請見:什么叫帶沖突檢測的載波偵聽多路接入(CSMA/CD)

我這里直接放結(jié)論谎碍,當一個主機通過共享式的以太網(wǎng)的線路發(fā)送數(shù)據(jù)的時候,連接在這條線路上的所有主機都會收到那個發(fā)送主機發(fā)出的數(shù)據(jù)拯啦。

問:既然網(wǎng)絡鄰居上的所有主機都能收到我的主機發(fā)出的報文褒链,那他們?nèi)绾未_定我的主機發(fā)送的數(shù)據(jù)就是給他們的呢甫匹?

答:他們會查看你發(fā)送的數(shù)據(jù)的“目的地”地址欄上填的是不是自己的地址兵迅,如果是恍箭,就接收你發(fā)的數(shù)據(jù)扯夭,如果不是,就直接丟棄這個數(shù)據(jù)贾漏。(這種簡單的處理方式讓以太網(wǎng)卡變得便宜纵散,側(cè)面促進了以太網(wǎng)的流行)

而這個填在發(fā)送的數(shù)據(jù)的“目的地”地址欄上的地址就是用來分辨以太網(wǎng)上主機的媒體訪問控制地址Media Access Control address)伍掀,你更常聽到的是它的英文縮寫MAC地址或者是它的通俗名硬件地址蜜笤。

放圖...

鏈路層上的兩種封裝格式 
其實這兩種格式都是針對采用CSMA/CD媒體接入方法制定的格式把兔,詳情可見:[以太網(wǎng)幀格式](http://baike.baidu.com/link?url=gEI9UNvrF5R6AVwe4eTkBA19REjArMiLx3_wt0jnos3yCv02d0r-7OIashmFX6e-y3LeZSLumRVGMqQuavY6jmvHxHgARKapTNJjw7fLuFac4oFpDkUtgOSbDozTb89NvSQfZPbkpv89qk-ArG-Io_)
圖片來源:[Google圖片搜索 以太網(wǎng)封裝](https://www.google.com.hk/search?q=%E4%BB%A5%E5%A4%AA%E7%BD%91%E5%B0%81%E8%A3%85&safe=strict&hl=zh-CN&tbm=isch&tbas=0&source=lnt&sa=X&ved=0ahUKEwi-6__GgZTTAhUMLMAKHfKOBTQQpwUIEw&biw=1444&bih=834&dpr=1#imgrc=tuF5rJtUHbVIrM:)
[tcp/ip ---以太網(wǎng)和IEEE 802封裝](http://www.cnblogs.com/saryli/p/5301349.html)
另注:此圖是[TCP/IP詳解 卷1:協(xié)議](https://book.douban.com/subject/1088054/) P16頁圖2-1县好,我想這圖最早應該是來自這里
鏈路層上的兩種封裝格式 其實這兩種格式都是針對采用CSMA/CD媒體接入方法制定的格式缕贡,詳情可見:[以太網(wǎng)幀格式](http://baike.baidu.com/link?url=gEI9UNvrF5R6AVwe4eTkBA19REjArMiLx3_wt0jnos3yCv02d0r-7OIashmFX6e-y3LeZSLumRVGMqQuavY6jmvHxHgARKapTNJjw7fLuFac4oFpDkUtgOSbDozTb89NvSQfZPbkpv89qk-ArG-Io_) 圖片來源:[Google圖片搜索 以太網(wǎng)封裝](https://www.google.com.hk/search?q=%E4%BB%A5%E5%A4%AA%E7%BD%91%E5%B0%81%E8%A3%85&safe=strict&hl=zh-CN&tbm=isch&tbas=0&source=lnt&sa=X&ved=0ahUKEwi-6__GgZTTAhUMLMAKHfKOBTQQpwUIEw&biw=1444&bih=834&dpr=1#imgrc=tuF5rJtUHbVIrM:) [tcp/ip ---以太網(wǎng)和IEEE 802封裝](http://www.cnblogs.com/saryli/p/5301349.html) 另注:此圖是[TCP/IP詳解 卷1:協(xié)議](https://book.douban.com/subject/1088054/) P16頁圖2-1晾咪,我想這圖最早應該是來自這里

圖中的目的地址和原地址兩個地址欄上填寫的就是MAC地址谍倦〖粮看到它們下方標的數(shù)字“6”了嗎,它代表著這個地址是6個字節(jié)的地址鳍置,6字節(jié)=48位税产,和上面講到的MAC地址有48位對上了辟拷。

實際上一些非共享型的網(wǎng)絡確實是不需要MAC地址的阐斜,比如SLIP,比如PPP隅俘,如下圖:

比如這個主機ifconfig顯示的就有一個封裝格式為PPP的接口 圖片來源:[how to get ip address of a PPP(Point-to-Point Protocol) network interface?](http://serverfault.com/questions/623070/how-to-get-ip-address-of-a-ppppoint-to-point-protocol-network-interface)截圖 有興趣的可以去看看为居,網(wǎng)頁中還給出了這個接口通常的物理接口樣子 其實就是我們一般連顯示器的串口了

圖中顯示的是一個PPP接口的圖蒙畴,英文全稱圖的注釋里有膳凝,就是點對點協(xié)議董朝,顧名思義,不需要和別人共享,這個接口出去哥捕,下個接口一定是那個接口遥赚,就不需要分辨用的MAC地址了阐肤。

你可以看圖中的第一個接口讲坎,eth0以太接口晨炕,它在鏈路封包方式的后面就明確寫了HWaddr(HardWare address)硬件地址(就是MAC地址)瓮栗。而下面那個接口w1g1接口费奸,它后面就沒有MAC地址进陡。

同樣趾疚,在w1g1接口的第二行,那幾個大寫的單詞的最后一個戈二,NOARP觉吭,明白了嗎仆邓,不支持ARP节值。很簡單啊搞疗,它MAC地址都沒有,拿什么支持你ARP桩皿?

回過頭來再看ARP

OK泄隔,現(xiàn)在可以回過來看這句話了

ARP(注意佛嬉,大寫)表示Address Resolution Protocol(地址解析協(xié)議),用于在網(wǎng)絡鄰居中查找給定IPv4地址對應的媒體訪問控制地址暖呕。

上面這句話什么意思呢缰揪?ARP是個協(xié)議钝腺,對于遵守這個協(xié)議開發(fā)出的軟件,當你給這個軟件一個IPv4的地址的時候艳狐,它能幫你在你的網(wǎng)絡鄰居(network neighbour)中查找這個IPv4地址對應的媒體訪問控制地址(media access control address)毫目。

首先,你給的這個IP地址要是你的網(wǎng)絡鄰居的某個主機的IP地址箱蟆,然后根據(jù)你給的這個IP地址空猜,我這個軟件辈毯,是遵守ARP協(xié)議的谆沃,我就能給你這個IP地址對應的MAC地址唁影。

那這里的ARP緩存(ARP cache)意思也很明顯了桌硫,就是用來保存我查詢到的結(jié)果(網(wǎng)絡鄰居的IP地址對應MAC地址)的地方铆隘,這樣就能在要用的時候以最快地速度告訴你掏湾。

在現(xiàn)實情況中肿嘲,ARP的工作方式就是雳窟,先在ARP緩存中找封救,找不到了再在局域網(wǎng)上“發(fā)帖求助”誉结。

arp -a 以BSD風格輸出ARP緩存中的內(nèi)容

這里輸入arp命令的顯示內(nèi)容也就明白了惩坑,大意為:
由我自己的接口wlan0,連接出去的網(wǎng)絡鄰居中趾痘,IP地址為192.168.253.1的主機永票,主機名是奋刽?肚吏,網(wǎng)卡的硬件類型為以太網(wǎng)類型狭魂,對應的MAC地址(HardWare address:硬件地址)為b0:d5:9d:37:5d:2e

至于ARP如何根據(jù)IP查詢網(wǎng)絡鄰居對應的MAC地址雌澄,等下次再說吧镐牺。

有趣小試驗

手機先連上和樹莓派一致的無線局域網(wǎng)炫掐,查看手機的本地IP地址為192.168.253.6,然后斷開睬涧。
在樹莓派上用ssh連接手機IP地址募胃,因為手機斷開了旗唁,當然肯定是連不上的,那這時候ARP緩存中會變成什么樣呢痹束?

原本ARP緩存中的內(nèi)容
連接主機未接入局域網(wǎng)的局域IP地址
  • ssh顯示的結(jié)果:No route to host 沒有到達192.168.253.6這一地址的路徑检疫。
  • arp顯示的結(jié)果:(incomplete)沒完成...

OK,這時候我把手機連上去...

連接主機已接入局域網(wǎng)的局域IP地址

有趣的事情發(fā)生了

  • ssh顯示的結(jié)果由原來的No route to host 沒有到達192.168.253.6這一地址的路徑變?yōu)榱薈onnection refused祷嘶,這當然了屎媳,我手機上又沒有開ssh準備和樹莓派連,自然樹莓派就被拒絕了论巍。
  • arp顯示的結(jié)果則從(incomplete)沒完成變成了成功拿到物理地址晒来。

那如果不是本地的IP會怎么樣?我猜ARP緩存里不會更新數(shù)據(jù),你想看薄扁?就自己試試唄日缨,比如...ssh一下簡書...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末毅待,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子循签,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愕秫,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門扎即,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人闷营,你說我怎么就攤上這事规哲「妥啵” “怎么了候址?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵泌神,是天一觀的道長损趋。 經(jīng)常有香客問我桐玻,道長偏竟,這世上最難降的妖魔是什么踊谋? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮刻坊,結(jié)果婚禮上扳剿,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好硼莽,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布终息。 她就那樣靜靜地躺著,像睡著了一般摸航。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天,我揣著相機與錄音挟阻,去河邊找鬼。 笑死,一個胖子當著我的面吹牛跷乐,可吹牛的內(nèi)容都是我干的椎例。 我是一名探鬼主播订歪,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼肆捕!你這毒婦竟也來了刷晋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤慎陵,失蹤者是張志新(化名)和其女友劉穎眼虱,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體席纽,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡捏悬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了润梯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片过牙。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡甥厦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寇钉,到底是詐尸還是另有隱情刀疙,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布摧莽,位于F島的核電站庙洼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏镊辕。R本人自食惡果不足惜油够,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望征懈。 院中可真熱鬧石咬,春花似錦、人聲如沸卖哎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亏娜。三九已至焕窝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間维贺,已是汗流浹背它掂。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留溯泣,地道東北人虐秋。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像垃沦,于是被迫代替她去往敵國和親客给。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容