(有关局域网组网技术)ARP 协议工作过程是什么?
发布网友
发布时间:2022-04-30 09:10
我来回答
共1个回答
热心网友
时间:2022-06-20 09:09
ARP 是 TCP/IP 设计者利用乙太网的广播性质,设计出来的位址解释协定。它的主要特性和优点是它的位址对应关系是动态的,它以查询的方式来获得 IP 位址和实体位址的对应。它的工作原理非常简单:
1. 首先,每一台主机都会在 ARP 快取缓冲区 (ARP Cache)中建立一个 ARP 表格,用来记录 IP 位址和实体位址的对应关系。这个 Table 的每一笔资料会根据自身的存活时间递减而最终消失,以确保资料的真实性。
2. 当发送主机有一个封包要传送给目的主机的时候,并且获得目的主机的 IP 位址;那发送主机会先检查自己的 ARP 表格中有没有该 IP 位址的实体位址对应。如果有,就直接使用此位址来传送框包;如果没有,则向网路发出一个 ARP Request 广播封包,查询目的主机的实体位址。这个封包会包含发送端的 IP 位址和实体位址资料。
3. 这时,网路上所有的主机都会收到这个广播封包,会检查封包的 IP 栏位是否和自己的 IP 位址一致。如果不是则忽略;如果是则会先将发送端的实体位址和 IP 资料更新到自己的 ARP 表格去,如果已经有该 IP 的对应,则用新资料覆盖原来的;然后再回应一个 ARP Reply 封包给对方,告知发送主机关于自己的实体位址;
4. 当发送端接到 ARP Reply 之后,也会更新自己的 ARP 表格;然后就可以用此纪录进行传送了。
5. 如果发送端没有得到 ARP Reply ,则宣告查询失败。
ARP 的查询过程
前面说的 ARP 表格,只有在 TCP/IP 协定被载入核心之后才会建立,如果 TCP/IP 协定被卸载或关闭机器,那么表格就会被清空;到下次协定载入或开机的时候再重新建立,而同时会向网路发出一个 ARP 广播,告诉其它机器它的目前位址是什么,以便所有机器都能保持最正确的资料。
然而,ARP cache 的大小是有所*的,如果超过了界限,那么越长时间没被使用过渡资料就必须清理掉,以腾出空间来储存更新的资料。所以,当机器收到 ARP equest 封包时,如果查询对象不是自己,则不会根据发送端位址资料来更新自己的 ARP 表格,而是完全忽略该封包。同时,每笔存在 cache 中的资料,都不是永久保存的:每笔资料再更新的时候,都会被赋予一个存活倒数计时值,如果在倒数时间到达的时候,该资料就会被清掉。然而,如果该资料在倒数时间到达之前被使用过,则计时值会被重新赋予。
当然了,ARP 尚有一套机制来处理当 ARP 表格资料不符合实际位址资料的状况(例如,在当前连线尚未结束前,收到目的端的位址资料更新讯息);或是目的主机太忙碌而未能回答 ARP 请求等状况。
参考资料:http://windows.chinaitlab.com/network/6037.html