CN109802900B - 报文缓存、读取方法、装置及计算机可读存储介质 - Google Patents
报文缓存、读取方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109802900B CN109802900B CN201711133447.6A CN201711133447A CN109802900B CN 109802900 B CN109802900 B CN 109802900B CN 201711133447 A CN201711133447 A CN 201711133447A CN 109802900 B CN109802900 B CN 109802900B
- Authority
- CN
- China
- Prior art keywords
- message
- data
- memory
- identification information
- packet
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文缓存、读取方法、装置及计算机可读存储介质,所述报文缓存方法包括:接收到数据报文时,根据所述数据报文中携带的第一标识信息,将所述数据报文写入第一存储器;根据所述数据报文携带的第二标识信息,将所述第一标识信息和所述数据报文的报文长度写入预先设定的映射表;将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器。本发明所述缓存方案,按标识存储数据,并将标识独立存储的缓存方案,提高了数据缓存的利用率,降低读取资源的使用,解决了多业务多bundle多link时技术实现上的限制问题。
Description
技术领域
本发明涉及通信领域,尤其涉及一种报文缓存、读取方法、装置及计算机可读存储介质。
背景技术
多链路点对点协议(MLPPP)是在点对点(PPP,Point to Point Protocol)协议的基础上,进行多条链路捆绑。发送端可以配置分片或者不分片,并在报文头部添加报文开始标记、结束标记和序列号,接收端首先在报文头中提取出上述标记,将序列号从小到大进行排序,然后按照顺序将报文读出,从而实现报文的重组。
由于E1接口采用轮询的方式将不同的业务发送出来,而实际业务中数据报文的长度通常会有较大差距,因此尽管在发送端按照顺序在报文头部打上序列号,在接收端报文却往往不是按照序列号的顺序先后接收到。同一段时间内报文长度间的差距越大,在接收端接收的序列号差距越大。
以往公布的技术方案多数是针对组包排序的方法做了详细的论述,但是对于整个系统中数据流的处理却提及甚少,数据的存储方案决定了缓存利用率,特别是对于多业务多bundle(捆绑)多link(链路)的情况下,当缓存(通常使用双倍速率同步动态随机存储器DDR)利用率低下时,比如如果DDR划分的份数太多,将可能导致每个业务存储的整包非常少,甚至可能无法存入一个大包。
发明内容
本发明提供一种报文缓存、读取方法、装置及计算机可读存储介质,用以解决现有技术中缓存利用率低下的问题。
依据本发明的一个方面,提供一种报文缓存方法,包括:
接收到数据报文时,根据所述数据报文中携带的第一标识信息,将所述数据报文写入第一存储器;
根据所述数据报文携带的第二标识信息,将所述第一标识信息和所述数据报文的报文长度写入预先设定的映射表;
将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器。
依据本发明的另一个方面,提供一种报文读取方法,包括:
根据第二存储器中写入的报文状态标识,判断出第一存储器中已经缓存了整包数据时,根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的第二标识信息;
根据各所述第二标识信息,在映射表中查找构成所述整包数据的各数据报文对应的第一标识信息和报文长度;
根据各所述第一标识信息和报文长度,在所述第一存储器中读取构成所述整包数据的各数据报文。
依据本发明的第三个方面,提供一种报文缓存装置,包括:
第一写控制模块,用于接收到数据报文时,根据所述数据报文中携带的第一标识信息,将所述数据报文写入第一存储器;
第二写控制模块,用于根据所述数据报文携带的第二标识信息,将所述第一标识信息和所述数据报文的报文长度写入预先设定的映射表;
第三写控制模块,用于将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器。
依据本发明的第四个方面,提供一种报文读取装置,包括:
第一读控制模块,用于根据第二存储器中写入的报文状态标识,判断出第一存储器中已经缓存了整包数据时,根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的第二标识信息;
第二读控制模块,用于根据各所述第二标识信息,在映射表中查找构成所述整包数据的各数据报文对应的第一标识信息和报文长度;
第三读控制模块,用于根据各所述第一标识信息和报文长度,在所述第一存储器中读取构成所述整包数据的各数据报文。
依据本发明的第五个方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有报文缓存程序,所述报文缓存程序被处理器执行时实现本发明所述的报文缓存方法的步骤;
和/或,所述计算机可读存储介质上存储有报文读取程序,所述报文读取程序被处理器执行时实现本发明所述的报文读取方法的步骤。
本发明有益效果如下:
本发明所述缓存方案,按标识存储数据,并将标识独立存储的缓存方案,提高了数据缓存的利用率,降低读取资源的使用,解决了多业务多bundle多link时技术实现上的限制问题;
本发明所述读取方案,与所述缓存方案相适应,实现了按标识存储的数据的读取,进一步降低了读取资源的使用,解决了多业务多bundle多link时技术实现上的限制问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明第一实施例提供的一种报文缓存方法的流程图;
图2为本发明第二实施例提供的一种报文缓存方法的流程图;
图3为本发明第三实施例中DDR存储空间分配方式示意图;
图4为本发明第三实施例中映射表的示意图;
图5为本发明第三实施例中RAM存储状态的示意图;
图6为本发明第四实施例提供的一种报文读取方法的流程图;
图7为本发明第五实施例提供的一种报文读取方法的流程图;
图8为本发明第八实施例提供的一种报文缓存装置的结构示意图;
图9为本发明第九实施例提供的一种报文读取装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明第一实施例中,提供一种报文缓存方法,如图1所示,本实施例所述方法包括如下步骤:
步骤S101,接收到数据报文时,根据所述数据报文中携带的第一标识信息,将所述数据报文写入第一存储器;
本发明实施例中,根据发送端的配置,接收到的数据报文可以是分片的数据报文,也可以是不分片的数据报文。
在本发明的一个具体实施例中,当接收到数据报文时,还包括:提取所述数据报文的报文头信息,根据提取的所述报文头信息,得到第一标识信息、第二标识信息、报文长度和报文状态标识中的一个或多个信息。
在本发明的又一具体实施例中,根据所述数据报文中携带的第一标识信息,将所述数据报文写入第一存储器,包括:
根据预先设定的第一标识信息与第一存储器存储空间的匹配关系,确定所述数据报文中携带的第一标识信息所匹配的存储空间;将所述数据报文写入所述匹配的存储空间。本实施例通过预先对第一存储器的存储空间按照第一标识信息进行划分,便于在缓存数据时,根据第一标识信息进行数据报文的存储。
在本发明的一个示例实施例中,所述第一存储器为DDR。当然,本发明实施例并不局限于采用DDR,本领域技术人员可以根据需求,灵活的选用存储数据的第一存储器。
步骤S102,根据所述数据报文携带的第二标识信息,将所述第一标识信息和所述数据报文的报文长度写入预先设定的映射表;
本发明实施例中,所述的映射表可以存储在外部的一片DDR中,也可以存储在内部芯片的缓存中。考虑到DDR对硬件环境要求较高,所以,在一个示例性实施例中,选定将映射表存储在芯片的缓存中。
步骤S103,将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器。
可能地/可选地,在将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器时,还包括:
将用于表示所述数据报文已存入所述第一存储器的占位标识,按照与所述第二标识信息相匹配的存储位置,写入所述第二存储器。通过本实施例,便于读数据时,数据报文是否已存入的判断。
可能地/可选地,本发明实施例中,所述的第二存储器为RAM(Random AccessMemory,随机存取存储器)。
可能地/可选地,本发明实施例中,所述报文状态标识包括:B、E标记;所述B为所述数据报文是否为整包数据的第一个报文的标记,所述E为所述数据报文是否为整包数据的最后一个报文的标记。
本发明实施例所述方法,将标识独立存储的缓存方案,提高了数据缓存的利用率,降低读取资源的使用,解决了多业务多bundle多link时技术实现上的限制问题。
在本发明的第二实施例中,提供一种报文缓存方法,本发明实施例,采用业务号作为第一标识信息,采用序列号和bundle号作为第二标识信息,来实现数据的缓存,与第一实施例相同之处参见第一实施例的描述,本实施例在此不作赘述。
具体的,如图2所示,本实施例所述方法包括如下步骤:
步骤S201,接收到数据报文时,根据所述数据报文中携带的业务号,将所述数据报文写入第一存储器;
在本发明的一个具体实施例中,该步骤的实施方式为:
根据预先设定的业务号与第一存储器存储空间的匹配关系,确定所述数据报文中携带的业务号所匹配的存储空间;
将所述数据报文写入所述匹配的存储空间。
步骤S202,根据所述数据报文携带的序列号和bundle号,将所述业务号和所述数据报文的报文长度写入预先设定的映射表;
步骤S203,将所述数据报文携带的报文状态标识,按照与所述序列号和bundle号相匹配的存储位置,写入第二存储器。
在本发明的一个具体实施例中,该步骤的具体实施过程包括:
(1)确定与所述bundle号对应的第二存储器;即,本实施例中,每个bundle号均对应一个第二存储器;
(2)根据所述序列号,确定所述所述报文状态标识在确定的所述第二存储器中的存储位置;
(3)按照确定的存储位置,将所述报文状态标识,写入所述第二存储器。
本发明实施例所述方法,将标识独立存储的缓存方案,提高了数据缓存的利用率,降低读取资源的使用,解决了多业务多bundle多link时技术实现上的限制问题。
在本发明的第三实施例中,提供一种报文缓存方法,本实施例将结合附图3至5,对本实施例所述的报文缓存方法进行更详尽的阐述。需要指出的是,本实施例公开的大量技术细节用于解释本发明,并不用于唯一限定本发明。
本实施例所述报文缓存方法,提供了一种DDR的空间分配方式,解决了在多业务多bundle多link时技术实现上的限制,提高DDR利用率,降低RAM资源的使用。
本实施例假设系统支持64个bundle,1024个业务号,有2G的DDR空间;64个bundle分别对应64个RAM。
具体的,本实施例中接收端接收到数据流后的缓存处理流程如下:
步骤1,接收端将DDR按照1024个业务划分为1024份。
步骤2,接收端利用WR_CTRL模块将接收到的分片数据报文,按照所在业务号将分片数据报文存储到DDR相应的位置,具体如图3所示,并在每片数据报文的eop(end ofpacket,包尾)到来时,提取出报文头信息中的B、E标记和序列号存储到INFO模块中,同时将该分片数据报文的业务号和长度提取出来。其中,B代表报文的第一个分片,E代表报文最后一个分片。
步骤3,接收端利用WR_CTRL模块将B、E标记和序列号存储在INFO模块的FIFO中,将业务号和长度按照bundle号和序列号存储在映射表中,存储地址是bundle号和序列号的组合,数据是业务号和长度。其中,映射表的存储地址的数量为:bundle个数*序列号个数,本实施例中映射表的存储地址为:64x1024个,具体如图4所示。
步骤4,接收端利用WR_CTRL模块确定与接收到的分片数据报文的bundle号对应RAM;
步骤5,接收端利用WR_CTRL模块从INFO模块的FIFO中读出B、E标记和序列号,根据所述序列号确定RAM的地址,根据该地址,将B、E标记和用来指示该序列号在DDR中是否有包的占位标记写入RAM。具体如图5所示。
本实施例中,每个RAM中有3bit位宽,代表占位标识以及分片数据报文的B、E标记,占位标识用来指示该序列号在DDR中是否有包,每个RAM的深度是1024。即,每次报文来时根据报文的bundle号操作对应的RAM,报文的序列号对应RAM的地址。
综上可知,本实施例所述方法,将标识独立存储的缓存方案,提高了数据缓存的利用率,降低读取资源的使用,解决了多业务多bundle多link时技术实现上的限制问题。
在本发明第四实施例中,提供一种报文读取方法,如图6所示,本实施例所述方法包括如下步骤:
步骤S601,根据第二存储器中写入的报文状态标识,判断出第一存储器中已经缓存了整包数据时,根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的第二标识信息;
其中,报文状态标识包括:B、E标记;所述B为所述数据报文是否为整包数据的第一个报文的标记,所述E为所述数据报文是否为整包数据的最后一个报文的标记。
在本发明的一个可选实施例中,在根据第二存储器中写入的报文状态标识,判断出第一存储器中已经缓存了整包数据时,还包括:
判断所述第二存储器中是否已写入构成所述整包数据的各数据报文的占位标识,在判断结果为是时,根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的第二标识信息。本实施例,通过占位标识对第一存储器中是否已经存储了对应的数据报文进行判断,只有第一存储器中存入了对应的数据报文,才进行后续的报文读取过程。该实施例避免了报文未存入而执行报文读取,导致数据出错的问题。
步骤S602,根据各所述第二标识信息,在映射表中查找构成所述整包数据的各数据报文对应的第一标识信息和报文长度;
步骤S603,根据各所述第一标识信息和报文长度,在所述第一存储器中读取构成所述整包数据的各数据报文。
本实施例所述方法,与报文缓存方法相适应,实现了按标识缓存的数据的读取,降低读取资源的使用,解决了多业务多bundle多link时技术实现上的限制问题。
在本发明的第五实施例中,提供一种报文读取方法,本发明实施例,采用业务号作为第一标识信息,采用序列号和bundle号作为第二标识信息,来实现数据报文的读取,与第四实施例相同之处参见第四实施例的描述,本实施例在此不作赘述。
具体的,如图7所示,本实施例所述方法包括如下步骤:
步骤S701,根据第二存储器中写入的报文状态标识,判断出第一存储器中已经缓存了整包数据时,根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的序列号和bundle号;
在本发明的一个可选实施例中,根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的序列号和bundle号,具体包括:
根据存储所述报文状态标识的第二存储器,确定对应数据报文的bundle号;
根据所述报文状态标识在所述第二存储器中的存储位置,确定对应数据报文的序列号。
步骤S702,根据各数据报文对应的序列号和bundle号,在映射表中查找各数据报文对应的业务号和报文长度;
步骤S703,根据各数据报文对应的业务号和报文长度,在所述第一存储器中读取各数据报文。
本实施例所述方法,与报文缓存方法相适应,实现了按标识缓存的数据的读取,降低读取资源的使用,解决了多业务多bundle多link时技术实现上的限制问题。
在本发明的第六实施例中,提供一种报文读取方法,与第三实施例对应,对本实施例所述的报文读取方法进行更详尽的阐述。需要指出的是,本实施例公开的大量技术细节用于解释本发明,并不用于唯一限定本发明。
本实施例假设系统支持64个bundle,1024个业务号,有2G的DDR空间;64个bundle分别对应64个RAM。
具体的,本实施例中接收端接收到数据流后的报文读取处理流程如下:
步骤1,在当前接收到分片数据报文的序列号和期待的序列号相等时,接收端利用RD_CTRL根据RAM中缓存的分片数据报文的B、E标记,判断DDR中是否已经存储了一个整包的分片数据报文;
步骤2,当B、E标记中的E标记指示出当前接收到的分片数据报文为整包数据的最后一片数据报文时,判断出DDR中已经存储了一个整包的分片数据报文,按照顺序将RAM中的序列号读出(序列号对应B、E标记的存储地址,所以根据B、E标记的存储地址即可读出对应的序列号),以及根据RAM读出bundle号(因为每个RAM都与一个bundle号对应),并将所读出的bundle和序列号对应的RAM数据写0;
步骤3,根据所读出的各分片数据报文对应的bundle和序列号向映射表中查找各分片数据报文对应的业务号和长度;
步骤4,根据所获取到的业务号和长度,作为DDR的地址读取DDR的数据。
在本发明第七实施例中,提供一种报文缓存、读取方法,该实施例通过一个具体的示例,对本发明提供的报文缓存及读取过程进行更直观的说明。
本实施例中假设系统支持64个bundle,1024个业务号,有2G的DDR空间;64个bundle分别对应64个RAM。
假设,bundle3的一个整包有4个分片,序列号分别为5、6、7、8,其中序列号5和7的分片为业务号2,序列号6和8的分片为业务号3,这四个分片的eop过来的顺序是5、7、6、8,那么:
当序列号5的分片过来时,将数据分别写入图3中的地址2,将业务号和分片长度写入映射表中——图4的地址{6’h5,12’h5},将B、E标记、占位标识(occupy)信息写入图5中第3个RAM,值为{2’b10,1’b1};
当序列号7的分片过来时,将数据写入图3中的地址2,将业务号和分片长度写入映射表中——图4的地址{6’h5,12’h7},将B、E标记、occupy信息写入图5中第3个RAM,值为{2’b00,1’b1};依次类推,当序列号6和8过来时依然走上述流程.
当检测到当前序列号与期待序列号一致,并且E标记是1,于是将bundle3的所有分片数据报文按照顺序读出,读出过程为:
首先,将图5中的第3个RAM中5、6、7、8的地址分别写0;
然后,按照顺序读出存储在图4中的业务号和分片长度,地址顺序为{6’h5,12’h5},{6’h 5,12’h 6},{6’h 5,12’h 7},{6’h 5,12’h 8};
最后,通过业务号和分片长度依次在DDR中读出各个分片的数据报文。
在本发明第八实施例中,提供一种报文缓存装置,如图8所示,包括:
第一写控制模块810,用于接收到数据报文时,根据所述数据报文中携带的第一标识信息,将所述数据报文写入第一存储器;
第二写控制模块820,用于根据所述数据报文携带的第二标识信息,将所述第一标识信息和所述数据报文的报文长度写入预先设定的映射表;
第三写控制模块830,用于将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器。
可能地/可选地,本发明实施例中,所述第一标识信息包括:所述数据报文所属业务的业务号;和/或,所述第二标识信息包括:所述数据报文的序列号和bundle号。
可能地/可选地,本发明实施例中,所述第三写控制模块830,具体用于确定与所述bundle号对应的第二存储器,根据所述序列号,确定所述所述报文状态标识在确定的所述第二存储器中的存储位置,按照确定的存储位置,将所述报文状态标识,写入所述第二存储器。
可能地/可选地,本发明实施例中,第一写控制模块810,具体用于根据预先设定的第一标识信息与第一存储器存储空间的匹配关系,确定所述数据报文中携带的第一标识信息所匹配的存储空间;将所述数据报文写入所述匹配的存储空间。
可能地/可选地,本发明实施例中,第三写控制模块830,在将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器时,还将用于表示所述数据报文已存入所述第一存储器的占位标识,按照与所述第二标识信息相匹配的存储位置,写入所述第二存储器。
可能地/可选地,本发明实施例中,所述报文状态标识包括:B、E标记;所述B为所述数据报文是否为整包数据的第一个报文的标记,所述E为所述数据报文是否为整包数据的最后一个报文的标记。
可能地/可选地,本发明实施例中,第一写控制模块810,在接收到数据报文时,还用于提取所述数据报文的报文头信息,根据提取的所述报文头信息,得到所述第一标识信息、第二标识信息、报文长度和报文状态标识中的一个或多个信息。
本实施例所述装置,将标识独立存储的缓存方案,提高了数据缓存的利用率,降低读取资源的使用,解决了多业务多bundle多link时技术实现上的限制问题。
在本发明第八实施例中,提供一种报文读取装置,如图9所示,包括:
第一读控制模块910,用于根据第二存储器中写入的报文状态标识,判断出第一存储器中已经缓存了整包数据时,根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的第二标识信息;
第二读控制模块920,用于根据各所述第二标识信息,在映射表中查找构成所述整包数据的各数据报文对应的第一标识信息和报文长度;
第三读控制模块930,用于根据各所述第一标识信息和报文长度,在所述第一存储器中读取构成所述整包数据的各数据报文。
可能地/可选地,本发明实施例中,所述第一标识信息包括:所述数据报文所属业务的业务号;和/或,所述第二标识信息包括:所述数据报文的序列号和bundle号。
可能地/可选地,本发明实施例中,所述第一读控制模块910,具体用于根据存储所述报文状态标识的第二存储器,确定对应数据报文的bundle号;根据所述报文状态标识在所述第二存储器中的存储位置,确定对应数据报文的序列号。
可能地/可选地,本发明实施例中,第一读控制模块910,在根据第二存储器中写入的报文状态标识,判断出第一存储器中已经缓存了整包数据时,还判断所述第二存储器中是否已写入构成所述整包数据的各数据报文的占位标识,在判断结果为是时,根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的第二标识信息。
本实施例所述装置,与报文缓存装置相适应,实现了按标识缓存的数据的读取,降低读取资源的使用,解决了多业务多bundle多link时技术实现上的限制问题。
在本发明第九实施例中,提供一种报文缓存装置,包括:处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的报文缓存程序,以实现如下方法步骤:
接收到数据报文时,根据所述数据报文中携带的第一标识信息,将所述数据报文写入第一存储器;
根据所述数据报文携带的第二标识信息,将所述第一标识信息和所述数据报文的报文长度写入预先设定的映射表;
将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器。
可能地/可选地,本发明实施例中,所述第一标识信息包括:所述数据报文所属业务的业务号;和/或,所述第二标识信息包括:所述数据报文的序列号和bundle号。
可能地/可选地,本发明实施例中,所述根据所述数据报文中携带的第一标识信息,将所述数据报文写入第一存储器,包括:
根据预先设定的第一标识信息与第一存储器存储空间的匹配关系,确定所述数据报文中携带的第一标识信息所匹配的存储空间;
将所述数据报文写入所述匹配的存储空间。
可能地/可选地,本发明实施例中,所述将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器,包括:
确定与所述bundle号对应的第二存储器;
根据所述序列号,确定所述所述报文状态标识在确定的所述第二存储器中的存储位置;
按照确定的存储位置,将所述报文状态标识,写入所述第二存储器。
可能地/可选地,本发明实施例中,在将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器时,还包括:
将用于表示所述数据报文已存入所述第一存储器的占位标识,按照与所述第二标识信息相匹配的存储位置,写入所述第二存储器。
可能地/可选地,本发明实施例中,所述报文状态标识包括:B、E标记;所述B为所述数据报文是否为整包数据的第一个报文的标记,所述E为所述数据报文是否为整包数据的最后一个报文的标记。
可能地/可选地,本发明实施例中,在接收到数据报文时,还包括:
提取所述数据报文的报文头信息;
根据提取的所述报文头信息,得到所述第一标识信息、第二标识信息、报文长度和报文状态标识中的一个或多个信息。
在本发明第十实施例中,提供一种报文读取装置,包括:处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的报文读取程序,以实现如下方法步骤:
根据第二存储器中写入的报文状态标识,判断出第一存储器中已经缓存了整包数据时,根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的第二标识信息;
根据各所述第二标识信息,在映射表中查找构成所述整包数据的各数据报文对应的第一标识信息和报文长度;
根据各所述第一标识信息和报文长度,在所述第一存储器中读取构成所述整包数据的各数据报文。
可能地/可选地,本发明实施例中,所述第一标识信息包括:所述数据报文所属业务的业务号;和/或,所述第二标识信息包括:所述数据报文的序列号和bundle号。
可能地/可选地,本发明实施例中,所述根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的第二标识信息,包括:
根据存储所述报文状态标识的第二存储器,确定对应数据报文的bundle号;
根据所述报文状态标识在所述第二存储器中的存储位置,确定对应数据报文的序列号。
可能地/可选地,本发明实施例中,在根据第二存储器中写入的报文状态标识,判断出第一存储器中已经缓存了整包数据时,还包括:
判断所述第二存储器中是否已写入构成所述整包数据的各数据报文的占位标识,在判断结果为是时,根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的第二标识信息。
在本发明第十一实施例中,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有报文缓存程序,所述报文缓存程序被处理器执行时实现如下的报文缓存方法步骤:
接收到数据报文时,根据所述数据报文中携带的第一标识信息,将所述数据报文写入第一存储器;
根据所述数据报文携带的第二标识信息,将所述第一标识信息和所述数据报文的报文长度写入预先设定的映射表;
将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器。
本实施例的具体实施细节可参见第一、第二、第三、第七实施例,本实施例在此不再赘述。
本实施例所述存储介质可以包括但不限于为:ROM、RAM、磁盘或光盘等。
在本发明第十二实施例中,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有报文读取程序,所述报文读取程序被处理器执行时实现如下的报文读取方法步骤:
根据第二存储器中写入的报文状态标识,判断出第一存储器中已经缓存了整包数据时,根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的第二标识信息;
根据各所述第二标识信息,在映射表中查找构成所述整包数据的各数据报文对应的第一标识信息和报文长度;
根据各所述第一标识信息和报文长度,在所述第一存储器中读取构成所述整包数据的各数据报文。
本实施例的具体实施细节可参见第四、第五、第六、第七实施例,本实施例在此不再赘述。
本实施例所述存储介质可以包括但不限于为:ROM、RAM、磁盘或光盘等。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种报文缓存方法,其特征在于,包括:
接收到数据报文时,根据所述数据报文中携带的第一标识信息,将所述数据报文写入第一存储器;
根据所述数据报文携带的第二标识信息,将所述第一标识信息和所述数据报文的报文长度写入预先设定的映射表;
将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器。
2.如权利要求1所述的方法,其特征在于,所述第一标识信息包括:所述数据报文所属业务的业务号;和/或,所述第二标识信息包括:所述数据报文的序列号和bundle号。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述数据报文中携带的第一标识信息,将所述数据报文写入第一存储器,包括:
根据预先设定的第一标识信息与第一存储器存储空间的匹配关系,确定所述数据报文中携带的第一标识信息所匹配的存储空间;
将所述数据报文写入所述匹配的存储空间。
4.如权利要求2所述的方法,其特征在于,所述将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器,包括:
确定与所述bundle号对应的第二存储器;
根据所述序列号,确定所述报文状态标识在确定的所述第二存储器中的存储位置;
按照确定的存储位置,将所述报文状态标识,写入所述第二存储器。
5.如权利要求1或4所述的方法,其特征在于,在将所述数据报文携带的报文状态标识,按照与所述第二标识信息相匹配的存储位置,写入第二存储器时,还包括:
将用于表示所述数据报文已存入所述第一存储器的占位标识,按照与所述第二标识信息相匹配的存储位置,写入所述第二存储器。
6.如权利要求1所述的方法,其特征在于,所述报文状态标识包括:B、E标记;所述B为所述数据报文是否为整包数据的第一个报文的标记,所述E为所述数据报文是否为整包数据的最后一个报文的标记。
7.如权利要求1或2或4或6所述的方法,其特征在于,在接收到数据报文时,还包括:
提取所述数据报文的报文头信息;
根据提取的所述报文头信息,得到所述第一标识信息、第二标识信息、报文长度和报文状态标识中的一个或多个信息。
8.一种报文读取方法,其特征在于,包括:
根据第二存储器中写入的报文状态标识,判断出第一存储器中已经缓存了整包数据时,根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的第二标识信息;
根据各所述第二标识信息,在映射表中查找构成所述整包数据的各数据报文对应的第一标识信息和报文长度;
根据各所述第一标识信息和报文长度,在所述第一存储器中读取构成所述整包数据的各数据报文。
9.如权利要求8所述的方法,其特征在于,所述第一标识信息包括:所述数据报文所属业务的业务号;和/或,所述第二标识信息包括:所述数据报文的序列号和bundle号。
10.如权利要求9所述的方法,其特征在于,所述根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的第二标识信息,包括:
根据存储所述报文状态标识的第二存储器,确定对应数据报文的bundle号;
根据所述报文状态标识在所述第二存储器中的存储位置,确定对应数据报文的序列号。
11.如权利要求8或9或10所述的方法,其特征在于,在根据第二存储器中写入的报文状态标识,判断出第一存储器中已经缓存了整包数据时,还包括:
判断所述第二存储器中是否已写入构成所述整包数据的各数据报文的占位标识,在判断结果为是时,根据报文状态标识的存储位置,确定构成所述整包数据的各数据报文对应的第二标识信息。
12.一种报文缓存装置,其特征在于,包括:处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的报文缓存程序,以实现如权利要求1至7任意一项所述方法步骤。
13.一种报文读取装置,其特征在于,包括:处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的报文读取程序,以实现如权利要求8至11任意一项所述方法步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有报文缓存程序,所述报文缓存程序被处理器执行时实现如权利要求1至7中任一项所述的报文缓存方法的步骤;
和/或,所述计算机可读存储介质上存储有报文读取程序,所述报文读取程序被处理器执行时实现如权利要求8至11中任一项所述的报文读取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711133447.6A CN109802900B (zh) | 2017-11-16 | 2017-11-16 | 报文缓存、读取方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711133447.6A CN109802900B (zh) | 2017-11-16 | 2017-11-16 | 报文缓存、读取方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109802900A CN109802900A (zh) | 2019-05-24 |
CN109802900B true CN109802900B (zh) | 2021-11-19 |
Family
ID=66555229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711133447.6A Active CN109802900B (zh) | 2017-11-16 | 2017-11-16 | 报文缓存、读取方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109802900B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464638A (zh) * | 2020-03-31 | 2020-07-28 | 潍柴动力股份有限公司 | 数据报文的处理方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0757318A2 (en) * | 1992-12-17 | 1997-02-05 | Tandem Computers Incorporated | A router element for routing messages in a processing system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645846B (zh) * | 2009-09-02 | 2011-10-26 | 中兴通讯股份有限公司 | 一种路由交换设备及其数据缓存的方法 |
CN102377682B (zh) * | 2011-12-12 | 2014-07-23 | 西安电子科技大学 | 基于定长单元存储变长分组的队列管理方法及设备 |
CN106713144B (zh) * | 2016-12-27 | 2020-01-21 | 锐捷网络股份有限公司 | 一种报文出口信息的读写方法及转发引擎 |
CN106936852B (zh) * | 2017-04-26 | 2020-03-06 | 海南云江科技有限公司 | 一种数据发送和接收方法、设备以及数据传输系统 |
-
2017
- 2017-11-16 CN CN201711133447.6A patent/CN109802900B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0757318A2 (en) * | 1992-12-17 | 1997-02-05 | Tandem Computers Incorporated | A router element for routing messages in a processing system |
Also Published As
Publication number | Publication date |
---|---|
CN109802900A (zh) | 2019-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240171507A1 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic) | |
US7561573B2 (en) | Network adaptor, communication system and communication method | |
CN111352889B (zh) | 一种基于mctp协议的设备管理方法、设备、装置和介质 | |
CN109542857B (zh) | 审计日志存储方法、查询方法、装置及相关设备 | |
JP4415023B2 (ja) | Pppマルチリンクをサポートするシステムにおけるマルチキャストトラフィックフォーワーディング装置及び制御方法 | |
WO2018171641A1 (zh) | 网络管理信息的收发方法、装置、发送设备和接收设备 | |
EP3657744B1 (en) | Message processing | |
WO2014135038A1 (zh) | 基于pcie总线的报文传输方法与装置 | |
CN106713144A (zh) | 一种报文出口信息的读写方法及转发引擎 | |
CN101877666A (zh) | 基于零拷贝方式的多应用程序报文接收方法和装置 | |
CN109802900B (zh) | 报文缓存、读取方法、装置及计算机可读存储介质 | |
CN103297344A (zh) | 分布式数据通信系统及其组播报文转发方法 | |
US7400623B2 (en) | Method and apparatus for managing medium access control (MAC) address | |
CN113765892A (zh) | 用于适应网络协议更新的系统、方法和计算机可读介质 | |
WO2018177041A1 (zh) | 一种报文分片存储及重组的方法、装置和计算机存储介质 | |
TWI397285B (zh) | 封包轉送方式 | |
CN116055397B (zh) | 队列表项维护方法与装置 | |
JP2007274056A (ja) | データグラム再組立装置 | |
US20160085683A1 (en) | Data receiving device and data receiving method | |
CN102299861B (zh) | 一种报文流量控制方法 | |
US8904032B2 (en) | Prefetch optimization of the communication of data using descriptor lists | |
CN111770055A (zh) | 一种应用于电能表的多协议通讯帧快速判别方法 | |
CN113067825B (zh) | 基于srv6网络协议进行多端点数据备份的方法 | |
CN105117353A (zh) | 带有通用数据交互模块的fpga及采用该fpga的信息处理系统 | |
WO2003079612A1 (en) | Method and apparatus for direct data placement over tcp/ip |
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 |