ARP协议详解:从概念到实现

需积分: 10 1 下载量 105 浏览量 更新于2024-09-14 收藏 1.13MB PDF 举报
"TCP/IP详解卷二:实现\021.PDF" 本文主要讨论了TCP/IP协议族中的地址解析协议(ARP),这是网络层的重要组成部分,负责将IP地址转换为物理网络接口的硬件地址,如以太网的48位MAC地址。ARP的工作原理是通过高速缓存来存储IP地址与MAC地址的映射关系,当需要发送IP数据到目标主机时,首先会在ARP缓存中查找对应的目标MAC地址。如果找不到,ARP会通过广播方式发送请求,等待目标主机回应其MAC地址,然后才能正确封装以太网帧并发送数据。 在Net/3的实现中,ARP与路由表紧密相关,路由表决定了数据包如何转发。图21-1展示了一个例子,显示了在特定主机(bsdi)上的ARP缓存结构。这个结构包括了接口信息(Ifnet)、接口地址(Ifaddr)以及接口的IP地址(In_ifaddr)。每个接口的IP地址与MAC地址的映射关系存储在llinfo_arp结构的双向链表中,全局变量llinfo_arp作为链表的头部。 图中省略了一些详细的结构信息,如sockaddr_dl和In_ifaddr结构后面的详细内容,但提到了关键点。例如,llinfo_arp结构包含了每个已知硬件地址的一些基本信息。链表的lal_prev指针未在图中表示,通常它会指向前一个元素,形成完整的链表。 在ARP的具体操作中,当需要发送IP数据报给未知MAC地址的目标主机时,ARP会先检查自己的缓存,如果找到匹配的条目,就直接使用对应的MAC地址封装数据。如果缓存中没有,ARP会发送一个ARP请求报文到网络上,这个报文包含了自己的IP和MAC地址,以及目标主机的IP地址。网络中的所有设备都会接收到这个广播,但只有目标主机才会回应它的MAC地址。收到回应后,发送方更新其ARP缓存,并使用获取到的MAC地址发送数据。 ARP协议对于网络通信至关重要,因为它确保了IP层的数据能够正确地通过物理层传输。在本章后续的部分,作者可能还会深入探讨ARP协议的其他方面,如ARP请求和响应的格式、ARP缓存的更新策略、ARP欺骗等安全问题,以及在不同网络环境下的实现细节。这些内容有助于读者全面理解ARP在TCP/IP网络中的作用和运作机制。