拥塞处理方法、装置及系统与流程

文档序号:13887130阅读:380来源:国知局

本发明涉及通信领域,具体而言,涉及一种拥塞处理方法、装置及系统。



背景技术:

无线通信技术经过短短数十载的发展,已经从1g发展到4g,虽然四代无线通信技术从系统框架到物理层技术都有不同的设计,但在无线接口的设计上,均采用三层协议模型,即物理层(l1),数据链路层(l2)和网络层(l3)。以lte(longtermevolution,长期演进)系统为例,如图1本发明相关技术lte系统无线接口(uu口)的用户面协议栈架构图,所示协议栈架构图只从lte技术的角度示出了由lte定义的l1,l2,并未示出l3。lte系统中,l2从下到上又包括mac(mediumaccesscontrol,媒体接入控制),rlc(radiolinkcontrol,无线链路控制),和pdcp(packetdataconvergenceprotocol,分组数据汇聚协议)等协议子层,其中mac通过传输信道与物理层phy(l1)进行通信,而pdcp通过pdcp-sap(serviceaccesspoint,服务接入点)与网络层进行通信。

其中ltemac层的功能包括:逻辑信道与传输信道的映射;将一个或多个不同逻辑信道上的macsdu(servicedataunit,服务数据单元)复用到一个传输块上后发送到传输信道上;将一个或多个不同逻辑信道上的macsdu从传输信道接收到的传输块中解复用;调度信息上报;传输格式选择;通过动态调度处理不同ue之间的优先级;ue内不同逻辑信道之间的优先级处理;混合自动重传请求(hybridautomaticrepeatrequest,简称为harq)等。

其中lterlc层存在三种模式,am(acknowledgedmode,确认模式)模式,um(unacknowledgedmode,非确认模式)模式和tm模式(transparentmode,透明模式),其功能包括:重传(通过arq实现);重排序;rlcsdu级联;rlcsdu分段和重组;rlcpdu(protocoldataunit,协议数据单元)重分段;rlcpdu重排序;重复包检测;rlcsdu丢弃,rlc重建等。

rlc的以上功能中,重传和重分段功能只有am模式支持,重排序、级联、分段和重组、重复包检测、rlcsdu丢弃等功能只有am和um模式支持。

rlc的以上功能中,根据对处理时间的不同要求,可以分为两类,一类是“高处理时间要求”的功能,包括rlcsdu级联,rlcsdu分段和重组,rlcpdu重分段和rlcpdu重排序等功能,这些功能与数据的调度和传输时序密切相关,需要在调度和传输时序规定的时间内处理完毕。另一类则是“非高处理时间要求”的功能,包括除上述“高处理时间要求”的功能之外的剩余功能,这些功能与调度和传输时序非紧密相关。

其中ltepdcp层的功能包括:头压缩和解压缩;安全功能,具体包括对数据和信令的加密、解密,对信令的完成性保护;pdcp重建时的重排序,重复包检测和重传(只有在rlc采用am模式时支持);支持双连接(dc)分叉承载(splitbearer)时的包路由,重排序和重传功能(其中重传功能只有在rlc采用am模式时支持)。

lte系统中,mac层的所有功能都是“高处理时间要求”的功能,而pdcp层的所有功能则都是“非高处理时间要求”的功能。

无线通信技术经过几十年的商用,各种智能终端和智能应用层出不穷,无线通信技术也逐渐渗透应用于各个垂直行业,业界预测到2020年左右,无线通信技术的发展指标是实现每区域1000倍的移动数据流量增长,每用户10到100倍的吞吐量增长,连接设备数10到100倍的增长,低功率设备10倍的电池寿命延长,以及端到端5倍延迟的下降,这也是5g技术研究的目标。此外5g新技术需要能过支持各种可能出现的业务,比如embb(enhancedmobilebroadband,增强移动宽带),urllc(ultrareliableandlowlatencycommunications,超可靠低时延通信),mmtc(massivemachine-type-communications,巨量机器通信)等类型的通信。

申请人经过分析发现,要实现5g(newradio)的技术目标,仅依靠对现有网络进行简单增强或者升级无法实现5g技术目标,因此有必要在对现有网络、现有技术进行进一步演进的基础上,加快对新型网络部署策略、新技术研究等方面的探索。其中在网络部署策略方面,一方面可以考虑更加密集化的部署网络,以及使用具有更大带宽(比如500mhz-1ghz)的高频频段,比如6ghz以上频段;另一方面可以考虑联合使用lte技术,5g新技术,和其他无线通信技术,比如wlan技术。而在新技术研究方面,设计5g新波形,新帧(或子帧)结构,新的系统架构以及在此基础上的增强通信过程。

然而申请人发现,相关技术中的l2协议功能设计,由于其固有的架构和功能划分,无法满足5g的设计目标。比如ltel2的三个协议层设计中,存在一些重复实现的功能,尤其存在于rlc和pdcp层之间,比如包括重排序,重复包检测,重传等功能在两个协议层分别实现了两次,这种重复功能的设计一方面增加了软硬件的处理开销,另一方面也不利于实现5g高速率,低功耗,低时延的技术指标。

因此,为了实现5g技术目标,适应5g时代出现的新的网络部署方式、新的物理层技术和新的系统架构,业界提出需要对l2协议架构进行重新设计,对l2协议功能进行重新分配。其中一种可能的设计思路为,将rlc层中“非高处理时间要求”的功能与pdcp层的功能合并到一个协议子层实现,而对于rlc层中“高处理时间要求”的功能,根据不同的需求,可以考虑将其与mac层的功能合并到一个协议子层实现,或者继续保留一个单独的协议子层实现这些功能。

将rlc层中“非高处理时间要求”的功能与pdcp层的功能合并到一个协议子层,去除原来ltel2协议中一些重复功能的设计,将使得原来ltel2中一些关键功能无法工作,其中一个重要功能就是原来ltepdcp层的包丢弃(pdcpdiscard)功能。pdcpdiscard功能设计的初衷是为了解决当无线链路上出现拥塞(上层,比如tcp(transmissioncontrolprotocol,传输控制协议)层的数据发送速率超过无线链路的传输速率)时,可以通过发端pdcp主动丢弃数据包,最终实现将丢包的事实传导到发送端上层(如tcp层),从而引发上层降低数据发送速率,解决拥塞问题(即解决上层数据发送速率超过无线链路的传输速率的问题)。pdcpdiscard功能的失效将导致拥塞问题无法解决,影响业务传输,最终影响用户体验。

针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。



技术实现要素:

本发明实施例提供了一种拥塞处理方法、装置及系统,以至少解决相关技术中上层数据发送速率与无线链路的传输速率不匹配的问题。

