CN113872886B - 一种报文封装的方法及装置 - Google Patents
一种报文封装的方法及装置 Download PDFInfo
- Publication number
- CN113872886B CN113872886B CN202111045251.8A CN202111045251A CN113872886B CN 113872886 B CN113872886 B CN 113872886B CN 202111045251 A CN202111045251 A CN 202111045251A CN 113872886 B CN113872886 B CN 113872886B
- Authority
- CN
- China
- Prior art keywords
- data
- shift register
- effective
- processed
- valid
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000005538 encapsulation Methods 0.000 title claims abstract description 34
- 238000013075 data extraction Methods 0.000 claims description 10
- 238000004806 packaging method and process Methods 0.000 abstract description 10
- 239000000872 buffer Substances 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本说明书提供一种报文封装的方法及装置,所述方法包括:基于预设字节数从待封装的数据包中提取待处理数据;从所述待处理数据中提取出有效数据,并将有效数据缓存至移位寄存器;判断移位寄存器中缓存的有效数据的字节数是否不小于预设的阈值;当不小于预设的阈值时,按照存储顺序取出移位寄存器中缓存的有效数据输出,并继续从待封装的日志包中提取待处理数据;其中,取出的有效数据的字节数与所述阈值相等;在移位寄存器中缓存的有效数据输出完毕后,对输出的有效数据进行封装。应用本申请方案,不需要使用大容量FIFO缓存,同时相较于使用状态机完成报文封装,减少了耗时,提高了报文封装的效率。
Description
技术领域
本说明书涉及数据处理技术领域,尤其涉及一种报文封装的方法及装置。
背景技术
随着各种网络应用的迅速增加,网络流量激增,进而出现了对网络流量监督管理的需求。为了实现对网络流量的监督管理,可以采用基于数据网络中IP数据流信息的网络管理方式。该方式由网络中的设备节点(如交换机、路由器)收集数据流的相关数据输出至监控软件所在设备(如收集器),进而监控软件将数据进行整理、呈现报表以实现监督管理的需求。而相关数据在输出至监控软件所在设备之前需要经过封装,在实际应用中,通常采用FIFO缓存加上状态机的模式将数据封装成报文。然而,采用这种模式通过大容量FIFO缓存数据会占用大量资源,同时由于状态机的处理效率低可能会耗时过长从而降低了上报性能甚至可能造成反压的情况。
发明内容
针对上述技术问题,本申请提供一种报文封装的方法及装置,技术方案如下:
根据本申请的第一方面,提供一种报文封装的方法,所述方法包括:
基于预设字节数从待封装的数据包中提取待处理数据;其中,所述待封装的数据包具有指定的数据结构;
从所述待处理数据中提取出有效数据,并将有效数据缓存至移位寄存器;
判断移位寄存器中缓存的有效数据的字节数是否不小于预设的阈值;
当不小于预设的阈值时,按照存储顺序将移位寄存器中缓存的有效数据输出,并继续从待封装的数据包中提取待处理数据;其中,输出的有效数据的字节数与所述阈值相等;
在移位寄存器中缓存的有效数据输出完毕后,对输出的有效数据进行封装。
可选的,在所述报文封装的方法中,在待处理数据携带包尾标识的情况下,在移位寄存器中缓存的有效数据的字节数大于预设的阈值时,所述方法还包括:
在按照存储顺序将移位寄存器中缓存的有效数据输出后,再按照存储顺序将移位寄存器中剩余的有效数据输出,并使用无效字节对剩余的有效数据进行补齐操作,使得补齐后数据的字节数与所述阈值相等。
可选的,在所述报文封装的方法中,在待处理数据携带包尾标识的情况下,在移位寄存器中缓存的有效数据的字节数小于预设的阈值时,所述方法还包括:
将移位寄存器中缓存的有效数据输出,并使用无效字节对剩余的有效数据进行补齐操作,使得补齐后数据的字节数与所述阈值相等。
根据本申请的第二方面,提供一种报文封装的装置,包括:
数据提取单元,用于基于预设字节数从待封装的数据包中提取待处理数据;其中,所述待封装的数据包具有指定的数据结构;
数据缓存单元,用于从所述待处理数据中提取出有效数据,并将有效数据缓存至移位寄存器;
有效字节数判断单元,用于判断移位寄存器中缓存的有效数据的字节数是否不小于预设的阈值;
数据输出单元,用于在有效字节数判断单元的判断结果为不小于预设的阈值时,按照存储顺序将移位寄存器中缓存的有效数据输出,并继续从待封装的数据包中提取待处理数据;其中,输出的有效数据的字节数与所述阈值相等;
数据封装单元,用于在移位寄存器中缓存的有效数据输出完毕后,对输出的有效数据进行封装。
可选的,在所述报文封装的装置中,在数据提取单元提取的待处理数据携带包尾标识的情况下,在有效字节数判断单元的判断结果为大于预设的阈值时,
所述数据输出单元,还用于在按照存储顺序将移位寄存器中缓存的有效数据输出后,再按照存储顺序将移位寄存器中剩余的有效数据输出,并使用无效字节对剩余的有效数据进行补齐操作,使得补齐后数据的字节数与所述阈值相等。
可选的,在所述报文封装的装置中,在数据提取单元提取的待处理数据携带包尾标识的情况下,在有效字节数判断单元的判断结果为小于预设的阈值时,
所述数据输出单元,还用于按照存储顺序将移位寄存器中缓存的有效数据输出,并使用无效字节对剩余的有效数据进行补齐操作,使得补齐后数据的字节数与所述阈值相等。
本申请提供的技术方案,针对需要进行报文封装的应用场景,在从待封装的数据包中提取待处理数据后,提取待处理数据的有效数据并缓存至移位寄存器缓存,进而按照存储顺序取出移位寄存器中缓存的有效数据并输出后,继续从待封装的数据包中提取待处理数据,当移位寄存器中缓存的有效数据全部被输出时,封装输出数据;在这个过程中,不需要使用大容量FIFO缓存,同时相较于使用状态机完成报文封装,减少了耗时,提高了报文封装的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。此外,本申请中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请示出的一种报文封装的方法的流程示意图;
图2是本申请示出的另一种报文封装的方法的流程示意图;
图3是本申请示出的确定移位寄存器中缓存的有效数据的字节数方法的流程示意图;
图4是本申请报文封装的装置所在计算机设备的一种硬件结构图;
图5是本申请示出的一种报文封装的装置的框图;
图6是本申请示出的另一种报文封装的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
请参见图1,图1是本申请示出的一种报文封装的方法的流程示意图,上述方法可应用于网络设备,包括以下步骤:
步骤101:基于预设字节数从待封装的数据包中提取待处理数据;其中,所述待封装的数据包具有指定的数据结构。
步骤103:从所述待处理数据中提取出有效数据,并将有效数据缓存至移位寄存器。
步骤105:判断移位寄存器中缓存的有效数据的字节数是否不小于预设的阈值。
步骤107:当不小于预设的阈值时,按照存储顺序将移位寄存器中缓存的有效数据输出后,继续从待封装的数据包中提取待处理数据;其中,输出的有效数据的字节数与所述阈值相等。
步骤109:在移位寄存器中缓存的有效数据输出完毕后,对输出的有效数据进行封装。
在以上技术方案中,将有效数据缓存至移位寄存器;以及根据移位寄存器中缓存的有效数据的字节数来输出有效数据,一方面,不需要大容量FIFO缓存,减少了资源的占用,另一方面,与使用状态机完成报文封装相比报文封装的速度有极大的提升。
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
请参见图2,图2是本申请示出的另一种报文封装的方法的流程示意图,所述方法可以应用于需要完成报文封装的网络设备。
其中,所述报文封装是指将具有指定数据结构的数据包封装为报文,所述封装得到的报文可以是UDP报文,或是TCP报文,也可以是HTTP报文等。例如,在进行流量监控或者流量采样的时候会进行的NetFlow日志上报,所述NetFlow日志上报就是指将收集到的NetFlow日志包封装为报文后再进行上报,所述收集到的NetFlow日志包就是具有指定数据结构的数据包,所述报文的类型是由用户设定的;这里只是对报文封装的方法进行示例性地说明,不进行具体地限定。
所述方法执行以下步骤:
步骤202:基于预设字节数从待封装的数据包中提取待处理数据;其中,所述待封装的数据包具有指定的数据结构。
在本说明书中,上述预设字节数,可以根据设备需要读取的数据内容设定。
在本说明书中,上述指定的数据结构,可以是用户指定的,或是根据用户提供的模板匹配的,也可以是通过其他方式获得的。在不同的报文封装场景中,数据包可具有不同的数据结构。
在一种可选的实现方式中,上述预设字节数可以为4,每次从待封装的数据包中提取4字节数据。在另一种可选的实现方式中,上述字节数可以为8,每次从待封装的数据包中提取8字节数据。
例如,在NetFlow日志上报流程中,每次从待处理的NetFlow日志包中提取4字节数据。
步骤204:从所述待处理数据中提取出有效数据,并将有效数据缓存至移位寄存器。
其中,基于待处理数据中携带的掩码从所述待处理数据中提取出有效数据。例如,一位掩码对应一字节数据,掩码中的“1”对应的数据为有效数据,“0”对应的数据为无效数据。当然,对于上述具体的掩码与数据的对应关系以及缓存方式,在本说明书中不作具体限定。
接着以上示例继续举例,从NetFlow日志包中提取出的待处理数据自带4位掩码,每位掩码对应八位数据,掩码中“1”的所在位对应的八位数据为1字节有效数据,可以将这些位上的数据取出并按顺序存入移位寄存器,“0”的所在位对应的八位数据为无效数据,无效数据不需要缓存,例如,假设提取出的数据是“01101100 01011000 1110011110101010”,自带的掩码是“0101”,则两个“1”对应的十六位2字节数据“01011000”、“10101010”为要存入移位寄存器的有效数据。值得注意的是,第一次获取的待处理数据携带包头标识,最后一次获取的待处理数据携带包尾标识,因为需要包头标识和包尾标识完成封装,所以包头标识与包尾标识也会被分别缓存至移位寄存器。
在本实施例中,在提取出有效数据之后,可将有效数据并行缓存至移位寄存器,进而提升缓存数据的速度,减小耗时。
本实施例,将有效数据缓存至移位寄存器就省去了大容量FIFO缓存,从而减少了资源的占用。
步骤206:判断当前待处理数据是否携带包尾标识。
该步骤与步骤204的执行顺序也可以互换,即先执行步骤206再执行步骤204,在本说明书中不作具体限定。
在本实施例中,对于携带包尾标识和未携带包尾标识的待处理数据有不同的处理方式:
若当前待处理数据不携带包尾标识,接着执行以下步骤:
步骤208A:判断移位寄存器中缓存的有效数据的字节数是否不小于预设的阈值n。
值得注意的是,对于不同的判断结果有不同的处理方式:
若判断结果为不小于预设的阈值n,则执行步骤210A:
步骤210A:按照存储顺序将移位寄存器中缓存的n字节有效数据输出,然后返回步骤202;
若判断结果为小于预设的阈值n,则直接执行步骤202。
接着以上示例继续举例,若当前提取出的待处理数据不携带包尾标识,说明所述待处理数据不是待封装的NetFlow日志包中的最后数据,则基于待处理数据的有效数据缓存至移位寄存器之前的移位计数器的低位数值,确定在将待处理数据的有效数据缓存至移位寄存器之前移位寄存器中剩余的有效字节数,再根据待处理数据自带的4位掩码计算出待处理数据的有效字节数后,基于所述剩余的有效字节数和所述待处理数据的有效字节数,计算出当前移位寄存器中的有效字节数。如果求出的有效字节数大于4,则按存储顺序将移位寄存器中的前4字节有效数据输出,并返回步骤202;如果求出的有效字节数等于4,则按存储顺序将移位寄存器中的所有数据输出,并返回步骤202;如果求出的有效字节数小于4,则直接执行步骤202重新从待封装的NetFlow日志包提取待处理数据。同时根据输出的有效数据字节数确定其对应的mod值并将该mod值与输出的有效数据拼装。
例如,假设移位计数器中的数值在本次待处理数据的有效数据存入移位寄存器之前为“110”(110是二进制,为十进制中的6),基于其低位数值可确定在本次有效数据存入移位寄存器之前移位寄存器中剩余的有效字节数为2;
若当前待处理数据不携带包尾标识且自带的掩码为“1101”,则根据此掩码中“1”的个数计算出待处理数据的有效字节数为3,基于剩余的有效字节数与待处理数据的有效字节数可求出现有的有效字节数为5,即当前移位寄存器中的有效数据的字节数大于4,则按存储顺序将移位寄存器中的前4字节有效数据输出,可确定其对应的mod值为“00”;数据输出后再次从待封装的数据包提取待处理数据;
若当前待处理数据不携带包尾标识且自带的掩码为“1001”,则根据此掩码中“1”的个数计算出待处理数据的有效字节数为2,基于剩余的有效字节数与待处理数据的有效字节数可求出现有的有效字节数为4,即当前移位寄存器中的有效数据的字节数等于4,则按存储顺序将移位寄存器中的所有有效数据输出,可确定其对应的mod值为“00”;数据输出后再次从待封装的数据包提取待处理数据;
若当前待处理数据不携带包尾标识且自带的掩码为“0001”,则根据此掩码中“1”的个数计算出待处理数据的有效字节数为1,基于剩余的有效字节数与待处理数据的有效字节数可求出现有的有效字节数为3,即当前移位寄存器中的有效数据的字节数小于4,则直接重新从待封装的数据包提取待处理数据。
在本说明书中,上述mod值与从移位寄存器中输出的有效数据的字节数之间存在对应关系,所述对应关系可以是当从移位寄存器中输出的有效数据的字节数等于预设的阈值时mod值等于0,其余情况下mod值等于从移位寄存器中输出有效数据的字节数;或是mod值与从移位寄存器中输出的有效数据的字节数的和等于预设的值m;也可以是mod值与从移位寄存器中输出的有效数据的字节数的差为1等,本说明书中不作具体限定。
在本说明书的实施例中,当从移位寄存器中输出的有效数据的字节数等于预设的阈值时mod值等于0,其余情况下mod值等于从移位寄存器中输出有效数据的字节数,预设的阈值等于4,也即有以下对应关系:
若有效字节数为4则对应的mod值为“00”;
若有效字节数为3则对应的mod值为“11”;
若有效字节数为2则对应的mod值为“10”;
若有效字节数为1则对应的mod值为“01”。
若当前待处理数据携带包尾标识,说明所述待处理数据是待封装的数据包中的最后数据,也就是待封装的数据包已经没有数据可以再被读取,所以要将移位寄存器中所有的有效数据输出进而完成封装,执行以下步骤:
步骤208B:判断移位寄存器中缓存的有效数据的字节数是否不小于预设的阈值n。
值得注意的是,对于不同的判断结果有不同的处理方式:
若判断结果为不小于预设的阈值n,则执行步骤210B1,
步骤210B1:在按照存储顺序将移位寄存器中缓存的n字节有效数据输出后,如果移位寄存器中还剩余有效数据,则按照存储顺序将移位寄存器中剩余的有效数据输出后,使用无效字节补齐至n字节。
若判断结果为小于预设的阈值n,则执行步骤210B2,
步骤210B2:按照存储顺序将移位寄存器中缓存的有效数据输出后,使用无效字节补齐至n字节。
接着以上示例继续举例,若当前提取出的待处理数据携带包尾标识,说明所述待处理数据是待封装的NetFlow日志包中的最后数据,则基于待处理数据的有效数据缓存至移位寄存器之前的移位计数器的低位数值,确定剩余的有效字节数,再根据待处理数据自带的4位掩码计算出待处理数据的有效字节数后,基于所述剩余的有效字节数和所述待处理数据的有效字节数,计算出当前移位寄存器中的有效字节数。如果求出的有效字节数大于4,则按存储顺序将移位寄存器中的前4字节有效数据输出后,再按存储顺序将剩余的有效数据输出并用无效字节补齐至4字节;如果求出的有效字节数等于4,则按存储顺序将移位寄存器中的所有数据输出;如果求出的有效字节数小于4,则按存储顺序将所有的有效数据输出并用无效字节补齐至4字节。同时根据输出的有效数据字节数确定其对应的mod值并将该mod值与输出的有效数据拼装。
例如,假设移位计数器中的数值在本次待处理数据的有效数据存入移位寄存器之前为“110”(110是二进制,为十进制中的6),基于其低位数值可确定在本次有效数据存入移位寄存器之前移位寄存器中剩余的有效字节数为2;
若当前待处理数据携带包尾标识且自带的掩码为“1101”,则根据此掩码中“1”的个数计算出待处理数据的有效字节数为3,基于剩余的有效字节数与待处理数据的有效字节数可求出现有的有效字节数为5,即当前移位寄存器中的有效数据的字节数大于4,则先按存储顺序将移位寄存器中的前4字节有效数据输出,可确定其对应的mod值为“00”;再将移位寄存器中剩余的1字节有效数据输出并用0补齐至4字节,可确定其对应的mod值为“01”;
若当前待处理数据携带包尾标识且自带的掩码为“1001”,则根据此掩码中“1”的个数计算出待处理数据的有效字节数为2,基于剩余的有效字节数与待处理数据的有效字节数可求出的现有的有效字节数为4,即当前移位寄存器中的有效数据的字节数等于4,则按存储顺序将移位寄存器中的所有有效数据输出,可确定其对应的mod值为“00”;
若当前待处理数据携带包尾标识且自带的掩码为“0001”,则根据此掩码中“1”的个数计算出待处理数据的有效字节数为1,基于剩余的有效字节数与待处理数据的有效字节数可求出的现有的有效字节数为3,即当前移位寄存器中的有效数据的字节数小于4,则将移位寄存器中的3字节有效数据输出并用0补齐至4字节,可确定其对应的mod值为“11”。
当移位寄存器中缓存的数据全被输出时,执行以下步骤:
步骤212:对输出的有效数据进行封装。
接着以上示例继续举例,根据移位寄存器中缓存的包头标识和包尾标识对完整的UDP报文进行封装。
本实施例,采用时序逻辑和组合逻辑结合并行处理的方式完成报文封装相较于通过状态机完成报文封装速度更快,从而提升了日志上报的整体性能。
综上所述,在本申请实施例中,舍弃了采用FIFO缓存数据,同时没有采用状态机的方式完成报文封装,减少了耗时,提高了报文封装的效率。
另外,请参见图3,图3是本申请示出的确定移位寄存器中缓存的有效数据的字节数方法的流程示意图,包括以下步骤:
步骤303:基于待处理数据的有效数据缓存至移位寄存器之前的移位计数器的低位数值,确定在将待处理数据的有效数据缓存至移位寄存器之前移位寄存器中剩余的有效字节数。
在本说明书中,上述移位计数器的低位数值的具体低位数,基于预设的阈值n确定,位数等于将阈值用二进制表示所需的位数减1。
例如,假设移位计数器中的数值为“110”,预设的阈值n为4,将阈值4用二进制表示为100,需要3位,则位数等于2,根据移位计数器的低2位“10”可确定剩余的有效字节数为2。
步骤306:基于待处理数据中携带的掩码确定所述待处理数据的有效字节数。
在本说明书中,上述待处理数据的有效字节数等于掩码中“1”的个数。
例如,假设待处理数据的掩码为“1101”,该掩码中有3个“1”,则该待处理数据的有效字节数为3。
步骤309:基于所述剩余的有效字节数和所述待处理数据的有效字节数确定当前移位寄存器中缓存的有效数据的字节数。
在本说明书中,当前移位寄存器中缓存的有效数据的字节数是剩余有效字节数与所述待处理数据的有效字节数的和。
例如,在步骤303中得出剩余的有效字节数为2;在步骤306中得出待处理数据的有效字节数为3,则当前移位寄存器中缓存的有效数据的字节数为5,即2+3。
本实施例,利用移位计数器可以更快速地计算出现有的有效数据的字节数,从而提高报文封装的速度。
与前述报文封装的方法的实施例相对应,本说明书还提供了报文封装的装置及其所应用的终端的实施例。
本说明书报文封装的装置的实施例可以应用在计算机设备上,例如服务器或终端设备。报文封装的装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在报文封装的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,请参见图4,为本申请报文封装的装置所在计算机设备的一种硬件结构图结构图,除了图4所示的处理器410、内存430、网络接口420、以及非易失性存储器440之外,实施例中报文封装的装置431所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
请参见图5,图5是本申请示出的一种报文封装的装置的框图,所述装置包括:
数据提取单元510,基于预设字节数从待封装的数据包中提取待处理数据;其中,所述待封装的数据包具有指定的数据结构;
数据缓存单元520,从所述待处理数据中提取出有效数据,并将有效数据缓存至移位寄存器;
有效字节数判断单元530,判断移位寄存器中缓存的有效数据的字节数是否不小于预设的阈值;
数据输出单元540,在有效字节数判断单元的判断结果为不小于预设的阈值时,按照存储顺序将移位寄存器中缓存的有效数据输出,并继续从待封装的数据包中提取待处理数据;其中,输出的有效数据的字节数与所述阈值相等;
数据封装单元550,在移位寄存器中缓存的有效数据输出完毕后,对输出的有效数据进行封装。
请参见图6,图6是本申请示出的另一种报文封装的装置的框图,所述装置包括:
数据提取单元610,基于预设字节数从待封装的数据包中提取待处理数据;其中,所述待封装的数据包具有指定的数据结构;
数据缓存单元620,从所述待处理数据中提取出有效数据,并将有效数据缓存至移位寄存器;
在本实施例中,所述数据缓存单元620进一步具体用于:
基于待处理数据中携带的掩码从所述待处理数据中提取出有效数据;将有效数据提取子单元提取出的有效数据缓存至移位寄存器。
有效字节数判断单元630,判断移位寄存器中缓存的有效数据的字节数是否不小于预设的阈值;
在本实施例中,所述有效字节数判断单元630进一步具体用于:
基于待处理数据的有效数据缓存至移位寄存器之前的移位计数器的低位数值,确定在将待处理数据的有效数据缓存至移位寄存器之前移位寄存器中剩余的有效字节数;基于待处理数据中携带的掩码确定所述待处理数据的有效字节数;基于所述剩余的有效字节数和所述待处理数据的有效字节数确定当前移位寄存器中缓存的有效数据的字节数;比较有效字节数计数子单元得到的移位寄存器中缓存的有效数据的字节数与预设的阈值的大小关系。
数据输出单元640,在有效字节数判断单元的判断结果为不小于预设的阈值时,按照存储顺序将移位寄存器中缓存的有效数据输出后,继续从待封装的数据包中提取待处理数据;其中,输出的有效数据的字节数与所述阈值相等;
在本实施例中,在数据提取单元提取的待处理数据携带包尾标识的情况下,在有效字节数判断单元的判断结果为大于预设的阈值时,所述装置还包括:
数据输出单元A 641,在按照存储顺序将移位寄存器中缓存的有效数据输出后,再按照存储顺序将移位寄存器中剩余的有效数据输出,并使用无效字节对剩余的有效数据进行补齐操作,使得补齐后数据的字节数与所述阈值相等。
在本实施例中,在数据提取单元提取的待处理数据携带包尾标识的情况下,在有效字节数判断单元的判断结果为小于预设的阈值时,所述装置还包括:
数据输出单元B 642,按照存储顺序将移位寄存器中所有的有效数据输出,并使用无效字节对剩余的有效数据进行补齐操作,使得补齐后数据的字节数与所述阈值相等。
数据封装单元650,在移位寄存器中缓存的有效数据输出完毕后,对输出的有效数据进行封装。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (8)
1.一种报文封装的方法,其特征在于,所述方法包括:
基于预设字节数从待封装的数据包中提取待处理数据;其中,所述待封装的数据包具有指定的数据结构;
从所述待处理数据中提取出有效数据,并将有效数据缓存至移位寄存器;
判断移位寄存器中缓存的有效数据的字节数是否不小于预设的阈值;
当不小于预设的阈值时,按照存储顺序将移位寄存器中缓存的有效数据输出后,继续从待封装的数据包中提取待处理数据;其中,取出的有效数据的字节数与所述阈值相等;
在移位寄存器中缓存的有效数据输出完毕后,对输出的有效数据进行封装;
所述从所述待处理数据中提取出有效数据,包括:
基于待处理数据中携带的掩码从所述待处理数据中提取出有效数据。
2.根据权利要求1所述的方法,其特征在于,在待处理数据携带包尾标识的情况下,在移位寄存器中缓存的有效数据的字节数大于预设的阈值时,所述方法还包括:
在按照存储顺序将移位寄存器中缓存的有效数据输出后,再按照存储顺序将移位寄存器中剩余的有效数据输出,并使用无效字节对剩余的有效数据进行补齐操作,使得补齐后数据的字节数与所述阈值相等。
3.根据权利要求2所述的方法,其特征在于,在移位寄存器中缓存的有效数据的字节数小于预设的阈值时,所述方法还包括:
按照存储顺序将移位寄存器中缓存的有效数据输出,并使用无效字节对缓存的有效数据进行补齐操作,使得补齐后数据的字节数与所述阈值相等。
4.根据权利要求1所述的方法,其特征在于,移位寄存器中缓存的有效数据的字节数的确定方法,包括:
基于待处理数据的有效数据缓存至移位寄存器之前的移位计数器的低位数值,确定在将待处理数据的有效数据缓存至移位寄存器之前移位寄存器中剩余的有效字节数;
基于待处理数据中携带的掩码确定所述待处理数据的有效字节数;
基于所述剩余的有效字节数和所述待处理数据的有效字节数确定当前移位寄存器中缓存的有效数据的字节数。
5.一种报文封装的装置,其特征在于,所述装置包括:
数据提取单元,用于基于预设字节数从待封装的数据包中提取待处理数据;其中,所述待封装的数据包具有指定的数据结构;
数据缓存单元,用于从所述待处理数据中提取出有效数据,并将有效数据缓存至移位寄存器;
有效字节数判断单元,用于判断移位寄存器中缓存的有效数据的字节数是否不小于预设的阈值;
数据输出单元,用于在有效字节数判断单元的判断结果为不小于预设的阈值时,按照存储顺序将移位寄存器中缓存的有效数据输出后,继续从待封装的数据包中提取待处理数据;其中,输出的有效数据的字节数与所述阈值相等;
数据封装单元,用于在移位寄存器中缓存的有效数据输出完毕后,对输出的有效数据进行封装;
所述数据缓存单元进一步用于:
基于待处理数据中携带的掩码从所述待处理数据中提取出有效数据。
6.根据权利要求5所述的装置,其特征在于,在数据提取单元提取的待处理数据携带包尾标识的情况下,在有效字节数判断单元的判断结果为大于预设的阈值时,
所述数据输出单元,还用于在按照存储顺序将移位寄存器中缓存的有效数据输出后,再按照存储顺序将移位寄存器中剩余的有效数据输出,并使用无效字节对剩余的有效数据进行补齐操作,使得补齐后数据的字节数与所述阈值相等。
7.根据权利要求6所述的装置,其特征在于,在有效字节数判断单元的判断结果为大于预设的阈值时,
所述数据输出单元,还用于按照存储顺序将移位寄存器中缓存的有效数据输出,并使用无效字节对剩余的有效数据进行补齐操作,使得补齐后数据的字节数与所述阈值相等。
8.根据权利要求5所述的装置,其特征在于,所述有效字节判断单元进一步用于:
基于待处理数据的有效数据缓存至移位寄存器之前的移位计数器的低位数值,确定在将待处理数据的有效数据缓存至移位寄存器之前移位寄存器中剩余的有效字节数;
基于待处理数据中携带的掩码确定所述待处理数据的有效字节数;
基于所述剩余的有效字节数和所述待处理数据的有效字节数确定当前移位寄存器中缓存的有效数据的字节数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111045251.8A CN113872886B (zh) | 2021-09-07 | 2021-09-07 | 一种报文封装的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111045251.8A CN113872886B (zh) | 2021-09-07 | 2021-09-07 | 一种报文封装的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113872886A CN113872886A (zh) | 2021-12-31 |
CN113872886B true CN113872886B (zh) | 2024-03-26 |
Family
ID=78994680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111045251.8A Active CN113872886B (zh) | 2021-09-07 | 2021-09-07 | 一种报文封装的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113872886B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1665217A (zh) * | 2004-03-04 | 2005-09-07 | 华为技术有限公司 | 一种数据处理芯片及其数据包的包号生成方法 |
CN1892890A (zh) * | 2005-07-05 | 2007-01-10 | 三星电子株式会社 | 数据输入和数据输出控制装置和方法 |
CN102654827A (zh) * | 2011-03-02 | 2012-09-05 | 安凯(广州)微电子技术有限公司 | 一种先进先出缓冲器及缓存数据的方法 |
WO2013172527A1 (ko) * | 2012-05-14 | 2013-11-21 | 서강대학교산학협력단 | 시프트 레지스터를 이용한 동시계수회로 및 이를 포함하는 pet 데이터 획득 시스템, 방사선 계수시스템 및 의료진단기기 |
CN111464505A (zh) * | 2020-03-11 | 2020-07-28 | 北京吉芯网安技术有限公司 | 消息处理方法、设备、装置、存储介质及处理器 |
CN111459753A (zh) * | 2020-03-26 | 2020-07-28 | 平安科技(深圳)有限公司 | 销售点终端数据处理方法、装置、计算机设备和存储介质 |
CN111901250A (zh) * | 2020-07-14 | 2020-11-06 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据报文传输方法、装置、设备及可读存储介质 |
CN112153054A (zh) * | 2020-09-25 | 2020-12-29 | 山东超越数控电子股份有限公司 | 一种任意字节长度拼接缓存的实现方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040254966A1 (en) * | 2003-05-16 | 2004-12-16 | Daewoo Educational Foundation | Bit manipulation operation circuit and method in programmable processor |
-
2021
- 2021-09-07 CN CN202111045251.8A patent/CN113872886B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1665217A (zh) * | 2004-03-04 | 2005-09-07 | 华为技术有限公司 | 一种数据处理芯片及其数据包的包号生成方法 |
CN1892890A (zh) * | 2005-07-05 | 2007-01-10 | 三星电子株式会社 | 数据输入和数据输出控制装置和方法 |
CN102654827A (zh) * | 2011-03-02 | 2012-09-05 | 安凯(广州)微电子技术有限公司 | 一种先进先出缓冲器及缓存数据的方法 |
WO2013172527A1 (ko) * | 2012-05-14 | 2013-11-21 | 서강대학교산학협력단 | 시프트 레지스터를 이용한 동시계수회로 및 이를 포함하는 pet 데이터 획득 시스템, 방사선 계수시스템 및 의료진단기기 |
CN111464505A (zh) * | 2020-03-11 | 2020-07-28 | 北京吉芯网安技术有限公司 | 消息处理方法、设备、装置、存储介质及处理器 |
CN111459753A (zh) * | 2020-03-26 | 2020-07-28 | 平安科技(深圳)有限公司 | 销售点终端数据处理方法、装置、计算机设备和存储介质 |
CN111901250A (zh) * | 2020-07-14 | 2020-11-06 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据报文传输方法、装置、设备及可读存储介质 |
CN112153054A (zh) * | 2020-09-25 | 2020-12-29 | 山东超越数控电子股份有限公司 | 一种任意字节长度拼接缓存的实现方法和系统 |
Non-Patent Citations (3)
Title |
---|
Filip Adamec ; Tomas Fryza.Introduction to the new Packet Triggered Architecture for pipelined and parallel data processing.《Proceedings of 21st International Conference Radioelektronika 2011》.2011,全文. * |
基于FPGA的一种存储器字节访问方法;任小西;张克环;李仁发;;计算机应用;20080601(06);全文 * |
基于可逆向扩展的可信数据封装存储方案;魏占祯;李伟;池亚平;方勇;;吉林大学学报(工学版)(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113872886A (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111654447B (zh) | 一种报文传输的方法及装置 | |
CN110399118B (zh) | 一种随机数生成方法、装置、存储介质及电子设备 | |
CN108462642B (zh) | 基于fpga的udp/ip硬件协议栈及实现方法 | |
KR20210086420A (ko) | 신경망 데이터 처리 장치, 방법 및 전자 장비 | |
US11023412B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
CN112565115A (zh) | Tcp数据的传输方法、装置、计算机设备及存储介质 | |
CN113179216B (zh) | 一种寄存器的远程配置方法、计算机设备及存储介质 | |
CN104065588A (zh) | 一种数据包调度和缓存的装置及方法 | |
CN112818415A (zh) | 基于APSoC的国密计算方法、系统及介质 | |
CN113824706A (zh) | 报文解析方法及网络设备 | |
CN111026324A (zh) | 转发表项的更新方法及装置 | |
EP2552054A2 (en) | Wide field indexing for packet tracking | |
CN113872886B (zh) | 一种报文封装的方法及装置 | |
CN107277062B (zh) | 数据包的并行处理方法及装置 | |
CN116455991B (zh) | 隧道封装报文校验和计算方法及相关装置 | |
CN116303173B (zh) | 减少rdma引擎片上缓存的方法、装置、系统及芯片 | |
CN112436998A (zh) | 一种数据传输方法及电子设备 | |
CN114466087B (zh) | 数据传输方法、装置、设备以及存储介质 | |
CN112312396B (zh) | 一种NoC追踪数据的生成方法及相关装置 | |
CN109032664B (zh) | 实时追踪微体系结构级队列队满状态的方法及系统 | |
CN114499757A (zh) | 一种生成校验和的方法、装置及电子设备 | |
CN115514686A (zh) | 一种流量采集方法、装置及电子设备和存储介质 | |
CN115729879A (zh) | 数据帧格式、芯片通信方法及芯片 | |
CN115878351B (zh) | 消息的传输方法及装置、存储介质及电子装置 | |
CN116055350B (zh) | 一种基于Json的数据通信质量检测方法 |
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 |