LWIP专区

格芯单片机LWIP协议栈笔记(7)---ARP协议

发布日期:2011/12/30

1.1 地址解析协议 Address Resolution Protocol

        ARP,即地址解析协议,实现通过IP地址得知其物理地址。在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP地址变换成物理地址的地址转换问题。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32IP地址转换成为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;

 

1.2 RARP 反向地址解析协议

  反向地址解析协议用于一种特殊情况,如果站点被初始化后,只有自己的物理网络地址而没有IP地址,则它可以通过RARP协议,并发出广播请求,征求自己的IP地址,而RARP服务器则负责回答。这样无IP的站点可以通过RARP协议取得自己的IP地址,这个地址在下一次系统重新开始以前都有效,不用连续广播请求。RARP广泛用于获取无盘工作站的IP地址。