TCP/IP——ARP地址解析协议

 ARP的功能是——在32bit的IP地址和采用不同网络技术的硬件地址之间提供动态映射。

                                                   以太网封装格式(RFC 894)

 

用于以太网的ARP请求或应答分组格式

以太网目的地址全1的特殊地址是广播地址;

帧类型:0x0806;

硬件类型:值为1表示以太网地址;

协议类型:0x0800表示IP地址;

硬件地址长度:MAC地址值为6;

协议地址长度:IP地址值为4;

操作字段:4种操作类型(1 ARP请求,2 ARP应答,3 RARP请求,4RARP应答);

 

注意:这里有一些重复信息:在以太网的数据帧报头中和ARP请求数据帧中都有发送端的硬件地址

对于一个ARP请求来说,除了目的端硬件地址待填充之外,所有的其他字段都有填充值。当系统收到一份目的端是本机的ARP请求报文之后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,并把操作字段置为2,最后把它发送回去。

 ARP的工作机制:

  1.每个主机都会给自己的ARP缓冲区建立一个ARP列表,以表示IP地址和MAC地址之间的映射关系。

  2.主机新加入网络时(也可能是MAC地址发生变化,接口重启等),会发送免费ARP报文把自己IP地址和MAC地址映射关系广播给其他主机。

  3.网络上的主机接收到免费ARP报文时,更新自己的ARP缓冲区。将新的映射关系更新到自己的ARP表中。

  4.某个主机需要发送报文时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,直接发送数据;如果没有,向本网段所有主机广播ARP数据包,包括:源主机IP地址,源主机MAC地址,目的主机IP地址等。

  5.当其他主机收到该ARP数据包时:

    首先检查数据包中的IP地址是否是自己的,若不是,忽略该数据包;

    如果是,首先从数据包中取出源主机的IP和MAC地址写入ARP列表中,若已经存在,则覆盖;

    将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要的MAC地址。

  6.源主机收到ARP响应包后,将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。

猜你喜欢

转载自www.cnblogs.com/taoyuxin/p/13365415.html