CN115426418A - 一种基于fpga的udp实时网络传输方法及系统 - Google Patents
一种基于fpga的udp实时网络传输方法及系统 Download PDFInfo
- Publication number
- CN115426418A CN115426418A CN202210933190.7A CN202210933190A CN115426418A CN 115426418 A CN115426418 A CN 115426418A CN 202210933190 A CN202210933190 A CN 202210933190A CN 115426418 A CN115426418 A CN 115426418A
- Authority
- CN
- China
- Prior art keywords
- udp
- sequence number
- packet
- packet sequence
- load data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 55
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 64
- 238000001914 filtration Methods 0.000 claims abstract description 12
- 230000004931 aggregating effect Effects 0.000 claims abstract description 7
- 230000009977 dual effect Effects 0.000 claims description 38
- 230000008859 change Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于FPGA的UDP实时网络传输方法及系统,方法包括接收两路交换网络传递的网络包,并从网络包中过滤出来自前端感知设备的UDP包;针对UDP包通过UDP协议卸载提取出UDP载荷数据,根据UDP载荷数据中的包序号字段对UDP包进行无缝双冗余处理;将多个经无缝双冗余处理后保留的UDP载荷数据聚合为一个数据块,并将数据块存入外部DDR缓存,后由外部DDR缓存转发至所述后端处理器。本发明能同时满足数据传输大带宽、高可靠、实时性的使用要求。
Description
技术领域
本发明属于数据传输技术领域,具体涉及一种基于FPGA的UDP实时网络传输方法及系统。
背景技术
鉴于以太网技术在信息化领域的广泛成熟应用,以及网络上层协议的丰富扩展能力,许多车载、机载、舰载平台上已采用以太网作为数据和指令通信的主要总线。其中,平台上一些专用传感器(如光电摄像头、SAR雷达、微波射频天线阵、声纳阵列等)实时采集/预处理的数据需要发送至信号处理机做进一步分析,传感器和计算机部署在不同位置,传输网络应在带宽、实时性、可靠性方面做好保证。
以太网的带宽和交换能力从10/100/1000Mbps、10Gbps发展到40Gbps、100Gbps,并随着总线技术的提升而不断迭代升级。同时以太网可以通过冗余设计及一些上层QoS服务来确保实时、可靠传输。随着处理数据带宽的不断增加,实时性和高可靠之间需要做好权衡,例如TCP协议通过重传机制来确保不丢包,其代价可能是进一步加剧网络拥塞,传输性能和实时性都会相应降低;UDP协议一般用于像传感器这样的实时性数据流传输,在不影响用户体验的情况下允许有一定丢包。但在一些特种装备中,传感器发送的数据流对丢包率有更加严苛的要求,因此需要提供一种基于以太网的大带宽、高可靠的实时数据流传输技术。
现有基于以太网的实时数据流传输技术方案有两种,为基于UDP协议的双冗余网络传输技术和基于DDS协议的双冗余网络传输技术,但这两种传输技术均存在各自缺陷。DDS,Data Distribution Service,数据分发服务,是一种分布式实时通信中间件协议,采用发布/订阅体系架构,强调以数据为中心,提供丰富的QoS服务质量策略,以保障数据进行实时、高效、灵活地分发。
其中,基于UDP协议的双冗余网络传输技术,存在如下问题:
性能问题:基于CPU或DSP进行网络包处理时,受限于网络协议栈实现,需要把数据从内核拷贝到应用,而且每个网络包要依次解析处理,处理器能力、DDR主存访问带宽均可能会成为整个数据路径上的性能瓶颈,导致在网卡层面或内核层面出现丢包情况。如果网络中出现突发网络流量,丢包率会瞬间上升。
网络丢包问题:尽管该方案采用双冗余以太网总线架构,采用的是二选一模式,当监测到正在使用的网口链路异常断开,即切换到另一个网口时,此时会出现一段空窗期,切换期间处理器无法收到任何一路的网络包。经测试,万兆网卡的两个网口切换时间达到30ms量级。另外该方案无法处理偶现误码导致的丢包。当正在使用的网络发生突发误码时,不会立即切换到另一路网络,导致丢包。如上所述,当传感器发送的数据达到一定带宽时,受处理器性能瓶颈影响,会在网卡或操作系统内核丢包。
其中,基于DDS协议的双冗余网络传输技术,存在如下问题:
性能问题:基于DDS协议的双冗余以太网收发技术,在DDS协议层实现了双冗余热备份,来自两个网口的网络包将被处理器同时接收,通过DDS协议层特定字段对两路网络包进行比对,实现冗余包的剔除,避免上述方案中主备网口切换以及物理链路突发误码导致的丢包,但与此同时DDS协议对处理器性能要求比较高。
网络丢包问题:DDS协议属于传输层(如UDP、TCP)以上的协议,实时数据流处理一般采用基于UDP的尽力传输模式,因为要同时处理两份相同数据,经过比对后丢弃其中一份,处理复杂度较高,一般需要高性能处理器实现,采用某国产高性能处理器,在10Gbps网络下测试,当UDP发送速率达到300MB/s时出现丢包,带宽利用率较低。因此DDS协议适用于小带宽数据通信,配合DDS自带的QoS服务,可以确保一些重要指令的高可靠实时分发。如上所述,当传感器发送的数据达到一定带宽时,受处理器对双份网络接收以及DDS协议解析复杂度的影响,会在网卡或操作系统内核丢包。
发明内容
本发明的目的之一在于提供一种基于FPGA的UDP实时网络传输方法,同时满足数据传输大带宽、高可靠、实时性的使用要求。
为实现上述目的,本发明所采取的技术方案为:
一种基于FPGA的UDP实时网络传输方法,用于前端感知设备与后端处理器之间的数据传输,所述前端感知设备与后端处理器之间通过FPGA连接,所述前端感知设备与FPGA之间通过两路处于热备份的交换网络连接,两路交换网络分属不同IP网段,所述基于FPGA的UDP实时网络传输方法实施在FPGA,包括:
接收两路交换网络传递的网络包,并从网络包中过滤出来自前端感知设备的UDP包;
针对UDP包通过UDP协议卸载提取出UDP载荷数据,根据UDP载荷数据中的包序号字段对UDP包进行无缝双冗余处理;所述包序号字段为前端感知设备在UDP载荷数据的固定偏移位置增加设置,所述包序号字段的值以每发一份UDP包逐级递变的方式赋值,且同一份UDP包通过不同IP网段发送到热备的两路交换网络;
将多个经无缝双冗余处理后保留的UDP载荷数据聚合为一个数据块,并将数据块存入外部DDR缓存,后由外部DDR缓存转发至所述后端处理器。
以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
作为优选,所述包序号字段的值以每发一份UDP包逐级递变的方式赋值,包括:
所述包序号字段的值初始化为0,并以每发一份UDP包,值加1的方式赋值。
作为优选,所述网络包中除来自前端感知设备的UDP包之外的数据包,经过双冗余处理后直接以透传的方式传输至后端处理器。
作为优选,所述由外部DDR缓存转发至所述后端处理器,包括:
通过DMA方式将外部DDR缓存中的数据传输至所述后端处理器。
作为优选,所述根据UDP载荷数据中的包序号字段对UDP包进行无缝双冗余处理,包括:
将从两路交换网络接收解析的UDP载荷数据中的包序号字段的值与预期正确包序号进行对比;
若仅存在一路UDP载荷数据中的包序号字段的值与预期正确包序号相同,则取这一路UDP载荷数据作为经无缝双冗余处理后保留的UDP载荷数据;
若存在两路UDP载荷数据中的包序号字段的值与预期正确包序号相同,则取UDP包接收时间早的一路UDP载荷数据作为经无缝双冗余处理后保留的UDP载荷数据;
所述预期正确包序号为基于上一个经无缝双冗余处理后保留的UDP载荷数据中的包序号字段的值,根据所述包序号字段的值的赋值方式计算得到的下一个包序号字段的值。
本发明提供的基于FPGA的UDP实时网络传输方法,在前端感知设备发送端,往UDP载荷数据中加入包序号字段;在后端处理器接收前端增加FPGA芯片实现网络预处理,功能包括网络包分类及过滤、UDP协议卸载、数据无缝双冗余处理等。对指定的UDP包经过数据无缝双冗余处理后,多个UDP包载荷数据聚合成一个大的数据块,先存入DDR缓存,然后通过DMA方式传输给处理器做进一步分析,这样一方面通过聚合方式减少处理器中断,一方面通过DDR缓存可有效降低处理器多线程调度时引起的丢包。而其他网络包直接透传给处理器,在实现大带宽数据流的高可靠实时性处理同时,兼容原网络中包括DDS等上层协议的处理能力。
本发明的目的之二在于提供一种基于FPGA的UDP实时网络传输系统,同时满足数据传输大带宽、高可靠、实时性的使用要求。
为实现上述目的,本发明所采取的技术方案为:
一种基于FPGA的UDP实时网络传输系统,所述基于FPGA的UDP实时网络传输系统包括前端感知设备、FPGA和后端处理器,所述前端感知设备与FPGA之间通过两路处于热备份的交换网络连接,两路交换网络分属不同IP网段,其中:
所述前端感知设备,用于将采集的感知信号打成UDP包,并在UDP载荷数据的固定偏移位置增加设置包序号字段,所述包序号字段的值以每发一份UDP包逐级递变的方式赋值,且同一份UDP包通过不同IP网段发送到热备的两路交换网络;
所述FPGA,用于接收两路交换网络传递的网络包,并从网络包中过滤出来自前端感知设备的UDP包;针对UDP包通过UDP协议卸载提取出UDP载荷数据,根据UDP载荷数据中的包序号字段对UDP包进行无缝双冗余处理;将多个经无缝双冗余处理后保留的UDP载荷数据聚合为一个数据块,并将数据块存入外部DDR缓存,后由外部DDR缓存转发至所述后端处理器;
所述后端处理器,用于接收所述FPGA发送的数据块进行处理。
作为优选,所述包序号字段的值以每发一份UDP包逐级递变的方式赋值,包括:
所述包序号字段的值初始化为0,并以每发一份UDP包,值加1的方式赋值。
作为优选,所述网络包中除来自前端感知设备的UDP包之外的数据包,经过双冗余处理后直接以透传的方式传输至后端处理器。
作为优选,所述由外部DDR缓存转发至所述后端处理器,包括:
通过DMA方式将外部DDR缓存中的数据传输至所述后端处理器。
作为优选,所述根据UDP载荷数据中的包序号字段对UDP包进行无缝双冗余处理,包括:
将从两路交换网络接收解析的UDP载荷数据中的包序号字段的值与预期正确包序号进行对比;
若仅存在一路UDP载荷数据中的包序号字段的值与预期正确包序号相同,则取这一路UDP载荷数据作为经无缝双冗余处理后保留的UDP载荷数据;
若存在两路UDP载荷数据中的包序号字段的值与预期正确包序号相同,则取UDP包接收时间早的一路UDP载荷数据作为经无缝双冗余处理后保留的UDP载荷数据;
所述预期正确包序号为基于上一个经无缝双冗余处理后保留的UDP载荷数据中的包序号字段的值,根据所述包序号字段的值的赋值方式计算得到的下一个包序号字段的值。
附图说明
图1为本发明的前端感知设备、FPGA和后端处理器之间的连接示意图;
图2为本发明包序号字段的位置示意图;
图3为本发明基于FPGA的UDP实时网络传输方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本发明。
为了克服现有技术中双冗余网络传输技术存在的缺陷,本实施例提供一种基于FPGA的UDP实时网络传输方法,用于前端感知设备与后端处理器之间的数据传输。
本实施例中,前端感知设备用于获取感知信号,例如传感器。后端处理器用于对感知信号进行分析处理,例如计算机系统、信号处理机。可应用于各类实际场景中,例如车载、机载、舰载平台等。
如图1所示,本实施例前端感知设备与后端处理器之间通过FPGA连接,前端感知设备与FPGA之间通过两路处于热备份的交换网络连接,两路交换网络分属不同IP网段。
前端感知设备的两个网口各自接入不同的交换网络。传感器将实时采集并经过预处理的数据流打成UDP包。在现有双冗余交换网络环境中,为达到两路网络无缝切换,发送时在UDP载荷数据的固定偏移位置增加一个字段,这里定义为包序号字段,包序号字段的值以每发一份UDP包逐级递变的方式赋值。
并且同一个UDP包同时分别通过不同IP网段发送到热备的两路交换网络,接收端依据该字段实现双网口热备,避免因主备切换或突发误码导致的丢包,有效提高UDP传输的可靠性,网口之间无缝切换,因此在上层协议简化的基础上实现UDP高可靠传输。
如图2所示,为包序号字段所在位置示意图,实际应用中在UDP载荷数据中的偏移位置可自定义。其中包序号字段的值的赋值方式可以是逐级递减、逐级递增,可以是数字,也可以是字母符号等,在赋值方式具有一定规律的基础上不对具体的赋值形式进行限定。本实施例取最常规的赋值方式,即包序号字段的值初始化为0,并以每发一份UDP包,值加1。
需要说明的是,本实施例的UDP包中除了在UDP载荷数据中增加的包序号字段以外,UDP包中其余结构与原UDP包一致,因此本实施例中不再对UDP包其余部分做过多描述。
如图3所示,本实施例基于FPGA的UDP实时网络传输方法实施在FPGA,即FPGA中网络预处理逻辑的接收部分包括以下步骤:
S1、接收两路交换网络传递的网络包,并从网络包中过滤出来自前端感知设备的UDP包。
本实施例中FPGA作为数据流的预接收处理端,两个网口处于热备份状态,各属于不同IP网段,同时接收两个网口的数据。其中前端感知设备通过两个IP网段发送的UDP包,分别经过各自的交换网络路由至FPGA。
当然,由于网段不一定专用于对接前端感知设备,也就是存在FPGA接收前端感知设备发送的UDP包的同时,还可能接收到其他类似的网络包,因此本实施例先对接收的网络包进行分类过滤,筛选出来自前端感知设备的UDP包。
本实施例根据源IP、目的IP和端口号作为分类过滤依据,在其他实施例中还可以是基于设置特殊符等方式进行区分,本实施例中不做严格限制。
S2、针对UDP包通过UDP协议卸载提取出UDP载荷数据,根据UDP载荷数据中的包序号字段对UDP包进行无缝双冗余处理。
FPGA同时接收来自两个IP网段的所有网络包,经过分类及过滤,其中分离出某个传感器的UDP包通过UDP协议卸载提取出UDP载荷,两路UDP载荷数据流由无缝双冗余处理剔除冗余数据。本实施例针对UDP包的无缝双冗余处理逻辑如下:
将从两路交换网络接收解析的UDP载荷数据中的包序号字段的值与预期正确包序号进行对比。
若仅存在一路UDP载荷数据中的包序号字段的值与预期正确包序号相同,则取这一路UDP载荷数据作为经无缝双冗余处理后保留的UDP载荷数据;若存在两路UDP载荷数据中的包序号字段的值与预期正确包序号相同,则取UDP包接收时间早的一路UDP载荷数据作为经无缝双冗余处理后保留的UDP载荷数据。
本实施例中FPGA始终处于对两路传感器UDP网络包的接收状态,即处于热备状态,当其中一路发生链路断开或突发误码时,另一路仍能正常接收。因此可以通过包序号字段的递增属性预判下一个正确的包。
即本实施例在每次接收到正确的UDP包后事先计算出下一个UDP包的预期正确包序号,基于该预期正确包序号进行无缝双冗余处理。预期正确包序号为基于上一个经无缝双冗余处理后保留的UDP载荷数据中的包序号字段的值,根据包序号字段的值的赋值方式计算得到的下一个包序号字段的值。以每发一份UDP包包序号字段的值加1为例,若上一次包序号字段的值为3,则预期正确包序号为4。
两路UDP网络包经过各自的交换网络后,到达FPGA的延时有差异,处理时只保留先输入的预期正确包序号的载荷数据流。如果其中一个网口突发丢包导致包序号发生跳变,另一个网口自动填补下一个正确包序号的载荷数据流,两个网口之间无缝切换。
本实施例针对网络包中除来自前端感知设备的UDP包之外的数据包,经过双冗余处理后直接以透传的方式传输至后端处理器。针对其他类型的数据包采用现有常规的双冗余处理方式即可,例如双归属技术、IuFlex技术等。
S3、将多个经无缝双冗余处理后保留的UDP载荷数据聚合为一个数据块,并将数据块存入DDR缓存,后由DDR缓存转发至所述后端处理器,从而减少处理器中断,提升处理带宽。
为降低后端处理器接收UDP包时的中断次数,同时避免后端处理器多线程调度时,在没有及时调度UDP接收流程时引起的丢包,在双冗余预处理中,冗余数据剔除后,将多个UDP载荷数据聚合成一个大的数据块,数据块先存入DDR缓存,然后通过DMA方式传输给后端处理器做进一步分析,有效降低处理器负载,整体性能大幅提升。
本实施例采用一种更为简易的自定义UDP协议,即在前端感知设备发送端,往UDP载荷数据中加入包序号字段;在后端处理器接收前端增加FPGA芯片实现网络预处理,功能包括网络包分类及过滤、UDP协议卸载、数据无缝双冗余处理等。对指定的UDP包经过数据无缝双冗余处理后,多个UDP包载荷数据聚合成一个大的数据块,先存入DDR缓存,然后通过DMA方式传输给处理器做进一步分析,这样一方面通过聚合方式减少处理器中断,一方面通过DDR缓存可有效降低处理器多线程调度时引起的丢包。而其他网络包直接透传给处理器,在实现大带宽数据流的高可靠实时性处理同时,兼容原网络中包括DDS等上层协议的处理能力。
经测试,本实施例在要求传感器发出的网络数据流大带宽达到800MB/s以上的以太网传输总线的装备中,仍能实现后端处理器的高可靠实时接收处理。克服了现有技术无法同时满足大带宽、高可靠、实时性的使用要求的缺陷。
在另一个实施例中,还提供一种基于FPGA的UDP实时网络传输系统,包括前端感知设备、FPGA和后端处理器,所述前端感知设备与FPGA之间通过两路处于热备份的交换网络连接,两路交换网络分属不同IP网段,其中:
所述前端感知设备,用于将采集的感知信号打成UDP包,并在UDP载荷数据的固定偏移位置增加设置包序号字段,所述包序号字段的值以每发一份UDP包逐级递变的方式赋值,且同一份UDP包通过不同IP网段发送到热备的两路交换网络;
所述FPGA,用于接收两路交换网络传递的网络包,并从网络包中过滤出来自前端感知设备的UDP包;针对UDP包通过UDP协议卸载提取出UDP载荷数据,根据UDP载荷数据中的包序号字段对UDP包进行无缝双冗余处理;将多个经无缝双冗余处理后保留的UDP载荷数据聚合为一个数据块,并将数据块存入外部DDR缓存,后由外部DDR缓存转发至所述后端处理器;
所述后端处理器,用于接收所述FPGA发送的数据块进行处理。
在一个具体实施例中,所述包序号字段的值以每发一份UDP包逐级递变的方式赋值,包括:
所述包序号字段的值初始化为0,并以每发一份UDP包,值加1的方式赋值。
在一个具体实施例中,所述网络包中除来自前端感知设备的UDP包之外的数据包,经过双冗余处理后直接以透传的方式传输至后端处理器。
在一个具体实施例中,所述由外部DDR缓存转发至所述后端处理器,包括:
通过DMA方式将外部DDR缓存中的数据传输至所述后端处理器。
在一个具体实施例中,所述根据UDP载荷数据中的包序号字段对UDP包进行无缝双冗余处理,包括:
将从两路交换网络接收解析的UDP载荷数据中的包序号字段的值与预期正确包序号进行对比;
若仅存在一路UDP载荷数据中的包序号字段的值与预期正确包序号相同,则取这一路UDP载荷数据作为经无缝双冗余处理后保留的UDP载荷数据;
若存在两路UDP载荷数据中的包序号字段的值与预期正确包序号相同,则取UDP包接收时间早的一路UDP载荷数据作为经无缝双冗余处理后保留的UDP载荷数据;
所述预期正确包序号为基于上一个经无缝双冗余处理后保留的UDP载荷数据中的包序号字段的值,根据所述包序号字段的值的赋值方式计算得到的下一个包序号字段的值。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于FPGA的UDP实时网络传输方法,用于前端感知设备与后端处理器之间的数据传输,其特征在于,所述前端感知设备与后端处理器之间通过FPGA连接,所述前端感知设备与FPGA之间通过两路处于热备份的交换网络连接,两路交换网络分属不同IP网段,所述基于FPGA的UDP实时网络传输方法实施在FPGA,包括:
接收两路交换网络传递的网络包,并从网络包中过滤出来自前端感知设备的UDP包;
针对UDP包通过UDP协议卸载提取出UDP载荷数据,根据UDP载荷数据中的包序号字段对UDP包进行无缝双冗余处理;所述包序号字段为前端感知设备在UDP载荷数据的固定偏移位置增加设置,所述包序号字段的值以每发一份UDP包逐级递变的方式赋值,且同一份UDP包通过不同IP网段发送到热备的两路交换网络;
将多个经无缝双冗余处理后保留的UDP载荷数据聚合为一个数据块,并将数据块存入外部DDR缓存,后由外部DDR缓存转发至所述后端处理器。
2.如权利要求1所述的基于FPGA的UDP实时网络传输方法,其特征在于,所述包序号字段的值以每发一份UDP包逐级递变的方式赋值,包括:
所述包序号字段的值初始化为0,并以每发一份UDP包,值加1的方式赋值。
3.如权利要求1所述的基于FPGA的UDP实时网络传输方法,其特征在于,所述网络包中除来自前端感知设备的UDP包之外的数据包,经过双冗余处理后直接以透传的方式传输至后端处理器。
4.如权利要求1所述的基于FPGA的UDP实时网络传输方法,其特征在于,所述由外部DDR缓存转发至所述后端处理器,包括:
通过DMA方式将外部DDR缓存中的数据传输至所述后端处理器。
5.如权利要求1所述的基于FPGA的UDP实时网络传输方法,其特征在于,所述根据UDP载荷数据中的包序号字段对UDP包进行无缝双冗余处理,包括:
将从两路交换网络接收解析的UDP载荷数据中的包序号字段的值与预期正确包序号进行对比;
若仅存在一路UDP载荷数据中的包序号字段的值与预期正确包序号相同,则取这一路UDP载荷数据作为经无缝双冗余处理后保留的UDP载荷数据;
若存在两路UDP载荷数据中的包序号字段的值与预期正确包序号相同,则取UDP包接收时间早的一路UDP载荷数据作为经无缝双冗余处理后保留的UDP载荷数据;
所述预期正确包序号为基于上一个经无缝双冗余处理后保留的UDP载荷数据中的包序号字段的值,根据所述包序号字段的值的赋值方式计算得到的下一个包序号字段的值。
6.一种基于FPGA的UDP实时网络传输系统,其特征在于,所述基于FPGA的UDP实时网络传输系统包括前端感知设备、FPGA和后端处理器,所述前端感知设备与FPGA之间通过两路处于热备份的交换网络连接,两路交换网络分属不同IP网段,其中:
所述前端感知设备,用于将采集的感知信号打成UDP包,并在UDP载荷数据的固定偏移位置增加设置包序号字段,所述包序号字段的值以每发一份UDP包逐级递变的方式赋值,且同一份UDP包通过不同IP网段发送到热备的两路交换网络;
所述FPGA,用于接收两路交换网络传递的网络包,并从网络包中过滤出来自前端感知设备的UDP包;针对UDP包通过UDP协议卸载提取出UDP载荷数据,根据UDP载荷数据中的包序号字段对UDP包进行无缝双冗余处理;将多个经无缝双冗余处理后保留的UDP载荷数据聚合为一个数据块,并将数据块存入外部DDR缓存,后由外部DDR缓存转发至所述后端处理器;
所述后端处理器,用于接收所述FPGA发送的数据块进行处理。
7.如权利要求6所述的基于FPGA的UDP实时网络传输系统,其特征在于,所述包序号字段的值以每发一份UDP包逐级递变的方式赋值,包括:
所述包序号字段的值初始化为0,并以每发一份UDP包,值加1的方式赋值。
8.如权利要求6所述的基于FPGA的UDP实时网络传输系统,其特征在于,所述网络包中除来自前端感知设备的UDP包之外的数据包,经过双冗余处理后直接以透传的方式传输至后端处理器。
9.如权利要求6所述的基于FPGA的UDP实时网络传输系统,其特征在于,所述由外部DDR缓存转发至所述后端处理器,包括:
通过DMA方式将外部DDR缓存中的数据传输至所述后端处理器。
10.如权利要求6所述的基于FPGA的UDP实时网络传输系统,其特征在于,所述根据UDP载荷数据中的包序号字段对UDP包进行无缝双冗余处理,包括:
将从两路交换网络接收解析的UDP载荷数据中的包序号字段的值与预期正确包序号进行对比;
若仅存在一路UDP载荷数据中的包序号字段的值与预期正确包序号相同,则取这一路UDP载荷数据作为经无缝双冗余处理后保留的UDP载荷数据;
若存在两路UDP载荷数据中的包序号字段的值与预期正确包序号相同,则取UDP包接收时间早的一路UDP载荷数据作为经无缝双冗余处理后保留的UDP载荷数据;
所述预期正确包序号为基于上一个经无缝双冗余处理后保留的UDP载荷数据中的包序号字段的值,根据所述包序号字段的值的赋值方式计算得到的下一个包序号字段的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210933190.7A CN115426418A (zh) | 2022-08-04 | 2022-08-04 | 一种基于fpga的udp实时网络传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210933190.7A CN115426418A (zh) | 2022-08-04 | 2022-08-04 | 一种基于fpga的udp实时网络传输方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115426418A true CN115426418A (zh) | 2022-12-02 |
Family
ID=84197348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210933190.7A Pending CN115426418A (zh) | 2022-08-04 | 2022-08-04 | 一种基于fpga的udp实时网络传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115426418A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101014017A (zh) * | 2006-01-12 | 2007-08-08 | 阿尔卡特朗讯公司 | 执行数据分组帧通用传输的交换设备 |
US20140280752A1 (en) * | 2013-03-15 | 2014-09-18 | Time Warner Cable Enterprises Llc | System and method for seamless switching between data streams |
US20170064049A1 (en) * | 2015-08-26 | 2017-03-02 | Airbus Defence and Space GmbH | Network Module For Sending And/Or Receiving Of Data Packages From A Network Arrangement And Method |
-
2022
- 2022-08-04 CN CN202210933190.7A patent/CN115426418A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101014017A (zh) * | 2006-01-12 | 2007-08-08 | 阿尔卡特朗讯公司 | 执行数据分组帧通用传输的交换设备 |
US20140280752A1 (en) * | 2013-03-15 | 2014-09-18 | Time Warner Cable Enterprises Llc | System and method for seamless switching between data streams |
US20170064049A1 (en) * | 2015-08-26 | 2017-03-02 | Airbus Defence and Space GmbH | Network Module For Sending And/Or Receiving Of Data Packages From A Network Arrangement And Method |
Non-Patent Citations (1)
Title |
---|
虹科工业智能互联: "朝花夕拾:HSR/PRP冗余协议(一)", pages 2 - 6, Retrieved from the Internet <URL:https://blog.csdn.net/weixin_47677928/article/details/119677481> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220368635A1 (en) | Network traffic load balancing | |
US8040889B2 (en) | Packet forwarding device | |
US8879560B2 (en) | Reorder engine with error recovery | |
JP2009542114A (ja) | 圧縮ベースQoSのための方法及びシステム | |
US20110286461A1 (en) | Packet sorting device, receiving device and packet sorting method | |
US7660239B2 (en) | Network data re-routing | |
WO1995030295A1 (en) | A system for the parallel assembly of data transmissions in a broadband network | |
CN110635988B (zh) | 一种用于多路径传输的数据转发方法及设备 | |
US20140040679A1 (en) | Relay device and recovery method | |
US7613116B1 (en) | Method and apparatus for preventing head of line blocking among ethernet switches | |
Cevher et al. | A fault tolerant software defined networking architecture for integrated modular avionics | |
CN115426418A (zh) | 一种基于fpga的udp实时网络传输方法及系统 | |
US9160664B1 (en) | Determining a network node whether a received packet fragment should be transmitted | |
US7570592B2 (en) | Data transfer device for executing the process discarding error frame | |
US20220191144A1 (en) | System and method for low latency network switching | |
US8880759B2 (en) | Apparatus and method for fragmenting transmission data | |
US11251245B1 (en) | Responding to a failure of a main die of a switch data-plane device | |
US20210392012A1 (en) | Control unit architecture for vehicles | |
CN113518046A (zh) | 一种报文转发方法及框式交换设备 | |
US9270577B2 (en) | Selection of one of first and second links between first and second network devices | |
US10790906B2 (en) | Data center network node | |
CN113660530B (zh) | 节目流数据抓取方法、装置、计算机设备及可读存储介质 | |
US11711318B1 (en) | Packet switches | |
CN114124858B (zh) | 控制方法及控制设备 | |
US20230300072A1 (en) | Electronic device and flow control method for electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |