资料目录
LWIP专区
格芯单片机LWIP协议栈笔记(7)---ARP协议
发布日期:2011/12/30
ARP,即地址解析协议,实现通过IP地址得知其物理地址。在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP地址变换成物理地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网的地址。这就需要在互连层有一组服务将IP地址转换为相应物理地址,这组协议就是ARP协议。
ARP协议的数据结构如下:
typedef structarphdr
{
unsigned short arp_hrd; /*硬件类型*/
unsigned short arp_pro; /*协议类型*/
unsigned char arp_hln; /*硬件地址长度*/
unsigned char arp_pln; /*协议地址长度*/
unsigned short arp_op; /*ARP操作类型*/
unsigned char arp_sha[6]; /*发送者的硬件地址*/
unsigned long arp_spa; /*发送者的协议地址*/
unsigned char arp_tha[6]; /*目标的硬件地址*/
unsigned long arp_tpa; /*目标的协议地址*/
}ARPHDR,*PARPHDR;
反向地址解析协议用于一种特殊情况,如果站点被初始化后,只有自己的物理网络地址而没有IP地址,则它可以通过RARP协议,并发出广播请求,征求自己的IP地址,而RARP服务器则负责回答。这样无IP的站点可以通过RARP协议取得自己的IP地址,这个地址在下一次系统重新开始以前都有效,不用连续广播请求。RARP广泛用于获取无盘工作站的IP地址。