首页 > 其他分享 >详细总结ARP协议

详细总结ARP协议

时间:2023-09-30 13:32:28浏览次数:32  
标签:ARP 总结 缓存 网段 主机 MAC 详细 路由器

ARP协议(Address Resolution Protocol):

  • ARP协议用于在IP网络中将IP地址解析为物理MAC地址,以便实现数据包在局域网上的传输。它负责维护IP地址与MAC地址之间的对应关系,使得网络设备能够正确地发送和接收数据。

ARP协议的使用场景:

  1. 在局域网内部,当主机A要发送数据给主机B时,会先通过ARP协议查询目标主机B的MAC地址,并将数据包封装在以太网帧中发送到目标MAC地址。
  2. 当一个路由器接收到一个来自外部网络的数据包,并需要将其转发到目标主机时,也会利用ARP协议查询目标主机的MAC地址。

ARP协议的常用配置:

  • ARP协议的配置通常涉及以下两个方面:
  1. ARP缓存表:每个主机或路由器都维护一个ARP缓存表,其中存储了IP地址和相应的MAC地址的对应关系。该表用于快速查找目标MAC地址,在必要时可以手动添加或删除条目。
  2. ARP请求与回应:当一个主机需要获取另一个主机的MAC地址时,它会发送一个ARP请求广播消息,询问该IP地址对应的MAC地址。而目标主机则会回复一个ARP响应消息,包含自己的MAC地址。

ARP协议的工作原理:

  1. 主机A要发送数据给主机B,首先检查其ARP缓存表中是否已有主机B的IP-MAC对应关系。
  2. 如果ARP缓存表中没有该对应关系,主机A会发送一个ARP请求广播消息,包含自己的MAC地址和目标IP地址。
  3. 局域网内的所有主机都会接收到该ARP请求消息,但只有目标主机B会响应。它会将自己的MAC地址封装在一个ARP回应消息中,并发送回给主机A。
  4. 主机A收到目标主机B的ARP回应消息后,将目标主机的IP-MAC对应关系添加到自己的ARP缓存表中。
  5. 主机A可以使用目标主机B的MAC地址封装数据包,并通过以太网发送到目标主机B。

下图展示了两个主机(A和B)之间的数据传输过程:

+----------------------+
          |      ARP 缓存表       |
          +----------------------+
          | IP 地址     | MAC 地址 |
          +----------------------+
          | 192.168.0.1 | AA:BB:CC |
          | 192.168.0.2 | DD:EE:FF |
          +----------------------+

                          ARP 请求
               +-------------------------+
               |                         |
         +------------+            +------------+
         |   主机 A    |            |   主机 B    |
         +------------+            +------------+

在这个示意图中,主机A想要将数据发送到主机B。因为主机A的ARP缓存表中没有主机B的IP-MAC对应关系,所以它会发送一个ARP请求广播消息。 只有主机B会响应ARP请求,并发送一个ARP回应消息,其中包含自己的MAC地址。主机A收到ARP回应消息后,将主机B的IP-MAC对应关系添加到其ARP缓存表中。 之后,主机A可以使用主机B的MAC地址封装数据包,并通过以太网发送到主机B。

查看路由器或主机上的ARP缓存表:

  • 在Windows操作系统上,可以使用命令arp -a来查看本地主机的ARP缓存表。在路由器上,具体的查看方法可能因厂商和操作系统而异。
  • 在Linux操作系统上,可以使用命令arp -n来查看本地主机的ARP缓存表。
  • 在路由器设备上,可以通过使用display arp查看所有的arp缓存表。

ARP在不同网段主机访问解析过程示意图:

假设有两个网段:网段A(192.168.0.0/24)和网段B(192.168.1.0/24),主机A位于网段A(IP地址:192.168.0.10),主机B位于网段B(IP地址:192.168.1.20)。

