首页 理论教育ARP程序设计方法在现场总线与工业以太网及其应用技术中的应用

ARP程序设计方法在现场总线与工业以太网及其应用技术中的应用

【摘要】:ARP数据报结构如下:ARP处理过程主要包括3个函数:ARP请求、ARP应答和ARP处理。ARP包处理函数完成对接收到的ARP应答包的信息处理,当发送了ARP请求之后,会收到目的地址发来的回应信息,带有目的地址的物理地址,通知使用ARP请求的函数,并存储地址,设置时间,以备老化处理。图9-16 ARP请求帧发送流程图图9-17 ARP帧应答流程图1.ARP程序头文件arp.hARP程序头文件arp.h定义如下:2.ARP程序设计本程序实现逻辑地址到物理地址的动态映射。ARP程序arp.c设计如下。

本设计中使用全局变量保存目的IP地址和其物理地址以及存在时间,然后用定时器进行老化处理,因此,在每次通信前都需要操作全局变量,根据对应地址存在的时间长短,决定是否需要重新进行ARP。如果存在时间过长,则重新进行ARP,同时如果和一个地址通信一次之后,便更新物理地址的老化时间并存储映射地址。这种方式占用单片微控制器资源较少,但可以实现地址的解析,在点对点通信时很有效。

ARP数据报结构如下:

978-7-111-35607-3-Chapter09-51.jpg

ARP处理过程主要包括3个函数:ARP请求、ARP应答和ARP处理。

如果需要进行ARP请求,首先判断目的地址是不是本子网的IP。如果是,则按照ARP的数据结构,填充数据,发送请求物理地址;如果不是本地的IP,则请求默认网关的物理地址。ARP包处理函数完成对接收到的ARP应答包的信息处理,当发送了ARP请求之后,会收到目的地址发来的回应信息,带有目的地址的物理地址,通知使用ARP请求的函数,并存储地址,设置时间,以备老化处理。ARP应答函数比较简单,当系统收到一份目的端为本机的ARP请求报文后,它就把硬件地址填充进去,然后用两个目的端地址分别替换两个发送端地址,并把操作字段置为2,最后把它发送回去。

ARP请求帧发送流程图如图9-16所示,ARP帧应答流程图如图9-17所示。

978-7-111-35607-3-Chapter09-52.jpg

图9-16 ARP请求帧发送流程图

978-7-111-35607-3-Chapter09-53.jpg

图9-17 ARP帧应答流程图(www.chuimin.cn)

1.ARP程序头文件arp.h

ARP程序头文件arp.h定义如下:

978-7-111-35607-3-Chapter09-54.jpg

2.ARP程序设计

本程序实现逻辑地址(IP地址)到物理地址(以太网地址)的动态映射。

ARP程序arp.c设计如下。

978-7-111-35607-3-Chapter09-55.jpg

978-7-111-35607-3-Chapter09-56.jpg

978-7-111-35607-3-Chapter09-57.jpg