首页 > 试题广场 >

ARP是地址解析协议,简单语言解释一下工作原理。

[问答题]
ARP是地址解析协议,简单语言解释一下工作原理。
推荐
答:1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
2:当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址。
3:当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
4:源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。
广播发送ARP请求,单播发送ARP响应。
编辑于 2015-12-18 11:35:54 回复(8)
  • ARP是解决统一局域网上的主机路由器的IP地址和硬件地址的映射问题。
  • 每一个主机都设有一个ARP高速缓存,里面有本局网上的各主机和路由器的IP地址到硬件地址的映射表。
  • 当主机A要向本局域网上的某个主机B的IP地址发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址,如果有,就在ARP高速缓存器中查找出其对应的硬件地址,再把这个硬件地址写入mac帧中,然后通过局域网把mac帧发往此硬件地址,否则主机A就自动运行ARP,然后按以下步骤找出主机B的硬件地址:

(1)ARP进程在本局网上广播发发送一个ARP请求分组。 
(2)在本局域网上的所有主机上运行的ARP进程都收到此ARP请求分组。 
(3)主机B的IP地址与ARP请求分组中要查询的IP地址一致就收下这个ARP请求分组,并向主机A发送ARP响应分组,并在这个ARP响应分组中写如自己的硬件地址。 
(4)主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。

发表于 2015-12-17 20:59:44 回复(0)
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
发表于 2017-05-24 15:53:28 回复(0)

每个主机中都保存一个ARP高速缓存,里面保存主机的IP地址和MAC地址的对应关系。当主机A要向主机B发送消息时,现在缓存中查询B的IP地址对应的MAC地址,如果有,则向其发送,若没有,则向本网段的所有主机广播ARP数据包,里面包括A的IP地址和MAC地址,B的IP地址。如果别的主机收到这个消息,则会忽略,因为IP地址不符,而B收到之后先将A的IP地址和MAC地址的对应关系写到自己的ARP缓存,若有覆盖,然后再将自己的MAC地址写入ARP响应包返回给A(单播)。若一段时间后A没有收到响应,则地址解析失败

编辑于 2020-02-07 13:52:31 回复(0)

工作过程

主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;
主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;
当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:
第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。
第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。
第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。
第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。
发表于 2019-03-17 15:02:59 回复(0)
第三步 如果ARP查询包中的目标IP地址不是本机IP的机器 是可以将查询包中的源IP和MAC地址添加到自身的ARP缓存中的 这样可以加快ARP缓存的更新速度 同时也能减少网络中ARP包的数量
发表于 2016-08-20 09:52:46 回复(0)
ARP地址解析协议主要是工作在链路层和ip层之间,当然我们平时便于叙述还是将其当做ip层协议,包括其RARP的逆地址解析协议;ARP的目的主要用于根据ip地址查到目标主机的mac地址,为何有了IP地址还需要硬件mac地址呢,因为IP地址相当于家庭的门牌号,这个门牌号可能会变,就算不变,那可能家庭也会变,而mac地址相当于身份证明,妥妥的永远绑定(当然现在也有技术可以临时更改mac地址,此地暂且不表)所以无法将ip地址跟设备永远绑定在一起,所以只有ip地址的话无法保证一定可以传输到最终目的地址;其次ip地址是个虚拟地址,作为一个数据包而言最终目的地址是不变的,但是在数据包传输过程中每个路由地址不同,那么怎么能根据一个不变的ip地址去分别对应这么多转包节点呢,那就是mac地址,mac地址是烧录在网卡上的,一共48bit,6个字节,每个字节用16进制表示,mac地址由两部分组成,前三个字节表示生产商的标识,后三位标识具体型号。mac地址工作在数据链路层,主要是数据链路层寻址用的,arp协议只工作在一个广播域。
发表于 2021-11-02 09:56:29 回复(0)
每个主机都设有ARP缓存,先查缓存再广播(源ip+mac,目的IP)。收到广播的主机检查广播中目的IP是否与自己相同,相同则发送响应报文。
发送ARP请求,单播发送ARP响应。

还有另一个问题:有了ip为何还需要mac?
    首先要理解报文传输的工作逻辑: IP地址是逻辑地址寻址,工作在网络层,具有全网范围内的寻址能力,可以快速定位目标地址所在的网络 MAC地址是物理地址寻址,工作在数据链路层,要将数据包发给对方必须知道对方的MAC地址,因为主机的以太网网卡只能识别MAC地址 为何要如此设计那?或者说,有了mac地址唯一定位,为什么还要设计IP协议那?
     (1)IP地址的分配是根据网络的拓朴结构,而不是根据谁制造了网络设置。若将高效的路由选择方案建立在设备制造商的基础上而不是网络所处的拓朴位置基础上,这种方案是不可行的。
    (2)当存在一个附加层的地址寻址时,设备更易于移动和维修。例如,如果一个以太网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。 主机的以太网网卡只能识别MAC地址,而不能识别IP地址,若数据帧中不指明主机B的MAC 地址,主机B的网卡不能识别该帧是发给自己的,因此主机A仅知道主机B的IP地址还不够,还必须知道主机B的MAC地址,才能完成对主机B的访问;
编辑于 2020-12-14 11:20:51 回复(0)
<p>知识点掌握不全</p>
发表于 2020-06-28 11:08:24 回复(0)

