转自百度百科
http://baike.baidu.com/view/32698.htm
定义
地址解析协议(Address Resolution Protocol,ARP)是在仅知道主机的IP地址时确定其物理地址的一种协议。因IPv4和以太网的广泛应用,其主要用作将IP地址翻译为以太网的MAC地址。
注:已知ip得MAC,为数据链路层组帧时,为以太网头提供MAC地址。
ARP(Address Resolution Protocol,地址解析协议)是获取物理地址的一个TCP/IP协议。某节点的IP地址的ARP请求被广播到网络上后,这个节点会收到确认 其物理地址的应答,这样的数据包才能被传送出去。
协议简介
当主机上的需要发送一个数据到一个目的IP时,设备驱动程序并不能理解这个IP地址.
系统需要将IP地址转换为网络地址,再传递给设备驱动程序发送出去.
ARP(地址解析协议)就是这样的一种网络协议.用于将高层协议地址(IP地址)转换为物理
网络地址.
linux内核中保存有一个ARP表,里面保存有IP地址和MAC地址的对应关系.使用arp命令
可以查看主机的ARP表.
原理
在TCP/IP协议中,A给B发送IP包,在报头中需要填写B的IP为目标地址,但这个IP包在以太网上传输的时候,还需要进行一次以太包的封装,在这个以太包中,目标地址就是B的MAC地址。
计算机A是如何得知B的MAC地址的呢?解决问题的关键就在于 ARP协议 。 在A不知道B的MAC地址的情况下,A就广播一个ARP请求包,请求包中填有B的IP(192.168.1.2),以太网中的所有计算机都会接收这个请求,而正常的情况下只有B会给出ARP应答包,包中就填充上了B的MAC地址,并回复给A。 A得到ARP应答后,将B的MAC地址放入本机缓存,便于下次使用。 本机MAC缓存是有生存期的,生存期结束后,将再次重复上面的过程。