[发明专利]基于AF_XDP的GigE Vision协议数据包处理方法及系统在审
申请号: | 202211513193.1 | 申请日: | 2022-11-30 |
公开(公告)号: | CN115714826A | 公开(公告)日: | 2023-02-24 |
发明(设计)人: | 汪斌;邵云峰;曹桂平;董宁 | 申请(专利权)人: | 合肥埃科光电科技股份有限公司 |
主分类号: | H04L69/22 | 分类号: | H04L69/22;H04L67/563;G06F9/50 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 230088 安徽省合肥市高新*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 af_xdp gige vision 协议 数据包 处理 方法 系统 | ||
本发明的一种基于AF_XDP的GigE Vision协议数据包处理方法及系统,属于GigE Vision协议数据包处理领域。本发明在内核态的网卡驱动上,挂载用于重定向GVSP数据包的XDP程序,通过所述XDP程序生成以太网数据帧重定向准则;XDP程序用于判断每个到达网口的以太网数据帧是否符合重定向准则,若符合,则将所述以太网数据帧重定向到用户态的用户空间应用程序;若不符合,则将所述以太网数据帧放行进入常规内核网络协议栈。本发明的基于AF_XDP的GigE Vision协议数据包处理方法直接将数据定位到用户空间的应用程序中,降低了内核协议栈的开销,避免了内核态和用户态切换带来的性能消耗,降低了CPU的利用率,数据传输的速度得到了很大的提升。
技术领域
本发明涉及网络协议数据包处理领域,特别是涉及GigE Vision协议数据包处理领域。
背景技术
目前工业相机的通信接口主要包括1394接口、USB接口、CameraLink接口以及千兆以太网接口。其中千兆网通信以其传输距离远、传输速度较高、组网设备数量多和无需数据采集卡的特点,得到了广泛的应用。主流工业相机厂家,国外如德国Balser、日本JAI、英国E2V、加拿大Dalsa、韩国Vieworks,国内如大恒、嘉恒中自、微视图像等,均有多款千兆网通信的工业相机产品。
千兆网相机通过网络通信,必须运行网络通信协议。在传输层的协议有TCP协议和UDP协议。TCP协议提供IP环境下的数据可靠传输,提供的服务包括数据流传送、有效流控、全双工操作和多路复用、通过面向连接、端到端和可靠的数据发送。UDP则不为IP提供流控或差错恢复功能。但TCP对计算机资源消耗较多,UDP协议简单高效。由于UDP协议更加简单高效,国际自动成像协会(AIA)联合各大机器视觉厂商,共同开发了基于UDP协议的GigEVision通信协议。但是通过系统内核协议栈接收UDP数据并对GigE Vision协议进行解析和拷贝图像数据,会在数据传输流量增加时显著提高CPU利用率。并且在主机性能波动如拔插U盘或网络状况波动的情况下对于可能出现的数据帧丢失、乱序问题,没有相应的重传机制对数据帧进行处理,使得所接收的图像存在不完整和丢帧的问题。总结地说,现有的基于系统内核协议栈解析GigE vision协议数据包接收图像数据的方式会随着传输数据流量的增大而显著提高CPU利用率。在高负载如1000Mbps或10Gbps的数据流量带宽下接收图像数据会出现大量的丢帧和不完整帧情况。
软件实现高性能包处理的场景中,对每个包的处理耗时有极高的要求。通用目的操作系统中的网络栈更多是针对灵活性进行优化,这意味着它们花在每个包上的指令过多,不适合网络高吞吐的场景。随后出现了一些专门用于包处理的软件开发工具,例如DataPlane Development Kit(DPDK),这些工具一般都会完全绕过内核,将网络硬件直接交给用户态的网络应用,并需要独占一个或多个CPU。内核旁路方式可以显著提升性能,但缺点也很明显:
(1)很难与现有系统集成;
(2)上层应用必须要将内核中已经非常成熟的模块在用户态重新实现一遍,例如路由表、高层协议栈等;
(3)这种包处理应用只能工作在一个完全隔绝的环境,因为内核提供的常用工具和部署方式在这种情况下都不可用了;
(4)导致系统越来越复杂,而且破坏了操作系统内核把控的安全边界。
另一方面,Linux社区提供了一种给内核网络栈添加可编程能力的方案。这个框架称为XDP,全称是eXpress Data Path。XDP定义了一个受限的执行环境,运行在一个eBPF指令虚拟机中。eBPF是BSD Packet Filter(BPF)的扩展。XDP程序运行在内核上下文中,此时内核自身还没有接触到包数据,这使得我们能在网卡收到包后最早能处理包的位置,做一些自定义的数据包处理。内核在加载时执行静态校验,以确保用户提供的XDP程序的安全。之后程序会被动态编译成原生机器指令,以获得高性能。
发明内容
本发明提出的一种基于AF_XDP的GigE Vision协议数据包处理方法及系统,可至少解决上述技术问题之一。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥埃科光电科技股份有限公司,未经合肥埃科光电科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211513193.1/2.html,转载请声明来源钻瓜专利网。