地址解析协议ARP

地址解析协议ARP概念

我们经常会遇到一个问题,知道一个主机或路由器的IP地址怎样找到它的硬件地址呢?ARP协议就是用来从IP地址解析出在数据链路层使用的硬件地址。

网络层

ARP协议要点

那么存在一个问题,ip地址只有32位,而硬件地址是48位,二者格式不同因而并不存在简单的映射关系。能够映射是在主机ARP高速缓存中存在一个映射表—这个映射表存在从ip到硬件地址的映射。

映射表

那么我们可以根据自己的ip地址去映射表里面查找相应的硬件地址。但是存在一个问题,如果这个映射表里面刚好没有这个ip地址,那么也就不存在相应的映射。
此时,ARP会按照下面步骤来找到相应ip的硬件地址

请求过程

1). ARP进程在本局域网广播发送一个请求,内容为“我的ip是127.0.0.1,我的硬件地址是 00-00-C0-15-AD-18,我想知道ip地址为127.0.0.2的硬件地址”。
2).在本地局域网广播这个请求。
3).D发现自己的ip就是A要找的,就相应A的请求,并且以单播的形式告诉A自己的硬件地址。(同时D也保存着A的ip和硬件地址,以备后用)
4).A收到D发来的硬件地址就存入自己的映射表中。

存在问题

1.在ARP保存的映射地址都设置有一个生存时间,但凡超过这个时间,就会被删除,之后要用的话还是得重新去查找。
2.如果不在局域网呢?那么此时需要通过路由器来转发。

总结

ARP典型情况如下:

1.发送方是主机,要把ip数据报发送个同一网络上另外一个主机,这时通过ARP转发分组找到另一个主机的硬件地址。
2.发送方是主机要把ip数据报发送给另一个网络的主机上,要通过路由器,找到路由器硬件地址,接下来任务交给路由器就行了。
3.发送方是路由器,要把ip数据报发送给同一网络上的主机,这时路由器通过转发分组找到主机的硬件地址就可以了。
4.发送方是路由器要把ip数据报发送到另一个网络上的主机上。这时再找另外一个路由器请求分组得到硬件地址,此时吧任务交给这个路由器就行了。

为什么不直接使用硬件地址

抽象的ip地址本来就是为了隐蔽各种底层网络复杂性而便于分析研究问题,而设计出来的。只有主机拥有统一ip地址,他们之间的通信才能像连接在同一个网络上那样简单方便。这样不可避免的要付出些代价,牺牲点什么。

个人觉得ip层做的统一格式,屏蔽所有异构型网络就犹如:书同文,车同轨,意义长远。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值