当一台主机发送一个数据包到192.168.0.1时,它不知道这个地址在哪里,它会这个包交给ARP协议,ARP协议进行全网广播,每一个在同一个网络里的主力都会收到请求包,但是只有IP地址是192.168.0.1会以单播的形式回复,这样就达到了目的

发表于 2019-10-28 16:59:21 回复(0)
广播发送ARP请求,单播发送ARP响应
发表于 2019-04-01 14:26:55 回复(0)
 源主机在发送请求的时候,需要先从自身的ARP缓冲区里面获取相应的ip所对应的Mac地址,如果有检测到相应地址,则直接发送数据。
如果没有,则需要以广播的形式发送ARP数据包,让处于相同网段的所有主机都会接受到该数据包。
如果接收方发现自己的ip正好发送方的数据包里面的ip地址一致,则将会把自己的mac地址写入相应数据保重,并返回。
ARP缓存区建立的ARP列表主要是以表示 IP 地址和 MAC 地址之间的对应关系。
发表于 2019-01-13 21:54:02 回复(0)
首先每个主机都会在自己的ARP缓冲区里建立一个ARP列表,以表示IP地址和MAC地址间的对应关系
当源主机要发送数据时,首先检查ARP表中是否有对应的IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就像本网段的所有主机发送ARP数据包,该数据包包括内容有,源主机IP地址,源主机MAC地址,目的主机的IP地址。
当本网络中的所有主机收到该ARP 数据包时,首先检查数据包中的IP地址是否时自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP地址和MAC地址写到自己ARP列表中,如果已经存在,则覆盖。然后将自己的MAC地址写入ARP响应包,告诉源主机这是自己的MACi地址。
源主机收到ARP相应包后,将目的主机的IP地址和MAC地址写入ARP列表中,并利用此信息发送数据,如果源主机一直没有收到ARP相应数据包,表示ARP查询失败。
广播发送ARP请求,单播发送ARP响应。
发表于 2018-03-27 23:22:06 回复(0)
每台主机都有一个ARP列表,存放IP地址和MAC地址的对应关系。
当源主机向目标主机发送数据时,首先查看ARP列表中IP地址对应的目标主机的MAC地址,如果找到则直接发送数据;如果找不到,就向该网段中的所有主机发送ARP请求包,里面存放源IP地址,源MAC地址,目标IP地址。
当该网段中的所有主机收到该ARP响应包之后,首先查看目标ip地址是否与自己相匹配,如果不是则忽略,如果是,就将源ip地址和源MAC地址存放到自己的ARP列表中,然后将自己的MAC地址存放到ARP响应包中发送给源主机;
目标主机收到ARP响应包,则取出对应的IP和MAC地址存放到ARP列表中,并发送数据。若未收到则ARP查询失败。
广播ARP请求,单播ARP响应
发表于 2018-03-22 00:12:26 回复(0)
1.Arp地址解析协议,每个主机都有自己的arp表,里面有对应的网段中的ip地址和网段。 2.当源主机向目标主机发送数据时先检测自己arp表中有没有目标主机ip,如果有直接发送,如果没有,则向本网段中所有主机发送该数据包(含有目标ip)。 3.网段中的主机收到消息后检查是不是自己的ip,自己的arp表中是否有该ip,如果不是,忽略,如果是将自己的arp表写入并进行覆盖。返回数据包。 4.找打了对应ip就进行发送,如果没有找到就一直找下去,最后广播该ip
发表于 2018-03-12 15:00:37 回复(0)
        请求主机在本网段类发送以太网广播请求应答,广播地址是255.255.255.255.255.255。收到广播数据的主机将请求的IP地址与自己的IP地址进行比较,如果不是就丢弃该数据包,如果是就给请求主机发送一个ARP数据包,告诉对方自己的mac地址。
        为了减少ARP请求的次数,计算机内部都保存了一张ARP缓存表,该表保存了IP地址和mac地址的对应关系,对于一段时间前查询的结果都会保存在这样表中。因此,每次进行ARP请求之前,先查询这张缓存表中能否找到答案,如果找不到再进行ARP广播
发表于 2017-07-31 14:36:59 回复(0)
广播发送ARP请求,单播发送ARP响应。
发表于 2016-08-26 15:23:09 回复(0)
zll头像 zll
1.首先,每个主机都会在自己的ARP缓冲区里建立一个ARP列表,以表示IP地址与MAC地址的对应关系。
2.源主机要发送数据时,首先要检查自己的ARP列表是否有对应的目的IP地址所对应的MAC地址,如果有,则发送数据。如果没有,就向本网段的所有主机发送ARP数据包,该数据包的内容包括:源主机IP地址,源主机MAC地址,目的主机IP地址。
3.当本网段的所有主机接收到该ARP数据包时,首先检查该数据包的IP地址是否是自己的IP地址,如果不是则忽略该数据包。如果是,则从数据包中取出源主机的IP地址和MAC地址添加到自己的ARP列表中。如果已存在,则覆盖。然后,将自己的MAC地址写入到响应数据包中,告诉源主机自己是它想要找的MAC地址。
4.源主机收到ARP响应包后,将目的主机的MAC地址添加到自己的ARP列表中,并以此信息发送数据。如果源主机一直没有收到ARP响应包,则说明本次ARP查询失败。
广播发送ARP请求,单播发送ARP响应。

发表于 2016-03-20 10:32:35 回复(0)