APP下载

基于GigE协议的FPGA网络报文解析电路设计与实现

2018-07-16刘睿姚勇

电子技术与软件工程 2018年10期
关键词:端口号数据流IP地址

文/刘睿 姚勇

1 引言

当前GigE协议主要是作为一种基于UDP协议的传输标准向PC机传输图像,它由GVSP协议和GVCP协议两大协议构成,它们的作用分别是传输数据流和获取控制指令等信息。为了使该协议的图像传输系统在局域网内定点传输,本文设计和实现了网络报文解析电路,使设备可以获取主机的物理地址,申请本地IP地址,解析出GVCP报文以及为上位机提供PING服务。本文的设计在硬件FPGA(EP4CE15F22C8N)、千兆网口(RTL8211EG)和软件小兵以太网测试仪、WIRESHARK抓包软件、以及SIGNALTAP环境中通过了测试。

2 原理和方法

2.1 GigE协议中网络解析电路需求分析

根据UDP协议,已知目的主机IP地址,数据流要能在局域网内传输,还必须获取目的主机的物理地址,并且向服务器申请本地IP地址;而本地的物理地址可以在调用三速以太网MAC ip核时,通过接口配置本地物理地址。要实现以上功能必须用到ARP、DHCP以及ICMP协议。数据流中的其它协议头信息则通过GVCP报文解析模块从GVCP报文中提取后配置,gvsp数据流报文的信息要素来源示意图,如图1所示。

图1:gvsp 数据流报文的信息要素来源示意图

ARP与IP是搭载以太网帧的链路层协议;ICMP与UDP是基于IP的协议。而GVCP和DHCP是基于UDP的协议。以上三组协议在层次上是平行关系,可用代号区分。根据以上分析得出协议层次的框架,如图2所示。

图2:GigE协议网络模块层次

图3:ARP请求、应答、确认报文通信过程

图4:DHCP协议报文通信过程

图5:FPGA获取物理地址和本地IP地址

2.2 ARP_IP识别模块

本模块接收MAC ip核的数据,报文必须与本地物理地址匹配或者是广播报文才有效,ARP或IP报文根据协议代号区分,打上包头包尾标识传至下游模块。

2.3 ARP协议解析

ARP是根据IP地址获取物理地址的协议。首先本模块发送包含IP地址的ARP请求广播报文到网络上的所有主机,等待接收应答报文。含有该IP地址的主机在接收到请求报文后,发出携带着该主机的物理地址的ARP应答报文,本模块接收此报文后提取物理地址,用于配置GVSP数据流,并再次发送一个单播确认报文。

2.4 IP识别模块

本模块区分ICMP和UDP报文,同时检查以下四项是否符合,如果不符则报文无效:IP首部格式;目的IP与本机是否相同;检查首部检验和;提取出总长度并核对包文长度是否正确。

2.5 ICMP协议模块

选择实现ICMP协议中的Ping命令,用于探测本地设备是否畅通。

2.6 UDP识别模块

本模块识别GVCP报文和DHCP报文,检查UDP的校验和;若源端口号为68,目的端口号为67,将报文送到DHCP解析模块。

如果端口号不是上述值,去掉UDP首部将其送到下游模块;提取包文的源端口和目的端口号;检查检验和,如果检验和错误。在报文尾处打上错误标志。

2.7 DHCP协议解析

简化申请IP地址的流程,分解为以下步骤:首先发送discovery报文,等待接收offer报文,提取IP地址后,向DHCP服务器发出request报文请求使用该IP,DHCP服务器认为可以使用则发出ack报文,否则发出nack报文。除此之外,根据工程需要提取出DHCP报文的子网掩码、网关以及租约等信息。

3 实验结果

使用小兵以太网测试仪编辑服务器或上位机向设备发送的报文,在软件WIRESHARK上抓取报文,观察报文通信往返情况;用SIGNALTAP查看FPGA对报文信息的提取。预先设定本地物理地址48‘h987654321012,目的IP地址32‘h12345678。

3.1 ARP协议测试

如图3所示。

3.2 DHCP协议测试

如图4、图5所示。

4 结论

针对GigE协议中图像在局域网内灵活传输的应用需求设计和实现了网络报文解析模块电路,能够准确获取对方主机的物理地址,并申请本地IP地址。应用本文的设计可以将图像数据传输到服务器,利用其强大的运算能力,得出运算结果返回设备;并且可以同时扩展多部相机设备。基于本部分电路还可以进一步设计出简单易用的功能模块电路IP核,只需输入图像数据,其它协议信息头,如UDP协议或GigE协议的信息头由IP核添加,使得图像在局域网内传输。

猜你喜欢

端口号数据流IP地址
汽车维修数据流基础(下)
铁路远动系统几种组网方式IP地址的申请和设置
在Docker容器中安装应用程序
一种提高TCP与UDP数据流公平性的拥塞控制机制
基于SNMP的IP地址管理系统开发与应用
浅谈以java为基础的Socket通信简介及实现
基于数据流聚类的多目标跟踪算法
北医三院 数据流疏通就诊量
Winsock编程在《计算机网络基础》教学中的应用
基于Android系统的互动展示APP的研究与设计