根据本发明的一个实施例,提供了一种拥塞处理方法,包括:在发送端的数据链路协议子层为服务数据单元sdu启动丢弃定时器;在所述丢弃定时器超时时,在所述数据链路协议子层丢弃所述sdu,以及,对已经在所述数据链路协议子层组成数据协议数据单元pdu的sdu执行以下操作之一:将所述数据pdu中的所述sdu换成填充比特、丢弃所述数据pdu并发送丢弃通知pdu、继续发送所述数据pdu。

可选地,所述数据链路协议子层为最高数据链路协议子层l2-h,其中,所述l2-h层包含以下功能中的至少一项:头压缩和解压缩、安全、重传、重排序和重复包检测。

可选地,在数据链路协议子层为服务数据单元sdu启动丢弃定时器包括:在所述数据链路协议子层收到来自上层的sdu后,为所述sdu启动所述丢弃定时器;或,在所述数据链路协议子层执行级联操作后,为级联的数据sdu启动所述丢弃定时器,其中,所述数据链路协议子层包括对上层sdu的级联功能;其中,所述上层包括以下至少之一:网络层l3,tcp/ip层,应用层,数据链路层中除了所述数据链路协议子层的其他子层。

可选地,在所述数据链路协议子层包含对上层sdu的级联功能时,所述sdu为级联的sdu;在所述数据链路协议子层不包含所述级联功能时,所述sdu为来自上层的sdu。

可选地,将所述数据pdu中的所述sdu换成填充比特包括:将所述数据pdu中所述sdu所在的数据字段换成预设的填充比特。

可选地,将所述数据pdu中的所述sdu换成填充比特包括:如果在所述丢弃定时器超时之前所述数据链路协议子层已经将包含所述sdu的数据pdu发送给了下一个协议子层,在丢弃定时器超时时,在所述数据链路协议子层将所述数据pdu中的所述sdu换成填充比特并指示所述下一个协议子层丢弃所述数据pdu。

可选地,所述丢弃通知pdu包含所述数据pdu的序列号,所述丢弃通知pdu用于指示所述序列号对应的所述数据pdu已经被发送方丢弃。

可选地,丢弃所述数据pdu并发送丢弃通知pdu包括:在所述数据链路协议子层丢弃所述数据pdu,并通知所述数据链路协议子层的下一层协议子层丢弃所述数据pdu。

可选地,在执行继续发送所述数据pdu之后,所述方法还包括:在数据链路子层丢弃所述sdu之后的预设个数的sdu。

根据本发明的一个实施例,提供了另一种拥塞处理方法,包括:在接收端的数据链路协议子层接收协议数据单元pdu;在所述pdu为包括服务数据单元sdu的数据pdu时,从所述数据pdu中还原出sdu,若还原出全部为填充比特的sdu,在向所述数据链路协议子层的上层递交sdu时忽略所述sdu;或,在所述pdu为丢弃通知pdu时,从所述丢弃通知pdu中获取被丢弃数据pdu的序列号discard_sn,若所述discard_sn是所述数据链路协议子层正在按序等待接收的数据pdu的序列号时,执行更新所述正在按序等待接收的数据pdu的操作。

可选地,从所述数据pdu中还原出sdu包括:去除所述数据pdu的协议数据单元头后得到sdu;或者,去除所述数据pdu的协议数据单元头,并执行完整性验证,解密,解压缩中的至少一个操作后得到sdu。

可选地,在向所述数据链路协议子层的上层递交sdu时忽略所述sdu是指:在向所述数据链路协议子层的上层递交sdu时放弃向所述数据链路协议子层的上层递交所述sdu。

可选地,执行更新所述正在按序等待接收的数据pdu的操作包括:更新接收窗口,向所述数据链路协议子层的上层按序递交窗口更新之后,从序列号小于更新后的正在按序等待接收的数据pdu的序列号的数据pdu中还原出的,并且尚未递交过的sdu。

可选地,更新接收窗口包括:将接收状态变量的值更新到所述discard_sn指示的序列号之后需要按序等待接收的数据pdu的序列号sn,并基于所述更新后的接收状态变量的值更新最大可接收状态变量的值;其中,接收状态变量用于记录正在按序等待接收的pdu的序列号,最大可接收状态变量的值等于所述接收状态变量的值加预设接收窗口尺寸的值。

可选地,执行更新所述正在按序等待接收的数据pdu的操作还包括:在更新所述接收窗口后,如果所述接收状态变量更新后的值小于更新前的值,更新接收超帧号rx_hfn。

可选地,所述方法还包括:若所述discard_sn不是所述数据链路协议子层正在按序等待接收的数据pdu的序列号时,则忽略所述丢弃通知pdu。

根据本发明的另一个实施例,提供了一种拥塞处理装置,应用在发送端,包括:启动模块,用于在数据链路协议子层为服务数据单元sdu启动丢弃定时器;处理模块,用于在所述丢弃定时器超时时,在所述数据链路协议子层丢弃所述sdu,以及,对已经在所述数据链路协议子层组成数据协议数据单元pdu的sdu执行以下操作之一:将所述数据pdu中的所述sdu换成填充比特、丢弃所述数据pdu并发送丢弃通知pdu、继续发送所述数据pdu。

可选地,所述数据链路协议子层为协议子层l2-h,其中,所述l2-h层包含以下功能中的至少一项:头压缩和解压缩、安全、重传、重排序和重复包检测。

根据本发明的另一个实施例,提供了另一种拥塞处理装置,应用在接收端,包括:接收模块,用于在数据链路协议子层接收协议数据单元pdu;处理模块,用于在所述pdu为包括服务数据单元sdu的数据pdu时,从所述数据pdu中还原出sdu,若还原出全部为填充比特的sdu,在向所述数据链路协议子层的上层递交sdu时忽略所述sdu;或,用于在所述pdu为丢弃通知pdu时,从所述丢弃通知pdu中获取被丢弃数据pdu的序列号discard_sn,若所述discard_sn是所述数据链路协议子层正在按序等待接收的数据pdu的序列号时,执行更新所述正在按序等待接收的数据pdu的操作。

可选地,所述处理模块执行更新所述正在按序等待接收的数据pdu的操作包括:更新接收窗口,向所述数据链路协议子层的上层按序递交窗口更新之后,从序列号小于更新后的正在按序等待接收的数据pdu的序列号的数据pdu中还原出的,并且尚未递交过的sdu;其中,接收状态变量用于记录正在按序等待接收的pdu的序列号。最大可接收状态变量的值等于所述接收状态变量的值加预设接收窗口尺寸的值。

可选地,所述处理模块还用于:若所述discard_sn不是所述数据链路协议子层正在按序等待接收的数据pdu的sn号时,则忽略所述丢弃通知pdu。

