CN110858828A - 一种pdcp sdu重排序方法和装置 - Google Patents
一种pdcp sdu重排序方法和装置 Download PDFInfo
- Publication number
- CN110858828A CN110858828A CN201810958794.0A CN201810958794A CN110858828A CN 110858828 A CN110858828 A CN 110858828A CN 201810958794 A CN201810958794 A CN 201810958794A CN 110858828 A CN110858828 A CN 110858828A
- Authority
- CN
- China
- Prior art keywords
- pdcp sdu
- tcp
- count
- pdcp
- tuple 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.)
- Withdrawn
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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/163—In-band adaptation of TCP data exchange; In-band control procedures
Abstract
本申请提供了一种PDCP SDU重排序方法和装置,该方法包括:将接收去PDCP头后得到的PDCP SDU存到缓存中时,当确定COUNT不等于RX_DELIV时,使用深度包检测技术对所述PDCP SDU所包含的IP系列头进行TCP协议头解析处理;若确定该PDCP SDU为TCP报文,且匹配到对应的元组信息时,确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCP NEXT SN是否相同,如果是,将该PDCP SDU向上层提交;否则,不将该PDCP SDU向上层提交。该方法在出现乱序的时候,能够不依赖于COUNT的一直连续增长进行提交。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种(Packet Data Convergence Protocol,PDCP)服务数据单元(Service Data Unit,SDU)重排序方法和装置。
背景技术
对于用户面,PDCP层的主要服务和功能如下:
PDCP SN号维护;
头压缩和解压缩:仅支持ROHC;
用户数据的转发;
重排序和重复检查;
PDCP SDU重传;
加密、解密和完整性保护;
PDCP SDU丢弃;
PDCP重建和RLC AM数据恢复。
5G NR空口用户面L2协议包括SDAP、PDCP、RLC和MAC协议;其中,在PDCP协议中,PDCP发送实体维护PDCP序列号(SN)号,组装PDCP数据PDU的PDU头时填写PDCP SN字段,PDCPSN从零开始,每发送一个PDCP数据PDU,PDCP SN增1;PDCP接收实体进行重排序处理,依据是从接收到的PDCP数据PDU中解析得到的PDCP SN字段对应的PDCP数值(COUNT)值。
RLC接收实体对于接收到的数据包RLC PDU,先进行解复用串接处理后,然后只要得到一个完整的PDCP PDU就递交给PDCP接收实体,没有重排序处理;那么,PDCP接收实体收到的PDCP PDU顺序可能和对端PDCP实体发送PDCP PDU的顺序不一致,所以,要对收到的PDCP PDU进行重排序处理以保证LTE系统的可靠数据传输处理。
具体实现过程为:
PDCP接收实体按照PDCP COUNT值连续升序向高层递交数据包,如果出现COUNT值不连续的情况,则停止向高层递交数据包,同时启动重排序定时器来监测缺失数据包的到达情况,如果缺失的PDCP PDU在重排序定时器超时之前到达,则正常按COUNT值连续升序向高层递交数据包,直至下一个缺失的PDCP PDU,如果在重排序定时器定时到时,缺失的PDCPPDU仍未到达,则跳过该PDCP PDU,将其后连续COUNT值的全部PDCPSDU都向高层提交,并重启重排序定时器,重排序定时器时长为几ms至3000ms不等。
在5G终端中,对于下行数据传输,如果出现RLC向PDCP递交数据包乱序的情况,PDCP SDU重排序处理时会导致一些数据包无法及时递交给高层,对于TCP/IP协议的业务数据包,增加了下行数据传输所花费的时间,这会导致TCP连接建立延迟以及TCP连接RTT时间增加,进而影响下行传输速率。
发明内容
有鉴于此,本申请提供一种PDCP SDU重排序方法和装置,在出现乱序的时候,能够不依赖于COUNT的一直连续增长进行提交,能够减少TCP连接的RTT时延,加快TCP连接建立速度,提升TCP传输速度。
为解决上述技术问题,本申请的技术方案是这样实现的:
一种PDCP SDU重排序方法,该方法包括:
将接收去PDCP头后得到的PDCP SDU存到缓存中时,确定该PDCPSDU对应的COUNT;
比较COUNT和RX_DELIV的大小;其中,RX_DELIV为由于COUNT值乱序第一个未提交给上层的且仍在等待接收的PDCP SDU对应的COUNT;
当确定COUNT不等于RX_DELIV时,使用深度包检测技术对所述PDCP SDU进行传输控制协议TCP协议头解析处理;
若确定该PDCP SDU为TCP报文,则获取该PDCP SDU中的元组信息,并使用所述元组信息在存储的绑定关系中匹配;其中,所述绑定关系为元组信息和TCP NEXT序列号SN的映射关系;TCP NEXT SN为当前期望接收到的TCP SN;
当匹配到对应的元组信息时,确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCP NEXT SN是否相同,如果是,将该PDCP SDU向上层提交;否则,不将该PDCP SDU向上层提交。
一种分组数据汇聚协议PDCP服务数据单元SDU重排序装置,该装置包括:缓存单元、确定单元、比较单元、处理单元;
所述缓存单元,用于将接收去PDCP头后得到的PDCP SDU存到缓存中;
所述确定单元,用于确定所述缓存单元中的该PDCP SDU对应的COUNT;
所述比较单元,用于比较所述确定单元确定的COUNT,以及记录的RX_DELIV的大小;其中,RX_DELIV为由于COUNT值乱序第一个未提交给上层的且仍在等待接收的PDCP SDU对应的COUNT;
所述处理单元,用于当所述比较单元确定COUNT不等于RX_DELIV时,使用深度包检测技术对所述PDCP SDU进行TCP协议头解析处理;若确定该PDCP SDU为传输控制协议TCP报文,则获取该PDCP SDU中的元组信息,并使用所述元组信息在存储的绑定关系中匹配;其中,所述绑定关系为元组信息和TCP NEXT SN的映射关系;其中,TCP NEXT SN为当前期望接收到的TCP SN;当匹配到对应的元组信息时,确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCP NEXT SN是否相同,如果是,将该PDCP SDU向上层提交;否则,不将该PDCPSDU向上层提交。
由上面的技术方案可知,本申请中在向上层提交的PDCP SDU对应的COUNT值不连续时,依靠DPI技术检测识别不同的TCP连接,维护TCP连接上下文,以及上下文状态信息,将TCP SN序号连续的PDCP SDU不用等到重排序定时器到时,即可优先提交,以此改进重排序处理过程,从而加速重排序递交TCP报文的过程;该方法在出现乱序的时候,能够不依赖于COUNT的一直连续增长进行提交,能够减少TCP连接的RTT时延,加快TCP连接建立速度,提升TCP传输速度。
附图说明
图1为本申请实施例中PDCP SDU重排序流程示意图;
图2为本申请实施例中上交COUNT为5的PDCP SDU后的接收示意图;
图3为本申请实施例中接收COUNT为10的PDCP SDU后的接收示意图;
图4为本申请实施例中接收COUNT为6的PDCP SDU后的接收示意图;
图5为本申请实施例中接收COUNT为7的PDCP SDU后的接收示意图;
图6为本申请实施例中应用于上述技术的装置结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。
本申请实施例中提供一种PDCP SDU重排序方法,在向上层提交的PDCP SDU对应的COUNT值不连续时,依靠DPI技术检测识别不同的TCP连接,维护TCP连接上下文,以及上下文状态信息,将TCP SN序号连续的PDCP SDU不用等到重排序定时器到时,即可优先提交,以此改进重排序处理过程,从而加速重排序递交TCP报文的过程;该方法在出现乱序的时候,能够不依赖于COUNT的一直连续增长进行提交,能够减少TCP连接的RTT时延,加快TCP连接建立速度,提升TCP传输速度。
本申请实施例中执行所有操作的主体为PDCP接收实体,下文为了描述方便称为处理设备。
下面结合附图,详细说明本申请实施例中PDCP SDU重排序过程。
参见图1,图1为本申请实施例中PDCP SDU重排序流程示意图。具体步骤为:
步骤101,处理设备将接收去PDCP头后得到的PDCP SDU存到缓存中时,确定该PDCPSDU对应的COUNT。
处理设备初始设置RX_NEXT为0,RX_DELIV为0,其中,RX_DELIV为由于COUNT值乱序第一个未提交给上层的且仍在等待接收的PDCP SDU对应的COUNT;RX_NEXT为期望接收到的下一个COUNT,如提交了COUNT为0-5的PDCP SDU,以及COUNT为7、8的PDCP SDU,则RX_DELIV为6;如接收到了COUNT为8的PDCP SDU后,未再接收到比8大的COUNT的PDCP SDU,则RX_NEXT为9。
本申请实施例中接收到一个PDCP SDU时,是否存到缓存中,同现有实现,简要描述为:
从低层接收到一个PDCP数据PDU时,PDCP接收实体要判断接收到的PDCP数据PDU的COUNT,即RCVD_COUNT,如下处理:
当RCVD_SN<SN(RX_DELIV)-Window_Size:
RCVD_HFN=HFN(RX_DELIV)+1;
否则,当RCVD_SN>=SN(RX_DELIV)+Window_Size:
RCVD_HFN=HFN(RX_DELIV)-1;
否则:
RCVD_HFN=HFN(RX_DELIV);
RCVD_COUNT=[RCVD_HFN,RCVD_SN]。
在确定接收到的PDCP数据PDU的COUNT值等于RCVD_COUNT后,PDCP接收实体要:
使用COUNT=RCVD_COUNT来对该PDCP数据PDU进行解密和完整性验证;
如果完整性验证失败:
将完整性失败指示给上层;
丢弃该PDCP数据PDU;
如果RCVD_COUNT<RX_DELIV;或
如果该PDCP数据PDU的COUNT=RCVD_COUNT以前收到过:
丢弃该PDCP数据PDU;
如果接收到的携带COUNT值=RCVD_COUNT的PDCP数据PDU在上面没有被丢弃,去掉PDCP头后,将得到的PDCP SDU存储到接收缓存区
本申请具体实现时确定PDCP SDU对应的COUNT的过程,同现有实现,该COUNT与RCVD_SN和RCVD_HFN相关。
步骤102,该处理设备比较COUNT和RX_DELIV的大小。
针对步骤102的比较结果存在如下两种情况:
第一种:
比较结果:COUNT等于RX_DELIV,该种情况为未出现过乱序情况,COUNT值连续递增地接收到PDCP SDU,或者,出现过乱序,且接收到第一个乱序未向上提交的COUNT对应的PDCP SDU。
该种情况,直接将该PDCP SDU向上层提交。
该种情况下对向上层提交的PDCP SDU还需进行如下处理:
使用DPI技术对所述PDCP SDU进行TCP协议头解析处理,若确定该PDCP SDU为TCP报文,则获取该PDCP SDU中的元组信息,并使用所述元组信息在存储的绑定关系中匹配;
当匹配到对应的元组信息时,使用该PDCP SDU的TCP SN与该PDCPSDU对应的TCP报文的载荷长度相加得到TCP NEXT SN,并使用计算得到的TCP NEXT SN更新所述元组信息对应的TCP NEXT SN;
当未匹配到对应的元组信息时,存储所述元组信息与计算得到的TCPNEXT SN的绑定关系。
至于COUNT小于RX_DELIV在PDCP SDU存入缓存中的时候已经过滤掉,存储缓存中的PDCP SDU不会出现这种情况。
在将该PDCP SDU向上层提交后,还需进一步执行如下处理:
首先确定缓存中是否存在COUNT为当前向上层提交的PDCP SDU对应的COUNT加1的PDCP SDU;
当缓存中存在与所述PDCP SDU对应的COUNT连续递增的PDCPSDU,将缓存中的该PDCP SDU向上层提交;以此类推,直到缓存中不存在COUNT连续递增的PDCP SDU。
当缓存中不存在与所述PDCP SDU对应的COUNT连续递增的PDCPSDU时,即不包括当前提交的PDCP SDU对应的COUNT加1的PDCP SDU(当前提交的PDCP SDU包括刚存到缓存中的PDCP SDU,以及缓存时未提交现在提交的PDCP SDU),执行如下操作:
确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值是否相同:
当确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值相同,则将所述优先提交列表中该最小值,以及与该最小值连续递增的值删除;并将RX_DELIV更新为所述优先提交列表中删除的最大值加1;
当确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值不相同,则将RX_DELIV更新为所述COUNT加1。
第二种:
比较结果:COUNT不等于RX_DELIV,这种情况为出现过乱序,且接收到比第一个乱序未上传的PDCP SDU对应的COUNT值大的PDCP SDU,或者首次出现乱序的情况。
该种情况包括两种情况:出现过乱序,且接收到比第一个乱序未上传的PDCP SDU对应的COUNT值大的PDCP SDU,以及首次出现乱序的情况;根据是否启动t-Reordering定时器,确定具体是哪种情况:
当t-Reordering定时器未启动时,确定首次出现乱序的情况,执行步骤103;当t-Reordering定时器未启动时,确定接收到比第一个乱序未上传的PDCP SDU对应的COUNT值大的PDCP SDU时,执行如下步骤:
这时,需通过DPI技术确定是否向上层提交该PDCP SDU,具体处理过程如下:
使用DPI技术对所述PDCP SDU进行TCP协议头解析处理,若确定该PDCP SDU为TCP报文,则获取该PDCP SDU中的元组信息,并使用所述元组信息存储的绑定关系中匹配;
当匹配到对应的元组信息时,使用该PDCP SDU的TCP SN与所述元组信息绑定的TCP NEXT SN是否相同,如果是,将该PDCP SDU向上层提交;并使用该PDCP SDU的TCP SN与该PDCP SDU对应的TCP报文的载荷长度相加得到TCP NEXT SN,并使用计算得到的TCP NEXTSN更新所述元组信息对应的TCP NEXT SN;否则,不向上层提交该PDCP SDU,也不更新TCPNEXT SN。
当未匹配到对应的元组信息时,保持该PDCP SDU在缓存中,不向上层提交该PDCPSDU。
步骤103,该处理设备当确定COUNT不等于RX_DELIV时,使用DPI技术对所述PDCPSDU进行TCP协议头解析处理。
本步骤中,在确定COUNT不等于RX_DELIV,且t-Reordering定时器未启动时,进一步执行的操作包括:启动t-Reordering定时器;并将RX_REORD更新为当前接收到的PDCPSDU对应的COUNT加1;t-Reordering定时器为重排序定时器,同现有实现中的重排序定时器相同。
当所述t-Reordering定时器正在运行时,若RX_DELIV不小于RX_REORD时,停止所述t-Reordering定时器;
当该t-Reordering定时器定时到时,若缓存中存在COUNT大于RX_DELIV的PDCPSDU,则将COUNT大于RX_DELIV的PDCP SDU向上层提交。
步骤104,该处理设备若确定该PDCP SDU为TCP报文,则获取该PDCP SDU中的元组信息,并使用所述元组信息存储的绑定关系中匹配;其中,所述绑定关系为元组信息和TCPNEXT SN的映射关系。
其中,TCP NEXT SN为当前期望接收到的TCP SN。
当识别PDCP SDU为TCP报文时,解析报头中(源因特网协议(IP)地址、目标IP地址、源端口号、目标端口号)作为标识号组,并根据TCP头中标志字段区分报文类型,分别进行处理:
如果为(发起连接(SYN),确认(ACK))报文,以(IP地址+端口号对)为标识建立TCP连接上下文;
如果为(关闭连接(FIN))、(FIN,ACK)、(重置连接(RST))、(RST,ACK)报文,以(IP地址+端口号对)为标识查找并删除TCP连接上下文;
如果为其它携带业务数据的TCP报文,以(IP地址+端口号对)为标识查找TCP连接上下文。
也可以使用所有元组信息作为识别TCP上下文的信息,在具体实现时,可以为每个TCP上下文分配一个唯一标识,也可以使用元组信息直接匹配,不分配TCP上下文标识。
步骤105,该处理设备当匹配到对应的元组信息时,确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCP NEXT SN是否相同,如果是,将该PDCP SDU向上层提交;否则,不将该PDCP SDU向上层提交。
针对第二种情况的两种情况,当确定将该PDCP SDU向上层提交时,将该PDCP SDU携带的COUNT记录到优先提交列表中。
本申请实施例中,针对第二种情况,当未匹配到对应的元组信息,或确定该PDCPSDU不为TCP报文时,不将该PDCP SDU向上层提交;只会等到COUNT值连续增加,或t-Reordering定时器结束后,将该PDCP SDU向上层提交。
针对本申请实施例中的所有情况,若确定该PDCP SDU不为TCP报文时,则不会存储相关绑定信息。
上述两种情况(第一种情况和第二种情况)的实现中,当确定COUNT不小于RX_NEXT时,将RX_NEXT更新为该PDCP SDU对应的COUNT加1;即更新RX_NEXT的值为存储到缓存中过的PDCP SDU对应的COUNT加1,无论当前还存在缓存中的,还是已向上层提交的PDCP SDU对应的COUNT中最大的COUNT加1作为当前记录的RX_NEXT。
当确定COUNT小于RX_NEXT时,不更新RX_NEXT。
当确定COUNT等于RX_DELIV时,将RX_DELIV更新为该PDCP SDU对应的COUNT加1;
当确定COUNT不等于RX_DELIV时,不更新RX_DELIV。
下面结合实例,详细说明本申请实施例中实现PDCP SDU重排序的具体过程。
假设要传输10个PDCP PDU,COUNT值为0、3、6、7的PDCP PDU对应一个TCP连接,COUNT值为1、4、8、9、10的PDCP PDU对应一个TCP连接,COUNT值为2和5的PDCP PDU对应一个TCP连接。
在具体实现时,使用对应元组信息的绑定作为唯一标识TCP连接。
初始设置RX_NEXT为0,RX_DELIV为0,RX_REORD为0;t-Reordering定时器未运行。
假设接收到COUNT为0的PDCP SDU,并存储到缓存中时,此时为上文提到的第一种情况,直接将缓存中的PDCP SDU向上层提交;并执行如下操作:
对该PDCP SDU进行TCP协议头解析,识别其为TCP报文,继续根据报头中的源IP地址、目标IP地址、源端口号、目标端口号为标识建立TCP连接上下文1,并计算得到TCP NEXTSN,与该PDCP SDU的元组信息绑定记录。
其中,TCP NEXT SN为该PDCP SDU对应的TCP报文的SN与TCP报文载荷的长度的和。
还需将RX_NEXT更新为1;RX_DELIV更新为1,RX_REORD不变;t-Reordering定时器未运行。
接下来接收到COUNT值为1、2、3、4、5的PDCP PDU,其处理过程与对COUNT值为1的PDCP PDU的处理过程类似,这里不再一一描述。
将COUNT值为5的PDCP SDU向上层提交后,各变量的取值为:
RX_NEXT为6、RX_DELIV为6、RX_REORD为0,t-Reordering定时器未运行。
参见图2,图2为本申请实施例中上交COUNT为5的PDCP SDU后的接收示意图。
图2中给出COUNT为0到5的PDCP SDU的接收示意图,且显示未出现混乱重排序的PDCP SDU。
若在上报COUNT为5的PDCP SDU后,存储到缓存中的PDCP SDU对应的COUNT为8,则属于上述第二种情况中未启动t-Reordering定时器的情况,先更新RX_NEXT为9,即COUNT(8)不等于RX_DELIV(6),且未启动t-Reordering定时器。
此时,需启动t-Reordering定时器,并将RX_REORD更新为9;
并需使用DPI技术对所述PDCP SDU进行TCP协议头解析处理;
若确定该PDCP SDU为TCP报文,则获取该PDCP SDU中的元组信息,并使用所述元组信息存储的绑定关系中匹配;
当匹配到对应的元组信息时,确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCP NEXT SN是否相同,如果是,将该PDCP SDU向上层提交;否则,不将该PDCP SDU向上层提交。
由于COUNT为8的PDCPU SDU与COUNT为4的PDCPU SDU对应同一TCP连接,且之间不存在其他PDCP SDU,因此,最终确定匹配到对应的元组信息时,且确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCP NEXT SN相同,则将该PDCP SDU向上层提交,并更新RX_NEXT为9,RX_DELIV仍为6;并计算更新所述元组信息对应的TCPNEXT SN。
将该PDCP SDU对应的COUNT 8记录到优先提交列表中。
假设此后又接收到COUNT为9和10的PDCP SDU,则处理步骤同对COUNT为8的PDCPSDU的处理过程。
将COUNT为10的PDCP SDU向上层提交后,各状态变量的值更新为:
RX_NEXT为11、RX_DELIV为6、RX_REORD为9,t-Reordering定时器运行中,优先提交列表中记录的COUNT为8、9、10。
参见图3,图3为本申请实施例中接收COUNT为10的PDCP SDU后的接收示意图。
图3中显示COUNT为6和7的PDCP SDU未接收,而优先接收了COUNT为8、9、10的PDCPSDU。
假设在提交COUNT为10的PDCP SDU后,接收到COUNT为6的PDCPSDU,则确定比较结果:COUNT(6)等于RX_DELIV(6),属于上述第一种情况。
该种情况,直接将该PDCP SDU向上层提交。
针对该种情况,针对向上层提交的PDCP SDU还需进行如下处理:
使用DPI技术对所述PDCP SDU进行TCP协议头解析处理,若确定该PDCP SDU为TCP报文,则获取该PDCP SDU中的元组信息,并使用所述元组信息存储的绑定关系中匹配;
当匹配到对应的元组信息时,使用该PDCP SDU的TCP SN与该PDCPSDU对应的TCP报文的载荷长度相加得到TCP NEXT SN,并使用计算得到的TCP NEXT SN更新所述元组信息对应的TCP NEXT SN;
当未匹配到对应的元组信息时,存储所述元组信息与计算得到的TCPNEXT SN的绑定关系。
由于COUNT 6与COUNT 3对应同一TCP连接,且之间不存在该TCP连接上的其他PDCPSDU,则确定结果为:匹配到对应的元组信息,使用该PDCP SDU的TCP SN与该PDCP SDU对应的TCP报文的载荷长度相加得到TCP NEXT SN,并使用计算得到的TCP NEXT SN更新所述元组信息对应的TCP NEXT SN。
针对该种情况,在将该PDCP SDU向上层提交后,还需进一步执行如下处理:
首先确定缓存中是否存在COUNT为当前向上层提交的PDCP SDU对应的COUNT加1的PDCP SDU;即缓存中是否存在COUNT为7的PDCPSDU。
当存在,将缓存中的该PDCP SDU向上层提交;以此类推,直到缓存中不存在COUNT连续递增的PDCP SDU。
当缓存中不存在与所述PDCP SDU对应的COUNT连续递增的PDCPSDU时,执行如下操作:
确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值是否相同:
当确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值相同,则将所述优先提交列表中该最小值,以及与该最小值连续递增的值删除;并将RX_DELIV更新为所述优先提交列表中删除的最大值加1;
当确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值不相同,则将RX_DELIV更新为所述COUNT加1。
本实施例中最终确定缓存中不存在COUNT为7的PDCP SDU,且确定优先提交列表中,也不存在COUNT为7的记录,则更新相关变量如下:
RX_DELIV更新为7;RX_NEXT仍然为11;RX_REORD仍然为9,t-Reordering定时器运行中。
此时接收的PCDU SDP见图4,图4为本申请实施例中接收COUNT为6的PDCP SDU后的接收示意图。
图4中显示COUNT为7的PDCP SDU未接收,而优先接收了COUNT为8、9、10的PDCPSDU。
假设在提交COUNT为6的PDCP SDU后,接收到COUNT为7的PDCPSDU,处理过程与接收到COUNT 6的处理过程类似,不同的是,最终确定缓存中不存在COUNT值连续增加的PDCPSDU,而在优先级提交列表中存在COUNT为8、9、10的PDCP SDU,则更新各状态变量为:
RX_NEXT为11、RX_DELIV为11、RX_REORD为9,t-Reordering定时器处于终止状态。
参见图5,图5为本申请实施例中接收COUNT为7的PDCP SDU后的接收示意图。
图5中显示COUNT为0-10的PDCP SDU均接收到。
当t-Reordering定时器正在运行时,若RX_DELIV不小于RX_REORD时,停止t-Reordering定时器;
当该t-Reordering定时器定时到时,若缓存中存在COUNT大于RX_DELIV的PDCPSDU,则将COUNT大于RX_DELIV的PDCP SDU向上层提交。本申请实施例中以缓存中不存在相关PDCP SDU为例。
假设在实际应用中,未接收到COUNT为6的PDCP SDU,而接收到COUNT为7的PDCPSDU时,处于上述第二种情况,这里不再详细描述。
基于同样的发明构思,本申请还提出一种PDCP SDU重排序装置。参见图6,图6为本申请实施例中应用于上述技术的装置结构示意图。该装置包括:缓存单元601、确定单元602、比较单元603和处理单元604;
缓存单元601,用于将接收去PDCP头后得到的PDCP SDU存到缓存中;
确定单元602,用于确定缓存单元601中的该PDCP SDU对应的COUNT;
比较单元603,用于比较确定单元602确定的COUNT,以及记录的RX_DELIV的大小;其中,RX_DELIV为由于COUNT值乱序第一个未提交给上层的且仍在等待接收的PDCP SDU对应的COUNT;
处理单元604,用于当比较单元603确定COUNT不等于RX_DELIV时,使用深度包检测技术对所述PDCP SDU进行TCP协议头解析处理;若确定该PDCP SDU为传输控制协议TCP报文,则获取该PDCP SDU中的元组信息,并使用所述元组信息在存储的绑定关系中匹配;其中,所述绑定关系为元组信息和TCP NEXT SN的映射关系;其中,TCP NEXT SN为当前期望接收到的TCPSN;当匹配到对应的元组信息时,确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCP NEXT SN是否相同,如果是,将该PDCP SDU向上层提交;否则,不将该PDCPSDU向上层提交。
其中,
当未匹配到对应的元组信息,或确定该PDCP SDU不为TCP报文时,不将该PDCP SDU向上层提交。
其中,当将该PDCP SDU向上层提交时,将该PDCP SDU携带的COUNT记录到优先提交列表中;
当确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值相同,则将所述优先提交列表中该最小值,以及与该最小值连续递增的值删除;并将RX_DELIV更新为所述优先提交列表中删除的最大值加1;
当确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值不相同,则将RX_DELIV更新为所述COUNT加1。
其中,当确定COUNT不等于RX_DELIV时,若确定当前未启动重排序t-Reordering定时器时,则启动t-Reordering定时器;并将RX_REORD更新为COUNT加1;
当所述t-Reordering定时器正在运行时,若RX_DELIV不小于RX_REORD时,停止所述t-Reordering定时器;
当该t-Reordering定时器定时到时,若缓存中存在COUNT大于RX_DELIV的PDCPSDU,则将COUNT大于RX_DELIV的PDCP SDU向上层提交。
其中,当确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCPNEXT SN相同时,使用该PDCP SDU的TCP SN与该PDCP SDU对应的TCP报文的载荷长度相加得到TCPNEXT SN,并使用计算得到的TCP NEXT SN更新所述元组信息对应的TCP NEXT SN;
当确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCP NEXTSN不相同时,不更新TCP NEXT SN。
较佳地,
处理单元604,进一步用于当比较单元603确定COUNT等于RX_DELIV时,将该PDCPSDU向上层提交;并使用DPI技术对所述PDCP SDU进行TCP协议头解析处理,若确定该PDCPSDU为TCP报文,则获取该PDCP SDU中的元组信息,并使用所述元组信息存储的绑定关系中匹配;当匹配到对应的元组信息时,使用该PDCP SDU的TCP SN与该PDCP SDU对应的TCP报文的载荷长度相加得到TCP NEXT SN,并使用计算得到的TCP NEXT SN更新所述元组信息对应的TCP NEXT SN;当未匹配到对应的元组信息时,存储所述元组信息与计算得到的TCP NEXTSN的绑定关系。
其中,当COUNT等于RX_DELIV,且确定将该PDCP SDU向上层提交后,确定缓存中是否存在COUNT为当前向上层提交的PDCP SDU对应的COUNT加1的PDCP SDU;
当缓存中存在COUNT为当前向上层提交的PDCP SDU对应的COUNT加1的PDCP SDU,将缓存中的该PDCP SDU向上层提交;以此类推,直到缓存中不存在COUNT连续递增的PDCPSDU;
当缓存中不存在与所述PDCP SDU对应的COUNT连续递增的PDCPSDU时,确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值是否相同;
当确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值相同,则将所述优先提交列表中该最小值,以及与该最小值连续递增的值删除;并将RX_DELIV更新为所述优先提交列表中删除的最大值加1;
当确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值不相同,则将RX_DELIV更新为所述COUNT加1。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本申请通过在向上层提交的PDCP SDU对应的COUNT值不连续时,依靠DPI技术检测识别不同的TCP连接,维护TCP连接上下文,以及上下文状态信息,将TCP SN序号连续的PDCP SDU不用等到重排序定时器到时,即可优先提交,以此改进重排序处理过程,从而加速重排序递交TCP报文的过程;该方法在出现乱序的时候,能够不依赖于COUNT的一直连续增长进行提交,能够减少TCP连接的RTT时延,加快TCP连接建立速度,提升TCP传输速度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种分组数据汇聚协议PDCP服务数据单元SDU重排序方法,其特征在于,该方法包括:
将接收去PDCP头后得到的PDCP SDU存到缓存中时,确定该PDCP SDU对应的COUNT;
比较COUNT和RX_DELIV的大小;其中,RX_DELIV为由于COUNT值乱序第一个未提交给上层的且仍在等待接收的PDCP SDU对应的COUNT;
当确定COUNT不等于RX_DELIV时,使用深度包检测技术对所述PDCP SDU进行传输控制协议TCP协议头解析处理;
若确定该PDCP SDU为TCP报文,则获取该PDCP SDU中的元组信息,并使用所述元组信息在存储的绑定关系中匹配;其中,所述绑定关系为元组信息和TCP NEXT序列号SN的映射关系;TCP NEXT SN为当前期望接收到的TCP SN;
当匹配到对应的元组信息时,确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCP NEXT SN是否相同,如果是,将该PDCP SDU向上层提交;否则,不将该PDCP SDU向上层提交。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当未匹配到对应的元组信息,或确定该PDCP SDU不为TCP报文时,不将该PDCP SDU向上层提交。
3.根据权利要求1所述的方法,其特征在于,当将该PDCP SDU向上层提交时,所述方法进一步包括:
将该PDCP SDU携带的COUNT记录到优先提交列表中;
当确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值相同,则将所述优先提交列表中该最小值,以及与该最小值连续递增的值删除;并将RX_DELIV更新为所述优先提交列表中删除的最大值加1;
当确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值不相同,则将RX_DELIV更新为所述COUNT加1。
4.根据权利要求1所述的方法,其特征在于,当确定COUNT不等于RX_DELIV时,所述方法进一步包括:
若确定当前未启动重排序t-Reordering定时器时,则启动t-Reordering定时器;并将RX_REORD更新为COUNT加1;
当所述t-Reordering定时器正在运行时,若RX_DELIV不小于RX_REORD时,停止所述t-Reordering定时器;
当该t-Reordering定时器定时到时,若缓存中存在COUNT大于RX_DELIV的PDCP SDU,则将COUNT大于RX_DELIV的PDCP SDU向上层提交。
5.根据权利要求1所述的方法,其特征在于,当确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCP NEXT SN相同时,所述方法进一步包括:
使用该PDCP SDU的TCP SN与该PDCP SDU对应的TCP报文的载荷长度相加得到TCP NEXTSN,并使用计算得到的TCP NEXT SN更新所述元组信息对应的TCP NEXT SN;
当确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCP NEXT SN不相同时,不更新TCP NEXT SN。
6.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
当确定COUNT等于RX_DELIV时,将该PDCP SDU向上层提交;
并使用DPI技术对所述PDCP SDU进行TCP协议头解析处理,若确定该PDCP SDU为TCP报文,则获取该PDCP SDU中的元组信息,并使用所述元组信息存储的绑定关系中匹配;
当匹配到对应的元组信息时,使用该PDCP SDU的TCP SN与该PDCP SDU对应的TCP报文的载荷长度相加得到TCP NEXT SN,并使用计算得到的TCP NEXT SN更新所述元组信息对应的TCP NEXT SN;
当未匹配到对应的元组信息时,存储所述元组信息与计算得到的TCP NEXT SN的绑定关系。
7.根据权利要求6所述的方法,其特征在于,当COUNT等于RX_DELIV,且确定将该PDCPSDU向上层提交后,所述方法进一步包括:
确定缓存中是否存在COUNT为当前向上层提交的PDCP SDU对应的COUNT加1的PDCPSDU;
当缓存中存在COUNT为当前向上层提交的PDCP SDU对应的COUNT加1的PDCP SDU,将缓存中的该PDCP SDU向上层提交;以此类推,直到缓存中不存在COUNT连续递增的PDCP SDU;
当缓存中不存在与所述PDCP SDU对应的COUNT连续递增的PDCP SDU时,确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值是否相同;
当确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值相同,则将所述优先提交列表中该最小值,以及与该最小值连续递增的值删除;并将RX_DELIV更新为所述优先提交列表中删除的最大值加1;
当确定当前向上层提交的PDCP SDU携带的COUNT加1与优先提交列表中的最小值不相同,则将RX_DELIV更新为所述COUNT加1。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法进一步包括:
当确定COUNT不小于RX_NEXT时,将RX_NEXT更新为该PDCP SDU对应的COUNT加1;
当确定COUNT小于RX_NEXT时,不更新RX_NEXT。
9.根据权利要求1-7任一项所述的方法,其特征在于,所述方法进一步包括:
当确定COUNT等于RX_DELIV时,将RX_DELIV更新为该PDCP SDU对应的COUNT加1;
当确定COUNT不等于RX_DELIV时,不更新RX_DELIV。
10.根据权利要求1-7任一项所述方法,其特征在于,
当确定的TCP报文为(发起连接SYN,确认ACK)报文,所述元组信息包括:因特网协议IP地址和端口号对;
当确定的TCP报文为(关闭连接FIN,ACK)、(重置连接RST)、(RST,ACK)报文时,所述元组信息包括:IP地址和端口号对;
当确定的TCP报文为携带业务数据的TCP报文时,所述元组信息包括:IP地址和端口号对。
11.一种分组数据汇聚协议PDCP服务数据单元SDU重排序装置,其特征在于,该装置包括:缓存单元、确定单元、比较单元、处理单元;
所述缓存单元,用于将接收去PDCP头后得到的PDCP SDU存到缓存中;
所述确定单元,用于确定所述缓存单元中的该PDCP SDU对应的COUNT;
所述比较单元,用于比较所述确定单元确定的COUNT,以及记录的RX_DELIV的大小;其中,RX_DELIV为由于COUNT值乱序第一个未提交给上层的且仍在等待接收的PDCP SDU对应的COUNT;
所述处理单元,用于当所述比较单元确定COUNT不等于RX_DELIV时,使用深度包检测技术对所述PDCP SDU进行TCP协议头解析处理;若确定该PDCP SDU为传输控制协议TCP报文,则获取该PDCP SDU中的元组信息,并使用所述元组信息在存储的绑定关系中匹配;其中,所述绑定关系为元组信息和TCP NEXT SN的映射关系;其中,TCP NEXT SN为当前期望接收到的TCP SN;当匹配到对应的元组信息时,确定该PDCP SDU的报头中的TCP SN与所述元组信息对应的TCP NEXT SN是否相同,如果是,将该PDCP SDU向上层提交;否则,不将该PDCP SDU向上层提交。
12.根据权利要求11所述的装置,其特征在于,
所述处理单元,进一步用于当所述比较单元确定COUNT等于RX_DELIV时,将该PDCP SDU向上层提交;并使用DPI技术对所述PDCP SDU进行TCP协议头解析处理,若确定该PDCP SDU为TCP报文,则获取该PDCP SDU中的元组信息,并使用所述元组信息存储的绑定关系中匹配;当匹配到对应的元组信息时,使用该PDCP SDU的TCP SN与该PDCP SDU对应的TCP报文的载荷长度相加得到TCP NEXT SN,并使用计算得到的TCP NEXT SN更新所述元组信息对应的TCP NEXT SN;当未匹配到对应的元组信息时,存储所述元组信息与计算得到的TCP NEXTSN的绑定关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810958794.0A CN110858828A (zh) | 2018-08-22 | 2018-08-22 | 一种pdcp sdu重排序方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810958794.0A CN110858828A (zh) | 2018-08-22 | 2018-08-22 | 一种pdcp sdu重排序方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110858828A true CN110858828A (zh) | 2020-03-03 |
Family
ID=69634793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810958794.0A Withdrawn CN110858828A (zh) | 2018-08-22 | 2018-08-22 | 一种pdcp sdu重排序方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110858828A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022205062A1 (zh) * | 2021-03-31 | 2022-10-06 | 华为技术有限公司 | 一种数据处理的装置和方法 |
CN115174491A (zh) * | 2021-04-02 | 2022-10-11 | 华为技术有限公司 | 一种通信方法及通信装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753629A (zh) * | 2013-12-26 | 2015-07-01 | 联芯科技有限公司 | 一种数据递交方法和装置 |
CN104935413A (zh) * | 2014-03-19 | 2015-09-23 | 夏普株式会社 | 分组数据汇聚协议pdcp实体及其执行的方法 |
CN106063324A (zh) * | 2014-01-28 | 2016-10-26 | 联发科技(新加坡)私人有限公司 | 重排序pdcp封包的方法 |
-
2018
- 2018-08-22 CN CN201810958794.0A patent/CN110858828A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753629A (zh) * | 2013-12-26 | 2015-07-01 | 联芯科技有限公司 | 一种数据递交方法和装置 |
CN106063324A (zh) * | 2014-01-28 | 2016-10-26 | 联发科技(新加坡)私人有限公司 | 重排序pdcp封包的方法 |
CN104935413A (zh) * | 2014-03-19 | 2015-09-23 | 夏普株式会社 | 分组数据汇聚协议pdcp实体及其执行的方法 |
US20170085492A1 (en) * | 2014-03-19 | 2017-03-23 | Sharp Kabushiki Kaisha | Packet data convergence protocol (pdcp) entity and method performed by the same |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022205062A1 (zh) * | 2021-03-31 | 2022-10-06 | 华为技术有限公司 | 一种数据处理的装置和方法 |
CN115174491A (zh) * | 2021-04-02 | 2022-10-11 | 华为技术有限公司 | 一种通信方法及通信装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9641655B2 (en) | Method and apparatus for PCDP discard | |
US8483061B2 (en) | Technique for performing layer 2 processing using a distributed memory architecture | |
EP2168270B1 (en) | A method for handling correctly received but header compression failed packets | |
US20170048765A1 (en) | Method and Apparatus for Handling Out-of-Order Packets During Handover In a Wireless Communication System | |
WO2015139557A1 (zh) | 分组数据汇聚协议pdcp实体及其执行的方法 | |
US20090124259A1 (en) | Layer 2 tunneling of data during handover in a wireless communication system | |
EP2247154B1 (en) | Technique for coordinated RLC and PDCP processing | |
EP1788751A1 (en) | A method of handling RLC SDUs during RLC reset and RLC re-establishment in a UMTS system | |
US9923695B2 (en) | Call processing method and apparatus for use in LTE system | |
KR102300300B1 (ko) | 헤더 압축을 이용한 패킷 통신 방법 및 장치 | |
US20100110984A1 (en) | Retransmission request transmission method, transmitting- side apparatus and receiving-side apparatus | |
KR100954925B1 (ko) | 상위로 PDCP 데이터 유닛(data unit)을 전달하는 방법 | |
KR20090122986A (ko) | 패킷통신방법 및 수신측 장치 | |
JPWO2008123160A1 (ja) | 再送要求送信方法及び受信側装置 | |
KR101578047B1 (ko) | 통신 시스템에서 데이터 패킷 재정렬 장치 및 방법 | |
WO2012109986A1 (zh) | 一种数据传输的方法及装置 | |
CN110858828A (zh) | 一种pdcp sdu重排序方法和装置 | |
WO2012083762A1 (zh) | 数据传输方法、设备及系统 | |
KR102273873B1 (ko) | Lte 시스템을 이용한 호 수행 방법 및 장치 | |
CN111769914B (zh) | 数据通信方法和存储介质 | |
KR101376583B1 (ko) | 이동통신 시스템에서 패킷 데이터 수신 응답 신호 구성방법 및 장치 | |
JP4447028B2 (ja) | 通信制御方法、送信装置、およびコンピュータプログラム | |
JP4372814B2 (ja) | データユニットの送信回数のカウント方法、カウント装置、送信装置、およびコンピュータプログラム | |
US20230412514A1 (en) | Method and apparatus for managing the flow of data in pdcp | |
WO2024017369A1 (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200303 |
|
WW01 | Invention patent application withdrawn after publication |