目的地址和ARP地址应答中的源地址

地址解析协议ARP:
1.为什么需要地址解析协议?
通常A主机向B主机进行发送数据,A主机一般是知道B主机的IP地址,光有一个IP地址就可以发送数据吗?不是的,在网络接口层,位于局域网内部的主机都是通过MAC地址进行通信的,所以我们就应该能把给定的IP地址转为MAC地址,地址解析协议就是来解决这个问题的。
2.如何通过地址解析协议根据对方主机的IP地址获取对方主机的MAC地址?
其实地址解析协议ARP就是为网络接口层进行服务的,因为网络接口层进行数据传输的时候才需要对方的MAC地址。然而,我们必须在网络层完成地址解析协议,因为IP地址只对网络层以及以上的层是可见的,对网络层以下的层均是透明的。
ARP数据报的格式:

有人说,以太网首部的源地址、目的地址和ARP地址应答中的源地址、目的地址是否有重复?答案是否。如果链路层不是以太网,首部还是需要的。
举例说明ARP地址解析协议:
A主机向B主机发送数据,A主机的ip地址为ip1,硬件地址(MAC地址)是m1,B主机的ip地址是ip2,硬件地址为m2(未知)。通过B主机的ip地址得到B主机的硬件地址。
ARP请求的数据报格式为:



汤臣倍健深http://bulo.hujiang.com/u/69068576/

汤臣倍健深http://www.juexiang.com/diaryBook.php?uid=1076920
汤臣倍健深http://www.juexiang.com/detail/60955994497.html
汤臣倍健深bulo.hujiang.com/u/69068576/
汤臣倍健深www.juexiang.com/diaryBook.php?uid=1076920

茱萸粉如www.juexiang.com/detail/60955994497.html


这个时候,两台主机就可以进行通信了。那么问题又来了,下次A主机还要和B主机进行通信(或者其他主机要给B主机进行发送数据)的时候,还是需要进行ARP协议获取B主机的MAC地址。所以,在网络层,就会存在一个高速缓存,用来存储主机的ip地址到硬件地址的映射关系,所以,下次需要和B主机进行通信的时候,只需要在ARP高速缓存中查找B的硬件地址即可。但是,B的硬件地址也是一直都不变的吗?如果有一次B的网络适配器突然坏了,B马上换了一个,这时,B的硬件地址就改变了,所以ARP缓存中的数据就是无效数据,所以,ARP缓存中的数据也是需要不断更新的。

可以通过arp -a命令来查看当前的arp缓存;也可以通过ifconfig命令查看当前机子的ip地址和硬件地址。

注意:ARP解决的是同一个局域网内部IP地址和硬件地址的映射问题。如果源主机和目的主机不是在同一个局域网内部,就无法进行地址的转换(在ARP请求的时候,只有局域网内部的所有主机才可以收到请求,所以此时的目的主机就无法收到ARP请求),解决办法:
路由器:是工作在网络层的设备,具有交换机的功能。假设源主机和目的主机之间只需要一个路由器R就可以。源主机发送给目的主机的数据报通过路由器R来转发,源主机需要将路由器的IP地址解析为硬件地址,然后把IP数据报发给路由器R,此时路由器R将目的主机的的IP地址解析为硬件地址,这样也就实现了地址的转换。

使用ARP的几种典型情况:
(1)发送方是主机,接收方是同一个局域网内部的其他一个主机,此时发送方的主机以广播的形式在发送方所属的局域网内部发出ARP请求,直接找到目的主机的硬件地址;
(2)发送方是主机,接收方是不同网络中的其他主机,这时,发送方主机通过路由器进行转换;
(3)发送方是路由器(R1),接收方是与该路由器R1直接相连的一个网络中的主机,这时R1通过ARP请求分组,找到接收方主机;
(4)发送方是路由器R1,接受方是在不与R1直接相连的网络中,这时R1发送请求,依次通过到达接收方主机的所有路由器,找到硬件地址。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值