• 计算机网络:网络层ARP协议


    在实现IP通信时使用了两个地址:IP地址(网络层地址)MAC地址(数据链路层地址)

    问题:已知一个机器(主机或路由器)的IP地址,如何找到相应的MAC地址?

    为了解决上述问题,提出了地址解析协议ARP:用于解决同一个局域网上从IP地址到MAC地址的映射问题

    ARP高速缓存(ARP cache)

    主要功能: 

    ·存放IP地址到MAC地址的映射表

    ·映射表动态更新(新增或超时删除)

    作用:

    ①存放最近获得的IP地址到MAC地址的绑定②减少ARP广播的通信量③为了减少ARP通信量,主机A在发送其ARP请求分组时,就会将自己的IP地址到MAC地址的映射写入ARP请求分组④但主机B收到A的ARP请求分组时,将主机A的IP地址及其对应的MAC地址映射写入主机B自己的ARP高速缓存中。不必再发送ARP请求

    ARP工作流程

    使用ARP的四种典型情况

     

    1.发送方是主机,要把IP数据报发送到本网络上的另一个主机,此时使用ARP找到目的主机的硬件地址

    2.发送方是主机,要把IP数据报发送到另一个网络上的一个主机,此时使用ARP找到本网络上的一个路由器的硬件地址。其余工作由路由器完成

    3.发送方是路由器,要把IP数据报发送到本网络上的一个主机,使用ARP找到目的主机的硬件地址

    4.发送方是路由器,要把IP数据报转发到另一个网络上的一个主机,使用ARP找到本网络上另一个路由器的硬件地址。其余工作由该路由器完成

     ARP工作流程图如下

    两台主机不在同一个局域网问题

    由于ARP可以实现的是同一个局域网内的IP地址到MAC地址的映射

    因此存在问题:两台主机不在一个局域网上怎么办?

    如上图所示,如果主机A要想主机B发送数据,则需要知道主机B的MAC地址才能在链路层发送数据报。

    通信的路径是:A->经过R1转发->B

    从A->路由器R1

    因此主机A必须知道路由器R1的IP地址,并通过ARP协议解析出路由器R1的MAC地址,然后将IP数据报传送到路由器R1

    从路由器R1->B 

    路由器R1在获取来自主机A的IP数据报后,需要知道主机B的MAC地址,才能转发IP数据报。因此路由器R1也需要通过ARP协议解析主机B的MAC地址

    ARP查找IP地址对应的MAC地址

    本局域网上广播发送ARP请求(路由器不转发ARP请求)

    ARP请求分组:包含发送方的MAC地址、发送方IP地址、目标方MAC地址(未知时填0)、目标方IP地址

    单播ARP响应分组:包含发送方的MAC地址、发送方IP地址、目标方MAC地址、目标方IP地址

    ARP分组封装在以太网帧中传输

    ARP报文格式

     

  • 相关阅读:
    天翼物联亮相2022中国信息通信业发展高层论坛
    最高可达100倍压缩!钒星北斗开放平台:渐进式图片压缩库,实现北斗三号RDSS短报文图片传输
    Asp.Net Core6.0中MediatR的应用CQRS
    04 动力云客之登录后获取用户信息+JWT存进Redis+Filter验证Token + token续期
    【Ribbon】SpringCloud的Ribbon负载均衡使用
    Python爬虫案例入门教程(纯小白向)——夜读书屋小说
    openharmony容器组件之Panel
    vue 改变路由(URL)参数不刷新页面
    Oracle常用对象精解(2)
    阿里P8MySQL,基础/索引/锁/日志/调优都不误,一锅深扒端给你
  • 原文地址:https://blog.csdn.net/RXY24601/article/details/134444239