+------------------+
          |     网段 A       |
          +------------------+
          |   主机 A (A1)    |
          |   192.168.0.10  |
          +------------------+

                     ARP 请求
               +-------------------+
               |                   |
         +--------------+     +----------------+
         |    路由器    |     |   主机 B (B1)   |
         +--------------+     +----------------+
               ||                    ||
               ||          ARP 响应   ||
               \/                    \/
         +--------------+     +----------------+
         |    路由器    |     |   主机 B (B2)   |
         +--------------+     +----------------+
               ||
             数据包
               ||
               \/
          +------------------+
          |     网段 B       |
          +------------------+
          |   主机 B (B3)    |
          |   192.168.1.20  |
          +------------------+
  • 主机A(A1)想要访问主机B(B3),但它们位于不同的网段。所以主机A首先会发送一个ARP请求广播消息,询问网关路由器的MAC地址(其IP地址为192.168.0.1)。
  • 路由器收到ARP请求后,将会响应该消息,并将自己的MAC地址封装在ARP回应消息中发送给主机A(A1)。
  • 主机A(A1)收到ARP回应后,会更新自己的ARP缓存表,并将数据包封装在以太网帧中,其中目标MAC地址为路由器的MAC地址(假设为AA:BB:CC:DD:EE:FF)。
  • 通过以太网将数据包发送给路由器,路由器收到数据包后,根据目标IP地址(192.168.1.20)将数据包转发给网段B。
  • 在网段B中,主机B(B3)接收到数据包,进而完成整个访问过程。

ARP在同一网段主机访问解析过程示意图:

假设有一个网段A(192.168.0.0/24),其中有两个主机:主机A(IP地址:192.168.0.10)和主机B(IP地址:192.168.0.20)。

+------------------+
          |     网段 A       |
          +------------------+
          |   主机 A (A1)    |
          |   192.168.0.10  |
          +------------------+

                     ARP 请求
               +-------------------+
               |                   |
         +--------------+     +----------------+
         |    路由器    |     |   主机 B (B1)   |
         +--------------+     +----------------+
               ||
          ARP 响应
               ||
               \/
          +------------------+
          |     网段 A       |
          +------------------+
          |   主机 B (B2)    |
          |   192.168.0.20  |
          +------------------+
  • 主机A(A1)想要访问主机B(B2),它们位于同一网段。
  • 主机A(A1)首先会检查自己的ARP缓存表,如果该表中没有主机B(B2)的IP-MAC对应关系,则发送一个ARP请求广播消息询问主机B的MAC地址。
  • 主机B(B2)收到ARP请求后,会回复一个ARP响应消息,其中包含自己的MAC地址。
  • 主机A(A1)接收到ARP响应后,将主机B(B2)的IP-MAC对应关系添加到自己的ARP缓存表中。
  • 主机A(A1)可以直接使用主机B(B2)的MAC地址封装数据包,并通过以太网发送给主机B。

在上述ARP解析过程中,路由器扮演着重要的角色并具有以下作用:

  1. 网关功能: 路由器通常是不同网络之间的连接点,它通过具备多个接口和路由功能,实现了从一个网络到另一个网络的数据转发。在ARP解析过程中,当主机A位于一个网段而目标主机B位于另一个网段时,主机A会将数据包发送给路由器作为网关,以便实现跨网段的通信。
  2. 转发数据包: 当路由器收到来自本地网络(局域网)的数据包时,它会根据目标IP地址查找路由表,确定下一跳的路径,并进行数据包的转发。在ARP解析过程中,当路由器收到主机A的数据包后,它会查找目标主机B的IP地址,并利用自己的ARP缓存表或者发送ARP请求来获取主机B的MAC地址。一旦获得目标主机B的MAC地址,路由器可以正确地封装数据包,并将其转发到目标主机B所在的网络。
  3. 维护ARP缓存表: 路由器也会维护自己的ARP缓存表,保存IP地址与对应的MAC地址的映射关系。当收到ARP请求或响应时,路由器会更新自己的ARP缓存表。这样,下一次需要转发数据包时,就可以直接从缓存表中获取目标主机的MAC地址,减少了发送ARP请求的次数,提高了转发效率。

