51单片机网络通信及ARP协议论文(2)

时间:2021-08-31

2 51单片机系统网络通信中 ARP 协议设计与实现

  2.1 ARP协议工作流程

  根据TCPIP协议的定义,任何的需要远程通信和访问的主机在进行任何形式的通信前必须获得用于传输的本地地址。如果通信发起的源主机和通信目的端主机在同一个子网网段,那么这种通信形式不需要进行网关的数据交换,本地地址就是目的主机的硬件地址。否则通信发起者就要通过本地路由器(网关)的地址向目的主机进行IP地址和物理地址的沟通。 本文只考虑不需要使用路由器的情况。

  在不使用路由器的前提下,ARP 进行地址解析的步骤如下:通信发起端在网络中广播接收端的 IP 地址,然后与广播地址一致的计算机在收到广播后会相应地发送一个应答,该应答中包含了该应答计算机的IP 地址和实际物理地址的相关信息,接着发送端用接收到的地址信息进行数据分组和传输,最后发送端将获取到 MAC 地址信息存入本地缓存,作为下次通信数据传输的地址配置信息,这个本地缓存就是ARP 缓存。

  如果数据传输的地址相同,那么发送端就可以通过读取 ARP 缓存来获取 MAC 地址,如果数据传输的地址与以往不同,则重复上文的步骤直到获取物理地址。

  2.2 51单片机网络通信时ARP 协议中缓存机制分析与实现

  ARP 缓存条目可以使用静态或者动态两种方式生成。使用静态的方式生成 ARP 缓存条目时占用系统的资源较多,运行效率不高,所以通常采用动态方式生成 ARP 缓存。ARP 条目的定时刷新主要通过定时器来实现,缓存的生存期由单片机定时器初始值和刷新定时器的时间间隔的乘积确定,ARP 条目的查询操作定义可考虑直接对缓存中的IP 地址进行逐个比较来完成查询操作,具体的定义为:发送方先在 ARP 缓存中查询目的方主机的地址,如果在缓存中能够查找到,说明此前进行过该路由的通信过程,则可以在获得目的主机的MAC 地址后开始进行数据传输;否则就需要进行上文提到的获取ARP缓存的步骤,发送ARP请求报文直至对方的进行应答。

  2.3 ARP报文格式

  一个完整的 ARP 头部包含 28个字节的数据,在硬件类型部分选用 DIX 型以太网帧(值为 1);协议类型部分选用 IP 协议(注册值为0x0800);硬件地址长度部分为 6字节;PLEN 为 IP 地址长度部分值为4字节;操作代码部分,当请求操作时值为 1,应答操作时值为 2。