以太网 ARP

        在以太网中,一个主机和另一个主机进行通信,必须要知道目的主机的 MAC 地址(物理地址),而目的 MAC 地址的获取由 ARP 协议完成。

ARP 概述    

        ARP(Address Resolution Protocol),即地址解析协议,是根据 IP 地址(逻辑地址)获取 MAC 地址的 一种 TCP/IP 协议。在以太网通信中,数据是以“帧”的格式进行传输的,帧格式里面包含目的主机的 MAC 地址。源主机的应用程序知道目的主机的 IP 地址,却不知道目的主机的 MAC 地址。而目的主机的 MAC 地址直接被网卡接收和解析,当解析到目的 MAC 地址非本地 MAC 地址时,则直接丢弃该包数据,因此在通信前需要先获得目的的 MAC 地址,而 ARP 协议正是实现了此功能。

        ARP 协议的基本功能是通过目的设备的 IP 地址,查询目的设备的 MAC 地址,以保证通信的顺利进行。MAC 地址在网络中表示网卡的 ID,每个网卡都需要并有且仅有一个 MAC 地址。在获取到目的 MAC 地址之后,将目的 MAC 地址更新至 ARP 缓存表中,称为 ARP 映射,下次通信时,可以直接从 ARP 缓存表中获取,而不用重新通过 ARP 获取 MAC 地址。但一般 ARP 缓存表会有过期时间,过期后需要重新通过 ARP 协议进行获取。

        ARP 映射是指将 IP 地址和 MAC 地址映射起来,分为静态映射和动态映射。

        静态映射指手动创建一张 ARP 表,把 IP 地址和 MAC 地址关联起来。手动绑定之后,源主机在通信之  前,就可以直接从 ARP 表中直接找到 IP 地址对应的 MAC 地址,但这样做有一定的局限性,因为 MAC 地 址可能会变化,比如:

        1) 机器可能更换 NIC (网络适配器),结果变成一个新的物理地址;
        2) 在某些局域网中,每当计算机加电时,他的物理地址都要改变一次。
        3) 移动电脑可以从一个物理网络转移到另一个物理网络,这样会改变物理地址。
        要避免这些问题出现,必须定期维护更新 ARP 表,此类比较麻烦而且会影响网络性能。
        动态映射指使用协议来获取相对应的物理地址,之所以用动态这个词是因为这个过程是自动完成的, 一般应用程序的用户或系统管理员不必关心。已经设计出用于实现动态映射协议的有 ARP RARP (逆地址解析协议)两种,如下图所示。
       

        

        ARP 把 IP 地址映射为物理地址, RARP 把物理地址映射为 IP 地址。 RRAP 是被那些没有磁盘驱动器的系统使用(一般是无盘工作站或 X 终端),此类应用较少。
         ARP 协议分为 ARP 请求和 ARP 应答,源主机发起查询目的 MAC 地址的报文称为 ARP 请求,目的主机响应源主机并发送包含本地 MAC 地址的报文称为 ARP 应答。
        
        当主机需要找出这个网络中的另一个主机的物理地址时,它就可以发送一个 ARP 请求报文,这个报文包含了发送方的 MAC 地址和 IP 地址以及接收方的 IP 地址。因为发送方不知道接收方的物理地址,所以这 个查询分组会在网络层中进行广播,即 ARP 请求时发送的接收方物理地址为广播地址,用 48’hff_ff_ff_ff_ff_ff 表示。 ARP 请求的示意图如下图所示:
        上图中的主机 A 发起 ARP 请求,由于发送的目的 MAC 地址为广播地址,所以此时局域网中的所有主 机都会进行接收并处理这个ARP 请求报文,然后进行验证,查看接收方的 IP 地址是不是自己的地址。是则 返回 ARP 应答报文,不是则不响应。
        只有验证成功的主机才会返回一个 ARP 应答报文,这个应答报文包含接收方的 IP 地址和物理地址。 ARP 应答的示意图如下图所示:
        
 

     主机 B 利用收到的 ARP 请求报文中的请求方物理地址,以单播的方式直接发送给主机 A,主机 A 将收 到的 ARP 应答报文中的目的 MAC 地址解析出来,将目的 MAC 地址和目的 IP 地址更新至 ARP 缓存表中。当再次和主机 A 通信时,可以直接从 ARP 缓存表中获取,而不用重新发起 ARP 请求报文。需要说明的是, ARP 缓存表中的表项有过期时间(一般为 20 分钟),过期之后,需要重新发起 ARP 请求以获取目的 MAC 地址。

        ARP 协议通过以太网进行传输,那么必须也要按照以太网所规定的格式进行传输,我们先来介绍下以 太网的帧格式

        以太网是目前应用最广泛的局域网通讯方式,同时也是一种协议。以太网协议定义了一系列软件和硬 件标准,从而将不同的计算机设备连接在一起。我们知道串口通信单次只传输一个字节,而以太网通信是以数据包的形式传输,其单包数据量达到几十,甚至成百上千个字节。下图为以太网通过 ARP 传输单包数据的格式,从图中可以看出,以太网的数据包就是对协议的封装来实现数据的传输,即 ARP 数据位于以太网帧格式的数据段。这里只是让大家了解下以太网数据包的格式。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值