根据本发明的又一个实施例,提供了一种拥塞处理系统,包括发送端、接收端,所述发送端包括:启动模块,用于在数据链路协议子层为服务数据单元sdu启动丢弃定时器;第一处理模块,用于在所述丢弃定时器超时时,在所述数据链路协议子层丢弃所述sdu,以及,对已经在所述数据链路协议子层组成数据协议数据单元pdu的sdu执行以下操作之一:将所述数据pdu中的所述sdu换成填充比特、丢弃所述数据pdu并发送丢弃通知pdu、继续发送所述数据pdu;

所述接收端包括:接收模块,用于在数据链路协议子层接收协议数据单元pdu;第二处理模块,用于在所述pdu为包括服务数据单元sdu的数据pdu时,从所述数据pdu中还原出sdu,若还原出全部为填充比特的sdu,在向所述数据链路协议子层的上层递交sdu时忽略所述sdu;或,在所述pdu为丢弃通知pdu时,从所述丢弃通知pdu中获取被丢弃数据pdu的序列号discard_sn,若所述discard_sn是所述数据链路协议子层正在按序等待接收的数据pdu的序列号时,执行更新所述正在按序等待接收的数据pdu的操作。

可选地,所述数据链路协议子层为协议子层l2-h,其中,所述l2-h层包含以下功能中的至少一项:头压缩和解压缩、安全、重传、重排序和重复包检测。

根据本发明的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行以下步骤的程序代码:

在发送端的数据链路协议子层为服务数据单元sdu启动丢弃定时器;

在所述丢弃定时器超时时,在所述数据链路协议子层丢弃所述sdu,以及,对已经在所述数据链路协议子层组成数据协议数据单元pdu的sdu执行以下操作之一:将所述数据pdu中的所述sdu换成填充比特、丢弃所述数据pdu并发送丢弃通知pdu、继续发送所述数据pdu。

通过本发明,在发送端传输数据时,在数据链路协议子层为服务数据单元sdu启动丢弃定时器;在丢弃定时器超时时,在数据链路协议子层丢弃sdu,以及,对已经在数据链路协议子层组成数据协议数据单元pdu的sdu执行以下操作之一:将数据pdu中的sdu换成填充比特、丢弃数据pdu并发送丢弃通知pdu、继续发送数据pdu。实现了在发送端主动丢弃数据包的功能,解决了相关技术中上层数据发送速率与无线链路的传输速率不匹配的问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1本发明相关技术lte系统无线接口(uu口)的用户面协议栈架构图;

图2是根据本发明实施例的一种拥塞处理方法的流程图;

图3是本发明实施例的一种5g-nr无线接口的用户面协议栈架构图;

图4是本实施例的又一种5g-nr无线接口的用户面协议栈架构图;

图5是根据本发明实施例的另一种拥塞处理方法的流程图;

图6是根据本发明实施例的拥塞处理系统的结构框图;

图7为本实施例发送方的拥塞处理方法流程图;

图8为本实施例接收方的拥塞处理方法流程图;

图9是实施例1pdu-x的示意图;

图10是实施例1pdu-x’的示意图;

图11是实施例1pdu-m的示意图;

图12为本实施例l2-h维护的接收窗口的示意图;

图13是本实施例接收端数据链路协议子层维护的接收窗口更新后的示意图;

图14是本实施例的一种丢弃通知pdu的示意图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

在本实施例中提供了一种拥塞处理方法,图2是根据本发明实施例的拥塞处理方法的流程图,如图2所示,该流程包括如下步骤:

步骤s202,在发送端的数据链路协议子层为服务数据单元sdu启动丢弃定时器;

步骤s204,在丢弃定时器超时时,在数据链路协议子层丢弃该sdu,以及,对已经在数据链路协议子层组成数据协议数据单元pdu的该sdu执行以下操作之一:将该数据pdu中的该sdu换成填充比特、丢弃该数据pdu并发送丢弃通知pdu、继续发送该数据pdu。

通过上述步骤,在发送端的数据链路协议子层为服务数据单元sdu启动丢弃定时器;在丢弃定时器超时时,在数据链路协议子层丢弃该sdu,以及,对已经在数据链路协议子层组成数据协议数据单元pdu的sdu执行以下操作之一:将该数据pdu中的该sdu换成填充比特、丢弃该数据pdu并发送丢弃通知pdu、继续发送该数据pdu。实现了在发送端主动丢弃数据包的功能,解决了相关技术中上层数据发送速率与无线链路的传输速率不匹配的问题。

可选地,上述步骤的执行主体可以为数据发送端,如基站、终端、发射机等,但不限于此。

可选的,数据链路协议子层为最高数据链路协议子层l2-h,其中,l2-h层包含以下功能中的至少一项:头压缩和解压缩、安全、重传、重排序和重复包检测。

在此结合相关技术中的设计理念进行详细说明,5g时代一种可能的l2协议栈重构设计的思路为,将rlc层中“非高处理时间要求”的功能与pdcp层的功能合并到一个协议子层实现,而对于rlc层中“高处理时间要求”的功能,根据不同的需求,可以考虑将其与mac层的功能合并到一个协议子层实现,或者继续保留一个单独的协议子层实现这些功能。

图3是本发明实施例的一种5g-nr无线接口的用户面协议栈架构图,如图3所示,5g-nr的l2包括两个协议子层,l2-high(简记为l2-h,称之为最高数据链路协议子层)和l2-low(简记为l2-l,称之为最低数据链路协议子层)。其中l2-h包括但不限于相关lte技术中pdcp层的功能,以及rlc层的部分或者全部“非高处理时间要求”功能,这里,部分“非高处理时间要求”功能至少包括重传(通过arq实现),重排序和重复包检测功能。其中l2-h合并设计pdcp和rlc的重传、重排序和重复包检测功能,只留下一重重传、重排序和重复包检测功能。l2-l包括但不限于相关lte技术中mac层的功能以及rlc层的“高处理时间要求”的功能。

图4是本实施例的又一种5g-nr无线接口的用户面协议栈架构图,如图4所示,5g-nr的l2包括三个协议子层,l2-high(简记为l2-h,称之为最高数据链路协议子层),l2-middle(简记为l2-m,称之为中间数据链路协议子层)和l2-low(简记为l2-l,称之为最低数据链路协议子层)。其中l2-h包括但不限于相关lte技术中pdcp层的功能,以及rlc层的部分或者全部“非高处理时间要求”功能,这里,部分“非高处理时间要求”功能至少包括重传(可以通过arq实现),重排序和重复包检测功能。其中l2-h合并设计pdcp和rlc的重传、重排序和重复包检测功能,只留下一重重传、重排序和重复包检测功能。l2-m包括但不限于相关lte技术rlc层中除重传(通过arq实现),重排序和重复包检测功能之外的其他剩余功能,这些剩余功能在5g-nr中不排除需要根据新的无线接口用户面协议栈架构和5g新需求进行修改设计。l2-l包括但不限于相关lte技术中mac层的功能。

