CN110858828A - 一种pdcp sdu重排序方法和装置 - Google Patents

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

Info

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
Application number
CN201810958794.0A
Other languages
English (en)
Inventor
万欢根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Potevio Information Technology Co Ltd
Original Assignee
Potevio Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Potevio Information Technology Co Ltd filed Critical Potevio Information Technology Co Ltd
Priority to CN201810958794.0A priority Critical patent/CN110858828A/zh
Publication of CN110858828A publication Critical patent/CN110858828A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-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

一种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传输速度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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的绑定关系。
CN201810958794.0A 2018-08-22 2018-08-22 一种pdcp sdu重排序方法和装置 Withdrawn CN110858828A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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封包的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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