ARP理论的基础是:每个网络接口有一个硬件地址(一个48 bit的值,标识不同的以太网或令牌环网络接口)。在硬件层次上进行的数据帧交换必须有正确的接口地址。但是,TCP/IP有自己的地址:32 bit的IP地址。知道主机的IP地址并不能让内核发送一帧数据给主机。内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。ARP的功能是在32 bitIP地址和采用不同网络技术的硬件地址之间提供动态映射。
ARP为IP地址到对应的硬件地址之间提供动态映射。这个过程一般应用程序会自动完成的,用户并不知道。
RARP是被那些没有磁盘驱动器的系统使用,它需要系统管理员进行手工设置。
1:以太网报头中的前两个字段是以太网的源地址和目的地址。目的地址为全1的特殊地址是广播地址。电缆上的所有以太网接口都要接收广播的数据帧。
2:2个字节长的以太网帧类型表示后面数据的类型。对于ARP请求或回答来说,该字段的值为0x0806。
3:硬件类型字段表示硬件地址的类型。它的值为1即表示以太网地址。协议类型字段表示要映射的协议地址类型。它的值为0x0800即表示IP地址。它的值与包含IP数据报的以太网数据帧中的类型字段的值相同,这是有意设计的。
4:接下来的两个1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或回答来说,它们的值分别为6和4。
5:操作字段指出四种操作类型,它们是ARP请求(值为1),ARP回答(值为2),RARP请求(值为3),RARP回答(值为4)。这个字段必需的,因为ARP请求和ARP回答的帧类型字段值是相同的。
6:接下来的四个字段是发送端的硬件地址(在本例中是以太网地址),发送端的协议地址(IP地址),目的端的硬件地址,目的端的协议地址。注意,这里有一些重复信息:在以太网的数据帧报头中和ARP请求数据帧中都有发送端的硬件地址。
ARP包的填充
电脑MAC地址为 aa-aa-aa-aa-aa-aa,IP为 192.168.0.1
我们想要查询 192.168.0.99的MAC地址,应该怎么来做呢?