l2-h根据不同的业务或信息传输要求,可以支持三种数据处理模式,am模式,um模式和tm模式。其中,对于am模式,l2-h用于接收设备上时,除发生l2-h重建的情况,需要保证经过其处理后发送给上层的数据是按序且连续的,这里这里,l2-h的上层协议层具体可以是一个l3协议层,或者tcp(transfercontrolprotocol,传输控制协议)/ip(internetprotocol,因特网互联协议)层,或者应用层,或者如果5g-nr使用除本发明图3、图4所示无线接口用户面协议栈架构之外的其他架构,则l2-h的上层协议层还可以是其他l2协议子层。本发明的拥塞处理方法可以用于以上三种数据处理模式,尤其可以应用于am模式,有效解决am模式下上层数据发送速率与无线链路的传输速率不匹配的问题。

本实施例的拥塞处理方法应用于图3、图4的l2-h子层,l2-h子层可以位于用户设备上,也可以用于采用5g新技术(5g-nr)的无线网络设备上。需要说明的是,本发明的采用5g新技术(5g-nr)的无线网络设备(本发明后续简记为5g-nr),可以独立组网,也可以和采用其他rat(radioaccesstechnology,无线接入技术)(比如lte,wlan(wirelesslocalareanetwork,无线局域网))的无线网络设备联合组网。其中,本发明的无线网络设备,为实现基站功能的设备,在物理装置上不限定其具体的存在形式,比如可以是一体化基站,即一个装置中包括基带功能,射频功能等所有基站功能;也可以是在物理上分离的bbu(basebandunit,基带单元)+rru(remoteradiounit,远端射频单元),其中在bbu上实现基带功能,而在rru上实现射频功能;还可以是在物理上分离的cu(centralunit,中央单元)+du(distributedunit,分布单元),其中在cu上实现全部或者部分基带功能,并实现对cu和du上的各个无线协议层的控制功能,而在du上实现部分基带功能和/或实现射频功能。当本发明的数据处理方法应用于5g-nr的l2-h上时,在物理上,该l2-h可以位于如上的一体化基站中,也可以位于bbu或者cu中。

可选的,在数据链路协议子层为服务数据单元sdu启动丢弃定时器包括:

s11,在数据链路协议子层收到来自上层的sdu后,为sdu启动丢弃定时器;或者,

s12,在数据链路协议子层执行级联操作后,为级联的数据sdu启动丢弃定时器,其中,数据链路协议子层包括对上层sdu的级联功能;

其中,上层包括以下至少之一:网络层l3,tcp/ip层,应用层,数据链路层中除了数据链路协议子层l2-h的其他子层。

在根据本实施例的可选实施方式中,在数据链路协议子层包含对上层sdu的级联功能时,sdu为级联的sdu;在数据链路协议子层不包含级联功能时,sdu为来自上层的sdu。

可选的,将该数据pdu中的该sdu换成填充比特包括:将该数据pdu中该sdu所在的数据字段换成预设的填充比特。填充比特根据协议约定,比如可以是全0,或者全1,不排除其他填充方式。

在根据本实施例的可选实施方式中,将该数据pdu中的该sdu换成填充比特包括:

s21,判断在丢弃定时器超时之前数据链路协议子层是否已经将包含该sdu的数据pdu发送给下一个协议子层;

s22,在判断结果为是时,在丢弃定时器超时的情况下,在数据链路协议子层将数据pdu中的该sdu换成填充比特并指示下一个协议子层丢弃该数据pdu。

在本实施例中,丢弃通知pdu包含该数据pdu的序列号,丢弃通知pdu用于指示该序列号对应的数据pdu已经被发送方丢弃。

在根据本实施例的可选实施方式中,丢弃该数据pdu并发送丢弃通知pdu包括:在数据链路协议子层丢弃该数据pdu,并通知数据链路协议子层的下一层协议子层丢弃该数据pdu。

在根据本实施例的可选实施方式中,在执行继续发送该数据pdu之后,方法还包括:在数据链路子层丢弃该sdu之后的预设个数的sdu。可选的,预设个数可以是1个或多个。

在本实施例中提供了另一种拥塞处理方法,图5是根据本发明实施例的另一种拥塞处理方法的流程图,如图5所示,该流程包括如下步骤:

步骤s502,在接收端数据链路协议子层接收协议数据单元pdu;

步骤s504,在pdu为包括服务数据单元sdu的数据pdu时,从数据pdu中还原出sdu,若还原出全部为填充比特的sdu,在向数据链路协议子层的上层递交sdu时忽略该sdu;或,在pdu为丢弃通知pdu时,从丢弃通知pdu中获取被丢弃数据pdu的序列号discard_sn,若discard_sn是数据链路协议子层正在按序等待接收的数据pdu的序列号时,执行接收更新正在按序等待接收的数据pdu的操作。

在根据本实施例的可选实施方式中,从数据pdu中还原出sdu包括:

s31,去除数据pdu的协议数据单元头后得到sdu;或者,

s32,去除数据pdu的协议数据单元头,并执行完整性验证,解密,解压缩中的至少一个操作后得到sdu。

在本实施例中,在向数据链路协议子层的上层递交sdu时忽略该sdu是指:在向数据链路协议子层的上层递交sdu时放弃向数据链路协议子层的上层递交该sdu。

在根据本实施例的可选实施方式中,执行更新正在按序等待接收的数据pdu的操作包括:更新接收窗口,向数据链路协议子层的上层按序递交窗口更新之后,从序列号小于更新后的正在按序等待接收的pdu的序列号的pdu中还原出来的,并且尚未递交过的sdu。可选的,接收窗口为序列号取值大于或等于接收状态变量且小于最大可接收状态变量的范围,所述接收状态变量用于记录所述正在按序等待接收的pdu的序列号,其值等于所述正在按序等待接收的pdu的序列号;所述最大可接收状态变量的值等于所述接收状态变量的值加预设接收窗口尺寸的值。

本实施例的更新接收窗口包括:将所述接收状态变量的值更新到所述discard_sn指示的序列号之后需要按序等待接收的数据pdu的序列号sn,并基于所述更新后的接收状态变量的值更新最大可接收状态变量的值,其中,接收状态变量用于记录正在按序等待接收的pdu的序列号,最大可接收状态变量的值等于所述接收状态变量的值加预设接收窗口尺寸的值;执行更新所述正在按序等待接收的数据pdu的操作还包括:在更新所述接收窗口后,如果所述接收状态变量更新后的值小于更新前的值,更新接收超帧号rx_hfn。

在根据本实施例的可选实施方式中,作为另外一种可能情况,若discard_sn不是数据链路协议子层正在按序等待接收的数据pdu的序列号时,则忽略丢弃通知pdu。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

在本实施例中还提供了一种拥塞处理装置、系统,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

