• 3.7.3、ARP协议(网际层)


    地址解析协议 ARP

    1、工作原理

    在共享总线型的以太网

    为了简单起见:只有各主机所配置的 IP 地址和其网卡上固化的 MAC 地址

    假设主机 B 要给主机 C 发送数据包

    主机 B 知道主机 CIP 地址,但是不知道 CMAC 地址

    • 因此,主机 B 的数据链路层在封装 MAC 帧时,就无法填写目的 MAC 地址字段,进而也就无法构建出要发送的 MAC

    image-20221128233800354

    实际上,每台主机都会有一个 ARP 高速缓存表

    • 其中记录有 IP 地址和 MAC 地址的对应关系

    • 例如:主机 AIP 地址与 MAC 地址的对应关系

      image-20221128235912638

    主机 B 要给主机 C 发送数据包时

    • 会首先在自己的 ARP 高速缓存表中查找主机 CIP 地址对应的 MAC 地址,但是未找到

      image-20221129000106588

    因此,主机 B 需要发送 ARP 请求报文来获取主机 CMAC 地址

    • (通过广播来根据获取目的主机 IP 获取其 MAC 地址)

    ARP 请求报文的内容:

    • 我的 IP 地址为 192.168.0.2 192.168.0.2 192.168.0.2
    • 我的 MAC 地址为 00 − E 0 − F 9 − A 3 − 43 − 77 00-E0-F9-A3-43-77 00E0F9A34377
    • 我想知道 IP 地址为 192.168.0.3 192.168.0.3 192.168.0.3 的主机的 MAC 地址

    image-20221129000233049

    注意

    • 这里以比较通俗的语言描述其内容,实际上 ARP 地址有具体的格式

    • ARP 请求报文封装在 MAC 帧中发送,目的地址为广播地址


    主机 B 发送封装有 ARP 请求报文的广播帧

    总线上的其他主机都能收到该广播帧

    • 主机 A 的网卡收到该广播帧后,将其交给上层处理

      • 上层的 ARP 进程解析 ARP 请求报文
      • 发现所询问的 IP 地址不是自己的 IP 地址,因此不予理会
    • 主机 C 的网卡收到该广播帧后,将其交给上层处理

      • 上层的 ARP 进程解析 ARP 请求报文

      • 发现所询问的 IP 地址正是自己的 IP 地址,需要进行响应

      • 主机 C 首先将 ARP 请求报文中所携带的主机 BIP 地址与 MAC 地址记录到自己的 ARP 高速缓存表中

      • 然后给主机 B 发送 ARP 响应报文,已告知自己的 MAC 地址

    image-20221129001325522

    ARP 响应报文的内容:

    • 我的 IP 地址为 192.168.0.3 192.168.0.3 192.168.0.3
    • 我的 MAC 地址为 00 − 0 C − C F − B 7 − 4 A − 82 00-0C-CF-B7-4A-82 000CCFB74A82

    image-20221129001620207

    注意

    • 这里以比较通俗的语言描述其内容,实际上 ARP 地址有具体的格式

    • ARP 响应报文封装在 MAC 帧中发送,目的地址为主机 BMAC 地址


    主机 C 发送封装有 ARP 响应报文的单播帧

    总线上的其他主机都能收到该单播帧

    • 主机 A 的网卡收到该单播帧后,发现其目的 MAC 地址与自己的 MAC 地址不匹配
      • 直接丢弃该帧
    • 主机 C 的网卡收到该广播帧后,发现其目的 MAC 地址就是自己的 MAC 地址(数据链路层)
      • 将其交给上层(网络层)处理
      • 上层的 ARP 进程解析 ARP 响应报文
      • 将其所包含的主机 CIP 地址与 MAC 地址记录到自己的 ARP 高速缓存表中

    image-20221129002111105

    主机 B 现在可以给主机 C 发送之前想发送的数据包了

    ARP 请求的广播帧和 ARP 响应的单播帧是不同的

    • 对于请求,每个主机都会接受并检查其 IP 地址是不是自己的 IP 地址
    • 对于响应,每个主机会根据 MAC 地址接不接收该帧

    2、ARP 高速缓存表记录类型

    ARP 高速缓存表中的每一条记录都有其类型

    • 动态

      • 记录是主机自动获取到的,生命周期默认为 2 2 2 分钟
      • 当生命周期结束时,该记录将自动删除
      • 原因:IP 地址与 MAC 地址的对应关系并不是永久性的
        • 例如:主机的网卡坏了,当更新新的网卡后,主机的 IP 地址并没有改变,但主机的 MAC 地址改变了
    • 静态

      • 用户或网路维护人员手工配置的,不同操作系统下的生命周期不同,
        • 例如:系统重启后不存在或系统重启后依然有效。

    image-20221129003444146


    3、APR 的作用范围

    主机 H1 是否可以更用 ARP 协议获取到主机 H2MAC 地址?

    image-20221129003003055

    否定的。

    • ARP 协议只能在一段链路或一个网络上使用,而不能跨网络使用

    对于本例,ARP 协议的使用是逐段链路进行的

    image-20221129003225209

    4、说明

    ARP 请求和响应外,ARP 还有其他类型的报文

    • 例如:用于检查 IP 地址冲突的 “ 无故 ARP、免费 ARP(Gratuitous ARP) ” ;

    ARP 没有安全验证机制,存在 ARP 欺骗(攻击)问题。

    • 因为其他主机给它发送 ARP 请求的广播帧时,都会接受该广播帧,然后返回给自己的 IP 地址和 MAC 地址
  • 相关阅读:
    图像分类MMClassification
    脊髓型颈椎病是什么?
    继承 Inheritance
    SpringMVC默认3个HandlerMapping和4个HandlerAdapter
    【笔试题】【day18】
    18.1 new、delete进一步认识
    使用ChatGPT和MindShow一分钟生成PPT模板
    Docker 学习笔记总结(一)
    ssm+thymeleaf国际化
    【MySQL】字节面试:分析死锁是怎么产生的?
  • 原文地址:https://blog.csdn.net/qq_67720621/article/details/128090148