网络通讯
TCP/IP网络中,主机和路由器在网络层用IP地址来识别,在数据链路层用物理地址,也就是MAC地址来识别。两台主机在通讯过程中,假设已知道了对方的IP地址,但是网络层数据在经过链路层时还要知道对方的MAC地址。通过IP地址找到MAC地址的过程就是正向地址解析,地址解析协议就是干这事的。 通常地址解析会有将静态影射和动态映射结合。静态映射就是在本机存储一张ARP表,用来存储一部分的IP地址和MAC地址映射。当不知道对方的MAC地址,也就是表中没有存某一个IP的MAC地址的时候,就要用动态映射,也就是通过ARP协议来找相应的MAC地址。ARP协议是只用于同一子网下,只为同一子网下的主机和路由器解析IP为MAC. 假设A要发送IP数据到B,但是A中的ARP表没有B的MAC地址,就会先启用ARP协议,以获得B的MAC地址。 首先, A构造一个ARP查询分组,分组中插入源IP和源MAC,以及目的IP和目的MAC,但是目的MAC事先不知道,要通过查询才知道,所以会在目的MAC字段插入FF-FF-FF-FF-FF-FF, 指示网卡以广播的形式广播到整个子网。这个全1的MAC地址就是MAC广播地址。子网中的机器收到这个广播的帧,检查源IP是否是子的IP,不是就丢掉帧,是则单独给发送查询帧的主机发送一个ARP响应分组,其中就包括了要查询的IP对应的MAC地址