本实施例提供了一种拥塞处理装置,应用在发送端,包括:启动模块,用于在数据链路协议子层为服务数据单元sdu启动丢弃定时器;处理模块,用于在丢弃定时器超时时,在数据链路协议子层丢弃所述sdu,以及,对已经在数据链路协议子层组成数据协议数据单元pdu的sdu执行以下操作之一:将数据pdu中的所述sdu换成填充比特、丢弃所述数据pdu并发送丢弃通知pdu、继续发送所述数据pdu。

可选的,数据链路协议子层为协议子层l2-h,其中,所述l2-h层包含以下功能中的至少一项:头压缩和解压缩、安全、重传、重排序和重复包检测。

可选的,本实施例的启动模块包括:第一启动单元,用于在所述数据链路协议子层收到来自上层的sdu后,为所述sdu启动所述丢弃定时器;或,第二启动单元,用于在所述数据链路协议子层执行级联操作后,为级联的数据sdu启动所述丢弃定时器,其中,所述数据链路协议子层包括对上层sdu的级联功能;其中,所述上层包括以下至少之一:网络层l3,tcp/ip层,应用层,数据链路层中除了所述数据链路协议子层的其他子层。

在根据本实施例的可选实施方式中,在所述数据链路协议子层包含对上层sdu的级联功能时,所述sdu为级联的sdu;在所述数据链路协议子层不包含所述级联功能时,所述sdu为来自上层的sdu。

处理模块将所述数据pdu中的所述sdu换成填充比特具体可以包括:将所述数据pdu中所述sdu所在的数据字段换成预设的填充比特。

可选的,将所述数据pdu中的所述sdu换成填充比特包括:如果在所述丢弃定时器超时之前所述数据链路协议子层已经将包含所述sdu的数据pdu发送给了下一个协议子层,在丢弃定时器超时时,在所述数据链路协议子层将所述数据pdu中的所述sdu换成填充比特并指示所述下一个协议子层丢弃所述数据pdu。

可选的,所述丢弃通知pdu包含所述数据pdu的序列号,所述丢弃通知pdu用于指示所述序列号对应的数据pdu已经被发送方丢弃。

可选的,处理模块丢弃所述数据pdu并发送丢弃通知pdu包括:在所述数据链路协议子层丢弃所述数据pdu,并通知所述数据链路协议子层的下一层协议子层丢弃所述数据pdu。

可选的,处理模块在执行继续发送所述数据pdu之后,还用于:在数据链路子层丢弃所述sdu之后的预设个数的sdu。

本实施例提供了另一种拥塞处理装置,应用在接收端,包括:接收模块,用于在数据链路协议子层接收协议数据单元pdu;处理模块,用于在pdu为包括服务数据单元sdu的数据pdu时,从所述数据pdu中还原出sdu,若还原出全部为填充比特的sdu,在向数据链路协议子层的上层递交sdu时忽略所述sdu;或,用于在pdu为丢弃通知pdu时,从丢弃通知pdu中获取被丢弃数据pdu的序列号discard_sn,若discard_sn是数据链路协议子层正在按序等待接收的数据pdu的序列号时,执行更新正在按序等待接收的数据pdu的操作。

在根据本实施例的可选实施方式中,处理模块执行更新正在按序等待接收的数据pdu的操作包括:更新接收窗口,向所述数据链路协议子层的上层按序递交窗口更新之后,从序列号小于更新后的正在按序等待接收的数据pdu的序列号的数据pdu中还原出的,并且尚未递交过的sdu;可选的,接收窗口为序列号取值大于或等于接收状态变量且小于最大可接收状态变量的范围,所述接收状态变量用于记录所述正在按序等待接收的pdu的序列号,其值等于所述正在按序等待接收的pdu的序列号;所述最大可接收状态变量的值等于所述接收状态变量的值加预设接收窗口尺寸的值。

可选的,更新接收窗口包括:将所述接收状态变量的值更新到所述discard_sn指示的序列号之后需要按序等待接收的数据pdu的序列号,并基于所述更新后的接收状态变量的值更新最大可接收状态变量的值,其中,接收状态变量用于记录正在按序等待接收的pdu的序列号,最大可接收状态变量的值等于所述接收状态变量的值加预设接收窗口尺寸的值。

在根据本实施例的可选实施方式中,执行更新所述正在按序等待接收的数据pdu的操作还包括:在更新所述接收窗口后,如果所述接收状态变量更新后的值小于更新前的值,更新接收超帧号rx_hfn。

可选的,处理模块还用于:若discard_sn不是数据链路协议子层正在按序等待接收的数据pdu的sn号时,则忽略所述丢弃通知pdu。

可选的,处理模块在从所述数据pdu中还原出sdu时包括:去除所述数据pdu的协议数据单元头后得到sdu;或者,去除所述数据pdu的协议数据单元头,并执行完整性验证,解密,解压缩中的至少一个操作后得到sdu。

在本实施例中,在向所述数据链路协议子层的上层递交sdu时忽略所述sdu是指:在向所述数据链路协议子层的上层递交sdu时放弃向所述数据链路协议子层的上层递交所述sdu。

图6是根据本发明实施例的拥塞处理系统的结构框图,如图6所示,该系统包括:发送端60、接收端62,发送端60包括:启动模块602,用于在数据链路协议子层为服务数据单元sdu启动丢弃定时器;第一处理模块604,用于在丢弃定时器超时时,在数据链路协议子层丢弃所述sdu,以及,对已经在数据链路协议子层组成数据协议数据单元pdu的sdu执行以下操作之一:将所述数据pdu中的所述sdu换成填充比特、丢弃所述数据pdu并发送丢弃通知pdu、继续发送所述数据pdu;

接收端62包括:接收模块622,用于在数据链路协议子层接收协议数据单元pdu;第二处理模块624,用于在pdu为包括服务数据单元sdu的数据pdu时,从所述数据pdu中还原出sdu,若还原出全部为填充比特的sdu,在向数据链路协议子层的上层递交sdu时忽略所述sdu;或,在pdu为丢弃通知pdu时,从丢弃通知pdu中获取被丢弃数据pdu的序列号discard_sn,若discard_sn是数据链路协议子层正在按序等待接收的数据pdu的序列号时,执行更新正在按序等待接收的数据pdu的操作。

可选的,数据链路协议子层为协议子层l2-h,其中,所述l2-h层包含以下功能中的至少一项:头压缩和解压缩、安全、重传、重排序和重复包检测。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

实施例3

本实施例是根据本发明的可选实施例,用于结合具体的场景对本申请进行详细说明:

本发明提出一种拥塞处理方法,用于解决5g新l2协议设计中如何实现发端主动丢地数据包功能,解决上层数据发送速率与无线链路的传输速率不匹配的问题。

本发明提出的拥塞处理方法,包括发送方的拥塞处理和接收方的拥塞处理。

图7为本实施例发送方的拥塞处理方法流程图,包括:

701、数据链路协议子层为服务数据单元sdu启动丢弃定时器;

其中,数据链路协议子层为层2(l2)的一个协议子层,比如l2-h。

