• <TCP/IP>地址解析协议ARP


      

      从前两章中有学到,网络层地址和链路层地址是由不同的,一个是物理地址,一个是IP地址。物理地址固定存储在网卡中,不会改变,而IP地址是可以网络管理员和用户自己分配的
      在传统的IPv4网络中,一台A主机要想将数据传输到另一台B主机上,只知道B的IP地址可不行,还需要知道B主机在网络中的有效物理地址,但是要怎么才能把IP地址转换成物理地址呢?这时候就要用到ARP(地址解析协议)


      ARP


      地址解析其实是发现两个地址之间映射关系的过程,基本上都用于32位的IPv4地址和以太网的48位MAC地址之间的映射,如下图所示,IP地址经过ARP的处理,变成了硬件地址。

      书中还举了一个例子,当我们打开一个网页,我们的电脑会和相关的服务器联系,它首先判断该服务是位于本地(同一IP子网)还是远程,如果在同一子网,则向本网发送ARP广播,获得目标IP所对应的MAC地址,如果不在同一子网,就通过ARP询问默认网关(路由器)对应的MAC地址

      ARP帧格式


     

       下图为以太网中转换一个IPv4地址时常用的ARP请求和应答分组的格式

      

    • 在以太网中,对于ARP(请求或应答),两字节的帧类型字段必须为0x0806
    • 硬件类型字段指出硬件地址类型,对于以太网该值为1
    • 协议类型字段指出映射的协议地址类型,对于IPv4地址,该值为0x0800
    • 硬件和协议地址长度分别指出硬件地址和协议地址的字节数,对于以太网中使用IPv4地址的ARP请求或应答,它们的值分别为6和4
    • Op字段指出该操作是ARP请求(1),ARP应答(2),RARP请求(3),RARP应答(4),RARP为反向地址转换

      直接交付


       在同一个子网下,两个IP地址直接传输数据,就可以使用直接交付,IPv4直接交付的基本操作如下:

    • 主机A向主机B发送IPv4数据报,A必须将B的IP地址转换成物理地址,ARP开始运行
    • ARP工作在正常模式下,仅适用于广播网络,在一个共享的链路层网段上,ARP向所有连接着的主机发送一个称为ARP请求的以太网帧,其中包含主机B的IP地址
    • 只有符合目标IP地址的主机B回答这个ARP请求,其他站点则忽略这个请求,即为ARP应答,该应答包含B的IP地址和MAC地址,此时不是广播,而是直接发送给A
    • 主机A收到应答后,会在自己的缓存中构建一个ARP表,将得到的地址信息缓存起来,以备将来和同一目的节点通信时直接在ARP表中查找,避免了多次的广播请求

      

      感谢在实践中深入理解ARP协议ARP地址解析过程(同一子网和不同子网)这两篇文章的作者们提供的帮助,想更深入了解ARP的同学可以点击链接学习

     

     

     

  • 相关阅读:
    10 个让人惊讶的 jQuery 插件
    URL编码方法比较
    Java大文件分片上传/多线程上传源码
    Java大文件分片上传/多线程上传代码
    Java大文件分片上传/多线程上传插件
    Java大文件分片上传/多线程上传控件
    python函数
    关于言谈
    Sql语句之select 5种查询
    openstack之网络基础
  • 原文地址:https://www.cnblogs.com/peacepeacepeace/p/8711519.html
Copyright © 2020-2023  润新知