【Linux学习】网络基础-ARP协议

ARP地址解析协议

是根据IP地址来获取物理地址的一个TCP/IP协议。

原理

主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;

主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;

当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:

  1. 第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。
  2. 第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
  3. 第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
  4. 第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
  5. 第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。

通俗的说,假设现在有一个村庄A,村里有个小明想和本村的小强通话,小明首先查找自己的电话簿,如果有小强的电话,那么就直接打电话给小强,否则,小明就会在全村广播,“本村的小强你听着,你个大傻逼,欠我的钱还不还了,我的电话是****,收到请回复。”,本村的所有的人都听到了,其他人在心里骂了句“大傻逼”就装作没听见,小强听到后果断不能忍啊,立刻打了电话过去,并把电话告诉了小明,“以后就直接打我电话,别嚷嚷”。小明也是很听话,把电话记录下来,以后都直接打电话给小强了。这里的小明和小强对应的是主机IP,而电话则对应MAC地址。

那如果小明想和村庄B的小花联系,怎么办呢,在全村广播也没有用啊,这里就涉及了代理ARP.

 ARP代理

         地址解析协议工作在一个网段中,而代理ARP工作在不同的网段间,其一般被像路由器这样的设备使用,用来代替处于另一个网段的主机回答本网段主机的ARP请求。

        例如,主机PC1(192.168.20.66/24)需要向主机PC2(192.168.20.20/24)发送报文,因为主机PC1不知道子网的存在且和目标主机PC2在同一主网络网段,所以主机PC1将发送ARP协议请求广播报文请求192.168.20.20的MAC地址。这时,路由器将识别出报文的目标地址属于另一个子网(注意,路由器的接口IP地址配置的是28位的掩码),因此向请求主机回复自己的硬件地址(0004.dd9e.cca0)。之后,PC1将发往PC2的数据包都发往MAC地址0004.dd9e.cca0(路由器的接口E0/0),由路由器将数据包转发到目标主机PC2。(接下来路由器将为PC2做同样的代理发送数据包的工作)。代理ARP协议使得子网化网络拓扑对于主机来说时透明的(或者可以说是路由器以一个不真实的PC2的MAC地址欺骗了源主机PC1)。 

通俗的讲,如果小明和跟村庄B的小花通话,但是没有小花的电话,这时候小明又开始在村里广播了,“小花,小花,我爱你”,村长张大爷(路由器)听到后心想小花也不是咱们村的啊,你叫个毛,太扰乱村安了,于是就把自己的电话给了小明,这就是代理ARP,然后村长开始向隔壁村寻找,小花在属于哪个村子(这里涉及到路由器的路径选择),最终经过多个村子后,终于找到了小花所在的村庄,就江消息转发给了村庄B的村长老王,老王再去把消息传递给小花。

最后附上OSI七层协议图:

 

Mac地址,也称为局域网地址,以太网地址或者物理地址。他是用来确定网络设备位置的地址。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层负责MAC地址。Mac地址用于在网络中唯一的标识一个网卡。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值