其中,数据链路协议子层收到来自上层的sdu后,为所述sdu启动丢弃定时器;或者,若所述数据链路协议子层包含对上层sdu的级联(concatenation)功能,则所述数据链路协议子层在执行级联操作后,为级联sdu启动丢弃定时器。

其中,对上层sdu的级联功能,是指将几个来自上层的sdu串接成一个大的sdu,称为级联sdu。

其中,所述数据链接协议子层的上层,具体可以是一个l3协议层,或者tcp/ip层,或者应用层,或者如果5g-nr使用除本发明图3、图4所示无线接口用户面协议栈架构之外的其他架构,则l2-h的上层还可以是其他l2协议子层。

702、丢弃定时器超时时:

数据链路协议子层丢弃所述sdu;并且,若所述sdu已经在所述数据链路协议子层组成协议数据单元pdu,所述数据链路协议子层执行以下操作之一;

(1)、将所述pdu中的所述sdu换成填充比特;或者,

(2)、丢弃所述pdu,并发送丢弃通知pdu;或者,

(3)、继续处理所述pdu;

其中,若所述数据链路协议子层包含对上层sdu的级联功能,则所述sdu指级联sdu;若所述数据链路协议子层不包含所述级联功能,则所述sdu指来自上层的sdu。

其中,将所述pdu中的所述sdu换成填充比特,是指将所述pdu中所述sdu所在的数据字段换成填充比特,填充比特根据协议约定,比如可以是全0,或者全1,不排除其他填充方式。

其中,执行将所述pdu中的所述sdu换成填充比特,还包括,若在丢弃定时器超时之前,所述数据链路协议子层已经将包含所述sdu的pdu发送给下一个协议子层,所述数据链路协议子层在丢弃定时器超时通知所述下一个协议子层丢弃所述pdu。这里,所述数据链路协议子层的下一层协议子层是指l2-h之下的协议层,在如图3中为l2-l,在如图4中为l2-m。

其中,所述丢弃通知pdu中包含所述被丢弃pdu的序列号(本发明中将所述被丢弃pdu的序列号记为discard_sn),所述丢弃通知pdu用于通知接收方,序列号等于所述丢弃通知pdu中指示的序列号的pdu被发送方丢弃了。

其中,丢弃所述pdu,包括所述数据链路协议子层丢弃所述pdu,以及所述数据链路协议子层通知其下一层协议子层丢弃所述pdu。

其中,继续处理所述pdu,包括继续传输和/或重传所述pdu。

其中,丢弃定时器超时时,数据链路协议子层丢弃所述sdu,并且,若所述sdu已经在所述数据链路协议子层组成协议数据单元pdu,数据链路协议子层继续处理所述pdu,还可以包括,数据链路子层丢弃所述sdu之后的下一个或多个sdu。

图8为本实施例接收方的拥塞处理方法流程图,包括:

801、数据链路协议子层接收pdu,所述pdu为数据pdu或丢弃通知pdu:

当所述pdu为数据pdu时,数据链路协议子层从所述pdu中还原出sdu时,若还原出全部为填充比特的sdu,所述数据链路协议子层向上层递交sdu时忽略所述sdu;

其中,从所述pdu中还原出sdu,包括去除所述pdu的协议数据单元头后得到sdu,或者去除所述pdu的协议数据单元头,并执行完整性验证,解密,解压缩中的至少一个操作后得到sdu。

其中,数据链路协议子层向上层递交sdu时忽略所述sdu,是指数据链路协议子层向上层递交sdu时不递交所述sdu。

当所述pdu为丢弃通知pdu时,数据链路协议子层从所述丢弃通知pdu中获取被丢弃pdu的序列号discard_sn,若所述discard_sn是所述数据链路协议子层正在按序等待接收的pdu的sn号,则所述数据链路协议子层执行相当于接收到了所述正在按序等待接收的pdu的相关操作,本发明中称为执行更新所述正在按序等待接收的pdu的操作。

其中,若所述discard_sn是所述数据链路协议子层正在按序等待接收的pdu的sn号,则所述数据链路协议子层执行更新所述正在按序等待接收的pdu的操作,所述操作至少包括:更新接收窗口,和向上层按序递交窗口更新之后,从更新后的正在按序等待接收的pdu之前的pdu中还原出来的、尚未递交过的sdu,也即,向上层按序递交窗口更新之后,从序列号小于所述更新后的正在按序等待接收的pdu的序列号的pdu中还原出来的,尚未递交过的sdu。所述操作还可以包括:如果被配置(由控制面配置)需要对sdu执行解密,在更新所述接收窗口后,判断是否需要更新接收超帧号(rx_hfn),若需要,则更新rx_hfn,即执行rx_hfn=rx_hfn+1操作。

这里,接收窗口为vr(r)<=rsn<vr(mr),当接收pdu的接收序列号rsn满足vr(r)<=rsn<vr(mr)时认为接收pdu在接收窗口之内,否则认为在接收窗口之外。其中,vr(r)为接收状态变量,用于记录按序等待接收的pdu的rsn号,或者换种说法,用于记录上一个已经成功按序接收的pdu之后的下一个按序pdu的rsn号;vr(mr)为最大可接收状态变量,vr(mr)=vr(r)+window_size,window_size为预设接收窗口尺寸。

其中,更新接收窗口,即指更新vr(r)和vr(mr),具体的,将vr(r)的值更新到需要按序等待接收的pdu的rsn号,并相应的基于更新后的vr(r)更新vr(mr)。

其中,判断是否需要更新接收超帧号(rx_hfn),包括:判断更新后的vr(r)相对于更新前的vr(r)是否发生翻转,如果判断发生翻转,则更新rx_hfn。

其中,判断更新后的vr(r)相对于更新前的vr(r)是否发生翻转,即判断更新后vr(r)的值是否小于更新前vr(r)的值,具体可以是判断条件vr(ro)-vr(rn)>vr(mrn)-vr(rn)是否成立,如果成立,则判断发生翻转,否则判断未发生翻转。这里,vr(ro)为更新之前的vr(r),vr(rn)为更新之后的vr(r),vr(mrn)为更新之后的vr(mr)。

需要说明的是,以上判断条件vr(ro)-vr(rn)>vr(mrn)-vr(rn)在具体计算时,需要进行取模运算,比如实际计算时按照[vr(ro)-vr(rn)]%window_size>[vr(mrn)-vr(rn)]%window_size进行计算。

其中所述接收方的拥塞处理方法还包括,若所述discard_sn不是所述数据链路协议子层正在按序等待接收的pdu的sn号,则所述数据链路协议子层忽略所述丢弃通知pdu。

本实施例还包括两个具体实施例:

具体实施例1

实施例1详细说明当包定时器超时时,发送端将pdu中的sdu换成填充比特发送和接收端收到所述pdu时的处理过程。

