使用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,该命令用于操纵系统的ARP缓存(ARP cache)。当没有参数时打印(到屏幕上)当前表中的内容。

试一下:

我的树莓派arp输出结果
arp -a 以BSD风格输出ARP缓存中的内容

原来系统的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(地址解析协议),用于在网络邻居中(network neighbour)查找给定IPv4地址对应的媒体访问控制地址(media access control address)。

上面这句话什么意思呢?ARP是个协议,对于遵守这个协议开发出的软件,当你给这个软件一个IPv4的地址的时候,它能帮你在你的网络邻居中查找这个IPv4地址对应的媒体访问控制地址。

IPv4的地址我知道,就是IP地址,但还有两个问题:

  • 这里的网络邻居是指?
  • 什么是媒体访问控制地址?

网络邻居是指?

网络邻居,就是指和你处于同一局域网中的主机。

什么是媒体访问控制地址?

以太网规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的媒体访问控制地址(MAC地址)。

MAC地址共48位(6字节),前24位由IEEE决定分配给某一网络设备厂商,后24位由实际生产该网络设备的厂商自行指定。通俗地讲,在生产一块网卡时,该网络设备的厂商就会给这块网卡一个MAC地址。从这里可看出,实际上MAC地址在世界范围内都是唯一的。

总结一下,通过MAC地址,我们可以辨别局域网中的主机,从而可以与指定的MAC地址的主机通信。

MAC地址有什么用?

疑惑了吧,上面不是说了么,用来辨别局域网的主机来通信啊,还取这个小标题干嘛?

实际上,我们并不是用MAC地址来辨别主机,而是用MAC地址来辨别以太网上的主机。想想,如果说辨别,IP地址也同样可以辨别主机,为什么这里还要再加一个MAC地址来辨别?

因为以太网是一种共享型的网络,它采用的是一种称为CSMA/CD的媒体接入方法。

详情请见:什么叫带冲突检测的载波侦听多路接入(CSMA/CD)

我这里直接放结论,当一个主机通过共享式的以太网的线路发送数据的时候,连接在这条线路上的所有主机都会收到那个发送主机发出的数据。

问:既然网络邻居上的所有主机都能收到我的主机发出的报文,那他们如何确定我的主机发送的数据就是给他们的呢?

答:他们会查看你发送的数据的“目的地”地址栏上填的是不是自己的地址,如果是,就接收你发的数据,如果不是,就直接丢弃这个数据。(这种简单的处理方式让以太网卡变得便宜,侧面促进了以太网的流行)

而这个填在发送的数据的“目的地”地址栏上的地址就是用来分辨以太网上主机的媒体访问控制地址Media Access Control address),你更常听到的是它的英文缩写MAC地址或者是它的通俗名硬件地址

放图...

