[发明专利]一种UDP有效报文发送时序控制方法有效
申请号: | 201810349149.9 | 申请日: | 2018-04-18 |
公开(公告)号: | CN109361723B | 公开(公告)日: | 2021-08-31 |
发明(设计)人: | 岳兵;王旭;陈义华;苏江;温元凯;徐烨光;谢智勇;郭锋 | 申请(专利权)人: | 上海锐智集数电子有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06;H04L12/861 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 201821 上海市嘉*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 udp 有效 报文 发送 时序 控制 方法 | ||
本发明公开了一种UDP有效报文发送时序控制方法,采用通用硬件与软件的相结合,用原始套接字技术,直接绕过操作系统的协议栈和低层MAC,可完全控制低层网络报文的任意组包及参数修改,并且采用多线程技术将数据填充和发送分开,收发各自独享1个CPU核,可确保网络全速发送,同时采用无效网络报文填充有效网络报文间的时间,达到纳秒级控制有效网络报文间的时间间隔。
技术领域
本发明涉及网络技术领域,特别涉及一种UDP有效报文发送时序控制方法。
背景技术
随着网络技术的不断发展,网络技术也在嵌入式实时系统中得到普遍应用,为适应不同的实时应用需求,甚至还出现了各种实时协议,以确保应用的实时性;但上述实时应用基本都是在10微秒到毫秒量级的精度。
由于网络连接的便利、经济和良好扩展性,目前也用在了高速数据采集和回放系统。这类系统对有效网络报文的间隔时间控制一般都要求在纳秒级,采用过去常规的软件技术无法实现,一般需采用定制开发专用硬件如FPGA来实现高精度有效网络报文发送时序控制,这种实现方式有如下缺点:
1、研制成本高昂,需要新增加非标软硬件设备,开发成本高,而且是不同应用可能需要不同的软硬件;
2、维护成本高,为了适应不同的需求,至少需要修改FPGA程序,并调试测试,这需要花费大量的时间;
3、兼容性较差,网络协议比较复杂,硬件层面实现时基本是只满足部分网络协议功能,很多网络控制、管理协议无法满足要求。
还有一种方式是可以自研网卡的驱动,在驱动低层实现网络报文间隔时序的控制,但其通用性很差,也会存在协议的兼容性问题。
发明内容
本发明为解决上述问题,提供一种UDP有效报文发送时序控制方法,采用原始套接字,直接绕过操作系统的协议栈和低层MAC,可完全控制低层网络报文的任意组包及参数修改,并且采用多线程技术将数据填充和发送分开,并各自独享1个CPU核,可确保网络全速发送,同时采用无效网络报文填充有效网络报文间的时间,达到纳秒级控制有效网络报文间的时间间隔。
为达到上述目的,本发明采用的技术方案是:一种UDP有效报文发送时序控制方法,包括:
S1、软件主程序创建原始套接字,对低层网络报文组包完全控制;
S2、内存映射套接字内部发送缓冲区到用户空间;
S3、软件主程序分别创建两个线程,为填充数据线程和发射数据线程;
S4、填充数据线程根据有效网络报文的长度计算链路发送时间,并根据网络协议标准组织好报文并放入发送缓冲区,设置数据需要发送标志,填充数据线程根据有效网络报文间的间隔时间计算无效网络报文长度,并将无效网络报文并放入发送缓冲区,设置数据需要发送标志;
S5、发送数据线程不断查询发送缓冲区的发送标志是否为有效标志,如果是,将调用操作系统内核启动DMA发送数据,如果没有有效的标志,将继续查询;
S6、经过上层软件按一定时序要求组织的网络报文最终经DMA发送到源网卡的PHY层,源网卡和目标网卡经过网络线点对点通信或是交换机互联,若是网络点对点通信,目标网卡将自动对无效报文丢弃,若是经过交换机互连,在交换层将自动对无效报文丢弃。
进一步地,原始套接字的发送缓冲区通过内存映射方式映射到用户空间,应用层软件能直接控制网络报文的发送;内存映射后将返回的地址保留,供后续所述数据填充线程访问;
进一步地,填充数据线程和所述发送数据线程固定放在2个独立CPU核上运行,所述填充数据线程和所述发送数据线程通过发送缓冲区中的发送标志通信;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海锐智集数电子有限公司,未经上海锐智集数电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810349149.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于云计算的检测报警平台
- 下一篇:生态环境智能监测系统