发送端的处理过程包括:

发送端数据链路协议子层l2-h从上层接收sdu,为每个sdu启动一个丢弃定时器,本实施例假设l2-h从上层按序收到了sdu-x,sdu-y,sdu-z,其中为sdu-x启动的丢弃定时器为dtimer-x。

本实施例中,在dtimer-x之前,发送端l2-h已经将sdu-x,sdu-y,sdu-z组成了一个pdu(pdu-x),图9是实施例1pdu-x的示意图,图9为该pdu的示意图,pdu-x包括协议数据单元头(l2-hheader)和sdu-x,sdu-y,sdu-z,l2-hheader包括该pdu的组包信息,比如sn号和各个sdu的长度。需要说明的是,图9只是本实施例的一个pdu示意图,实际使用时并不限定l2-hheader的长度和各个sdu的长度。

dtimer-x超时时,sdu-x和pdu-x仍然保存在发送端l2-h中,比如在dtimer-x超时之前,发送端l2-h尚未收到来自对端或l2-h下一个协议子层的、对图9所述pdu正确接收的确认信息,则sdu-x和pdu-x仍然保存在发送端l2-h中。

dtimer-x超时,发送端l2-h丢弃sdu-x,将pdu-x中sdu-x的所有信息换成填充比特,本实施例中填充比特为0。图10是实施例1pdu-x’的示意图,如图10本实施例给出了将pdu-x中的sdu-x换成填充比特后的包示意图(pdu-x’)。

本实施例中,如果dtimer-x超时之前,pdu-x已经发送给了l2-h的下一个协议子层,则本实施例还包括,l2-h通知下一个协议子层丢弃pdu-x。

需要说明的,具体实施例1中,如果l2-h支持级联功能,则发送端的处理为:

发送端数据链路协议子层l2-h从上层接收按序收到了sdu-x,sdu-y,sdu-z,l2-h将这三个sdu级联成一个大sdu,sdu-m,然后,l2-h为sdu-m启动丢弃定时器为dtimer-m。本实施例中,级联是指将sdu-x,sdu-y,sdu-z串接成一个大的sdu-m,具体串接设计并非本发明的发明内容,本实施例也不限定具体的串接格式。图11是实施例1pdu-m的示意图,图11为本实施例l2-h将级联sdu组成pdu(pdu-m)的示意图,同样的,本发明并不限定实际使用时l2-hheader的长度。

dtimer-m超时,发送端丢弃sdu-m,将pdu-m中sdu-m的所有信息换成填充比特(pdu-m’)。如果dtimer-m超时之前,pdu-m已经发送给了l2-h的下一个协议子层,l2-h还通知下一个协议子层丢弃pdu-m。

接收端的处理过程包括:

接收端数据链路协议子层l2-h维护一个接收窗口。图12是本实施例接收端数据链路协议子层维护的接收窗口的示意图,图12为本实施例l2-h维护的接收窗口的示意图,l2-h通过接收序列号(rsn)以及一系列状态变量来维护接收窗口,当rsn在vr(r)<=rsn<vr(mr)范围之内时,则认为是在接收窗口之内,否则认为是在接收窗口之外。

其中,

vr(r)为接收状态变量,用于记录按序等待接收的pdu的rsn号。或者换种说法,用于记录上一个已经成功按序接收的pdu之后的下一个按序pdu的rsn号。比如图12中,rsn=2及之前的pdu都成功按序接收到了,而rsn=3的pdu尚未接收到,则vr(r)=3;

vr(r)初始值为0,每次成功按序接收到正在等待接收的pdu,也即每次成功接收到rsn=vr(r)的pdu后更新vr(r),将其值更新到需要按序等待接收的pdu的rsn号;比如图12中,若成功接收到rsn=3的pdu,则更新vr(r)到需要按序等待接收的pdu的rsn号,即更新vr(r)=6,更新后的窗口如图13所示,图13是本实施例接收端数据链路协议子层维护的接收窗口更新后的示意图;

vr(mr)为最大可接收状态变量,vr(mr)=vr(r)+window_size,其中window_size的值由控制面配置给l2-h,或者根据其他由控制面配置给l2-h的参数,比如maximum_rsn(maximumreceptionsequencenumber,最大接收序列号)计算得到,具体计算方式举例如window_size=(maximum_rsn+1)/2。

l2-h从下一个协议子层接收pdu-x’,判断pdu-x’是否在接收窗口内,如果判断pdu-x’的rsn号在接收窗口内,则将pdu-x’放入接收缓存,否则丢弃pdu-x’。

pdu-x’被放入接收缓存后,l2-h在处理pdu-x’,从pdu-x’中还原出sdu-x,sdu-y,sdu-z时,判断sdu-x为填充比特,则判断发送端已经丢弃了sdu-x,因此l2-h向上层递交sdu时忽略sdu-x,比如在本实施例中,向上层递交sdu时,按序递交sdu-y,sdu-z。

需要说明的是,如果l2-h支持级联功能,则对应于发送端的处理,接收端的处理为:

接收端数据链路协议子层l2-h维护一个接收窗口(同图12)。l2-h从下一个协议子层接收pdu-m’,判断pdu-m’是否在接收窗口内,如果判断pdu-m’的rsn号在接收窗口内,则将pdu-m’放入接收缓存,否则丢弃pdu-m’。

pdu-m’被放入接收缓存后,l2-h在处理pdu-m’,从pdu-m’中还原出sdu-m时,判断sdu-m为填充比特,则判断发送端已经丢弃了sdu-m,因此l2-h向上层递交sdu时忽略sdu-m。

采用实施例1的方法,当丢弃定时器超时时,发送端丢弃sdu,并通过将pdu中该sdu换成填充比特,使得一方面接收端可以正常接收到该pdu,接收端窗口维护与处理简单,无需引入异常处理,另一方面,接收端还能通过填充比特判断发送端丢弃了该sdu,在向上层递交sdu时忽略此sdu,从而实现将发送端无线链路上丢包(出现拥塞)的事实传导到发送端上层(如tcp层),引发上层降低发送速率,解决如本发明图3、图4所示5g新l2协议设计中上层数据发送速率与无线链路的传输速率不匹配的问题。

具体实施例2

实施例2详细说明当sdu的包定时器超时时,发送端丢弃包含所述sdu的pdu,并发送丢弃通知pdu,以及接收端收到丢弃通知pdu的处理过程。

发送端的处理过程包括:

发送端数据链路协议子层l2-h从上层接收到sdu-x,sdu-y,sdu-z,l2-h为每个sdu启动一个丢弃定时器,其中为sdu-x启动的丢弃定时器为dtimer-x。同实施例1,l2-h将这三个sdu组成一个pdu(pdu-x),dtimer-x超时时,sdu-x和pdu-x仍然保存在发送端l2-h中。

