CN111224896A - 一种多指针报文管理方法及装置 - Google Patents
一种多指针报文管理方法及装置 Download PDFInfo
- Publication number
- CN111224896A CN111224896A CN202010009834.4A CN202010009834A CN111224896A CN 111224896 A CN111224896 A CN 111224896A CN 202010009834 A CN202010009834 A CN 202010009834A CN 111224896 A CN111224896 A CN 111224896A
- Authority
- CN
- China
- Prior art keywords
- pointer
- storage pointer
- address
- data storage
- message
- 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
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种多指针报文管理方法及装置,方法将多个存储有报文分片数据的数据存储指针的地址,和存放有多个地址的下一地址存储指针的地址,存放在同一个地址存储指针中,读取时将一个地址存储指针作为当前读取指针,读取其中的数据存储指针地址,从而获得数据存储指针的地址,进而读取到多个数据存储指针中的报文分片数据,同时将下一地址存储指针作为下一个当前读取指针进行读取。读取基于上述链表存储方式存储的报文分片数据,能够减小读取报文操作逻辑与存储介质的路径延时对报文输出带宽的影响,从而缩短读取报文分片的时间间隔,增加报文输出带宽。
Description
技术领域
本公开涉及数据通信技术领域,尤其涉及一种多指针报文管理方法及装置。
背景技术
网络芯片通常是将整条分片存储到存储介质中再从存储介质中按照报文分片读取出来。为了充分利用存储空间,报文分片在存储介质中并不是占用连续的地址。为了能够在读取时识别一条报文的所有存储地址,通常采用链表的方式对报文分片进行存储。
采用链表的方式存储报文的步骤为:申请当前指针(指针指的是报文分片在存储介质中的地址),申请下一指针,将报文新分片输入时,将报文新分片的内容和下一指针写入当前指针之后,将下一指针作为当前指针重复上述存储报文步骤。相应的,采用链表的方式读取报文的步骤为:得到报文第0分片的指针,并让其指针等于当前指针,读取当前指针对应的存储介质中的第0报文分片,将报文分片内容从存储介质返回后,从返回内容中提取下一指针,并将下一指针作为当前指针,重复上述读取报文步骤。
基于现有的链表存储报文的方式,从存储介质中读取报文分片时,需要读取出一个报文分片的指针中的内容后,才能得到下一个报文分片的指针,然后才能根据下一个报文分片指针发起读下一个报文分片的操作。读取报文操作逻辑与存储介质的路径延时较长,造成读取每个报文分片的时间间隔较长,报文输出带宽较小。
发明内容
为克服相关技术对于读取报文操作逻辑与存储介质的路径延时较长,造成读取每个报文分片的时间间隔较长,报文输出带宽较小的问题,本申请提供一种多指针报文管理方法及装置,能够缩短读取报文分片的时间间隔,增加报文输出带宽。
本申请的第一方面,提供一种多指针报文管理方法,所述方法包括:步骤101,获取地址存储指针,所述地址存储指针用于存储地址,将所述地址存储指针作为当前存储指针;步骤102,获取数据存储指针,所述数据存储指针用于存储报文分片数据;步骤103,将报文分片数据存储到所述数据存储指针,并对获取所述数据存储指针的次数进行加一计数;步骤104,判断获取所述数据存储指针的次数是否等于N,如果获取所述数据存储指针的次数不等于N,则返回步骤102,如果获取所述数据存储指针的次数等于N,则进行步骤105;步骤105,将获取所述数据存储指针的计数清零,以及获取下一地址存储指针,所述下一地址存储指针用于存储地址;步骤106,将N个所述数据存储指针的地址和所述下一地址存储指针的地址存储到当前存储指针中;步骤107,将所述下一地址存储指针作为当前存储指针,返回步骤102。
结合一方面,在第一种可能的实现方式中,获取所述数据存储指针的次数N等于16。
结合一方面,在第二种可能的实现方式中,获取的所述地址存储指针、所述数据存储指针以及所述下一地址存储指针均未被报文数据和地址占用。
结合一方面,在第三种可能的实现方式中,将所述下一地址存储指针作为当前存储指针,之前还包括:步骤1061,判断所有所述数据存储指针中的报文分片是否能构成一个完整的报文,如果所有所述数据存储指针中的报文分片能够构成一个完整的报文,则结束存储过程,如果所有所述数据存储指针中的报文分片不能够构成一个完整的报文,则进行步骤107。
结合一方面,在第四种可能的实现方式中,所述方法还包括:步骤201,获取存储有N个所述数据存储指针的地址和所述下一地址存储指针的地址的地址存储指针,将所述地址存储指针作为当前读取指针;步骤202,根据所述当前读取指针中的N个所述数据存储指针的地址,读取N个所述数据存储指针中的报文分片数据,以及根据所述下一地址存储指针的地址获取下一地址存储指针;步骤203,将所述下一地址存储指针作为当前读取指针,返回步骤202。
结合第四中可能的实现方式,在第五种可能的实现方式中,将所述下一地址存储指针作为当前读取指针,之前还包括:步骤2021,判断所有所述数据存储指针中的报文分片是否能构成一个完成的报文,如果所有所述数据存储指针中的报文分片能够构成一个完整的报文,则结束读取过程,如果所有所述数据存储指针中的报文分片不能够构成一个完整的报文,则进行步骤203。
本申请的第二方面,提供一种多指针报文管理装置,所述装置包括:当前存储指针获取单元,用于执行步骤101,获取地址存储指针,所述地址存储指针用于存储地址,将所述地址存储指针作为当前存储指针;数据存储指针获取单元,用于执行步骤102,获取数据存储指针,所述数据存储指针用于存储报文分片数据;报文分片数据存储单元,用于执行步骤103,将报文分片数据存储到所述数据存储指针,并对获取所述数据存储指针的次数进行加一计数;第一判断单元,用于执行步骤104,判断获取所述数据存储指针的次数是否等于N,如果获取所述数据存储指针的次数不等于N,则返回步骤102,如果获取所述数据存储指针的次数等于N,则进行步骤105;下一地址存储指针获取单元,用于执行步骤105,将获取所述数据存储指针的计数清零,以及获取下一地址存储指针,所述下一地址存储指针用于存储地址;地址存储单元,用于执行步骤106,将N个所述数据存储指针的地址和所述下一地址存储指针的地址存储到当前存储指针中;第一返回单元,用于执行步骤107,将所述下一地址存储指针作为当前存储指针,返回步骤102。
结合二方面,在第六种可能的实现方式中,将所述下一地址存储指针作为当前存储指针,之前还包括:步骤1061,判断所有所述数据存储指针中的报文分片是否能构成一个完整的报文,如果所有所述数据存储指针中的报文分片能够构成一个完整的报文,则结束存储过程,如果所有所述数据存储指针中的报文分片不能够构成一个完整的报文,则进行步骤107。
结合二方面,在第七种可能的实现方式中,所述装置还包括:当前读取指针获取单元,用于执行步骤201,获取存储有N个所述数据存储指针的地址和所述下一地址存储指针的地址的地址存储指针,将所述地址存储指针作为当前读取指针;数据读取单元,用于执行步骤202,根据所述当前读取指针中的N个所述数据存储指针的地址,读取N个所述数据存储指针中的报文分片数据,以及根据所述下一地址存储指针的地址获取下一地址存储指针;第二返回单元,用于执行步骤203,将所述下一地址存储指针作为当前读取指针,返回步骤202。
结合第七种可能的实现方式中,在第八种可能的实现方式中,将所述下一地址存储指针作为当前读取指针,之前还包括:步骤2021,判断所有所述数据存储指针中的报文分片是否能构成一个完成的报文,如果所有所述数据存储指针中的报文分片能够构成一个完整的报文,则结束读取过程,如果所有所述数据存储指针中的报文分片不能够构成一个完整的报文,则进行步骤203。
本申请实施例提供一种多指针报文管理方法,所述方法包括:步骤101,获取地址存储指针,所述地址存储指针用于存储地址,将所述地址存储指针作为当前存储指针;步骤102,获取数据存储指针,所述数据存储指针用于存储报文分片数据;步骤103,将报文分片数据存储到所述数据存储指针,并对获取所述数据存储指针的次数进行加一计数;步骤104,判断获取所述数据存储指针的次数是否等于N,如果获取所述数据存储指针的次数不等于N,则返回步骤102,如果获取所述数据存储指针的次数等于N,则进行步骤105;步骤105,将获取所述数据存储指针的计数清零,以及获取下一地址存储指针,所述下一地址存储指针用于存储地址;步骤106,将N个所述数据存储指针的地址和所述下一地址存储指针的地址存储到当前存储指针中;步骤107,将所述下一地址存储指针作为当前存储指针,返回步骤102。与现有技术相比,本申请将多个存储有报文分片数据的数据存储指针的地址,和存放有多个地址的下一地址存储指针的地址,存放在同一个地址存储指针中,读取时将一个地址存储指针作为当前读取指针,读取其中的数据存储指针地址,从而获得数据存储指针的地址,进而读取到多个数据存储指针中的报文分片数据,同时将下一地址存储指针作为下一个当前读取指针进行读取。读取基于上述链表存储方式存储的报文分片数据,能够减小读取报文操作逻辑与存储介质的路径延时对报文输出带宽的影响,从而缩短读取报文分片的时间间隔,增加报文输出带宽。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本申请实施例提供的多指针报文管理方法的工作流程示意图;
图2是本申请实施例提供的的多指针报文管理方法的逻辑原理示意图;
图3是本申请实施例提供的报文分片数据和指针地址在存储介质中的存储结构图示意图;
图4是本申请优选实施例提供的多指针报文管理方法的工作流程示意图;
图5是本申请实施例提供的多指针报文管理方法中读取报文方法的工作流程示意图;
图6是本申请优选实施例提供的多指针报文管理方法中读取报文方法的工作流程示意图;
图7是本申请实施例提供的多指针报文管理装置结构示意图;
图8是本申请优选实施例提供的多指针报文管理装置结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
为了全面理解本申请,在以下详细描述中提到了众多具体的细节,但是本领域技术人员应该理解,本申请可以无需这些具体细节而实现。在其他实施例中,不详细描述公知的方法、过程、组件和电路,以免不必要地导致实施例模糊。
参见图1所示的多指针报文管理办法的工作流程示意图,所述方法包括以下步骤:
步骤101,获取地址存储指针,所述地址存储指针用于存储地址,将所述地址存储指针作为当前存储指针。
如图2所示的本申请实施例示出的多指针报文管理方法的逻辑原理示意图,该逻辑包括存储报文逻辑、读取报文逻辑、路径延时、存储介质。存储报文逻辑产生写报文数据和指针到存储介质的写操作。此写操作的写数据,写地址,写使能等信息需要经过写路径延时后才能写入存储介质。读取报文逻辑产生读报文数据和指针的读操作。此读操作的读地址,读使能等信息需要经过路径延时后才能到达存储介质,读数据从存储介质读出来后,需要经过路径延时才能到达读取报文逻辑。首先存储报文逻辑可以从空闲指针管理逻辑获取地址存储指针,空闲指针管理逻辑可以给存储报文逻辑提供空闲指针,即没有被报文数据和地址占用的存储介质。地址存储指针指向的存储介质可以存放多个报文指针的地址。将首次从空闲指针管理逻辑获取的地址存储指针作为当前存储指针。如图3所示的,本申请实施例示出的报文分片数据和指针地址在存储介质中的存储结构图。首先从空闲指针管理逻辑获取的地址存储指针0作为当前指针。
步骤102,获取数据存储指针,所述数据存储指针用于存储报文分片数据;
步骤103,将报文分片数据存储到所述数据存储指针,并对获取所述数据存储指针的次数进行加一计数。
本发明实施例所涉及的报文分片时由一整个报文分割开来的,比如一个报文A分割为K个报文分片A1、A2…AK。沿用上述的实施例,如图3所示,获取到地址为107的数据存储指针0,将报文分片A1存入地址为107的数据存储指针0。同时对获取数据存储指针的次数进行加一计数,此时获取数据存储指针的次数即为1。
步骤104,判断获取所述数据存储指针的次数是否等于N,如果获取所述数据存储指针的次数不等于N,则返回步骤102,如果获取所述数据存储指针的次数等于N,则进行步骤105;
沿用上述实施例,在该步骤中首先判断获取数存储指针的次数是否达到了N,N可以设置为16次,符合报文分片的实际情况。比如此时获取数据存储指针的次数仅为1,则返回步骤102,再一次的获取数据存储指针,此时获取到数据存储指针1,将报文分片A2存储到数据存储指针1中,数据存储指针1的地址为206,同时在原有的获取数据存储指针的次数1上再加一计数,得到当前的获取数据存储指针的次数为2,仍然不等于16。
返回步骤102后,继续获取数据存储指针的操作,直至获取数据存储指针的次数达到16,则进行步骤105。另外,此时已经获取到16个数据存储指针,并且这16个数据存储指针存入了A1至A16的报文分片。
步骤105,将获取所述数据存储指针的计数清零,以及获取下一地址存储指针,所述下一地址存储指针用于存储地址。
继续沿用上述的实施例,获取数据存储指针的次数达到16后将该计数清零,并同时获取下一地址存储指针。本申请实施例中数据存储指针只存储报文数据,而地址存储指针指存储指针的地址。
步骤106,将N个所述数据存储指针的地址和所述下一地址存储指针的地址存储到当前存储指针中。
沿用上述的实施例,将16个数据存储指针的地址和下一地址存储指针的地址存储到当前存储指针中。如图3所示,16个数据存储指针的地址分别是数据存储指针0、数据存储指针1…数据存储指针16的地址:107、206…90,而下一地址存储指针的地址为21,将这些地址存储到当前存储指针即地址为0的地址存储指针。
步骤107,将所述下一地址存储指针作为当前存储指针,返回步骤102。通过上述的存储方法,将存储有报文分片的16个数据存储指针的地址存入了地址0的地址存储指针,将下一地址存储指针的地址21同样存入地址为0的地址存储指针。同时,将地址为21的地址存储指针作为当前存储指针,重复进行步骤102至步骤107。完成步骤102至步骤107之后,地址为21的地址存储指针内存储有数据存储指针17的地址、数据存储指针18的地址…数据存储指针32的地址,以及再下一个地址存储指针的地址55,而数据存储指针17、数据存储指针18额…数据存储指针32的存入了报文分片A17、A18…A32。
另外,如图4所示本申请优选的实施例,将所述下一地址存储指针作为当前存储指针,之前还可以包括:步骤1061,判断所有所述数据存储指针中的报文分片是否能构成一个完整的报文,如果所有所述数据存储指针中的报文分片能够构成一个完整的报文,则结束存储过程,如果所有所述数据存储指针中的报文分片不能够构成一个完整的报文,则进行步骤107。
沿用上述实施例,比如一个报文被分割为64个报文分片,经过步骤102至步骤106四个循环后,已经将64个报文分片全部存入数据存储指针中,则可以判断所有的数据存储指针中的报文分片能够构成一个完整的报文,因此可以结束存储过程。而如果步骤102至步骤106只经过三个循环,则只将48个报文分片存入数据存储指针中,即所有数据存储指针中的报文分片不能够构成一个完整的报文,则需要继续进行步骤102至步骤106,以完成剩下的16个报文分片存入数据存储指针。
以上为本申请多指针报文管理办法中的存储报文方法,本申请实施例的管理办法还包括读取报文的方法,如图5所示,具体的包括:
步骤201,获取存储有N个所述数据存储指针的地址和所述下一地址存储指针的地址的地址存储指针,将所述地址存储指针作为当前读取指针;
步骤202,根据所述当前读取指针中的N个所述数据存储指针的地址,读取N个所述数据存储指针中的报文分片数据,以及根据所述下一地址存储指针的地址获取下一地址存储指针;
步骤203,将所述下一地址存储指针作为当前读取指针,返回步骤202。
沿用上述实施例,一个报文被分割为64个报文分片,经过上述步骤64个报文分片被存储在64个数据存储指针中。64个存储指针的地址被分为四组存储在4个地址存储指针中。比如A1、A2…A64个报文分片,其中的A1、A2…A16报文分片的地址存储在地址为0的地址存储指针中,同时地址为0的地址存储指针还存有下一地址存储指针的地址21。地址21的地址存指针中存储有A17、A18…A32报文分片的地址,同时还存储下一地址存储指针的地址55。地址55的地址存储指针中存储有A33、A34…A48报文分片的地址,同时还存储下一地址存储指针的地址72。地址72的地址存储指针中存储有A49、A50…A64报文分片的地址。
本申请实施例具体的读取报文分片的过程可以为:首先获取地址为0的地址存储指针,将地址为0的地址存储指针作为当前读取指针,即读取地址为0的地址存储指针的内容。地址为0的地址存储指针中存储了A1、A2…A16报文分片的地址和下一地址存储指针的地址21。根据了A1、A2…A16报文分片的地址读取A1、A2…A16报文分片的数据,并且读取地址21的下一地址存储指针中存储的报文分片的地址。
另外,将所述下一地址存储指针作为当前读取指针,如图6所示,之前还可以包括:步骤2021,判断所有所述数据存储指针中的报文分片是否能构成一个完整的报文,如果所有所述数据存储指针中的报文分片能够构成一个完整的报文,则结束读取过程,如果所有所述数据存储指针中的报文分片不能够构成一个完整的报文,则进行步骤203。
比如,读取了所有的64个报文分片的数据之后,判断64个报文分片数据能够构成一个完整的报文,则结束读取过程。如果只读取了32个报文分片的数据,则可以判断32个报文分片数据不能够构成一个完整的报文,则进行步骤203,继续读取报文分片。
下面结合具体的实施例对本申请所产生的效果进行阐述。由于在芯片数字电路中,路径延时一般是按照时钟周期为单位来计算的。那么假设时钟周期为Tclk,读报文路径延时的时钟周期个数为Pclk,那么读报文路径总延时为Tclk*Pclk,本具体的实施例是基于读报文路径总延时为一个常数,且Pclk大于等于2的前提下来阐述的。
假设一个数据存储指针对应的存储空间能存储的报文长度为Lpkt比特。那么按照现有技术中的报文管理方法,输出的报文带宽为:Lpkt/(Tclk*Pclk)。如果Tclk为2ns,Pclk为20,Lpkt为1024比特,那么报文输出带宽为1024bit/40ns=25.6Gbps;
如果按照本发明的方式存储和读取报文,假设一个地址对应的指针存储空间能存储Nptr个报文指针,那么当一个地址存储空间的报文指针从存储介质返回后,根据返回的Nptr个报文指针和存储报文指针的下一指针发起的读报文操作以及读下一指针指向的存储空间操作总共最多需要Nptr+1个时钟周期。可以分两种情况讨论报文输出带宽:
当Nptr+1小于等于Pclk时,即根据当前Nptr个报文指针发起的读操作和根据下一指针读取下一报文指针存储空间的所有读操作完成时,读取下一报文指针存储空间的读返回还没有返回到读取报文逻辑,那么每Pclk个时钟周期,就能得到Nptr个报文指针,那么报文输出带宽为Nptr*Lpkt/(Tclk*Pclk)。是传统方法输出的报文带宽的Nptr倍。如果Tclk为2ns,Pclk为20,Lpkt为1024比特,Nptr为16,那么报文输出带宽为16*1024bit/40ns=409.6Gbps。
当Nptr+1大于Pclk时,即根据当前Nptr个报文指针发起的读操作和根据下一指针读取下一报文指针存储空间的所有读操作完成时,读取下一报文指针存储空间的读返回已经返回到读取报文逻辑,那么每Nptr+1个时钟周期,就能得到Nptr个报文指针,那么报文输出带宽为Nptr*Lpkt/(Tclk*(Nptr+1))=Lpkt/(Tclk*(1+1/Nptr))。由于Pclk大于等于2,所以当Nptr不为1(本发明要求一个地址对应的指针存储空间能存储多个报文指针,即Nptr大于1),本发明输出带宽Lpkt/(Tclk*(1+1/Nptr))大于传统方法输出带宽Lpkt/(Tclk*Pclk)。且Nptr越大,输出带宽越大。如果Tclk为2ns,Pclk为20,Lpkt为1024比特,Nptr为32,那么报文输出带宽为1024bit/(2ns*(1+1/32))=496.48Gbps。
本申请实施例提供一种多指针报文管理方法,所述方法包括:步骤101,获取地址存储指针,所述地址存储指针用于存储地址,将所述地址存储指针作为当前存储指针;步骤102,获取数据存储指针,所述数据存储指针用于存储报文分片数据;步骤103,将报文分片数据存储到所述数据存储指针,并对获取所述数据存储指针的次数进行加一计数;步骤104,判断获取所述数据存储指针的次数是否等于N,如果获取所述数据存储指针的次数不等于N,则返回步骤102,如果获取所述数据存储指针的次数等于N,则进行步骤105;步骤105,将获取所述数据存储指针的计数清零,以及获取下一地址存储指针,所述下一地址存储指针用于存储地址;步骤106,将N个所述数据存储指针的地址和所述下一地址存储指针的地址存储到当前存储指针中;步骤107,将所述下一地址存储指针作为当前存储指针,返回步骤102。与现有技术相比,本申请将多个存储有报文分片数据的数据存储指针的地址,和存放有多个地址的下一地址存储指针的地址,存放在同一个地址存储指针中,读取时将一个地址存储指针作为当前读取指针,读取其中的数据存储指针地址,从而获得数据存储指针的地址,进而读取到多个数据存储指针中的报文分片数据,同时将下一地址存储指针作为下一个当前读取指针进行读取。读取基于上述链表存储方式存储的报文分片数据,能够减小读取报文操作逻辑与存储介质的路径延时对报文输出带宽的影响,从而缩短读取报文分片的时间间隔,增加报文输出带宽。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。参见图7所示的多指针报文管理装置结构示意图,所述装置包括:
当前存储指针获取单元U1001,用于执行步骤101,获取地址存储指针,所述地址存储指针用于存储地址,将所述地址存储指针作为当前存储指针;
数据存储指针获取单元U1002,用于执行步骤102,获取数据存储指针,所述数据存储指针用于存储报文分片数据;
报文分片数据存储单元U1003,用于执行步骤103,将报文分片数据存储到所述数据存储指针,并对获取所述数据存储指针的次数进行加一计数;
第一判断单元U1004,用于执行步骤104,判断获取所述数据存储指针的次数是否等于N,如果获取所述数据存储指针的次数不等于N,则返回步骤102,如果获取所述数据存储指针的次数等于N,则进行步骤105;
下一地址存储指针获取单元U1005,用于执行步骤105,将获取所述数据存储指针的计数清零,以及获取下一地址存储指针,所述下一地址存储指针用于存储地址;
地址存储单元U1006,用于执行步骤106,将N个所述数据存储指针的地址和所述下一地址存储指针的地址存储到当前存储指针中;
第一返回单元U1007,用于执行步骤107,将所述下一地址存储指针作为当前存储指针,返回步骤102。
进一步地,将所述下一地址存储指针作为当前存储指针,之前还可以包括:
步骤1061,判断所有所述数据存储指针中的报文分片是否能构成一个完整的报文,如果所有所述数据存储指针中的报文分片能够构成一个完整的报文,则结束存储过程,如果所有所述数据存储指针中的报文分片不能够构成一个完整的报文,则进行步骤107。
进一步地,如图8所示,所述装置还可以包括:
当前读取指针获取单元U2001,用于执行步骤201,获取存储有N个所述数据存储指针的地址和所述下一地址存储指针的地址的地址存储指针,将所述地址存储指针作为当前读取指针;
数据读取单元U2002,用于执行步骤202,根据所述当前读取指针中的N个所述数据存储指针的地址,读取N个所述数据存储指针中的报文分片数据,以及根据所述下一地址存储指针的地址获取下一地址存储指针;
第二返回单元U2003,用于执行步骤203,将所述下一地址存储指针作为当前读取指针,返回步骤202。
另外,将所述下一地址存储指针作为当前读取指针,之前还可以包括:步骤2021,判断所有所述数据存储指针中的报文分片是否能构成一个完成的报文,如果所有所述数据存储指针中的报文分片能够构成一个完整的报文,则结束读取过程,如果所有所述数据存储指针中的报文分片不能够构成一个完整的报文,则进行步骤203。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本申请提供的一种基于规则的报文检测方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、ROM(read-onlymemory,只读存储记忆体)或RAM(random acce memory,随机存储记忆体)等。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。
Claims (10)
1.一种多指针报文管理方法,其特征在于,包括:
步骤101,获取地址存储指针,所述地址存储指针用于存储地址,将所述地址存储指针作为当前存储指针;
步骤102,获取数据存储指针,所述数据存储指针用于存储报文分片数据;
步骤103,将报文分片数据存储到所述数据存储指针,并对获取所述数据存储指针的次数进行加一计数;
步骤104,判断获取所述数据存储指针的次数是否等于N,如果获取所述数据存储指针的次数不等于N,则返回步骤102,如果获取所述数据存储指针的次数等于N,则进行步骤105;
步骤105,将获取所述数据存储指针的计数清零,以及获取下一地址存储指针,所述下一地址存储指针用于存储地址;
步骤106,将N个所述数据存储指针的地址和所述下一地址存储指针的地址存储到当前存储指针中;
步骤107,将所述下一地址存储指针作为当前存储指针,返回步骤102。
2.如权利要求1所述的方法,其特征在于,获取所述数据存储指针的次数N等于16。
3.如权利要求1所述的方法,其特征在于,获取的所述地址存储指针、所述数据存储指针以及所述下一地址存储指针均未被报文数据和地址占用。
4.如权利要求1所述的方法,其特征在于,将所述下一地址存储指针作为当前存储指针,之前还包括:
步骤1061,判断所有所述数据存储指针中的报文分片是否能构成一个完整的报文,如果所有所述数据存储指针中的报文分片能够构成一个完整的报文,则结束存储过程,如果所有所述数据存储指针中的报文分片不能够构成一个完整的报文,则进行步骤107。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
步骤201,获取存储有N个所述数据存储指针的地址和所述下一地址存储指针的地址的地址存储指针,将所述地址存储指针作为当前读取指针;
步骤202,根据所述当前读取指针中的N个所述数据存储指针的地址,读取N个所述数据存储指针中的报文分片数据,以及根据所述下一地址存储指针的地址获取下一地址存储指针;
步骤203,将所述下一地址存储指针作为当前读取指针,返回步骤202。
6.如权利要求5所述的方法,其特征在于,将所述下一地址存储指针作为当前读取指针,之前还包括:
步骤2021,判断所有所述数据存储指针中的报文分片是否能构成一个完成的报文,如果所有所述数据存储指针中的报文分片能够构成一个完整的报文,则结束读取过程,如果所有所述数据存储指针中的报文分片不能够构成一个完整的报文,则进行步骤203。
7.一种多指针报文管理方法及装置,其特征在于,所述装置包括:
当前存储指针获取单元,用于执行步骤101,获取地址存储指针,所述地址存储指针用于存储地址,将所述地址存储指针作为当前存储指针;
数据存储指针获取单元,用于执行步骤102,获取数据存储指针,所述数据存储指针用于存储报文分片数据;
报文分片数据存储单元,用于执行步骤103,将报文分片数据存储到所述数据存储指针,并对获取所述数据存储指针的次数进行加一计数;
第一判断单元,用于执行步骤104,判断获取所述数据存储指针的次数是否等于N,如果获取所述数据存储指针的次数不等于N,则返回步骤102,如果获取所述数据存储指针的次数等于N,则进行步骤105;
下一地址存储指针获取单元,用于执行步骤105,将获取所述数据存储指针的计数清零,以及获取下一地址存储指针,所述下一地址存储指针用于存储地址;
地址存储单元,用于执行步骤106,将N个所述数据存储指针的地址和所述下一地址存储指针的地址存储到当前存储指针中;
第一返回单元,用于执行步骤107,将所述下一地址存储指针作为当前存储指针,返回步骤102。
8.根据权利要求7所述的装置,其特征在于,将所述下一地址存储指针作为当前存储指针,之前还包括:
步骤1061,判断所有所述数据存储指针中的报文分片是否能构成一个完整的报文,如果所有所述数据存储指针中的报文分片能够构成一个完整的报文,则结束存储过程,如果所有所述数据存储指针中的报文分片不能够构成一个完整的报文,则进行步骤107。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
当前读取指针获取单元,用于执行步骤201,获取存储有N个所述数据存储指针的地址和所述下一地址存储指针的地址的地址存储指针,将所述地址存储指针作为当前读取指针;
数据读取单元,用于执行步骤202,根据所述当前读取指针中的N个所述数据存储指针的地址,读取N个所述数据存储指针中的报文分片数据,以及根据所述下一地址存储指针的地址获取下一地址存储指针;
第二返回单元,用于执行步骤203,将所述下一地址存储指针作为当前读取指针,返回步骤202。
10.根据权利要求9所述的装置,其特征在于,将所述下一地址存储指针作为当前读取指针,之前还包括:
步骤2021,判断所有所述数据存储指针中的报文分片是否能构成一个完成的报文,如果所有所述数据存储指针中的报文分片能够构成一个完整的报文,则结束读取过程,如果所有所述数据存储指针中的报文分片不能够构成一个完整的报文,则进行步骤203。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010009834.4A CN111224896B (zh) | 2020-01-06 | 2020-01-06 | 一种多指针报文管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010009834.4A CN111224896B (zh) | 2020-01-06 | 2020-01-06 | 一种多指针报文管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111224896A true CN111224896A (zh) | 2020-06-02 |
CN111224896B CN111224896B (zh) | 2022-06-24 |
Family
ID=70829244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010009834.4A Active CN111224896B (zh) | 2020-01-06 | 2020-01-06 | 一种多指针报文管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111224896B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339812A (zh) * | 2008-08-04 | 2009-01-07 | 炬力集成电路设计有限公司 | 存储装置读取方法、系统和存储装置测试设备 |
CN103608785A (zh) * | 2013-06-21 | 2014-02-26 | 华为技术有限公司 | 一种文件读取方法、存储设备及读取系统 |
CN105183665A (zh) * | 2015-09-08 | 2015-12-23 | 福州瑞芯微电子股份有限公司 | 一种数据缓存访问方法和数据缓存控制器 |
CN106254270A (zh) * | 2015-06-15 | 2016-12-21 | 深圳市中兴微电子技术有限公司 | 一种队列管理方法及装置 |
CN109726144A (zh) * | 2018-12-27 | 2019-05-07 | 新华三技术有限公司 | 一种数据报文的处理方法和装置 |
-
2020
- 2020-01-06 CN CN202010009834.4A patent/CN111224896B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339812A (zh) * | 2008-08-04 | 2009-01-07 | 炬力集成电路设计有限公司 | 存储装置读取方法、系统和存储装置测试设备 |
CN103608785A (zh) * | 2013-06-21 | 2014-02-26 | 华为技术有限公司 | 一种文件读取方法、存储设备及读取系统 |
CN106254270A (zh) * | 2015-06-15 | 2016-12-21 | 深圳市中兴微电子技术有限公司 | 一种队列管理方法及装置 |
CN105183665A (zh) * | 2015-09-08 | 2015-12-23 | 福州瑞芯微电子股份有限公司 | 一种数据缓存访问方法和数据缓存控制器 |
CN109726144A (zh) * | 2018-12-27 | 2019-05-07 | 新华三技术有限公司 | 一种数据报文的处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111224896B (zh) | 2022-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110135985B (zh) | 一种区块链上交易的并行执行方法及系统 | |
US7873763B2 (en) | Multi-reader multi-writer circular buffer memory | |
CN111427859B (zh) | 一种消息处理方法、装置、电子设备及存储介质 | |
CN109684099A (zh) | 消息处理方法及装置 | |
CN109144754B (zh) | 一种可靠性测试方法及装置 | |
CN110224943A (zh) | 基于url的流量服务限流方法、电子设备及计算机存储介质 | |
CN117573574B (zh) | 一种预取方法、装置、电子设备及可读存储介质 | |
CN109324937A (zh) | 一种测试ssd稳态的方法、装置、设备以及存储介质 | |
CN107577775A (zh) | 一种读取数据方法、装置、电子设备及可读存储介质 | |
US6516306B1 (en) | Model checking of message flow diagrams | |
CN105630619A (zh) | 一种帧序列处理方法及系统 | |
JPWO2015087509A1 (ja) | 状態保存復元装置、状態保存復元方法、および、プログラム | |
CN111224896B (zh) | 一种多指针报文管理方法及装置 | |
US20040044508A1 (en) | Method for generating commands for testing hardware device models | |
CN116701246B (zh) | 一种提升缓存带宽的方法、装置、设备及存储介质 | |
CN115840654B (zh) | 消息的处理方法、系统、计算设备及可读存储介质 | |
CN107295059A (zh) | 业务推送量的统计系统及方法 | |
CN112000589A (zh) | 一种数据写入方法、数据读取方法、装置及电子设备 | |
CN111628996A (zh) | 一种基于物联网的电子数据通信方法及系统 | |
CN106202374A (zh) | 一种数据处理方法及装置 | |
CN110287077A (zh) | 一种性能测试方法、电子设备及存储介质 | |
CN114020525B (zh) | 故障隔离方法、装置、设备及存储介质 | |
US20120240128A1 (en) | Memory Access Performance Diagnosis | |
CN112256462B (zh) | NAND Flash存储器的寿命预估方法、装置及介质 | |
CN107749838A (zh) | 一种检测网络劫持的方法及装置 |
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 |