一种pdcp sdu重排序方法和装置

文档序号:1398608 发布日期:2020-03-03 浏览:5次 >En<

阅读说明:本技术 一种pdcp sdu重排序方法和装置 (PDCP SDU reordering method and device ) 是由 万欢根 于 2018-08-22 设计创作,主要内容包括:本申请提供了一种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的一直连续增长进行提交。(The application provides a PDCP SDU reordering method and a device, wherein the method comprises the following steps: when the PDCP SDU obtained after receiving the PDCP header is removed is stored in a cache, when the fact that the COUNT is not equal to RX _ DELIV is determined, a deep packet inspection technology is used for carrying out TCP protocol header analysis processing on an IP series header contained in the PDCP SDU; if the PDCP SDU is determined to be a TCP message and matched with the corresponding tuple information, determining whether a TCP SN in a header of the PDCP SDU is the same as a TCP NEXT SN corresponding to the tuple information, and if so, submitting the PDCP SDU to an upper layer; otherwise, the PDCP SDU is not submitted to an upper layer. The method can carry out submission without depending on the continuous increase of the COUNT when the disorder occurs.)

一种PDCP SDU重排序方法和装置

技术领域

本发明涉及通信技术领域,特别涉及一种(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传输速度。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:视频处理方法、装置、系统、分析服务器及转码服务器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类