dtimer-x超时,发送端l2-h丢弃sdu-x和pdu-x,这里,若pdu-x已经发送给了下一个协议子层,l2-h还通知下一个协议子层丢弃pdu-x。同时,l2-h发送丢弃通知pdu。图14是本实施例的一种丢弃通知pdu的示意图,丢弃通知pdu中包含被丢弃pdu(pdu-x)的sn号(discard_sn),丢弃通知pdu的header中,还可以指示该pdu为丢弃通知pdu。需要说明的是,图14只是本实施例的一种优选示例而已,并不限定实际应用时l2-header的长度和discard_sn的长度,也不限定所述pdu中还可以包含其他信息。

需要说明的,实施例2中,如果l2-h支持级联功能,则发送端的处理为:

发送端数据链路协议子层l2-h从上层接收按序收到了sdu-x,sdu-y,sdu-z,l2-h将这三个sdu级联成一个大sdu,sdu-m,然后,l2-h为sdu-m启动丢弃定时器为dtimer-m。本实施例中,l2-h将级联sdu组成pdu(pdu-m)。

dtimer-m超时,发送端丢弃sdu-m和pdu-m,同时,l2-h发送丢弃通知pdu,丢弃通知pdu中包含被丢弃pdu(pdu-m)的sn号(discard_sn)。

接收端的处理过程包括:

接收端数据链路协议子层l2-h维护一个接收窗口(同图12示例)。l2-h从下一个协议子层接收丢弃通知pdu,从丢弃通知pdu中获取discard_sn。l2-h判断discard_sn是否是正在按序等待接收的pdu的sn号,若是,则l2-h执行相当于接收到了所述正在按序等待接收的pdu的相关更新操作,至少包括:更新接收窗口,向上层按序递交窗口更新之后,从更新后的正在按序等待接收的pdu之前的pdu中还原出来的、尚未递交过的sdu。所述操作还可以包括:如果被配置(由控制面配置)需要对sdu执行解密,在更新所述接收窗口之后,判断是否需要更新接收超帧号(rx_hfn),若需要,则更新rx_hfn,即执行rx_hfn=rx_hfn+1操作。

这里,接收窗口为vr(r)<=rsn<vr(mr),当接收pdu的接收序列号rsn满足vr(r)<=rsn<vr(mr)时认为接收pdu在接收窗口之内,否则认为在接收窗口之外。其中,vr(r)接收状态变量,用于记录按序等待接收的pdu的rsn号;或者换种说法,用于记录上一个已经成功按序接收的pdu之后的下一个按序pdu的rsn号。vr(mr)=vr(r)+window_size,window_size为接收窗口尺寸。l2-h判断discard_sn是否是正在按序等待接收的pdu的sn号,也即判断discard_sn是否等于vr(r),如果相等,则判断是,否则判断不是。

这里,更新接收窗口,即指更新vr(r)和vr(mr),具体的,将vr(r)的值更新到discard_sn所指示的序列号之后需要按序等待接收的pdu的rsn号,并相应的基于更新后的vr(r)更新vr(mr)。

这里,判断是否需要更新接收超帧号(rx_hfn),包括:判断更新后的vr(r)相对于更新前的vr(r)是否发生翻转,如果判断发生翻转,则更新rx_hfn。

其中,判断更新后的vr(r)相对于更新前的vr(r)是否发生翻转,即判断更新后vr(r)的值是否小于更新前vr(r)的值,具体可以是:

判断条件vr(ro)-vr(rn)>vr(mrn)-vr(rn)是否成立,如果成立,则判断发生翻转,否则判断未发生翻转。这里,vr(ro)为更新之前的vr(r),vr(rn)为更新之后的vr(r),vr(mrn)为更新之后的vr(mr)。

本具体实施例中以图12为例,在接收到丢弃通知pdu之前,接收窗口的状态如图12所示,其中接收窗口内rsn=4和5的pdu已经成功接收到,但是rsn=3的pdu尚未成功接收到。l2-h接收到丢弃通知pdu,从丢弃通知pdu中获取discard_sn=3,正好是接收端在按序等待接收的pdu的sn号(3),也即当前vr(r)的值,则l2-h执行相当于接收到了rsn=3的pdu的相关更新操作,包括:

更新接收窗口,即将vr(r)的值更新到discard_sn指示的序列号3之后需要按序等待接收的pdu的rsn号,更新后vr(r)=6,相应的更新vr(mr)的值为vr(mr)=6+window_size.更新后的接收窗口如图13所示。

更新完接收窗口之后,l2-h向上层递交窗口更新之后,从更新后的正在按序等待接收的pdu(rsn=6)之前的pdu中还原出来的、尚未递交过的sdu,即从rsn=4和5的pdu中还原出来的sdu。

本实施例中,如果判断discard_sn不是正在按序等待接收的pdu的sn号,则l2-h忽略丢弃通知pdu,即不执行以上接收到所述正在按序等待接收的pdu的操作。

采用实施例2的方法,当丢弃定时器超时时,发送端丢弃sdu以及包含该sdu的pdu,并通过发送包含被丢弃pdu的sn号的丢弃通知pdu,使得接收端通过丢弃通知pdu获知被丢弃pdu的信息,更新接收窗口并向上层按序递交sdu,避免了接收端一直在等待所述被丢弃的pdu,实现了将发送端无线链路上丢包(出现拥塞)的事实传导到发送端上层(如tcp层),引发上层降低发送速率,从而解决了如本发明图3、图4所示5g新l2协议设计中上层数据发送速率与无线链路的传输速率不匹配的问题。

此外,采用本发明当丢弃定时器超时时,数据链路协议子层丢弃所述sdu,继续处理包含所述sdu的pdu,一方面简化了发送端的处理,另一方面,进一步的丢弃所述sdu之后的下一个sdu,实现了将发送端无线链路上丢包(出现拥塞)的事实传导到发送端上层(如tcp层),引发上层降低发送速率,从而解决了如本发明图3、图4所示5g新l2协议设计中上层数据发送速率与无线链路的传输速率不匹配的问题。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:

s1,在发送端的数据链路协议子层为服务数据单元sdu启动丢弃定时器;

s2,在丢弃定时器超时时,在数据链路协议子层丢弃所述sdu,以及,对已经在数据链路协议子层组成数据协议数据单元pdu的sdu执行以下操作之一:将所述数据pdu中的所述sdu换成填充比特、丢弃所述数据pdu并发送丢弃通知pdu、继续发送所述数据pdu。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行在发送端的数据链路协议子层为服务数据单元sdu启动丢弃定时器;

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行在丢弃定时器超时时,在数据链路协议子层丢弃所述sdu,以及,对已经在数据链路协议子层组成数据协议数据单元pdu的sdu执行以下操作之一:将所述数据pdu中的所述sdu换成填充比特、丢弃所述数据pdu并发送丢弃通知pdu、继续发送所述数据pdu。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1