第四章 ARP:地址解析协议虽然数据链路层的第一道关卡是 MAC 地址,但基于 TCP/IP 的网络主要使用 IP 地址来标识主机而不使用 MAC 地址
比如要连接到别人的电脑或拷贝共享文件,一般会说:“告诉我你电脑的 IP”,而不是“告诉我你电脑的MAC”
从以太网帧结构知道,不知道对方网卡的 MAC 地址是无法正常通讯的,那主机是怎样从 IP 地址上自动猎取到 MAC 地址呢
这就是这章要讲的“地址解析协议”,以下简称其英文缩写“ARP”
4.1 ARP 工作原理从对方的 IP 地址猎取 MAC 地址最简单的方法是静态映射,即手工建立 IP地址和 MAC 地址的映射表
这种方法必须预先知道每个 IP 对应的网卡的 MAC地址,并写到程序里,发送数据时先搜索这张表,找到 IP 地址对应的 MAC 地址
静态映射表内容如下:表 4-1 静态映射表IP 地址MAC 地址192
1500-0B-6A-8E-3F-C2192
8200-1C-35-27-59-A8静态映射表有一定的局限性,如:一台电脑换过网卡后,查找得出的 MAC地址就不正确,会导致通讯不上;当对方电脑的 IP 地址改变后,虽然 MAC 地址没有变,但映射关系变了,静态映射表也必须手工改变
这样,维护一张静态映射表就很费劲
为了避开手工维护映射表,设计人员使用 ARP 协议来实现地址的映射,由主机自己智能地维护一张动态映射表
具体是怎样实现地呢
通过图 4-1 可以形象的说明
假如 MCU 主机需要与 IP 为 192
15 的主机建立连接,但不知道其 MAC 地址,于是先在整个网络广播,查询内“192
15“对应的MAC 地址,由于是广播(目的 MAC 地址是 FF-FF-FF-FF-FF-FF),同一网络上的所有主机都收到了这个请求
但只有电脑 A 应答,因为它