TCP/IP详解:Protocol 读书笔记(四)
Chapter4 ARP:地址解析协议
当一台主机把以太网数据帧发送到位于同一局域网上的另外一台主机时,是根据48bit的以太网地址来确定目的接口。设备驱动程序从不检查IP数据包中的目的IP地址。前面我们提到的IP地址和MAC地址。我们通过IP地址映射到MAC地址所用的方法就是ARP协议。
ARP为IP地址到对应的硬件地址之间提供动态映射。动态的意思是这个映射过程是自动化的,一般应用程序用户或系统管理员无需关系。
在链路层上,每一个数据包都有一个MAC地址头。每一块以太网卡都有一个MAC地址,这个地址是唯一的。那么ARP协议的工作就是告诉IP数据包它的IP地址和MAC地址的对应关系,这样才能实现IP包封装到数据帧的基本功能。每一台主机或路由都有一个ARP cache,用以存储局域网内IP地址和MAC地址如何对应。
ARP协议的工作方式
主机会发出一个ARP包(ARP包需要包裹在一个数据帧中),该ARP包中包含自己的IP地址和MAC地址。通过ARP包,主机以广播的形式询问局域网上所有的主机和路由:
- 我是IP地址xxxx,我的MAC地址是xxxx,有谁知道IP地址为10.142.149.2对应的MAC地址吗?
- 那么在广播范围内的主机,拥有10.142.149.2的IP地址的主机会主动回复发出请求的主机:这个IP地址属于我的一个NIC,它对应的MAC地址是xxxx。由于发送ARP请求的主机是采用的广播形式,并附带有自己的IP地址和MAC地址,局域网内其他主机和路由会同时检查自己的ARP cache,如果不符合,则更新自己的ARP cache。
- 经过几次ARP请求之后,ARP cache会达到稳定。如果局域网上设备发生变动,ARP重复上面的过程。