ARP 地址解析协议

全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。
但统一的IP地址把这个复杂问题解决了。连接到因特网的主机都拥有统一的IP地址,它们之间的通信就像连接在同一个网络上那样简单方便,
因为调用ARP来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。
 
 
ARP地址解析协议:将IPV4网络转换成对应的物理地址,即MAC地址。  网络层地址->硬件地址的转换
 
RARP地址反向解析协议:将物理地址转换成相应的网络IP
 
需要注意的是ARP地址解析协议只适用于IPV4,实际上IPV6使用的是邻居发现协议,已融入ICMPv6中。
 
IP地址是不能直接用来进行通信的。这是因为IP地址只是主机在抽象的网络层中的地址。若要将网络层中传送的数据报交给目的主机,还要传到链路层转变成MAC帧后才能发送到实际的网络上。因此,不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
 
这里需要指出,ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,例如,在TCP/IP详解卷1中,第29页的例子,那么这时就要借助于网络层的协议,配合链路层协议才能将数据报成功的发送到目的主机上。
 
 
直接交付的ARP:
当我们向服务器发送一条请求时,我们应该考虑报文如何可以到达服务器。
 
根据ip的前缀可以推断出ip地址是不是在同一个网络中:
我们先讨论当 客户主机和服务器的主机在同一个网络中的情况:(报文不需要经过任何的路由器转发)
 
1.ARP在正常的模式下适合于广播网络,链路层能将消息转达到它所链接的所有网络设备。(在非广播网络情况下,可能需要更为复杂的映射协议)。
2.在同一个网络中,ARP向网络中的所有主机发送一条请求报文,由于不经过网络,该报文被称为链路层报文。
   报文内容大概是:“我是谁谁谁,如果你的ip地址是xxxxxxx,请将你的IMAC地址发给我”。
3.广播域中的所有主机都可以收到该报文,包括没有运行IPV4的系统或者IPV6的系统。
4. 如果收到报文的主机对应ip是xxxxxxx对应,那么就将自己的mac地址反馈给请求方。并且请求方会将该ip对应的mac地址缓存下来,记录在内存中。IP地址不匹配的主机自动丢弃掉该报文。
5.ARP的应答报文会被客户端接收。然后客户端可以和服务器在不经过路由器的情况下可以发送报文。
 
 
 
 
ARP的缓存:
linux使用命令 arp 来查看当前的ARP缓存        IPV4<=>mac地址     -a查看所有的选项
 
如果不使用ARP高速缓存,那么任何一个主机只要进行一次通信,就必须在网络上用广播方式发送ARP请求分组,这就使网络上的通信量大大增加。ARP将已经得到的地址映射保存在高速缓存中,这样就使得该主机下次再和具有同样目的地址的主机通信时,可以直接从高速缓存中找到所需的硬件地址而不必再用广播方式发送ARP请求分组。
 
对一个不存在或者关闭的主机进行ARP请求:
收不到回复的应答报文。
 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值