在ARP解析过程中,路由器的作用主要包括充当网关、转发数据包以及维护ARP缓存表。它起到了连接不同网络、实现跨网段通信的重要角色,并通过确定下一跳路径和更新缓存表来保证数据的正确传递。




标签:ARP,总结,缓存,网段,主机,MAC,详细,路由器
From: https://blog.51cto.com/u_15535797/7663730

相关文章

  • 2023-2024-1 20231327司宏林 《计算机基础与程序设计》第一周学习总结
    学期(2023-2024-1)20231327《计算机基础与程序设计》第1周学习总结作业信息这个作业属于哪个课程<班级的链接>(2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>([https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/13009)这个作......
  • 2023-2024-1 20231308 《计算机基础与程序设计》第一周学习总结
    2023-2024-120231308《计算机基础与程序设计》第一周学习总结作业信息作业课程2023-2024-1-计算机基础与程序设计作业要求2023-2024-1计算机基础与程序设计第一周作业作业目标教材内容学习作业正文2023-2024-120231308《计算机基础与程序设计》第一周学习......
  • 重写equals方法是否需要重写hashcode方法的总结
    面试时经常会被问的一个问题:重写equals方法时是否需要重写hashCode方法,反过来又是怎样?这篇文章将对这个问题进行了一个总结和梳理一、考察的知识点首先需要明确下这个问题到底在考察我们的什么知识点,涉及到equals方法和hashCode方法的问题其实都是在考察把某个类的对象作......
  • 数据结构总结
    数据结构数组array·数组有维度之分,是十分重要的数据结构,最简单的数组是一维数组,其逻辑结构为线性表.·数组的特点:插入删除是$O(n)$的,但是可以随机下标访问.STL中的可变长度数组vector基础操作<vector>vector<int>v;vector<int>::iteratorit;v.pus......
  • 算法总结
    排序Quick_SortvoidQuick_Sort(intq[],intl,intr){if(l>=r)return;inti=l-1,j=r+1,x=q[(l+r)>>1];while(i<j){doi++;while(q[i]<x);doj--;while(q[j]>x);if(i......
  • 每日总结9月21日
    今天体育课跑50米差点没给我肠子跑出来,浑身疼,太缺乏锻炼了,从明天开始多锻炼吧,我的父亲来石家庄开会,中午就没有留在学校,下午的数据结构的栈有些难度,不太好懂,离散就更别提了,跟上个学期学的内容像两门课......
  • 每日总结9月22日
    早上历经早八的英语课还考了单词后,人已经麻了,好在今天就没有其他的课了,我爸也是开完会下午的票就要回去了,我就带着他在省博物馆绕了很长时间还在那边的促销书摊上全款提了一套三体,在送我爸进火车站的时候,幸运的抢到了返程的高铁票,真的是完美的一天。......
  • 2023.9.29——每日总结
    学习所花时间(包括上课):0h代码量(行):0行博客量(篇):1篇今天,上午陪同学去医院,下午休息;我了解到的知识点:休息明日计划:休息......
  • 9.28每日总结
     将《软件构造》的作业进行了完善和更改,总算是改到了自己相对满意的程度;又学习了有关于Hive的相关知识;C#的页面设计又弄了弄;背单词!!!解决了之前一直困惑的问题; ......
  • 2023-2024 20231329 《计算机基础与程序设计》第1周学习总结
    作业信息  这个作业属于哪个课程<https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP>这个作业要求在哪里<https://www.cnblogs.com/rocedu/p/9577842.html#WEEK01>这个作业的目标<快速浏览一遍教材计算机科学概论,课本每章提出至少一个自己不懂的或最想解决的问题并在......