CN108667755A - 一种报文分片存储及重组的方法和装置 - Google Patents
一种报文分片存储及重组的方法和装置 Download PDFInfo
- Publication number
- CN108667755A CN108667755A CN201710188546.8A CN201710188546A CN108667755A CN 108667755 A CN108667755 A CN 108667755A CN 201710188546 A CN201710188546 A CN 201710188546A CN 108667755 A CN108667755 A CN 108667755A
- Authority
- CN
- China
- Prior art keywords
- message fragment
- ram
- fragment
- sequence number
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
-
- 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/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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/9063—Intermediate storage in different physical parts of a node or terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种报文分片存储的方法,包括:接收到报文分片后,将所述报文分片的数据存储于指定存储单元;分别在四个随机存取存储器RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息。一种报文分片重组的方法及装置,可以降低对系统RAM资源的依靠性,从而保证了系统的可实现性。
Description
技术领域
本发明实施例涉及但不限于数据通讯领域,尤其涉及一种报文分片存储及重组的方法和装置。
背景技术
在数据通信领域,随着网络数据业务量的增长和对服务质量要求的提高,现有的带宽已不够,由此对系统的带宽以及稳定性等技术指标提出了更高的要求。
在通信设备中,多链路捆绑为逻辑通道,增加带宽,提高稳定性的技术,在设备内部和底层传输中经常使用。例如,链路聚合技术,MLPPP(多链路PPP)即运用了链路聚合技术,将多条PPP(点对点协议)业务捆绑在一起,以提供更大的带宽,同时当其中某条链路出现问题时,不影响到其他链路,保证了其稳定性。
传统的设计中,当要实现多个捆绑组,多个Link(链路)时进行报文重组时,通常做法是每个Link需要一个RAM(Random-Access Memory,随机存取存储器)来存储相应的序列号相关信息,再将同1个捆绑组里所有Link来临的序列号进行比较,找出最小值,将此最小值排到已排序好的队列后面,最终排序出有序的分片,再根据包起始位置和结束位置,组装成完整的报文。
上述方案缺点是:随着链路个数以及捆绑个数大幅增加,此时需要RAM的资源也越来越多,比如需要实现64个Bundle(捆绑组),32个Link时,此时需要的RAM个数为64*32=2048,如图1所示,这对于资源有限的系统来说,实现难度会越来越大,因此RAM资源将逐渐成为制约整个系统的关键因素。
发明内容
本发明实施例提供一种报文分片存储及重组的方法及装置,以降低对系统RAM资源的依靠性。
一种报文分片存储的方法,包括:
接收到报文分片后,将所述报文分片的数据存储于指定存储单元;
分别在四个随机存取存储器RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息。
可选地,所述分别在四个RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息,包括:
在第一RAM中与所述报文分片的捆绑组号对应的地址中,存储指示各序列号是否存在分片的信息;
在第二RAM中与所述报文分片的捆绑组号对应的地址中,存储指示所述报文分片的开始或结束标记的信息和所属的捆绑组待组包的首序列号值;
在第三RAM中与所述报文分片的捆绑组号对应的地址中,存储所述报文分片的长度;
在第四RAM中与所述报文分片的捆绑组号对应的地址中,存储所述报文分片所属的捆绑组下一个到达的序列号。
一种报文分片存储的装置,其中,包括:一指定存储单元和四个随机存取存储器RAM,其中,
所述指定存储单元,用于存储接收到报文分片的数据;
四个所述RAM,用于分别在与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息。
可选地,第一RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储指示各序列号是否存在分片的信息;
第二RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储指示所述报文分片的开始或结束标记的信息和所属的捆绑组待组包的首序列号值;
第三RAM,用于在与所述报文分片的捆绑组号对应的地址中存储所述报文分片的长度;
第四RAM,用于在与所述报文分片的捆绑组号对应的地址中存储所述报文分片所属的捆绑组下一个到达的序列号。
一种报文分片重组的方法,包括:
接收到报文分片后,将所述报文分片的数据存储于指定存储单元,分别在四个随机存取存储器RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息;
组包时从待组包的首序列号开始,从四个所述RAM中读取报文分片的信息进行组包处理。
可选地,所述分别在四个RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息,包括:
在第一RAM中与所述报文分片的捆绑组号对应的地址中,存储指示各序列号是否存在分片的信息;
在第二RAM中与所述报文分片的捆绑组号对应的地址中,存储指示所述报文分片的开始或结束标记的信息和所属的捆绑组待组包的首序列号值;
在第三RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的长度;
在第四RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片所属的捆绑组下一个到达的序列号。
可选地,所述接收到报文分片后,还包括:
如接收到的报文分片的系列号与已读取出的且尚未组包成功的序列号相同,或者检测到超过指定时间未接收到下一个报文分片,则对所有已接收到的该捆绑组的报文分片进行强制组包。
可选地,所述接收到报文分片后,还包括:
如所述报文分片的序列号大于从所述第四RAM中读出的下一个到达的序列号加上第一指定值,则将所有所述RAM中从所述报文的首地址开始,到从所述第四RAM中读出的下一个到达的序列号加上第二指定值的序列号对应的数据消除,所述第二指定值小于或者等于所述第一指定值。
可选地,所述将四个所述RAM中从所述报文的首地址开始,到从所述第四RAM中读出的下一个到达的序列号加上第二指定值的序列号对应的数据消除,包括:
如确定待消除的序列号对应的分片是包尾分片,则对从所述第二RAM中读出对应的包首序列号开始直到所述包尾分片的序列号进行组包,然后将所述第一RAM、所述第二RAM和所述第三RAM中对应序列号的信息清零,将下个包的包首序列号写入所述第二RAM中,将所述第四RAM中的下一个到达的序列号值加1,然后继续读下一个待消除的序列号。
可选地,所述接收到报文分片后,还包括:
如接收到的报文分片为下个报文的包头分片,则将接收到所述包头分片之前的报文分片进行强制组包。
可选地,所述组包时从待组包的首序列号开始,从四个所述RAM中读取报文分片的信息进行组包处理,包括:
从待组包的首序列号开始直到包尾序列号,依次从四个所述RAM中读取报文分片的长度,根据报文分片的序列号和报文分片的长度从所述指定存储单元中读取对应的报文分片的数据进行组包。
一种报文分片重组的装置,其中,包括:
存储模块,用于接收到报文分片后,将所述报文分片的数据存储于指定存储单元,分别在四个随机存取存储器RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息;
处理模块,用于组包时从待组包的首序列号开始,从四个所述RAM中读取报文分片的信息进行组包处理。
可选地,所述存储模块包括所述指定存储单元和四个随机存取存储器RAM,其中,
所述指定存储单元,用于存储接收到报文分片的数据;
四个所述RAM,用于分别在与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息,其中,
第一RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储指示各序列号是否存在分片的信息;
第二RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储指示所述报文分片的开始或结束标记的信息和所属的捆绑组待组包的首序列号值;
第三RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储所述报文分片的长度;
第四RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储所述报文分片所属的捆绑组下一个到达的序列号。
可选地,所述处理模块,用于如接收到的报文分片的系列号与已读取出的且尚未组包成功的序列号相同,或者检测到超过指定时间未接收到下一个报文分片,则对所有已接收到的该捆绑组的报文分片进行强制组包。
可选地,所述处理模块,所述接收到报文分片后,如所述报文分片的序列号大于从所述第四RAM中读出的下一个到达的序列号加上第一指定值,则将所有所述RAM中从所述报文的首地址开始,到从所述第四RAM中读出的下一个到达的序列号加上第二指定值的序列号对应的数据消除,所述第二指定值小于或者等于所述第一指定值。
可选地,所述处理模块,如确定待消除的序列号对应的分片是包尾分片,则对从所述第二RAM中读出对应的包首序列号开始直到所述包尾分片的序列号进行组包,然后将所述第一RAM、所述第二RAM和所述第三RAM中对应序列号的信息清零,将下个包的包首序列号写入所述第二RAM中,将所述第四RAM中的下一个到达的序列号值加1,然后继续读下一个待消除的序列号。
可选地,所述处理模块,所述接收到报文分片后,如接收到的报文分片为下个报文的包头分片,则将接收到所述包头分片之前的报文分片进行强制组包。
可选地,所述处理模块,组包时从待组包的首序列号开始,从四个所述RAM中读取报文分片的信息进行组包处理,包括:从待组包的首序列号开始直到包尾序列号,依次从四个所述RAM中读取报文分片的长度,根据报文分片的序列号和报文分片的长度从所述指定存储单元中读取对应的报文分片的数据进行组包。
综上,本发明实施例提供一种报文分片存储及重组的方法及装置,可以降低对系统RAM资源的依靠性,从而保证了系统的可实现性。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1是传统的多Bundle多Link报文分片重组方式示意图;
图2为本发明实施例的一种报文分片存储的方法的流程图;
图3为本发明实施例的多Bundle多Link报文分片重组状态示意图;
图4为本发明实施例二的一种报文分片重组的方法的流程图;
图5为本发明实施例二的一种报文分片重组的方法的流程图;
图6为本发明实施例的一种报文分片存储的装置的示意图;
图7为本发明实施例的一种报文分片重组的装置的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
实施例一
图2为本发明实施例的一种报文分片存储的方法的流程图,如图2所示,本实施例的方法包括以下步骤:
S11、接收到报文分片后,将所述报文分片的数据存储于指定存储单元;
S12、分别在四个随机存取存储器RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息。
其中,步骤S12中,可以包括:
在第一RAM中与所述报文分片的捆绑组号对应的地址中,存储指示各序列号是否存在分片的信息;
在第二RAM中与所述报文分片的捆绑组号对应的地址中,存储指示所述报文分片的开始或结束标记的信息和所属的捆绑组待组包的首序列号值;
在第三RAM中与所述报文分片的捆绑组号对应的地址中,存储所述报文分片的长度;
在第四RAM中与所述报文分片的捆绑组号对应的地址中,存储所述报文分片所属的捆绑组下一个到达的序列号。
为了将该技术方案叙述清楚,定义了m,n,t,s四个参数,其中,m表示链路数,n表示捆绑组数;t表示可支持的序列号个数,s表示序列号值的位宽,t和s有相关性。
可支持的序列号个数越多,系统容忍的超时等待分片时间也就越长,本发明实施例根据当前系统分片的特性,正常接收的序列号不会超出上次序列号值加t,所以本实施例无需支持很多的序列号,本发明实施例设置t=256,则s=8(8bits位宽可以指示从0-255)。
这四组RAM的深度为n,对应的各个地址表示当前的捆绑组号。这里面通过运用RAM的特性,将地址作为捆绑组号,实现了多捆绑组共用1个RAM,使RAM资源不会因为捆绑组个数的增加而大幅的增加。
对每组RAM具体功能和位宽进行说明:
RAM0指示相应的序列号是否存在分片,位宽为t。每bit(比特)表示该捆绑组的t个序列号是否存在分片,如bit0=1,则指示了序列号为0的分片存在,bit1=1,则指示了序列号为1的分片存在,以此类推。
RAM1指示每个分片的B/E(分片开始/结束)标记和该捆绑组即将组包的首序列号值,位宽为2t+s。
RAM2存储每个序列号对应的长度,根据系统中最大分片长度除以DDR(DoubleData Rate,双倍速率)读写Burst(突发)长度的结果来设置RAM位宽,比如系统中最大分片长度为1024B,Burst长度为32B,那么该RAM位宽为5,则位宽为5*t;
RAM3存储每个捆绑组当前期望值序列号(即下一个到达的序列号),位宽为s。
本实施例提供的一种报文分片存储的方法,如图3所示,从图中可以看出,在64个捆绑组,32个链路前提下,本发明实施例在RAM资源上有重大变化,通过4个RAM代替图1中的2048个FIFO(First In First Out,先进先出),大大节省了RAM资源。
实施例二
图4为本发明实施例的一种报文分片重组的方法的流程图,如图4所示,本实施例的方法包括以下步骤:
S21、接收到报文分片后,将所述报文分片的数据存储于指定存储单元,分别在四个随机存取存储器RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息;
S22、组包时从待组包的首序列号开始,从四个所述RAM中读取报文分片的信息进行组包处理。
在一可选实施例中,所述接收到报文分片后,还包括:
如接收到的报文分片的系列号与已读取出的且尚未组包成功的序列号相同,或者检测到超过指定时间未接收到下一个报文分片,则对所有已接收到的该捆绑组的报文分片进行强制组包。
在一可选实施例中,所述接收到报文分片后,还包括:
如所述报文分片的序列号大于从所述第四RAM中读出的下一个到达的序列号加上第一指定值,则将所有所述RAM中从所述报文的首地址开始,到从所述第四RAM中读出的下一个到达的序列号加上第二指定值的序列号对应的数据消除,所述第二指定值小于或者等于所述第一指定值。
在一可选实施例中,所述将四信所述RAM中从所述报文的首地址开始,到从所述第四RAM中读出的下一个到达的序列号加上第二指定值的序列号对应的数据消除,包括:
如确定待消除的序列号对应的分片是包尾分片,则对从所述第二RAM中读出对应的包首序列号开始直到所述包尾分片的序列号进行组包,然后将所述第一RAM、所述第二RAM和所述第三RAM中对应序列号的信息清零,将下个包的包首序列号写入所述第二RAM中,将所述第四RAM中的下一个到达的序列号值加1,然后继续读下一个待消除的序列号。
在一实施例中,所述接收到报文分片后,还包括:
如接收到的报文分片为下个报文的包头分片,则将接收到所述包头分片之前的报文分片进行强制组包。
在一可选实施例中,所述组包时从待组包的首序列号开始,根据所述报文分片的捆绑组号从四个所述RAM中读取报文分片的信息进行组包处理,包括:
从待组包的首序列号开始直到包尾序列号,依次从四个所述RAM中读取报文分片的长度,根据报文分片的序列号和报文分片的长度从所述指定存储单元中读取对应的报文分片的数据进行组包。
实施例三
图5为本发明实施例的报文分片重组的方法的流程图,如图5所示,本实施例包括以下步骤:
步骤S101:处于空闲状态。
步骤S102:当超过指定时间未接收到下一个报文分片,那么进入S117步骤,否则转步骤103。
这里面的超时机制是通过一个定时器来控制,具体大小,可以根据各自系统来设置,这个定时器工作原理是:新来的序列号满足期望值,或者在步骤S105清包过程中,该定时器清零,只有当后面序列号不再来临或者不满足清除水线,且RAM中的序列号还未读出的情况下,才会触发超时,避免了以往技术中,当期望值序列号一直没来时,进行等待而增加的缓存资源。
这里面的清除水线是根据系统要求来设定的,假设1个Bundle捆绑32个Link,所以按照正常情况下,同1个link前后2个序列号值最大相差63,这里面清除水线可以设置128,当然还可以是其他数值,例如256等,防止有某些情况带宽不均匀,导致同一条Link前后2个序列号相差过大。
步骤S103:判断是否接收到新的分片,如果是,将该分片的数据存入到DDR中,将该分片的信息写入4个RAM中,当检测到接收到的分片为包尾分片,且序列号等于RAM3中存储的期望序列号,然后将4个RAM中的待组包的所有信息读出来,进入步骤S104,否的话,进入步骤S101。
步骤S104:判断当前接收到的分片的序列号是否与RAM0读出来的尚未组包的序列号相同,如果是,进入步骤S117,否的话,进入步骤S105。
步骤S105:判断当前接收到的分片的序列号是否大于RAM3中读出来的期望值序列号加上清除水线值,如果是,进入步骤S111,否的话,进入步骤S106。
步骤S106:判断当前接收到的分片的序列号是否与RAM3中读出来的期望值相等,如果是,进入步骤S107,否的话,进入步骤S118。
步骤S107:判断当前接收到的分片的包位置标记是否为E(报文结束标记),如果是,进入步骤S108,否的话,进入步骤S109。
步骤S108:开始进行组包,从RAM1中读出来的包首序列号开始,一直持续到当前为E的序列号,将RAM1,RAM2,RAM3中读出的相关序列号信息进行组包,组包完毕后,再将RAM0中该包所有序列号指示标记写0,RAM1中B/E写0,RAM2中报文长度写0,更新下个包的首序列号值到RAM1中,进入步骤S109。
步骤S109:期望值序列号值加1,写到RAM3中,进入步骤S110。
步骤S110:RAM0中下一个序列号是否也存在,如果是,进入步骤S107,否的话,进入步骤S118。
步骤S111:开始清除丢失的序列号。
本实施例中,从该报文的首地址开始往后清RAM里的序列号,是否已清除到期望值加32,如果是,进入S117步骤,否的话,进入步骤S112。
这里面的32,是根据当前系统中假定一个Bundle捆绑32个Link,那么可以设置成32。
步骤S112:当前清除的序列号的包位置标记是否为E(报文结束标记)或者下个序列号的包位置标记为B(报文开始标记),如果是,RAM3中的期望值加1,进入步骤S113,否的话,进入步骤S111。
步骤S113:开始进行组包,从RAM1中读出来的包首序列号开始,一直持续到当前为E的序列号或者持续到序列号为B标记的前一个序列号位置,同时将RAM0、RAM1、RAM2中序列号指示标记、B/E属性、报文长度都读出来赋予给各自的序列号,组包完毕后,再将RAM0中该包所有序列号指示标记写0,RAM1中B/E写0,RAM2中报文长度写0,更新下个包的首序列号值到RAM1中,进入步骤S115。
步骤S114:期望值序列号值加1,写到RAM3中,进入步骤S115。
步骤S115:RAM0中下一个序列号是否也存在,如果是,进入S114步骤,否的话,进入步骤S117。
步骤S116:强行组包,将所有存在的序列号全部清空,即RAM0指示序列号标记、RAM1的B/E、RAM2的报文长度都写0;同时将超时组包过程中最后一个序列号加1作为RAM1中下次组包的首序列号值,RAM3中期望值也等于下次包首序列号值,组完包后,进入步骤S117。
步骤S117:组包结束或者新来的序列号已经存储完毕。
实施例四
图6为本发明实施例的一种报文分片存储的装置的示意图,如图6所示,本实施例的装置包括:一存储单元和四个随机存取存储器RAM(RAM0、RAM1、RAM2和RAM3),其中,
所述存储单元,用于存储接收到报文分片的数据;
四个所述RAM,用于分别在与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息。
其中,RAM0,用于在与所述报文分片的捆绑组号对应的地址中,存储指示各序列号是否存在分片的信息;
RAM1,用于在与所述报文分片的捆绑组号对应的地址中,存储指示所述报文分片的开始或结束标记的信息和所属的捆绑组待组包的首序列号值;
RAM2,用于在与所述报文分片的捆绑组号对应的地址中存储所述报文分片的长度;
RAM3,用于在与所述报文分片的捆绑组号对应的地址中存储所述报文分片所属的捆绑组下一个到达的序列号。
本实施例的报文分片存储的装置,可以节省RAM资源,降低对系统RAM资源的依靠性,从而保证了系统的可实现性。
实施例五
图7为本发明实施例的一种报文分片重组的装置的示意图,如图7所示,本实施例的装置包括:
存储模块,用于接收到报文分片后,将所述报文分片的数据存储于指定存储单元,分别在四个随机存取存储器RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息;
处理模块,用于组包时从待组包的首序列号开始,从四个所述RAM中读取报文分片的信息进行组包处理。
在一可选实施例中,所述存储模块包括所述指定存储单元和四个随机存取存储器RAM,其中,
所述指定存储单元,用于存储接收到报文分片的数据;
四个所述RAM,用于分别在与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息,其中,
第一RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储指示各序列号是否存在分片的信息;
第二RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储指示所述报文分片的开始或结束标记的信息和所属的捆绑组待组包的首序列号值;
第三RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储所述报文分片的长度;
第四RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储所述报文分片所属的捆绑组下一个到达的序列号。
在一可选实施例中,所述处理模块,用于如接收到的报文分片的系列号与已读取出的且尚未组包成功的序列号相同,或者检测到指定时间未接收到下一个报文分片,则对所有已接收到的该捆绑组的报文分片进行强制组包。
在一可选实施例中,所述处理模块,所述接收到报文分片后,如所述报文分片的序列号大于从所述第四RAM中读出的下一个到达的序列号加上第一指定值,则将所述所有所述RAM中从所述报文的首地址开始,到从所述第四RAM中读出的下一个到达的序列号加上第二指定值的序列号对应的数据消除,所述第二指定值小于或者等于所述第一指定值。
在一可选实施例中,所述处理模块,如确定待消除的序列号对应的分片是包尾分片,则对从所述第二RAM中读出对应的包首序列号开始直到所述包尾分片的序列号进行组包,然后将所述第一RAM、所述第二RAM和所述第三RAM中对应序列号的信息清零,将下个包的包首序列号写入所述第二RAM中,将所述第四RAM中的下一个到达的序列号值加1,然后继续读下一个待消除的序列号。
在一实施例中,所述处理模块,所述接收到报文分片后,如接收到的报文分片为下个报文的包头分片,则将接收到所述包头分片之前的报文分片进行强制组包。
在一可选实施例中,所述处理模块,组包时从待组包的首序列号开始,从四个所述RAM中读取报文分片的信息进行组包处理,包括:从待组包的首序列号开始直到包尾序列号,依次从四个所述RAM中读取报文分片的长度,根据报文分片的序列号和报文分片的长度从所述指定存储单元中读取对应的报文分片的数据进行组包。
采用本发明实施例提供的方法及装置,在多捆绑组多链路前提下,可以大幅降低RAM资源的占有率,只需要通过4个RAM,每个RAM的地址就是捆绑组号,就可以实现多捆绑组的报文分片重组的主要功能,从而大大节省了RAM资源,为系统带来更宽裕的资源空间,增强了可实现性。
本发明实施例还可以在序列号丢失时,通过清除水线,快速的清除丢弃的分片,使期望值逐步逼近最新的序列号,使业务迅速恢复;本发明实施例的超时机制也可以节省RAM资源:只有在RAM里分片一直未组包出去,同时新的序列号不满足清除水线情况下,才会触发超时机制,而不需要为了等待期望值序列号的到来,将所有的不符合期望值的序列号进行专门的缓存,浪费了缓存资源,该超时机制同时能保证数据不滞留在RAM里,确保了业务的畅通。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (18)
1.一种报文分片存储的方法,包括:
接收到报文分片后,将所述报文分片的数据存储于指定存储单元;
分别在四个随机存取存储器RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息。
2.如权利要求1所述的方法,其特征在于:所述分别在四个RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息,包括:
在第一RAM中与所述报文分片的捆绑组号对应的地址中,存储指示各序列号是否存在分片的信息;
在第二RAM中与所述报文分片的捆绑组号对应的地址中,存储指示所述报文分片的开始或结束标记的信息和所属的捆绑组待组包的首序列号值;
在第三RAM中与所述报文分片的捆绑组号对应的地址中,存储所述报文分片的长度;
在第四RAM中与所述报文分片的捆绑组号对应的地址中,存储所述报文分片所属的捆绑组下一个到达的序列号。
3.一种报文分片存储的装置,其特征在于,包括:一指定存储单元和四个随机存取存储器RAM,其中,
所述指定存储单元,用于存储接收到报文分片的数据;
四个所述RAM,用于分别在与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息。
4.如权利要求3所述的装置,其特征在于:
第一RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储指示各序列号是否存在分片的信息;
第二RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储指示所述报文分片的开始或结束标记的信息和所属的捆绑组待组包的首序列号值;
第三RAM,用于在与所述报文分片的捆绑组号对应的地址中存储所述报文分片的长度;
第四RAM,用于在与所述报文分片的捆绑组号对应的地址中存储所述报文分片所属的捆绑组下一个到达的序列号。
5.一种报文分片重组的方法,包括:
接收到报文分片后,将所述报文分片的数据存储于指定存储单元,分别在四个随机存取存储器RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息;
组包时从待组包的首序列号开始,从四个所述RAM中读取报文分片的信息进行组包处理。
6.如权利要求5所述的方法,其特征在于:所述分别在四个RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息,包括:
在第一RAM中与所述报文分片的捆绑组号对应的地址中,存储指示各序列号是否存在分片的信息;
在第二RAM中与所述报文分片的捆绑组号对应的地址中,存储指示所述报文分片的开始或结束标记的信息和所属的捆绑组待组包的首序列号值;
在第三RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的长度;
在第四RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片所属的捆绑组下一个到达的序列号。
7.如权利要求6所述的方法,其特征在于:所述接收到报文分片后,还包括:
如接收到的报文分片的系列号与已读取出的且尚未组包成功的序列号相同,或者检测到超过指定时间未接收到下一个报文分片,则对所有已接收到的该捆绑组的报文分片进行强制组包。
8.如权利要求6所述的方法,其特征在于:所述接收到报文分片后,还包括:
如所述报文分片的序列号大于从所述第四RAM中读出的下一个到达的序列号加上第一指定值,则将所有所述RAM中从所述报文的首地址开始,到从所述第四RAM中读出的下一个到达的序列号加上第二指定值的序列号对应的数据消除,所述第二指定值小于或者等于所述第一指定值。
9.如权利要求8所述的方法,其特征在于:所述将四个所述RAM中从所述报文的首地址开始,到从所述第四RAM中读出的下一个到达的序列号加上第二指定值的序列号对应的数据消除,包括:
如确定待消除的序列号对应的分片是包尾分片,则对从所述第二RAM中读出对应的包首序列号开始直到所述包尾分片的序列号进行组包,然后将所述第一RAM、所述第二RAM和所述第三RAM中对应序列号的信息清零,将下个包的包首序列号写入所述第二RAM中,将所述第四RAM中的下一个到达的序列号值加1,然后继续读下一个待消除的序列号。
10.如权利要求6所述的方法,其特征在于:所述接收到报文分片后,还包括:
如接收到的报文分片为下个报文的包头分片,则将接收到所述包头分片之前的报文分片进行强制组包。
11.如权利要求5所述的方法,其特征在于:所述组包时从待组包的首序列号开始,从四个所述RAM中读取报文分片的信息进行组包处理,包括:
从待组包的首序列号开始直到包尾序列号,依次从四个所述RAM中读取报文分片的长度,根据报文分片的序列号和报文分片的长度从所述指定存储单元中读取对应的报文分片的数据进行组包。
12.一种报文分片重组的装置,其特征在于,包括:
存储模块,用于接收到报文分片后,将所述报文分片的数据存储于指定存储单元,分别在四个随机存取存储器RAM中与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息;
处理模块,用于组包时从待组包的首序列号开始,从四个所述RAM中读取报文分片的信息进行组包处理。
13.如权利要求12所述的装置,其特征在于:所述存储模块包括所述指定存储单元和四个随机存取存储器RAM,其中,
所述指定存储单元,用于存储接收到报文分片的数据;
四个所述RAM,用于分别在与所述报文分片的捆绑组号对应的地址中存储所述报文分片的信息,其中,
第一RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储指示各序列号是否存在分片的信息;
第二RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储指示所述报文分片的开始或结束标记的信息和所属的捆绑组待组包的首序列号值;
第三RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储所述报文分片的长度;
第四RAM,用于在与所述报文分片的捆绑组号对应的地址中,存储所述报文分片所属的捆绑组下一个到达的序列号。
14.如权利要求13所述的装置,其特征在于:
所述处理模块,用于如接收到的报文分片的系列号与已读取出的且尚未组包成功的序列号相同,或者检测到超过指定时间未接收到下一个报文分片,则对所有已接收到的该捆绑组的报文分片进行强制组包。
15.如权利要求13所述的装置,其特征在于:
所述处理模块,所述接收到报文分片后,如所述报文分片的序列号大于从所述第四RAM中读出的下一个到达的序列号加上第一指定值,则将所有所述RAM中从所述报文的首地址开始,到从所述第四RAM中读出的下一个到达的序列号加上第二指定值的序列号对应的数据消除,所述第二指定值小于或者等于所述第一指定值。
16.如权利要求15所述的装置,其特征在于:
所述处理模块,如确定待消除的序列号对应的分片是包尾分片,则对从所述第二RAM中读出对应的包首序列号开始直到所述包尾分片的序列号进行组包,然后将所述第一RAM、所述第二RAM和所述第三RAM中对应序列号的信息清零,将下个包的包首序列号写入所述第二RAM中,将所述第四RAM中的下一个到达的序列号值加1,然后继续读下一个待消除的序列号。
17.如权利要求13所述的装置,其特征在于:
所述处理模块,所述接收到报文分片后,如接收到的报文分片为下个报文的包头分片,则将接收到所述包头分片之前的报文分片进行强制组包。
18.如权利要求12所述的装置,其特征在于:
所述处理模块,组包时从待组包的首序列号开始,从四个所述RAM中读取报文分片的信息进行组包处理,包括:从待组包的首序列号开始直到包尾序列号,依次从四个所述RAM中读取报文分片的长度,根据报文分片的序列号和报文分片的长度从所述指定存储单元中读取对应的报文分片的数据进行组包。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710188546.8A CN108667755B (zh) | 2017-03-27 | 2017-03-27 | 一种报文分片存储及重组的方法和装置 |
PCT/CN2018/076322 WO2018177041A1 (zh) | 2017-03-27 | 2018-02-11 | 一种报文分片存储及重组的方法、装置和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710188546.8A CN108667755B (zh) | 2017-03-27 | 2017-03-27 | 一种报文分片存储及重组的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108667755A true CN108667755A (zh) | 2018-10-16 |
CN108667755B CN108667755B (zh) | 2021-10-22 |
Family
ID=63674169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710188546.8A Active CN108667755B (zh) | 2017-03-27 | 2017-03-27 | 一种报文分片存储及重组的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108667755B (zh) |
WO (1) | WO2018177041A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491871A (zh) * | 2020-11-25 | 2021-03-12 | 北京宝兰德软件股份有限公司 | 一种tcp重组方法、装置、电子设备及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111371703A (zh) * | 2018-12-25 | 2020-07-03 | 迈普通信技术股份有限公司 | 一种报文重组方法及网络设备 |
CN113691469B (zh) * | 2021-07-27 | 2023-12-26 | 新华三技术有限公司合肥分公司 | 报文乱序重排方法及单板 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022411A (zh) * | 2007-03-07 | 2007-08-22 | 华为技术有限公司 | 多链路捆绑协议报文分片接收方法 |
US7304996B1 (en) * | 2004-03-30 | 2007-12-04 | Extreme Networks, Inc. | System and method for assembling a data packet |
US20090119565A1 (en) * | 2002-01-10 | 2009-05-07 | Samsung Electronics Co., Ltd. | Data transmitting/receiving system and method thereof |
CN101447928A (zh) * | 2008-12-31 | 2009-06-03 | 华为技术有限公司 | 分片信息处理的方法和装置 |
WO2010022629A1 (zh) * | 2008-08-27 | 2010-03-04 | 华为技术有限公司 | 一种多链路协议分片数据的重组方法、装置及系统 |
CN101674234A (zh) * | 2009-08-21 | 2010-03-17 | 曙光信息产业(北京)有限公司 | Ip报文的分片重组方法和装置 |
CN101917472A (zh) * | 2010-08-12 | 2010-12-15 | 北京星网锐捷网络技术有限公司 | 一种多链路报文的重组方法、装置及设备 |
CN105610744A (zh) * | 2016-01-28 | 2016-05-25 | 东南大学 | 一种ip报文分片与重组方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7814165B2 (en) * | 2005-12-29 | 2010-10-12 | Sap Ag | Message classification system and method |
CN102111339B (zh) * | 2011-03-24 | 2012-08-15 | 福建星网锐捷网络有限公司 | 报文发送方法及网络设备 |
-
2017
- 2017-03-27 CN CN201710188546.8A patent/CN108667755B/zh active Active
-
2018
- 2018-02-11 WO PCT/CN2018/076322 patent/WO2018177041A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090119565A1 (en) * | 2002-01-10 | 2009-05-07 | Samsung Electronics Co., Ltd. | Data transmitting/receiving system and method thereof |
US7304996B1 (en) * | 2004-03-30 | 2007-12-04 | Extreme Networks, Inc. | System and method for assembling a data packet |
CN101022411A (zh) * | 2007-03-07 | 2007-08-22 | 华为技术有限公司 | 多链路捆绑协议报文分片接收方法 |
CN100531147C (zh) * | 2007-03-07 | 2009-08-19 | 华为技术有限公司 | 多链路捆绑协议报文分片接收方法 |
WO2010022629A1 (zh) * | 2008-08-27 | 2010-03-04 | 华为技术有限公司 | 一种多链路协议分片数据的重组方法、装置及系统 |
CN101447928A (zh) * | 2008-12-31 | 2009-06-03 | 华为技术有限公司 | 分片信息处理的方法和装置 |
CN101674234A (zh) * | 2009-08-21 | 2010-03-17 | 曙光信息产业(北京)有限公司 | Ip报文的分片重组方法和装置 |
CN101917472A (zh) * | 2010-08-12 | 2010-12-15 | 北京星网锐捷网络技术有限公司 | 一种多链路报文的重组方法、装置及设备 |
CN105610744A (zh) * | 2016-01-28 | 2016-05-25 | 东南大学 | 一种ip报文分片与重组方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491871A (zh) * | 2020-11-25 | 2021-03-12 | 北京宝兰德软件股份有限公司 | 一种tcp重组方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108667755B (zh) | 2021-10-22 |
WO2018177041A1 (zh) | 2018-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9276835B2 (en) | Packet segmentation with different segment sizes for a switch fabric | |
US10044646B1 (en) | Systems and methods for efficiently storing packet data in network switches | |
EP2353017B1 (en) | Packet aggregation and fragmentation at layer-2 over a managed network | |
US7782849B2 (en) | Data switch and switch fabric | |
CN108667755A (zh) | 一种报文分片存储及重组的方法和装置 | |
CN102104548B (zh) | 一种数据包接收处理方法和装置 | |
US6788680B1 (en) | Defferrable processing option for fast path forwarding | |
WO2012162949A1 (zh) | 一种报文重组重排序方法、装置和系统 | |
US7352766B2 (en) | High-speed memory having a modular structure | |
US7126959B2 (en) | High-speed packet memory | |
US9942169B1 (en) | Systems and methods for efficiently searching for stored data | |
US7088731B2 (en) | Memory management for packet switching device | |
CN105656807A (zh) | 一种网络芯片多通道数据传输方法及传输装置 | |
CN111181819B (zh) | 一种基于链表结构的接收多字节数据帧的串口通讯方法 | |
CN114584560A (zh) | 一种分片帧重组方法及装置 | |
EP1768315B1 (en) | A method for storing the data packet by using the pointer technique | |
US8363653B2 (en) | Packet forwarding method and device | |
KR20160117232A (ko) | 언더런을 방지하기 위한 패킷 메모리 시스템, 방법, 및 디바이스 | |
CN100502297C (zh) | 因特网协议(ip)包进行重组的装置和方法 | |
CN115002052B (zh) | 一种分层的缓存控制器、控制方法及控制设备 | |
CN112235206A (zh) | 一种基于单片机的环形缓冲队列数据接收机制 | |
JP3198547B2 (ja) | 受信装置のバッファ管理方法 | |
CN109802900B (zh) | 报文缓存、读取方法、装置及计算机可读存储介质 | |
US9128785B2 (en) | System and method for efficient shared buffer management | |
CN107040478A (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 |