CN113660295A - 报文处理装置 - Google Patents
报文处理装置 Download PDFInfo
- Publication number
- CN113660295A CN113660295A CN202111218937.2A CN202111218937A CN113660295A CN 113660295 A CN113660295 A CN 113660295A CN 202111218937 A CN202111218937 A CN 202111218937A CN 113660295 A CN113660295 A CN 113660295A
- Authority
- CN
- China
- Prior art keywords
- message
- module
- data
- unit
- information
- 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.)
- Granted
Links
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/22—Parsing or analysis of headers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种报文处理装置,包括:编解码模块,用于接收分片报文,并将分片报文编解码成MAC数据包;第一解析模块,与编解码模块连接,用于对MAC数据包进行解析;多路复用器模块,与第一解析模块连接,用于对解析后的MAC数据包进行IP地址匹配,得到相应的报文数据和报文信息;记录模块,与多路复用器模块连接,用于接收报文信息,并将报文信息进行排序;存储控制模块,与多路复用器模块和记录模块连接,用于接收报文数据和报文信息,并将报文数据和报文信息写入存储装置;重组模块,与存储控制模块连接,用于接收存储控制模块发送的若干报文数据,并将若干报文数据进行重组,得到完整的报文数据。通过上述方式,能够实现乱序重排的功能。
Description
技术领域
本申请涉及报文处理技术领域,特别是涉及报文处理装置。
背景技术
UDP 是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(OpenSystem Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。
UDP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。
发明内容
本申请主要解决的技术问题是提供报文处理装置,能够实现乱序重排的功能。
为了解决上述问题,本申请采用的一种技术方案是提供一种报文处理装置,该报文处理装置包括:编解码模块,用于接收分片报文,并将分片报文编解码成MAC数据包;第一解析模块,与编解码模块连接,用于对MAC数据包进行解析;多路复用器模块,与第一解析模块连接,用于对解析后的MAC数据包进行IP地址匹配,得到相应的报文数据和报文信息;记录模块,与多路复用器模块连接,用于接收报文信息,并将报文信息进行排序;存储控制模块,与多路复用器模块和记录模块连接,用于接收报文数据和报文信息,并将报文数据和报文信息写入存储装置;重组模块,与存储控制模块连接,用于接收存储控制模块发送的若干报文数据,并将若干报文数据进行重组,得到完整的报文数据。
其中,第一解析模块包括:判断单元,与编解码模块连接,用于对MAC数据包进行协议类型以及UDP报文判断;检测单元,与判断单元连接,用于对属于UDP报文的分片报文进行分片信息检测;其中,分片信息包括首片、中间片以及尾片;清除单元,与检测单元连接,用于对属于尾片的分片报文进行无效字节清除。
其中,多路复用器模块包括:缓存单元,与第一解析模块连接,用于对解析后的MAC数据包中的报文数据进行缓存;匹配单元,与第一解析模块连接,用于对解析后的MAC数据包中的报文信息进行IP地址学习及匹配;其中,缓存单元中的报文数据根据匹配单元中的IP地址学习及匹配的程度进行透传操作、丢弃操作或传输操作。
其中,记录模块包括:存储单元,存储单元包括第一端口和第二端口;第一控制单元,与多路复用器模块连接和第一端口连接,用于接收报文信息,并将报文信息进行排序写入存储单元;第二控制单元,与第二端口和存储控制模块连接,用于从存储控制模块获取报文信息并发送至存储控制模块。
其中,重组模块包括:对齐单元,用于接收若干报文数据,将若干报文数据进行字节对齐;计算单元,与对齐单元连接,用于确定对齐后的报文数据的长度、校验和;缓存单元,与计算单元连接,用于对报文数据进行缓存;接口时序转换单元,与缓存单元连接,用于按照预设时序将缓存单元的接口转换为axi接口。
其中,报文处理装置还包括:第二解析模块,用于接收报文数据进行解析;头部信息缓存模块,用于存储解析后的报文数据的头部信息;数据缓存模块,用于缓存报文数据;分片模块,与头部信息缓存模块和数据缓存模块连接,用于根据头部信息和报文数据进行分片处理;拼接模块,与分片模块连接,用于将分片处理的报文数据进行拼接,得到完整的报文数据。
其中,存储控制模块包括:数据转换单元,与多路复用器模块连接,用于将报文数据由64bit转换为256bit;第一写入缓冲单元,与数据转换单元和记录模块连接,用于根据报文信息和报文数据,产生第一写地址和第一写数据;写入控制单元,与第一写入缓冲单元连接,用于在第一预设指令下,根据第一写地址将第一写数据写入存储装置;第一读取缓冲单元,与记录模块连接,用于根据报文信息产生第一读地址;读取控制单元,与第一读取缓冲单元连接,用于在第二预设指令下,根据第一读地址,从存储装置中读取对应的第一目标数据,并将第一目标数据缓存与第一读取缓冲单元;仲裁单元,与写入控制单元和读取控制单元连接,用于在写入控制单元的写操作和读取控制单元的读操作之间的仲裁调度。
其中,存储控制模块还包括:第二写入缓冲单元,与数据转换单元和记录模块连接,用于根据报文信息和报文数据,产生第二写地址和第二写数据;写入控制单元,与第二写入缓冲单元连接,用于在第三预设指令下,根据写地址将第二写数据写入存储装置;第二读取缓冲单元,与头部信息缓存模块连接,用于根据头部信息缓存模块中的报文信息产生第二读地址;读取控制单元,与第二读取缓冲单元连接,用于在第四预设指令下,根据第二读地址,从存储装置中读取对应的第二目标数据,并将第二目标数据缓存与第二读取缓冲单元。
其中,编解码模块的数量为2,其中一个编解码模块为备份。
其中,报文处理装置为FPGA。
本申请的有益效果是:区别于现有技术的情况,本申请提供的一种报文处理装置,该报文处理装置包括:编解码模块,用于接收分片报文,并将分片报文编解码成MAC数据包;第一解析模块,与编解码模块连接,用于对MAC数据包进行解析;多路复用器模块,与第一解析模块连接,用于对解析后的MAC数据包进行IP地址匹配,得到相应的报文数据和报文信息;记录模块,与多路复用器模块连接,用于接收报文信息,并将报文信息进行排序;存储控制模块,与多路复用器模块和记录模块连接,用于接收报文数据和报文信息,并将报文数据和报文信息写入存储装置;重组模块,与存储控制模块连接,用于接收存储控制模块发送的若干报文数据,并将若干报文数据进行重组,得到完整的报文数据。能够实现乱序重排的功能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的报文处理装置一实施例的结构示意图;
图2是本申请提供的第一解析模块一实施例的结构示意图;
图3是本申请提供的多路复用器模块一实施例的结构示意图;
图4是本申请提供的记录模块一实施例的结构示意图;
图5是本申请提供的重组模块一实施例的结构示意图;
图6是本申请提供的报文处理装置另一实施例的结构示意图;
图7是本申请提供的伪首部和首部的结构示意图;
图8是本申请提供的报文处理装置另一实施例的信号示意图;
图9是本申请提供的存储控制模块一实施例的结构示意图;
图10是本申请提供的报文处理装置一应用场景示意图;
图11是本申请提供的报文处理装置另一应用场景示意图;
图12是本申请提供的报文处理装置又一应用场景示意图;
图13是本申请提供的报文处理装置再一应用场景示意图;
图14是本申请提供的报文处理装置又一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
参阅图1,图1是本申请提供的报文处理装置一实施例的结构示意图。该报文处理装置1000包括:编解码模块10、第一解析模块20、多路复用器模块30、记录模块40、存储控制模块50和重组模块60。
其中,编解码模块10用于接收分片报文,并将分片报文编解码成MAC数据包。编解码模块10可以包括:万兆口和xgmii接口。万兆口用于接收分片报文,xgmii接口用于将分片报文编解码成MAC数据包。
其中,编解码模块的数量为2,其中一个编解码模块为备份。
其中,报文处理装置为FPGA。
第一解析模块20与编解码模块10连接,用于对MAC数据包进行解析。第一解析模块20用于UDP报文解析。
多路复用器模块30与第一解析模块20连接,用于对解析后的MAC数据包进行IP地址匹配,得到相应的报文数据和报文信息。其中,多路复用器模块30能够实现64个源通道的IP地址学习及匹配,从而将报文信息送到记录模块40相应的通道去处理。
记录模块40与多路复用器模块30连接,用于接收报文信息,并将报文信息进行排序。记录模块40主要用于乱序分片报文重组保序处理。
存储控制模块50与多路复用器模块30和记录模块40连接,用于接收报文数据和报文信息,并将报文数据和报文信息写入存储装置。存储控制模块50主要完成重组方向的存储装置DDR3读写控制。
重组模块60与存储控制模块50连接,用于接收存储控制模块50发送的若干报文数据,并将若干报文数据进行重组,得到完整的报文数据。重组模块60用于将从存储装置DDR3读取的分片数据拼接重组成一个重组包。
在本实施例中,该报文处理装置包括:编解码模块,用于接收分片报文,并将分片报文编解码成MAC数据包;第一解析模块,与编解码模块连接,用于对MAC数据包进行解析;多路复用器模块,与第一解析模块连接,用于对解析后的MAC数据包进行IP地址匹配,得到相应的报文数据和报文信息;记录模块,与多路复用器模块连接,用于接收报文信息,并将报文信息进行排序;存储控制模块,与多路复用器模块和记录模块连接,用于接收报文数据和报文信息,并将报文数据和报文信息写入存储装置;重组模块,与存储控制模块连接,用于接收存储控制模块发送的若干报文数据,并将若干报文数据进行重组,得到完整的报文数据。通过上述方式,报文处理装置实现了乱序重排的功能。
参阅图2,图2是本申请提供的第一解析模块一实施例的结构示意图。该第一解析模块20包括:判断单元21、检测单元22和清除单元23。
判断单元21与编解码模块10连接,用于对MAC数据包进行协议类型以及UDP报文判断。
检测单元22与判断单元21连接,用于对属于UDP报文的分片报文进行分片信息检测。其中,分片信息包括首片、中间片以及尾片。
清除单元23与检测单元22连接,用于对属于尾片的分片报文进行无效字节清除。
在一应用场景中,判断单元21可以对MAC数据包进行L3类型判断。如,根据MAC数据包的类型字段,判断3层的协议类型,ARP/ICMP/IGMP包直接送出;IP数据包则进一步判断。其中,MAC数据包中类型字段值为0800时是IP数据包;0806时表示是ARP包。
IP数据包则进一步判断,具体可以进行UDP包判断,根据IP数据包中报文的协议字段,判断是TCP包还是UDP包,UDP包送给下检测单元22;TCP包丢弃。透传的条件为报文为非分片报文并且开启了测试模式。丢弃的条件为64个源通道都学习到了IP地址,其中包括源IP、目的IP、最小流ID、最大流ID,并且新来报文的IP地址与这64个IP地址均不匹配;或者存储装置的溢出信号有效。
对属于UDP报文的分片报文进行分片信息检测可以是根据IP报文的标志字段和段偏移判断当前片是首片,中间片还是尾片。若当前片非尾片,则MTU(Maximum TransmissionUnit,最大传输单元)长度为其IP包长度减去IP头长度;总分片数=UDP头长度/MTU长度;在分片信息检测中,若当前IP头中包含的IP包长度字段值与实际统计的IP包长度值不一致,则认为当前分片异常,给出异常指示信号;若连续收到两个包头,或两个包尾,同样也认为分片包异常,给出分片包错误的异常指示信号。
当前分片号= IP段偏移/MTU长度。
尾片无效字节去除:UDP报文经过分片后,尾片字节数可能为1与MTU值中的任意值;MAC的规定为最小包长为64字节,为了满足要求,尾片中会有填充的无效字节。根据尾片IP报文的IP包长度可以获取尾片的有效字节数,有效字节给出数据有效信号,其他字节不给有效信号,从而剔除无效数据。
参阅图3,图3是本申请提供的多路复用器模块一实施例的结构示意图。多路复用器模块30包括:缓存单元31和匹配单元32。
缓存单元31与第一解析模块20连接,用于对解析后的MAC数据包中的报文数据进行缓存。
匹配单元32与第一解析模块20连接,用于对解析后的MAC数据包中的报文信息进行IP地址学习及匹配。
其中,缓存单元31中的报文数据根据匹配单元32中的IP地址学习及匹配的程度进行透传操作、丢弃操作或传输操作。
具体地,该多路复用器模块30主要是实现64个源通道的IP地址学习及匹配,从而将报文信息送到记录模块40相应的通道去处理;同时还会根据相关条件对报文数据做透传或者丢弃处理。首先是进行通道IP地址的学习和匹配,匹配后,然后进入各自的队列进行乱序重排,进行重组,再输出的时候剥离头部信息,转换数据格式,目前系统对外是serdes接口,将数据转换为serdes接口格式发送出去。
报文数据首先写到缓存单元31,其中缓存单元31可以是FIFO,在info_valid有效信号到来时再去读FIFO,同时进行64个源通道的IP地址学习及匹配,并判断报文数据是否透传或者丢弃。如果是透传,只输出数据,不输出信息,输出数据跳过记录模块40、存储控制器模块50和重组模块60;如果是丢弃,则数据和信息都不输出;只有正常需要经过重组处理的报文数据,才把信息送给记录模块40,数据送给存储控制器模块50,数据和信息一定要保证一一对应,任何一方多出一帧或少了一帧,都会导致后面模块出错。
源i通道IP地址学习的条件:源0-i-1通道都学习到了IP地址,包括源IP、目的IP、最小流ID、最大流ID,并且新来报文的IP地址与这些IP地址均不匹配源i通道IP地址匹配的条件;源i通道学习到了IP地址,包括源IP、目的IP、最小流ID、最大流ID,并且新来报文的源IP地址和目的IP地址均与之相同,流ID也在最小流ID-16到最大流ID+16范围之内。
参阅图4,图4是本申请提供的记录模块一实施例的结构示意图。记录模块40包括:存储单元41、第一控制单元42和第二控制单元43。
存储单元41包括第一端口和第二端口。
第一控制单元42与多路复用器模块30连接和第一端口连接,用于接收报文信息,并将报文信息进行排序写入存储单元。
第二控制单元43与第二端口和存储控制模块50连接,用于从存储控制模块获取报文信息并发送至存储控制模块。
在一些实施例中,具体地,从多路复用器模块30发过来的分片包如果按照4级保序,认为例如通道号0~3,4~7每组内保序,或者认为连续接收的4个id的重组包保序。64组id,每组id内保序,64组间轮序调度,每个队列处理一组id保序,每一组队列开辟16个存储空间,每个分片按照id号不分顺序依次存入16个存储空间。
定义一个16x69空间的ram,存对应每个id的分片DDR的起始地址,当前占用状态,来一个新id的分片占用一个,这个状态位置1,等轮序发送出去以后该占用标志反写请0;每收到一个分片更新接收完成状态。每当有一个接收完成,去读ram比较接收完成的最小id,和没有接收完成的id,得出两个结果,然后再比较这两个结果id之间相差是否超过4,超过4,直接发送最小的,不超过4,继续等待下一次的接收完成,循环以上步骤。
该记录模块40主要是根据表项RAM里的各条流分片接收完成状态来产生DDR3的读控制信息,控制流输出的顺序,从而实现流保序的功能。流保序需要做到以下两点:
1.当已完成接收分片的最小流ID比未完成接收分片的最小流ID小时,发送已完成接收分片的流。
2.当已完成接收分片的最大流ID比未完成接收分片的最小流ID大,并且差值超过4时,强制发送未完成接收分片的流。
在一些实施例中,表项RAM可以是一个深度为16、数据位宽为69的双端口RAM,ddr_wrctrl模块控制端口A的读写,recomb_ram_rd_ctrl模块控制端口B的读写。
其中,RAM最多存16条流的以下信息:进行流保序处理之前需要比较出表项RAM中这16条流中已完成接收分片的最小流ID、未完成接收分片的最小流ID和已完成接收分片的最大流ID。为了减少逻辑LUT资源,这里分别使用3个17bit的减法器IP CORE(IP核)(图中的sub0、sub1和sub2)进行比较。一次比较两条流,因此要比较完所有16条流,需要进行15次比较,sub0和sub2还需要多比较一次,sub0最后一次比较已完成的最小流ID和未完成的最小流ID,sub2最后一次比较已完成的最大流ID和未完成的最小流ID。所有都比较完之后,若已完成接收分片的最小流ID比未完成接收分片的最小流ID小,则发送已完成接收分片的流,即将该条流的stream_id(表项RAM地址)、流分片总数、流尾片长度、流非尾片长度等信息送给DDR3控制器模块,并将该条流的读完标志置1,占用标志和完成标志清0;若已完成接收分片的最大流ID比未完成接收分片的最小流ID大,并且差值超过4,则强制发送未完成接收分片的流,即将该条流的stream_id(表项RAM地址)、流分片总数(直接给1)、流尾片长度(直接给64)、流非尾片长度(直接给64)等信息送给存储控制模块,并将该条流的读完标志置1,占用标志和完成标志清0。该模块还会监测存储控制模块送过来的流数据读完成信号ddr_rd_stream_done和流数据读ID信号ddr_rd_stream_id,收到这两个信号后,将对应流的读完标志清0。
参阅图5,图5是本申请提供的重组模块一实施例的结构示意图。重组模块60包括:对齐单元61、计算单元62、缓存单元63和接口时序转换单元64。
对齐单元61用于接收若干报文数据,将若干报文数据进行字节对齐。
计算单元62与对齐单元61连接,用于确定对齐后的报文数据的长度、校验和。
缓存单元63与计算单元62连接,用于对报文数据进行缓存。
接口时序转换单元64与缓存单元63连接,用于按照预设时序将缓存单元的接口转换为axi接口。
在一些实施例中,对齐单元61依据字节滑动对齐:
任意分片除最后一拍外,其余clk的有效字节数为8字节;在首片最后一拍数据不足8字节的时候,将最后一拍数据数据缓存起来;在新的分片数据到来时,根据上一分片最后节拍的有效字节个数,进行相应字节个数移动拼接,凑成新的8个字节全部有效的数据序列。
第二个分片的最后节拍,由于前一分片引起的字节移动,可能存在两种情形:
上一拍移动剩余的字节与最后一拍字节数大于8。
上一拍移动剩余的字节与最后一拍字节数小于或者等于8。
第一种情形最后一个节拍有数据输出,且将多余的字节缓存起来,与新的分片进行移动拼接操作。第二种情形,则直接将所有字节缓存起来,再与后续新分片数据进行拼接。
由于尾片的最后一拍也存在上述两种情形,第一种情形把需缓存的数据在下一拍送出,同时给出包尾信号;第二种情形,则在当前拍把所有数据送出,并给出包尾信号。
计算单元62用于对报文进行IP长度计算。
IP报文由IP头和数据字段组成,UDP报文存储在IP数据字段中,UDP包头中有整个UDP包长度。多片重组后,IP头中的长度只是表示其分片时当前分片长度,需要使用UDP包长度加上IP包头长度进行校正。IP包头长度范围为20-60字节,具体长度可从包头中头长度字段解析出。IP包头长度的变化,会导致UDP包总长度字段位置的相对变化,可以将数据时序按照IP包头的最长值进行处理,根据IP包头实际长度获取UDP包总长度字段值。
计算单元62还用于IP checksum(校验和)计算:
多分片重组后,IP包长度值,分片标志等IP包头字段会发生变化,checksum也需进行计算。Checksum计算分两部分处理,IP包头的固定部分20字节计算;IP包头的可变部分40字节计算。
固定部分需要计算的字段固定,采用固定的累加级数计算;固定部分包含了IP包长度,checksum字段,在计算时先赋值为0,获取固定部分其他字段计算结果。
可变部分计算:可变部分根据IP头的长度值,累加相应的级数。
数据为8字节,checksum计算为16bit,固定部分,可变部分均对每一拍的8字节数据采用两组计算同时进行处理。在可变字段结果计算完成后,把固定部分高字节结算结果,低字节计算结果以及可变部分高字节计算结果,低字节计算结果进行一次加法计算,产生一个初次20bit的checksum;把初次产生的checksum高4bit和低16bit再进行两次累加,每次累加结果都存到低16bit中,这是为了防止数据溢出。最终的累加结果按位取反,就是最终的checksum。
缓存单元63用于对UDP包缓存。
对齐单元61的对外接口为AXI接口,当ready信号无效时,数据将暂停对外输出,为了保证数据不丢失,需要使用缓存单元63缓存数据。由于对外输出的数据需要帧头帧尾指示标志,采用fifo缓存简化读写操作控制。AXI接口的时序要求,fifo采用first fallfirst through模式;fifo的位宽为数据位宽,加上帧头标志,帧尾标志,当前clk的有效字节数标志。
接口时序转换单元64主要是把普通的fifo接口对外接口转换为axi接口,根据axi接口的ready信号及fifo的空满标志,控制fifo的读信号转换时序。
存储在DDR里的多个数据包,在每个ID对应的多个分片报文均收到后,经过申请及应答后,将报文从DDR里读出,并且进行报文重组,组成完整的长包,过程可参见2.6部分的描述,经过接口时序转换,并按照输出接口(比如serdes)的时序要求,将数据包剥离以太网头部,发送出去,如果是serdes到以太网一侧,则需要执行报文内容识别、报文头添加、报文分片并转发出去。
参阅图6,图6是本申请提供的报文处理装置另一实施例的结构示意图。该报文处理装置1000还包括:第二解析模块70、头部信息缓存模块80、数据缓存模块90、分片模块100和拼接模块200。
第二解析模块70用于接收报文数据进行解析。第二解析模块70用于报文解析,统计报文长度,计算udp checksum值。
头部信息缓存模块80用于存储解析后的报文数据的头部信息。如用于缓存IPV4报文的l2 header,ip header,length等信息。
数据缓存模块90用于缓存报文数据。在缓存满时,丢弃一整帧报文。
分片模块100与头部信息缓存模块80和数据缓存模块90连接,用于根据头部信息和报文数据进行分片处理。
拼接模块200与分片模块100连接,用于将分片处理的报文数据进行拼接,得到完整的报文数据。拼接模块200用于将分片模块100产生的碎片分片报文数据拼接成完整udp分片报文发送出去。
具体地,第二解析模块70主要功能如下:
1.锁存当前的MAC/IP/UDP PORT/ UDP checksum等信息。
2.响应反压信号,主动丢包处理。
3.UDP checksum计算。
其中,UDP checksum计算方法可以是以下方式:
把伪首部和UDP用户数据报连接在一起。伪首部包括:源IP地址、目的IP地址、0、17和UDP长度。
UDP用户数据包括首部和数据。其中,首部包括源端口、目标端口、长度和检验和。伪首部和首部的组成结构如图7所示。
以源IP地址为153.19.8.14、目的IP地址为171.3.14.11、0、17和UDP长度为15,源端口为1087、目标端口为13、长度为15和检验和为0为例,以及7字节的数据为例,可以求出检验和UDP checksum。如:153.19可以换算为10011001 00010011,8.140可以换算为00001000 01101000,171.3可以换算为10101011 00000011,14.11可以换算为0000111000001011,0和17可以换算为00000000 00010001,15可以换算为00000000 00001111,1087可以换算为00000100 00111111,13可以换算为00000000 00001101,0可以换算为0000000000000000,7字节的数据可以对应换算为01010100 01000101、01010011 01010100、01001001 01001110和01000111 00000000。将上述换算后的值相加得到1001011011101101。然后按照二进制反码运算求和,将得到的结果求反码得到UDP checksum为01101001 00010010。
其中,如图8所示,反压丢包控制如下:
Axis_rx_sop时,ddr_calib_done校准完成信号为0,则丢弃当前帧,不输出报文。Ddr_calib_done为后级提供的反压信号,生成的条件如下:
assign parse_accept = ddr_calib_done & (data_fifo_almost_full) &(parse_hdr_full);
parse_accept为顶层ddr_calib_done连接信号,data_fifo_almost_full为数据fifo预满标志,当前数据fifo容量为128K byte, 剩余空间小于64Kbyte,拉高data_fifo_almost_full。Parse_hdr_full为头部信息缓存,深度为512,表示FPGA内部最多缓存512条报文等待分片处理。
参阅图9,图9是本申请提供的存储控制模块一实施例的结构示意图。存储控制模块50包括:数据转换单元51、第一写入缓冲单元52、写入控制单元53、第一读取缓冲单元54、读取控制单元55和仲裁单元56。
数据转换单元51与多路复用器模块40连接,用于将报文数据由64bit转换为256bit。
第一写入缓冲单元52与数据转换单元51和记录模块30连接,用于根据报文信息和报文数据,产生第一写地址和第一写数据。
写入控制单元53与第一写入缓冲单元52连接,用于在第一预设指令下,根据第一写地址将第一写数据写入存储装置。
第一读取缓冲单元54与记录模块30连接,用于根据报文信息产生读地址。
读取控制单元55与第一读取缓冲单元54连接,用于在第二预设指令下,根据读地址,从存储装置中读取对应的目标数据,并将目标数据缓存与第一读取缓冲单元。
仲裁单元56与写入控制单元53和读取控制单元55连接,用于在写入控制单元的写操作和读取控制单元的读操作之间的仲裁调度。
其中,存储控制模块还包括:第二写入缓冲单元,与数据转换单元和记录模块连接,用于根据报文信息和报文数据,产生第二写地址和第二写数据;写入控制单元,与第二写入缓冲单元连接,用于在第三预设指令下,根据写地址将第二写数据写入存储装置;第二读取缓冲单元,与头部信息缓存模块连接,用于根据头部信息缓存模块中的报文信息产生第二读地址;读取控制单元,与第二读取缓冲单元连接,用于在第四预设指令下,根据第二读地址,从存储装置中读取对应的第二目标数据,并将第二目标数据缓存与第二读取缓冲单元。
该存储控制模块50主要是完成重组方向的DDR3读写控制,该模块为DDR3读写控制器的顶层模块。
数据转换单元51实现64bit数据到256bit的位宽转换,以适配DDR3的读写,每4拍64bit数据转换成1拍256bit数据,对于长度不是32byte整数倍的分片报文,包尾填充无效数据,通过keep信号指示其中有效字节。
第一写入缓冲单元52实现重组方向根据保序模块送过来的信息和解析模块送过来的数据产生DDR3的写地址和写数据,同时提供ready信号给后面仲裁单元56进行DDR3两读两写的调度,产生的DDR3写地址由src_id(6)+stream_id(5,0XXXX有效,1XXXX无效)+frag_id(6)+frag_offset(6)组成,除了frag_offset是在本模块中产生之外,其它部分都来自前面的记录模块,每次调度写一个完整的分片报文。模块主要包含一个数据FIFO和一个信息FIFO,数据FIFO存解析模块送过来的数据,信息FIFO存保序模块送过来的src_id(6)+stream_id(5,0XXXX有效,1XXXX无效)+frag_id(6)+frag_len(6,以32byte为单位)。信息FIFO非空且数据FIFO处于读空闲的状态,就读一次信息FIFO,并给出ready信号,待收到ack后根据读出的frag_len 产生计数去控制读数据FIFO,同时产生frag_offset。
第二写入缓冲单元实现分片方向产生DDR3的写地址和写数据,方法与重组方向类似。
写入控制单元53分片和重组两个方向DDR3写操作之间的仲裁调度,采取轮询调度方式。当状态机处于重组写状态时,如果收到重组写的ready,则进行重组写的操作,写完一个分片报文,状态机进入分片写状态,如果没收到重组写的ready,状态机直接进入分片写状态;当状态机处于分片写状态时,如果收到分片写的ready,则进行分片写的操作,写完一个分片报文状态机进入重组写状态,如果没收到分片写的ready,状态机直接进入重组写状态。
第一读取缓冲单元54实现重组方向根据保序模块送过来的信息产生DDR3的读地址,同时提供ready信号给后面仲裁模块进行DDR3两读两写的调度,产生的DDR3读地址由src_id(6)+stream_id(4)+frag_id(6)+frag_offset(6)组成,frag_id和frag_offset是在本模块中产生,src_id和stream_id来自前面的流保序模块,每次调度读一个完整的分片报文,一个UDP报文按照分片ID从小到大的顺序依次读出,从而实现分片乱序恢复的功能。模块主要包含一个数据FIFO和两个信息FIFO,数据FIFO存从DDR3读出的数据,信息FIFO1存保序模块送过来的src_id(6)+stream_id(4)+sum(6,分片总数)+mtu(11,非尾片长度) +length (11,尾片长度)。信息FIFO1非空且DDR3处于读命令空闲的状态,就读一次信息FIFO1,并给出ready信号,待收到ack后根据读出的sum、mtu和length产生计数来生成DDR3读地址中的frag_id和frag_offset,同时控制信息FIFO2的写。信息FIFO2存src_id(6) +stream_id(4)+sop_flag(1,首片标志)+eop_flag(1,尾片标志)+frag_length (11,分片长度)。信息FIFO2非空且数据FIFO非空并处于读空闲的状态,就读一次信息FIFO2,根据读出的信息产生计数去控制读数据FIFO,同时产生sop(只在首片起始的位置产生)、eop(只在尾片结束的位置产生)、valid(非连续)和keep信号一起送给后面的拼接模块。送给拼接模块的UDP报文数据除了首片之外,其它分片的MAC头和IP头都被去掉了,并且进行了移位处理,保证每个分片报文除了最后一拍之外,keep值都是8’hff,方便拼接模块的处理。
第二读取缓冲单元实现分片方向产生DDR3的读地址,并在分片模块有ready信号送过来时从DDR3中读出UDP报文数据产生分片报文送给分片模块,方法与重组方向类似。
读取控制单元55实现分片和重组两个方向DDR3读操作之间的仲裁调度,采取轮询调度方式。当状态机处于重组读状态时,如果收到重组读的ready,则进行重组读的操作,读完一个分片报文状态机进入分片读状态,如果没收到重组读的ready,状态机直接进入分片读状态;当状态机处于分片读状态时,如果收到分片读的ready,则进行分片读的操作,读完一个分片报文状态机进入重组读状态,如果没收到分片读的ready,状态机直接进入重组读状态。
仲裁单元56实现DDR3读操作和写操作之间的仲裁调度,并适配成DDR3 IPCORE的app接口格式,采取轮询调度方式,方法同前。app_addr为29位,比特位定义如下:
app_addr[28:27]:保留。
app_addr[26]:为0表示重组方向,为1表示分片方向。
app_addr[25:20]:源ID,支持最多64个源。
app_addr[19]:为0表示有效的流,为1表示无效的流,无效的流写到DDR3中不会读出来,做丢弃处理。
app_addr[18:15]:流ID,每个源最多存16条流,实际上是保序模块内部RAM表项的地址(表项每个地址空间存着一条流的有关信息),并非IP报文里的16位流ID。
app_addr[14:9]:分片ID。
app_addr[8:3]:分片报文读写的偏移地址,一个分片报文最大为2Kbyte,DDR读写一拍数据为32 byte,因此提供6bit的偏移地址。
app_addr[2:0]:始终为0 , 因为硬件DQ数据线为32bit,即4byte,低3bit为0,保证每次地址偏移8*4=32byte数据。
在其他实施例中,存储控制模块50还包括数据分发单元用于实现DDR3读数据的分发,根据app_addr[26]将DDR3读数据发给ddr_rd_buffer0模块或者ddr_rd_buffer1模块处理。
存储控制模块还包括:MIG单元,MIG单元为DDR3 MIG控制器IP CORE(IP核),实现DDR3的读写,并将DDR3外部接口适配成逻辑内部自定义的app接口。
其中,重组模块60中的顶层接口定义如下表所示:
信号名称 | 功能 | 备注 |
frag_sop | 分片包包头标志 | 高有效 |
frag_eop | 分片包包尾标志 | 高有效 |
frag_data | 分片包数据 | |
frag_valid | 分片数据有效信号 | 高有效 |
frag_keep | 分片数据字节有效指示信号 | |
frag_1st | 首片指示信号 | 高有效 |
frag_last | 尾片指示信号 | 高有效 |
align_clk | 模块时钟 | |
align_rst | 复位信号 | 高有效 |
align_valid_out | 重组包数据有效信号 | 高有效 |
align_ready | 外部设备准备就绪信号 | 高有效 |
align_data_out | 重组包数据 | |
align_keep_out | 重组包字节有效信号 | 高有效,每1bit对应一个字节 |
align_sop_out | 重组包包头信号 | 高有效 |
align_eop_out | 重组包包尾信号 | 高有效 |
其中,分片模块100使用状态机做处理流程控制,状态机分为IDLE,RD_LEN,FRAG_ARB,F_FRAG,M_FRAG,L_FRAG,FRAG_TRANS等7个状态。
IDLE状态为默认状态,监视len_fifo/data_fifo的状态,当len_fifo非空,表示前级ddr_controller模块准备下发或者下发过数据,len_fifo和data_fifo非空时,状态机跳转到RD_LEN状态,开始分片流程。
RD_LEN状态,锁存当前MTU值,读取一次hdr_mng数据,获取报文的原始长度,比较长度是否大于MTU值,如果小于MTU值,说明不需要分片。如果需要分片,同时计算切片的个数,状态机跳转到FRAG_ARB状态。
FRAG_ARB状态为切片方式仲裁,根据frag_countdown来判断执行切片的方式。通过判断data_fifo的数据存量data_fifo_len和MTU的关系来执行跳转,跳转条件:
len_countdown小于等于MTU,且len_countdown等于data_fifo_len。
len_countdown大于MTU,且data_fifo_len大于等于MTU。
Frag_countdown 大于0。
第一次总是跳转到F_FRAG,但前提条件是满足1或者2中一个条件;处理完F_FRAG,如果条件3满足,则跳转到M_FRAG; 最后frag_countdown为0,且len_countdown不为0则跳转到L_FRAG, 否则跳转回IDLE。
F_FRAG状态为首片处理,len_countdown小于等于MTU时,从data_fifo中读取len_countdown个数据,组成新的报文,下发给cache模块。组帧完成,跳转回FRAG_ARB状态。
M_FRAG状态为中间分片处理,中间分片长度都为MTU,组帧完成,跳转回FRAG_ARB状态。
L_FRAG状态为尾片处理,组帧完成,跳转回FRAG_IDLE模块。
FRAG_TRANS状态为不需要分片的情况处理,直接加上MAC/IP/UDP组成完整报文,然后发送出去。
如图10所示读取一次分片信息(hdr_rden),根据长度信息计算需要分为3个分片,读取数据fifo的数据(ddr_data_rden)完成分片操作。每个分片分为两个部分 header +payload,header包含 dmac(6) + smac(6) + type(2) + ip_header(20) 共计34byte,其中 ip_header中的fragmentation和checksum字段需要根据所在分片,同步计算得到。Payload信息需要等待后级缓存准备好(tx_ready为1),才能输出。
通过接口信号frame_last/data_eop 可以标记原始报文的最后一个数据,即data_last,当分片的过程中,从data_fifo中读取到data_last,但是此时的len_countdown未减到0,则说明产生原始报文长度和ddr回传数据长度不一致的异常现象,此时直接结束此次分片,进入下一次分片的处理。
如图11分片示例,帧长MTU=1500为例,分片payload长度都是1480,刚好是8字节整数倍,对应逻辑处理的位宽(1个cycle对应64bit)。如果MTU修改为1496,payload长度按照就近的8字节整数倍的最大长度取值,例如MTU=1492~1499时,payload都取值为1472。每次开始第一个分片处理前,首先锁存当前MTU值,保证此次分片过程中,MTU值不会发生变化。
其中,对于serdes侧收到的打包需要进行分片发送的过程,包括去掉serdes头,添加以太网头,根据mtu进行分片发送等,则需要根据以太网侧设置的mtu的信息,对报文进行分片处理,对于一个64K的流(依据ip+id进行确认),举例来说,设置mtu 1500,则可能需要43个分片,对于mtu 1000,则可能64个分片。
首片携带8字节的udp字段,所以payload字段仅为1472byte。中间分片和尾片不携带udp字段。如图12,ip header字段说明,其中fragment offset字段指示当前报文的payload在原始报文中的偏移值,位宽13bit,单位为8byte, 所以除尾片的其他分片的payload字段必须为8byte整数倍。
Wireshark抓包如图13,首片fragment offset为0,后面依次为185(0xb9),370(0x172),其中185*8= 1480。
拼接模块200主要用于隔离时钟域,以及拼接报文。
其中,如图14所示,为加快分片处理的速度,这里fragment_ctrl模块处理时钟选用ddr_clk, 经过fragment_ctrl处理的分片报文分为header + payload两段,需要拼接成一个完整的报文,然后送给MAC接口。
分片模块中的顶层接口定义如下表所示:
综上,本申请提供的报文处理装置,实现了乱序重排的功能,以及实现了分片包重组成一个大的非分片包。以及还实现了最大64k裸数据流可以根据用户需求的大小自动进行分片,并可以添加定制的数据头信息进行发送。并且支持数据流特征字提取和自学习,支持多并发数据流混杂乱序同时进入,最大可支持256~512个并发数据流,并自动进行特征字学习、分组管理。
无需软件参与,硬件集成tcp-ip协议栈,支持mac/ip地址自学习和管理。集成igmp组播协议、arp、icmp、udp、tcp的发送和应答。集成流控和大容量缓存,以适配转换两端的速率,以及确保数据不丢失。支持多链路冗余备份(HA),根据链路状态自动进行主备链路切换。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种报文处理装置,其特征在于,所述报文处理装置包括:
编解码模块,用于接收分片报文,并将所述分片报文编解码成MAC数据包;
第一解析模块,与所述编解码模块连接,用于对所述MAC数据包进行解析;
多路复用器模块,与所述第一解析模块连接,用于对解析后的所述MAC数据包进行IP地址匹配,得到相应的报文数据和报文信息;
记录模块,与所述多路复用器模块连接,用于接收所述报文信息,并将所述报文信息进行排序;
存储控制模块,与所述多路复用器模块和所述记录模块连接,用于接收所述报文数据和所述报文信息,并将所述报文数据和所述报文信息写入存储装置;
重组模块,与所述存储控制模块连接,用于接收所述存储控制模块发送的若干所述报文数据,并将若干所述报文数据进行重组,得到完整的报文数据。
2.根据权利要求1所述的报文处理装置,其特征在于,所述第一解析模块包括:
判断单元,与所述编解码模块连接,用于对所述MAC数据包进行协议类型以及UDP报文判断;
检测单元,与所述判断单元连接,用于对属于UDP报文的分片报文进行分片信息检测;其中,所述分片信息包括首片、中间片以及尾片;
清除单元,与所述检测单元连接,用于对属于所述尾片的分片报文进行无效字节清除。
3.根据权利要求1所述的报文处理装置,其特征在于,所述多路复用器模块包括:
缓存单元,与所述第一解析模块连接,用于对解析后的所述MAC数据包中的报文数据进行缓存;
匹配单元,与所述第一解析模块连接,用于对解析后的所述MAC数据包中的报文信息进行IP地址学习及匹配;
其中,所述缓存单元中的所述报文数据根据所述匹配单元中的IP地址学习及匹配的程度进行透传操作、丢弃操作或传输操作。
4.根据权利要求1所述的报文处理装置,其特征在于,所述记录模块包括:
存储单元,所述存储单元包括第一端口和第二端口;
第一控制单元,与所述多路复用器模块连接和所述第一端口连接,用于接收所述报文信息,并将所述报文信息进行排序写入所述存储单元;
第二控制单元,与所述第二端口和所述存储控制模块连接,用于从所述存储控制模块获取所述报文信息并发送至所述存储控制模块。
5.根据权利要求1所述的报文处理装置,其特征在于,所述重组模块包括:
对齐单元,用于接收若干所述报文数据,将若干所述报文数据进行字节对齐;
计算单元,与所述对齐单元连接,用于确定对齐后的所述报文数据的长度、校验和;
缓存单元,与所述计算单元连接,用于对所述报文数据进行缓存;
接口时序转换单元,与所述缓存单元连接,用于按照预设时序将所述缓存单元的接口转换为axi接口。
6.根据权利要求1所述的报文处理装置,其特征在于,所述报文处理装置还包括:
第二解析模块,用于接收报文数据进行解析;
头部信息缓存模块,用于存储解析后的报文数据的头部信息;
数据缓存模块,用于缓存所述报文数据;
分片模块,与头部信息缓存模块和所述数据缓存模块连接,用于根据所述头部信息和报文数据进行分片处理;
拼接模块,与所述分片模块连接,用于将分片处理的报文数据进行拼接,得到完整的报文数据。
7.根据权利要求6所述的报文处理装置,其特征在于,所述存储控制模块包括:
数据转换单元,与所述多路复用器模块连接,用于将所述报文数据由64bit转换为256bit;
第一写入缓冲单元,与所述数据转换单元和所述记录模块连接,用于根据所述报文信息和所述报文数据,产生第一写地址和第一写数据;
写入控制单元,与所述第一写入缓冲单元连接,用于在第一预设指令下,根据所述第一写地址将所述第一写数据写入所述存储装置;
第一读取缓冲单元,与所述记录模块连接,用于根据所述报文信息产生第一读地址;
读取控制单元,与所述第一读取缓冲单元连接,用于在第二预设指令下,根据所述第一读地址,从所述存储装置中读取对应的第一目标数据,并将所述第一目标数据缓存与所述第一读取缓冲单元;
仲裁单元,与所述写入控制单元和所述读取控制单元连接,用于在所述写入控制单元的写操作和所述读取控制单元的读操作之间的仲裁调度。
8.根据权利要求7所述的报文处理装置,其特征在于,所述存储控制模块还包括:
第二写入缓冲单元,与所述数据转换单元和所述记录模块连接,用于根据所述报文信息和所述报文数据,产生第二写地址和第二写数据;
写入控制单元,与所述第二写入缓冲单元连接,用于在第三预设指令下,根据所述写地址将所述第二写数据写入所述存储装置;
第二读取缓冲单元,与所述头部信息缓存模块连接,用于根据所述头部信息缓存模块中的报文信息产生第二读地址;
读取控制单元,与所述第二读取缓冲单元连接,用于在第四预设指令下,根据所述第二读地址,从所述存储装置中读取对应的第二目标数据,并将所述第二目标数据缓存与所述第二读取缓冲单元。
9.根据权利要求1所述的报文处理装置,其特征在于,所述编解码模块的数量为2,其中一个所述编解码模块为备份。
10.根据权利要求1所述的报文处理装置,其特征在于,所述报文处理装置为FPGA。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111218937.2A CN113660295B (zh) | 2021-10-20 | 2021-10-20 | 报文处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111218937.2A CN113660295B (zh) | 2021-10-20 | 2021-10-20 | 报文处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113660295A true CN113660295A (zh) | 2021-11-16 |
CN113660295B CN113660295B (zh) | 2022-03-22 |
Family
ID=78494728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111218937.2A Active CN113660295B (zh) | 2021-10-20 | 2021-10-20 | 报文处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113660295B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022423A (zh) * | 2022-06-22 | 2022-09-06 | 上海弘积信息科技有限公司 | 一种负载均衡设备中IPv4标识分配方法 |
CN115134171A (zh) * | 2022-08-30 | 2022-09-30 | 湖南麒麟信安科技股份有限公司 | 隔离网络环境下加密存储报文的方法、装置、系统及介质 |
CN116684048A (zh) * | 2023-08-02 | 2023-09-01 | 成都电科星拓科技有限公司 | Serdes中继芯片主备链路切换方法及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827031A (zh) * | 2010-04-22 | 2010-09-08 | 中兴通讯股份有限公司 | 一种用户数据包协议udp隧道中传输报文的方法及装置 |
WO2015190247A1 (ja) * | 2014-06-10 | 2015-12-17 | ソニー株式会社 | 送信装置、送信方法および受信装置 |
CN105610744A (zh) * | 2016-01-28 | 2016-05-25 | 东南大学 | 一种ip报文分片与重组方法及装置 |
CN106412886A (zh) * | 2015-08-13 | 2017-02-15 | 大唐半导体设计有限公司 | 智能设备安全接入无线网络的方法、装置和系统 |
CN107196879A (zh) * | 2017-05-18 | 2017-09-22 | 杭州敦崇科技股份有限公司 | Udp报文的处理方法、装置以及网络转发装置 |
CN110300074A (zh) * | 2019-06-06 | 2019-10-01 | 北京左江科技股份有限公司 | 一种ip报文分片重组方法 |
CN110581812A (zh) * | 2018-06-08 | 2019-12-17 | 北京京东尚科信息技术有限公司 | 一种数据报文的处理方法和装置 |
CN111131535A (zh) * | 2019-12-05 | 2020-05-08 | 天津芯海创科技有限公司 | 一种RapidIO动态地址映射系统 |
CN111953620A (zh) * | 2020-08-21 | 2020-11-17 | 锐捷网络股份有限公司 | 一种分片报文的重组方法及装置 |
CN113411341A (zh) * | 2021-06-24 | 2021-09-17 | 成都卫士通信息产业股份有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
-
2021
- 2021-10-20 CN CN202111218937.2A patent/CN113660295B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827031A (zh) * | 2010-04-22 | 2010-09-08 | 中兴通讯股份有限公司 | 一种用户数据包协议udp隧道中传输报文的方法及装置 |
WO2015190247A1 (ja) * | 2014-06-10 | 2015-12-17 | ソニー株式会社 | 送信装置、送信方法および受信装置 |
CN106412886A (zh) * | 2015-08-13 | 2017-02-15 | 大唐半导体设计有限公司 | 智能设备安全接入无线网络的方法、装置和系统 |
CN105610744A (zh) * | 2016-01-28 | 2016-05-25 | 东南大学 | 一种ip报文分片与重组方法及装置 |
CN107196879A (zh) * | 2017-05-18 | 2017-09-22 | 杭州敦崇科技股份有限公司 | Udp报文的处理方法、装置以及网络转发装置 |
CN110581812A (zh) * | 2018-06-08 | 2019-12-17 | 北京京东尚科信息技术有限公司 | 一种数据报文的处理方法和装置 |
CN110300074A (zh) * | 2019-06-06 | 2019-10-01 | 北京左江科技股份有限公司 | 一种ip报文分片重组方法 |
CN111131535A (zh) * | 2019-12-05 | 2020-05-08 | 天津芯海创科技有限公司 | 一种RapidIO动态地址映射系统 |
CN111953620A (zh) * | 2020-08-21 | 2020-11-17 | 锐捷网络股份有限公司 | 一种分片报文的重组方法及装置 |
CN113411341A (zh) * | 2021-06-24 | 2021-09-17 | 成都卫士通信息产业股份有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022423A (zh) * | 2022-06-22 | 2022-09-06 | 上海弘积信息科技有限公司 | 一种负载均衡设备中IPv4标识分配方法 |
CN115134171A (zh) * | 2022-08-30 | 2022-09-30 | 湖南麒麟信安科技股份有限公司 | 隔离网络环境下加密存储报文的方法、装置、系统及介质 |
CN115134171B (zh) * | 2022-08-30 | 2022-11-29 | 湖南麒麟信安科技股份有限公司 | 隔离网络环境下加密存储报文的方法、装置、系统及介质 |
CN116684048A (zh) * | 2023-08-02 | 2023-09-01 | 成都电科星拓科技有限公司 | Serdes中继芯片主备链路切换方法及系统 |
CN116684048B (zh) * | 2023-08-02 | 2023-10-31 | 成都电科星拓科技有限公司 | Serdes中继芯片主备链路切换方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113660295B (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113660295B (zh) | 报文处理装置 | |
US20240106736A1 (en) | System and method for facilitating efficient packet forwarding using a message state table in a network interface controller (nic) | |
JP4866908B2 (ja) | 通信システムにおけるパケットの分割および連結をシグナリングする方法および装置 | |
EP1234428B1 (en) | Method and apparatus for packet delay reduction using scheduling and header compression | |
US6967951B2 (en) | System for reordering sequenced based packets in a switching network | |
US6434145B1 (en) | Processing of network data by parallel processing channels | |
US7797605B2 (en) | Managing storage of HARQ packets | |
US20110261814A1 (en) | Packet preemption for low latency | |
US20100189105A1 (en) | Efficiency Improvement For Shared Communications Networks | |
US20050152355A1 (en) | Reducing transmission time for data packets controlled by a link layer protocol comprising a fragmenting/defragmenting capability | |
CN114499993B (zh) | 一种基于单向光闸的高可靠性安全传输与控制系统及方法 | |
US20090232137A1 (en) | System and Method for Enhancing TCP Large Send and Large Receive Offload Performance | |
US8413000B2 (en) | Retransmission above the gamma interface | |
US9124499B2 (en) | Frame transmission system | |
US7337371B2 (en) | Method and apparatus to handle parity errors in flow control channels | |
CN113454935B (zh) | 一种线路编码方法及装置 | |
US11979479B1 (en) | Packet sorting and reassembly circuit module | |
US10530513B2 (en) | Asynchronous data multiplexing method and device | |
US7797465B2 (en) | Apparatus and methods to reduce frame interrupts in packet-based communication | |
EP0993217A1 (en) | Method and apparatus for providing a connectionless cell switch maitaining cell sequence integrity | |
JP2000278289A (ja) | Aal5コネクションにおけるバッファ管理方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |