撸猫791 2024-06-18 17:18 采纳率: 66.7%
浏览 6
已结题

不同局域网使用ARP

局域网 A 中的一台主机 N1,需要向另一个局域网 B 中的主机 N2 ,发送IP数据报,但是A此前并没有 同B有过联系,已知A中的路由器为R1,B中的路由器为R2.问:当N1成功发送IP数据报,并且N2成功接收后,N1的ARP高速缓存中是否有N2的MAC地址?

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-18 17:18
    关注

    引自免费微信小程序:皆我百晓生

    在不同局域网之间的通信场景中,当主机N1(位于局域网A)尝试向主机N2(位于局域网B)发送IP数据报时,由于N1和N2处于不同的广播域,N1并不能直接获取到N2的MAC地址。ARP(Address Resolution Protocol)协议主要用于同一局域网内IP地址到MAC地址的转换,因此,N1首先会通过ARP查询其默认网关(通常是路由器R1)的MAC地址。

    以下是详细的步骤描述:

    1. N1查找本地ARP缓存:N1首先检查其ARP缓存中是否已经有路由器R1的MAC地址。如果没有,它将广播一个ARP请求,询问R1的MAC地址。

    2. R1回应ARP请求:R1收到N1的ARP请求后,会发送一个ARP响应,其中包含R1的MAC地址。

    3. N1更新ARP缓存并发送数据包给R1:N1收到R1的ARP响应后,会将R1的IP地址与MAC地址的映射关系存储在本地ARP缓存中,并封装IP数据报,将其发送给R1。

    4. R1处理数据包:R1收到数据包后,根据目的IP地址,查找路由表,确定下一跳是R2。R1也会进行类似的ARP过程,找到R2的MAC地址,并将数据包转发给R2。

    5. R2处理数据包:R2接收到数据包后,再次根据目的IP地址查找路由表,发现N2位于其直连网络上,然后R2通过ARP获取N2的MAC地址,将数据包直接发送给N2。

    6. N2接收数据包:N2收到数据包后,对其进行解封装并处理。

    7. 回应数据包:如果N2需要回应数据包,则会反向进行上述过程。此时,N2会通过ARP获取R2的MAC地址,R2再通过ARP获取R1的MAC地址,最后R1通过ARP获取N1的MAC地址。

    在这个过程中,N1的ARP缓存中并不会直接有N2的MAC地址信息,因为N1和N2之间没有直接的通信路径。N1的ARP缓存中只会有其默认网关R1的MAC地址。然而,在N2回应数据包时,N1的ARP缓存中最终会添加N2的MAC地址条目,这是因为数据包从N2返回至N1的过程中,N1会通过ARP获取R1的MAC地址,而R1会通过ARP获取N2的MAC地址,然后将N2的MAC地址信息传递给N1。

    为了更直观地理解这一过程,下面是一个简化版的示意图:

       N1 --- R1 ---- R2 --- N2
      /       /         \       \
     (局域网A) (互联网) (局域网B)
    

    在这个图中,实线表示物理连接,虚线表示数据传输路径。N1和N2之间的数据传输需经过R1和R2的中转。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月26日
  • 已采纳回答 6月18日
  • 创建了问题 6月18日

悬赏问题

  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 有人知道怎么在R语言里下载Git上的miceco这个包吗
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥20 关于DAC输出1.000V对分辨率和精度的要求
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?