链路层上的两种封装格式 
其实这两种格式都是针对采用CSMA/CD媒体接入方法制定的格式,详情可见:[以太网帧格式](http://baike.baidu.com/link?url=gEI9UNvrF5R6AVwe4eTkBA19REjArMiLx3_wt0jnos3yCv02d0r-7OIashmFX6e-y3LeZSLumRVGMqQuavY6jmvHxHgARKapTNJjw7fLuFac4oFpDkUtgOSbDozTb89NvSQfZPbkpv89qk-ArG-Io_)
图片来源:[Google图片搜索 以太网封装](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 ---以太网和IEEE 802封装](http://www.cnblogs.com/saryli/p/5301349.html)
另注:此图是[TCP/IP详解 卷1:协议](https://book.douban.com/subject/1088054/) P16页图2-1,我想这图最早应该是来自这里
链路层上的两种封装格式 其实这两种格式都是针对采用CSMA/CD媒体接入方法制定的格式,详情可见:[以太网帧格式](http://baike.baidu.com/link?url=gEI9UNvrF5R6AVwe4eTkBA19REjArMiLx3_wt0jnos3yCv02d0r-7OIashmFX6e-y3LeZSLumRVGMqQuavY6jmvHxHgARKapTNJjw7fLuFac4oFpDkUtgOSbDozTb89NvSQfZPbkpv89qk-ArG-Io_) 图片来源:[Google图片搜索 以太网封装](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 ---以太网和IEEE 802封装](http://www.cnblogs.com/saryli/p/5301349.html) 另注:此图是[TCP/IP详解 卷1:协议](https://book.douban.com/subject/1088054/) P16页图2-1,我想这图最早应该是来自这里

图中的目的地址和原地址两个地址栏上填写的就是MAC地址。看到它们下方标的数字“6”了吗,它代表着这个地址是6个字节的地址,6字节=48位,和上面讲到的MAC地址有48位对上了。

实际上一些非共享型的网络确实是不需要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)截图 有兴趣的可以去看看,网页中还给出了这个接口通常的物理接口样子 其实就是我们一般连显示器的串口了

图中显示的是一个PPP接口的图,英文全称图的注释里有,就是点对点协议,顾名思义,不需要和别人共享,这个接口出去,下个接口一定是那个接口,就不需要分辨用的MAC地址了。

你可以看图中的第一个接口,eth0以太接口,它在链路封包方式的后面就明确写了HWaddr(HardWare address)硬件地址(就是MAC地址)。而下面那个接口w1g1接口,它后面就没有MAC地址。

同样,在w1g1接口的第二行,那几个大写的单词的最后一个,NOARP,明白了吗,不支持ARP。很简单啊,它MAC地址都没有,拿什么支持你ARP?

回过头来再看ARP

OK,现在可以回过来看这句话了

ARP(注意,大写)表示Address Resolution Protocol(地址解析协议),用于在网络邻居中查找给定IPv4地址对应的媒体访问控制地址。

上面这句话什么意思呢?ARP是个协议,对于遵守这个协议开发出的软件,当你给这个软件一个IPv4的地址的时候,它能帮你在你的网络邻居(network neighbour)中查找这个IPv4地址对应的媒体访问控制地址(media access control address)。

首先,你给的这个IP地址要是你的网络邻居的某个主机的IP地址,然后根据你给的这个IP地址,我这个软件,是遵守ARP协议的,我就能给你这个IP地址对应的MAC地址。

那这里的ARP缓存(ARP cache)意思也很明显了,就是用来保存我查询到的结果(网络邻居的IP地址对应MAC地址)的地方,这样就能在要用的时候以最快地速度告诉你。

在现实情况中,ARP的工作方式就是,先在ARP缓存中找,找不到了再在局域网上“发帖求助”。

arp -a 以BSD风格输出ARP缓存中的内容

这里输入arp命令的显示内容也就明白了,大意为:
由我自己的接口wlan0,连接出去的网络邻居中,IP地址为192.168.253.1的主机,主机名是?,网卡的硬件类型为以太网类型,对应的MAC地址(HardWare address:硬件地址)为b0:d5:9d:37:5d:2e

至于ARP如何根据IP查询网络邻居对应的MAC地址,等下次再说吧。

有趣小试验

手机先连上和树莓派一致的无线局域网,查看手机的本地IP地址为192.168.253.6,然后断开。
在树莓派上用ssh连接手机IP地址,因为手机断开了,当然肯定是连不上的,那这时候ARP缓存中会变成什么样呢?

原本ARP缓存中的内容
连接主机未接入局域网的局域IP地址
  • ssh显示的结果:No route to host 没有到达192.168.253.6这一地址的路径。
  • arp显示的结果:(incomplete)没完成...

OK,这时候我把手机连上去...

连接主机已接入局域网的局域IP地址

有趣的事情发生了

  • ssh显示的结果由原来的No route to host 没有到达192.168.253.6这一地址的路径变为了Connection refused,这当然了,我手机上又没有开ssh准备和树莓派连,自然树莓派就被拒绝了。
  • arp显示的结果则从(incomplete)没完成变成了成功拿到物理地址。

那如果不是本地的IP会怎么样?我猜ARP缓存里不会更新数据,你想看?就自己试试呗,比如...ssh一下简书...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容