CN111162882B - 数据传输方法、装置、基站设备和计算机可读存储介质 - Google Patents
数据传输方法、装置、基站设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN111162882B CN111162882B CN201911316889.3A CN201911316889A CN111162882B CN 111162882 B CN111162882 B CN 111162882B CN 201911316889 A CN201911316889 A CN 201911316889A CN 111162882 B CN111162882 B CN 111162882B
- Authority
- CN
- China
- Prior art keywords
- pdu
- rlc
- transmitted
- linked list
- released
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请涉及一种数据传输方法、装置、基站设备和计算机可读存储介质。所述数据传输方法包括:从接收端发送的状态报告中获取序列号;所述序列号用于表示未被所述接收端收到的无线链路控制层协议数据单元RLC PDU;根据所述序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表;所述已发送PDU链表包括多个依次链接的已发送RLC PDU;所述待释放PDU链表包括至少一个依次链接且已被所述接收端收到的已接收RLC PDU;调用内存释放线程释放所述待释放PDU链表中的已接收RLC PDU。采用本方法能够提升RLC层的组包完整率,提升发送端的数据传输的准确率。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种数据传输方法、装置、基站设备和计算机可读存储介质。
背景技术
5G NR协议栈中,RLC(Radio Link Control,无线链路控制)层位于MAC(MediaAccess Control,媒体接入控制)层和PDCP(Packet Data Convergence Protocol,分组数据汇聚协议)层之间,主要执行组装PDU、重组SDU、重传PDU等功能。目前,在RLC层进行数据传输的工作模式主要包括TM模式(Transparent Mode,透明模式)、UM模式(UnacknowledgedMode,非应答模式)和AM模式(Acknowledged Mode,应答模式)。
LTETS36.322协议规定,每一个RLC PDU都有序列号(Sequence Number,SN)。AM模式下,为了确保数据包不丢失,接收端接收到RLC PDU之后,会对接收到的RLC PDU按照序列号的连续性进行重排序,接收端在重排序过程中,若检测到序列号不连续,即存在未接收到的RLC PDU,则会通过给发送端发送状态报告的方式要求重传该未接收到的RLC PDU。
AM模式下,在一次传输机会中,发送端通过RLC层发出去的每一包RLC PDU都会缓存在RLC层的传输缓存中,只有在接收到接收端反馈的状态报告,且该状态报告对已发送RLC PDU确认已收到,RLC层才会释放接收端已确认收到的RLC PDU。
然而,若接收端反馈的状态报告中,需要RLC层释放的RLC PDU的数量众多,则可能导致在接下来的多个时隙中,RLC层传输给接收端的是组包不完整的数据包,影响发送端数据传输的准确率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升发送端数据传输的准确率的数据传输方法、装置、基站设备和计算机可读存储介质。
第一方面,本申请实施例提供了一种数据传输方法,所述数据传输方法包括:
从接收端发送的状态报告中获取序列号;所述序列号用于表示未被所述接收端收到的无线链路控制层协议数据单元RLC PDU;
根据所述序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表;所述已发送PDU链表包括多个依次链接的已发送RLC PDU;所述待释放PDU链表包括至少一个依次链接且已被所述接收端收到的已接收RLC PDU;
调用内存释放线程释放所述待释放PDU链表中的已接收RLC PDU。
在其中一个实施例中,所述调用内存释放线程释放所述待释放PDU链表中的已接收RLC PDU,包括:
将所述待释放PDU链表存入预设队列中;
调用内存释放线程按照预设周期释放所述预设队列中的已接收RLC PDU。
在其中一个实施例中,所述根据所述序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表,包括:
根据所述序列号,在所述已发送PDU链表中确定目标RLC PDU;
将所述已发送PDU链表中所述目标RLC PDU和相邻RLC PDU之间的链接关系切断;所述相邻RLC PDU为所述已发送PDU链表中与所述目标RLC PDU相邻、且靠近所述已发送PDU链表的链表窗底;
从所述已发送PDU链表中截取出包括所述相邻RLC PDU的链表,作为所述待释放PDU链表。
在其中一个实施例中,所述根据所述序列号,在所述已发送PDU链表中确定目标RLC PDU,包括:
若从所述状态报告中获取到一个序列号,则确定所述序列号对应的已发送RLCPDU为所述目标RLC PDU。
在其中一个实施例中,所述根据所述序列号,在所述已发送PDU链表中确定目标RLC PDU,包括:
若从所述状态报告中获取到多个序列号,则确定所述多个序列号中最小的序列号对应的已发送RLC PDU为所述目标RLC PDU。
在其中一个实施例中,所述从所述已发送PDU链表中截取出包括所述相邻RLC PDU的链表,作为所述待释放PDU链表之后,还包括:
将所述目标RLC PDU更新为所述已发送PDU链表的链表窗底。
在其中一个实施例中,所述方法还包括:
按照多个已发送RLC PDU的组包顺序,将各所述已发送RLC PDU依次存入所述已发送PDU链表中;各所述已发送RLC PDU在所述已发送PDU链表中按照所述组包顺序依次链接。
在其中一个实施例中,所述已发送PDU链表包括RLC实体指针,各所述已发送RLCPDU均设置有链接指针;所述按照多个已发送RLC PDU的组包顺序,将各所述已发送RLC PDU依次存入所述已发送PDU链表中,包括:
检测所述RLC实体指针是否为空;
若所述RLC实体指针为空,则将目标已发送RLC PDU存入所述已发送PDU链表中;
将所述目标已发送RLC PDU的链接指针置空,并将所述RLC实体指针指向所述目标已发送RLC PDU。
在其中一个实施例中,所述方法还包括:
若所述RLC实体指针不为空,则将所述RLC实体指针当前指向的RLC PDU对应的链接指针,指向所述目标已发送RLC PDU;
将所述目标已发送RLC PDU的链接指针置空,并将所述RLC实体指针指向所述目标已发送RLC PDU。
在其中一个实施例中,所述方法还包括:
若所述已发送PDU链表不包括已发送RLC PDU,则将所述RLC实体指针置空。
第二方面,本申请实施例提供一种数据传输装置,所述数据传输装置包括:
获取模块,用于从接收端发送的状态报告中获取序列号;所述序列号用于表示未被所述接收端收到的无线链路控制层协议数据单元RLC PDU;
截取模块,用于根据所述序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表;所述已发送PDU链表包括多个依次链接的已发送RLC PDU;所述待释放PDU链表包括至少一个依次链接且已被所述接收端收到的已接收RLC PDU;
调用模块,用于调用内存释放线程释放所述待释放PDU链表中的已接收RLC PDU。
第三方面,本申请实施例提供一种基站设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法的步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过从接收端发送的状态报告中获取序列号;所述序列号用于表示未被所述接收端收到的无线链路控制层协议数据单元RLC PDU;根据所述序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表;所述已发送PDU链表包括多个依次链接的已发送RLC PDU;所述待释放PDU链表包括至少一个依次链接且已被所述接收端收到的已接收RLC PDU;调用内存释放线程释放所述待释放PDU链表中的已接收RLC PDU;由此,从已发送PDU链表中截取出待释放PDU链表,并调用内存释放线程,释放待释放PDU链表中的已接收RLC PDU;避免了传统技术中,RLC层既要释放传输缓存中已被接收端收到的RLC PDU,又要对待发送的RLC PDU进行组包并发送,容易由于组包时间不充足导致组包不完整、发送端的数据传输准确率低的问题。本申请提升了RLC层的组包完整率,提升了发送端的数据传输的准确率。
附图说明
图1为一个实施例提供的数据传输方法的应用环境图;
图2为一个实施例提供的数据传输方法的流程示意图;
图3为一个实施例提供的数据传输方法中步骤S300的细化步骤示意图;
图4为一个实施例提供的数据传输方法的流程示意图;
图5为一个实施例提供的数据传输方法的流程示意图;
图6为一个实施例提供的数据传输方法的流程示意图;
图7为一个实施例提供的数据传输方法的流程示意图;
图8为一个实施例提供的数据传输方法的流程示意图;
图9为一个实施例提供的数据传输装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的数据传输方法、装置、基站设备和计算机可读存储介质,旨在解决传统技术中,由于RLC层对RLC PDU组包完整率低,导致的发送端数据传输准确率低的技术问题。下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体地实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
本申请实施例提供的数据传输方法可以应用于如图1所示的基站设备中。如图1所示,RLC层位于PDCP层和MAC层之间,其通过RLC通道与PDCP层进行通信,并通过逻辑信道与MAC层进行通信。
RLC实体从PDCP层接收到的数据,或发往PDCP层的数据称作RLC SDU;RLC实体从MAC层接收到的数据,或发往MAC层的数据称作RLC PDU。若RLC实体通过RLC通道从PDCP层接收到RLC SDU,RLC层对RLC SDU进行处理形成RLC PDU后,RLC实体通过逻辑信道向MAC层发送该RLC PDU。
RLC实体从PDCP层接收到一个RLC SDU后,立即生成一个RLC PDU(包含RLC头部信息),并保存在RLC层的传输缓存中。在MAC层指示对应的逻辑信道有一个传输机会,并同时指定了这次传输机会中可传输的数据量时,RLC实体根据可传输的数据量,将该逻辑信道对应的传输缓存中的RLC PDU级联起来组包,组包后发送至MAC层,该数据包进一步通过MAC传输到接收端,例如用户终端。
在RLC层进行数据传输的工作模式主要包括TM模式(Transparent Mode,透明模式)、UM模式(Unacknowledged Mode,非应答模式)和AM模式(Acknowledged Mode,应答模式)。AM模式下,RLC实体发出去的每一包RLC PDU都会缓存起来,只有在接收到接收端反馈的状态报告,且该状态报告对已发送RLC PDU确认已收到,才可以释放接收端已确认收到的RLC PDU。
本申请实施例提供的数据传输方法,其执行主体可以是数据传输装置,该数据传输装置可以通过软件、硬件或者软硬件结合的方式实现成为基站设备的部分或者全部。下述方法实施例中,均以执行主体是基站设备为例来进行说明。
请参考图2,其示出了本申请实施例提供的一种数据传输方法的流程图,如图2所示,本实施例数据传输方法可以包括以下步骤:
步骤S100,从接收端发送的状态报告中获取序列号。
其中,序列号用于表示未被接收端收到的RLC PDU。
本实施例中,接收端可以是用户终端。用户终端接收到基站设备通过RLC实体发送的RLC PDU之后,对接收到的RLC PDU按照序列号的连续性进行重排序,用户终端在重排序过程中,若检测到序列号不连续,即存在未接收到的RLC PDU,则会向基站设备发送状态报告来要求基站设备重传未接收到的RLC PDU,状态报告中包括用户终端未接收到的RLC PDU的序列号。
基站设备从用户终端发送的状态报告中获取序列号。
步骤S200,根据序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表。
已发送PDU链表包括多个依次链接的已发送RLC PDU;待释放PDU链表包括至少一个依次链接且已被接收端收到的已接收RLC PDU。
本实施例中,基站设备向用户终端传输数据时,RLC实体接到PDCP层传输的RLCSDU,对RLC SDU进行处理后得到RLC PDU,RLC实体向MAC层发送RLC PDU,然后经由MAC层处理后传输至PHY层,再通过PHY层传输至用户终端。
对于RLC实体发出的每一个已发送RLC PDU,基站设备都会依次存入RLC层的传输缓存中。
基站设备按照发送时的串联组包顺序,将多个已发送RLC PDU依次存入传输缓存,并链接形成已发送PDU链表。例如,RLC实体向下层依次发送10个已发送RLC PDU,按照组包顺序对应的序列号分别为0-9;在发送过程中,基站设备将序列号为0的已发送RLC PDU发出后即存入传输缓存中;将序列号为1的已发送RLC PDU发出后,继续存入传输缓存中,并在传输缓存中将序列号为1的已发送RLC PDU链接在序列号为0的已发送RLC PDU之后;以此类推,则将这10个已发送RLC PDU按照序列号的顺序依次链接形成已发送PDU链表。
基站设备根据序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表;具体地,状态报告中的序列号表示未被用户终端收到的RLC PDU,基站设备根据获取的序列号,从已发送PDU链表的链表窗底开始,确定出用户终端连续收到的已接收RLC PDU,并将用户终端连续收到的已接收RLC PDU截取出来得到待释放PDU链表。已接收RLC PDU是基站设备发出的多个已发送RLC PDU中,被用户终端接收到的RLC PDU。
可以理解的是,待释放PDU链表可以包括一个已接收RLC PDU,即基站设备根据获取的序列号确定用户终端只接收到一个RLC PDU;待释放PDU链表也可以包括多个依次链接的已接收RLC PDU,这多个依次链接的已接收RLC PDU是从链表窗底开始被用户终端确认连续收到的RLC PDU。
本实施例中,假设序列号为0的已发送RLC PDU是首先串联组包发出的,序列号为9的已发送RLC PDU是最后串联组包发出的,则已发送PDU链表中,序列号为0的已发送RLCPDU更靠近链表窗底,也就是说,链表窗底是已发送PDU链表中最早被RLC实体发出的已发送RLC PDU。
步骤S300,调用内存释放线程释放待释放PDU链表中的已接收RLC PDU。
基站设备调用内存释放线程释放待释放PDU链表中的已接收RLC PDU,由此,基站设备将待释放PDU链表中的已接收RLC PDU转到内存释放线程去处理,RLC层不再需要释放已被用户终端收到已接收RLC PDU,为RLC层的组包预留充足的时间,保证RLC层的数据能够快速顺利处理,提高RLC层的组包速率,提高基站设备的数据传输速率,提高通信系统的健壮性。
本实施例通过从接收端发送的状态报告中获取序列号;序列号用于表示未被接收端收到的无线链路控制层协议数据单元RLC PDU;根据序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表;已发送PDU链表包括多个依次链接的已发送RLC PDU;待释放PDU链表包括至少一个依次链接且已被接收端收到的已接收RLC PDU;调用内存释放线程释放待释放PDU链表中的已接收RLC PDU;由此,从已发送PDU链表中截取出待释放PDU链表,并调用内存释放线程释放待释放PDU链表中的已接收RLC PDU;避免了传统技术中,RLC层既要释放传输缓存中已被接收端收到的RLC PDU,又要对待发送的RLC PDU进行组包并发送,容易由于组包时间不充足导致组包不完整,发送端的数据传输准确率低的问题。本实施例提升了RLC层的组包完整率,提升了发送端的数据传输的准确率。
在另一个实施例中,基于上述图2所示的实施例,参见图3,图3为本实施例中步骤S300的细化步骤示意图。如图3所示,本实施例步骤S300包括步骤S310和步骤S320,具体地:
步骤S310,将待释放PDU链表存入预设队列中。
本实施例中,对于从已发送PDU链表中截取出的待释放PDU链表,基站设备并不立即调用内存释放线程去释放待释放PDU链表中的已接收RLC PDU,而是将待释放PDU链表存入预设队列中。
步骤S320,调用内存释放线程按照预设周期释放预设队列中的已接收RLC PDU。
基站设备调用内存释放线程,按照预设周期释放预设队列中的已接收RLC PDU;即调用的内存释放线程释放预设队列中的已接收RLC PDU是按照预设时间周期进行的,由此,在确保待释放PDU链表中已接收RLC PDU占用的内存得以释放的同时,降低了内存释放线程的运行频次。
图4为另一个实施例提供的数据传输方法的流程图,在上述图2所示实施例的基础上,本实施例步骤S200包括步骤S210、步骤S220和步骤S230,具体地:
步骤S210,根据序列号,在已发送PDU链表中确定目标RLC PDU。
本实施例中,作为一种实施方式,基站设备若从状态报告中获取到一个序列号,则确定序列号对应的已发送RLC PDU为目标RLC PDU。
例如,已发送PDU链表包括依次链接的序列号分别为0-9的10个已发送RLC PDU,基站设备从用户终端发送的状态报告中获取的序列号为4,则确定已发送PDU链表中序列号为4的已发送RLC PDU为目标RLC PDU。
在其它实施例中,作为一种实施方式,基站设备若从状态报告中获取到多个序列号,则确定多个序列号中最小的序列号对应的已发送RLC PDU为目标RLC PDU。继续以已发送PDU链表包括依次链接的序列号分别为0-9的10个已发送RLC PDU为例,基站设备从用户终端发送的状态报告中获取的序列号假设为3、5、6,则确定已发送PDU链表中序列号为3的已发送RLC PDU为目标RLC PDU,即确定多个序列号中最靠近链表窗底的序列号对应的已发送RLC PDU为目标RLC PDU。
步骤S220,将已发送PDU链表中目标RLC PDU和相邻RLC PDU之间的链接关系切断。
相邻RLC PDU为已发送PDU链表中与目标RLC PDU相邻、且靠近已发送PDU链表的链表窗底。
相邻RLC PDU是目标RLC PDU靠近链表窗底侧、相邻的已发送RLC PDU,已发送PDU链表中多个已发送RLC PDU是依次链接的,基站设备将已发送PDU链表中目标RLC PDU和相邻RLC PDU之间的链接关系切断。
步骤S230,从已发送PDU链表中截取出包括相邻RLC PDU的链表,作为待释放PDU链表。
基站设备将已发送PDU链表中目标RLC PDU和相邻RLC PDU之间的链接关系切断,则已发送PDU链表被分为两个单链,基站设备将包括相邻RLC PDU的PDU链表取出,作为待释放PDU链表。可以理解的是,待释放PDU链表包括从已发送PDU链表的链表窗底开始至相邻RLC PDU的多个已被用户终端接收的已接收RLC PDU。
继续以已发送PDU链表包括依次链接的序列号分别为0-9的10个已发送RLC PDU为例,基站设备从用户终端发送的状态报告中获取的序列号为4,则确定已发送PDU链表中序列号为4的已发送RLC PDU为目标RLC PDU。已发送PDU链表当前的链表窗底为序列号为0的已发送RLC PDU,则相邻RLC PDU为序列号为3的已发送RLC PDU,基站设备将相邻RLC PDU和目标RLC PDU之间的链接关系切断,则已发送PDU链表被切分为包括序列号0-3对应的已发送RLC PDU链接成的单链,以及包括序列号4-9对应的已发送RLC PDU链接成的单链。基站设备取出包括相邻RLC PDU的PDU链表,即取出包括序列号0-3对应的已发送RLC PDU链接成的单链,作为待释放PDU链表。
本实施例通过从接收端发送的状态报告中获取序列号;根据序列号,在已发送PDU链表中确定目标RLC PDU;将已发送PDU链表中目标RLC PDU和相邻RLC PDU之间的链接关系切断;从已发送PDU链表中截取出包括相邻RLC PDU的链表,作为待释放PDU链表;调用内存释放线程释放待释放PDU链表中的已接收RLC PDU;由此,保证了RLC层传输数据时有充足的组包时间,减少了RLC实体组包时的时延,提升了基站设备数据传输的准确性及速率。
图5为另一个实施例提供的数据传输方法的流程图,在上述图4所示实施例的基础上,本实施例步骤S230之后还包括步骤S240,具体地:
步骤S240,将目标RLC PDU更新为已发送PDU链表的链表窗底。
基站设备从已发送PDU链表中截取出包括相邻RLC PDU的链表,作为待释放PDU链表,相邻RLC PDU和目标RLC PDU相邻,且相邻RLC PDU靠近已发送PDU链表的链表窗底,可以理解的是,基站设备截取出待释放PDU链表后,目标RLC PDU则是已发送PDU链表中当前最靠近链表窗底的RLC PDU,基站设备则将目标RLC PDU更新为已发送PDU链表的链表窗底。
由此,实现了已发送PDU链表的链表窗底的更新,便于基站设备每次以最新的链表窗底开始截取待释放PDU链表,提升了待释放PDU链表截取的准确性,确保基站设备的正常数据传输。
图6为另一个实施例提供的数据传输方法的流程图,在上述图2所示实施例的基础上,如图6所示,本实施例数据传输方法还包括步骤S400,具体地:
步骤S400,按照多个已发送RLC PDU的组包顺序,将各已发送RLC PDU依次存入已发送PDU链表中。
各已发送RLC PDU在已发送PDU链表中按照组包顺序依次链接。
基站设备按照多个已发送RLC PDU的串联组包顺序,将各已发送RLC PDU依次存入存储在RLC传输缓存中的已发送PDU链表中。各已发送RLC PDU在已发送PDU链表中按照组包顺序依次链接,形成单链。
作为一种实施方式,参见图7,图7为另一个实施例提供的数据传输方法的流程图,在图6所示实施例的基础上,如图7所示,本实施例步骤S400包括步骤S410、步骤S420和步骤S430,具体地:
步骤S410,检测RLC实体指针是否为空。
本实施例中,已发送PDU链表包括RLC实体指针,各已发送RLC PDU均设置有链接指针,链接指针具体为pNextNodeAddr指针。
基站设备为RLC实体设置RLC实体指针,RLC实体指针的初始值为空,即当前还未开始发送RLC PDU。
步骤S420,若RLC实体指针为空,则将目标已发送RLC PDU存入已发送PDU链表中。
基站设备若检测到RLC实体指针为空,则表示已发送PDU链表中不包括已发送RLCPDU,基站设备则将当前发出的已发送RLC PDU,即目标已发送RLC PDU,存入已发送PDU链表中。
步骤S430,将目标已发送RLC PDU的链接指针置空,并将RLC实体指针指向目标已发送RLC PDU。
基站设备将目标已发送RLC PDU的链接指针置空,并将RLC实体指针指向该目标已发送RLC PDU。
若基站设备又向接收端发送了一个已发送RLC PDU,需要将当前已发送RLC PDU存入已发送PDU链表中,基站设备则将目标已发送RLC PDU的链接指针指向该当前已发送RLCPDU,并将RLC实体指针指向该当前已发送RLC PDU,同时将当前已发送RLC PDU的链接指针置空;以此类推,基站设备每发送一个已发送RLC PDU,则按照同样的方式,将当前发出的已发送RLC PDU链接存入已发送PDU链表中,实现了多个已发送RLC PDU的单链链接。
需要说明的是,通过指针链接的多个已发送RLC PDU,需要将相邻两个已发送RLCPDU之间的链接关系切断以截取待释放PDU链表时,只需将前一个已发送RLC PDU的链接指针置空即可实现。
参见图8,图8为另一个实施例提供的数据传输方法的流程图,在图7所示实施例的基础上,本实施例步骤S410之后还包括步骤S440和步骤S450,具体地:
步骤S440,若RLC实体指针不为空,则将RLC实体指针当前指向的RLC PDU对应的链接指针,指向目标已发送RLC PDU。
若RLC实体指针不为空,则表示已发送PDU链表包括一个或多个已发送RLC PDU。若已发送PDU链表包括一个已发送RLC PDU,则RLC实体指针指向的是该一个已发送RLC PDU;若已发送PDU链表包括多个已发送RLC PDU,则这多个已发送RLC PDU之间通过链接指针依次链接,且RLC实体指针指向最后一个发送的已发送RLC PDU。例如,已发送PDU链表中当前已经包括序列号为0-9的10个已发送RLC PDU,其中,序列号为0的已发送RLC PDU的链接指针指向序列号为1的已发送RLC PDU、序列号为1的已发送RLC PDU的链接指针指向序列号为2的已发送RLC PDU,以此类推,序列号为9的已发送RLC PDU的链接指针置空,RLC实体指针指向序列号为9的已发送RLC PDU。
基站设备将RLC实体指针当前指向的RLC PDU对应的链接指针,指向要存入已发送PDU链表的目标已发送RLC PDU。
步骤S450,将目标已发送RLC PDU的链接指针置空,并将RLC实体指针指向目标已发送RLC PDU。
基站设备将新存入的目标已发送RLC PDU的链接指针置空,并将RLC实体指针指向该目标已发送RLC PDU。
在其它实施例中,若已发送PDU链表不包括已发送RLC PDU,则将RLC实体指针置空,以便于基站设备根据RLC实体指针的状态存入已发送RLC PDU。
本实施例通过检测RLC实体指针是否为空;若RLC实体指针不为空,则将RLC实体指针当前指向的RLC PDU对应的链接指针,指向目标已发送RLC PDU;将目标已发送RLC PDU的链接指针置空,并将RLC实体指针指向目标已发送RLC PDU;由此,实现了在传输缓存包括已发送RLC PDU的情况下,继续存入当前发送的已发送RLC PDU,并与已发送PDU链表中包括的已发送RLC PDU链接,整体形成单链;基站设备从接收端发送的状态报告中获取序列号后,根据序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表;调用内存释放线程释放待释放PDU链表中的已接收RLC PDU;在释放RLC PDU内存时,只需调用内存释放线程释放待释放PDU链表中的已接收RLC PDU,保证RLC实体有充足的时间组包,RLC实体的组包速率加快,确保了组包的完整性,提升了基站设备数据传输的准确性。
应该理解的是,虽然图2-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种数据传输装置,包括:
获取模块10,用于从接收端发送的状态报告中获取序列号;所述序列号用于表示未被所述接收端收到的无线链路控制层协议数据单元RLC PDU;
截取模块20,用于根据所述序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表;所述已发送PDU链表包括多个依次链接的已发送RLC PDU;所述待释放PDU链表包括至少一个依次链接且已被所述接收端收到的已接收RLC PDU;
调用模块30,用于调用内存释放线程释放所述待释放PDU链表中的已接收RLCPDU。
可选地,所述调用模块30包括:
存入单元,用于将所述待释放PDU链表存入预设队列中;
调用单元,用于调用内存释放线程按照预设周期释放所述预设队列中的已接收RLC PDU。
可选地,所述截取模块20包括:
确定单元,用于根据所述序列号,在所述已发送PDU链表中确定目标RLC PDU;
切断单元,用于将所述已发送PDU链表中所述目标RLC PDU和相邻RLC PDU之间的链接关系切断;所述相邻RLC PDU为所述已发送PDU链表中与所述目标RLC PDU相邻、且靠近所述已发送PDU链表的链表窗底;
截取单元,用于从所述已发送PDU链表中截取出包括所述相邻RLC PDU的链表,作为所述待释放PDU链表。
可选地,所述确定单元,包括:
第一确定子单元,用于若从所述状态报告中获取到一个序列号,则确定所述序列号对应的已发送RLC PDU为所述目标RLC PDU。
可选地,所述确定单元,包括:
第二确定子单元,用于若从所述状态报告中获取到多个序列号,则确定所述多个序列号中最小的序列号对应的已发送RLC PDU为所述目标RLC PDU。
可选地,所述截取模块20还包括:
更新单元,用于将所述目标RLC PDU更新为所述已发送PDU链表的链表窗底。
可选地,所述装置还包括:
存储模块,用于按照多个已发送RLC PDU的组包顺序,将各所述已发送RLC PDU依次存入所述已发送PDU链表中;各所述已发送RLC PDU在所述已发送PDU链表中按照所述组包顺序依次链接。
可选地,所述已发送PDU链表包括RLC实体指针,各所述已发送RLC PDU均设置有链接指针,所述存储模块包括:
检测单元,用于检测所述RLC实体指针是否为空;
存储单元,用于若所述RLC实体指针为空,则将目标已发送RLC PDU存入所述已发送PDU链表中;
第一链接单元,用于将所述目标已发送RLC PDU的链接指针置空,并将所述RLC实体指针指向所述目标已发送RLC PDU。
可选地,所述存储模块还包括:
第二链接单元,用于若所述RLC实体指针不为空,则将所述RLC实体指针当前指向的RLC PDU对应的链接指针,指向所述目标已发送RLC PDU;
第三链接单元,用于将所述目标已发送RLC PDU的链接指针置空,并将所述RLC实体指针指向所述目标已发送RLC PDU。
可选地,所述装置还包括:
标记模块,用于若所述已发送PDU链表不包括已发送RLC PDU,则将所述RLC实体指针置空。
本实施例提供的数据传输装置,可以执行上述数据传输方法实施例,其实现原理和技术效果类似,在此不再赘述。
关于数据传输装置的具体限定可以参见上文中对于数据传输方法的限定,在此不再赘述。上述数据传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种基站设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
从接收端发送的状态报告中获取序列号;所述序列号用于表示未被所述接收端收到的无线链路控制层协议数据单元RLC PDU;根据所述序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表;所述已发送PDU链表包括多个依次链接的已发送RLC PDU;所述待释放PDU链表包括至少一个依次链接且已被所述接收端收到的已接收RLC PDU;调用内存释放线程释放所述待释放PDU链表中的已接收RLC PDU。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Ramb微秒)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
从接收端发送的状态报告中获取序列号;所述序列号用于表示未被所述接收端收到的无线链路控制层协议数据单元RLC PDU;根据所述序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表;所述已发送PDU链表包括多个依次链接的已发送RLC PDU;所述待释放PDU链表包括至少一个依次链接且已被所述接收端收到的已接收RLC PDU;调用内存释放线程释放所述待释放PDU链表中的已接收RLC PDU。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (12)
1.一种数据传输方法,其特征在于,所述方法包括:
从接收端发送的状态报告中获取序列号;所述序列号用于表示未被所述接收端收到的无线链路控制层协议数据单元RLCPDU;
根据所述序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表;所述已发送PDU链表包括多个依次链接的已发送RLCPDU;所述待释放PDU链表包括至少一个依次链接且已被所述接收端收到的已接收RLC PDU;
调用内存释放线程释放所述待释放PDU链表中的已接收RLCPDU;
所述根据所述序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表,包括:
根据所述序列号,在所述已发送PDU链表中确定目标RLCPDU;
将所述已发送PDU链表中所述目标RLCPDU和相邻RLCPDU之间的链接关系切断;所述相邻RLCPDU为所述已发送PDU链表中与所述目标RLCPDU相邻、且靠近所述已发送PDU链表的链表窗底;
从所述已发送PDU链表中截取出包括所述相邻RLCPDU的链表,作为所述待释放PDU链表。
2.根据权利要求1所述的数据传输方法,其特征在于,所述调用内存释放线程释放所述待释放PDU链表中的已接收RLCPDU,包括:
将所述待释放PDU链表存入预设队列中;
调用内存释放线程按照预设周期释放所述预设队列中的已接收RLCPDU。
3.根据权利要求1所述的数据传输方法,其特征在于,所述根据所述序列号,在所述已发送PDU链表中确定目标RLCPDU,包括:
若从所述状态报告中获取到一个序列号,则确定所述序列号对应的已发送RLCPDU为所述目标RLCPDU。
4.根据权利要求1所述的数据传输方法,其特征在于,所述根据所述序列号,在所述已发送PDU链表中确定目标RLCPDU,包括:
若从所述状态报告中获取到多个序列号,则确定所述多个序列号中最小的序列号对应的已发送RLCPDU为所述目标RLCPDU。
5.根据权利要求1所述的数据传输方法,其特征在于,所述从所述已发送PDU链表中截取出包括所述相邻RLCPDU的链表,作为所述待释放PDU链表之后,还包括:
将所述目标RLCPDU更新为所述已发送PDU链表的链表窗底。
6.根据权利要求1-5任一项所述的数据传输方法,其特征在于,所述方法还包括:
按照多个已发送RLCPDU的组包顺序,将各所述已发送RLCPDU依次存入所述已发送PDU链表中;各所述已发送RLCPDU在所述已发送PDU链表中按照所述组包顺序依次链接。
7.根据权利要求6所述的数据传输方法,其特征在于,所述已发送PDU链表包括RLC实体指针,各所述已发送RLCPDU均设置有链接指针;所述按照多个已发送RLCPDU的组包顺序,将各所述已发送RLCPDU依次存入所述已发送PDU链表中,包括:
检测所述RLC实体指针是否为空;
若所述RLC实体指针为空,则将目标已发送RLCPDU存入所述已发送PDU链表中;
将所述目标已发送RLCPDU的链接指针置空,并将所述RLC实体指针指向所述目标已发送RLCPDU。
8.根据权利要求7所述的数据传输方法,其特征在于,所述方法还包括:
若所述RLC实体指针不为空,则将所述RLC实体指针当前指向的RLCPDU对应的链接指针,指向所述目标已发送RLCPDU;
将所述目标已发送RLCPDU的链接指针置空,并将所述RLC实体指针指向所述目标已发送RLCPDU。
9.根据权利要求8所述的数据传输方法,其特征在于,所述方法还包括:
若所述已发送PDU链表不包括已发送RLCPDU,则将所述RLC实体指针置空。
10.一种数据传输装置,其特征在于,所述数据传输装置包括:
获取模块,用于从接收端发送的状态报告中获取序列号;所述序列号用于表示未被所述接收端收到的无线链路控制层协议数据单元RLCPDU;
截取模块,用于根据所述序列号,从RLC层的传输缓存中存储的已发送PDU链表中,截取出待释放PDU链表;所述已发送PDU链表包括多个依次链接的已发送RLCPDU;所述待释放PDU链表包括至少一个依次链接且已被所述接收端收到的已接收RLCPDU;
调用模块,用于调用内存释放线程释放所述待释放PDU链表中的已接收RLC PDU;
所述截取模块,包括:
确定单元,用于根据所述序列号,在所述已发送PDU链表中确定目标RLC PDU;
切断单元,用于将所述已发送PDU链表中所述目标RLCPDU和相邻RLCPDU之间的链接关系切断;所述相邻RLCPDU为所述已发送PDU链表中与所述目标RLCPDU相邻、且靠近所述已发送PDU链表的链表窗底;
截取单元,用于从所述已发送PDU链表中截取出包括所述相邻RLCPDU的链表,作为所述待释放PDU链表。
11.一种基站设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911316889.3A CN111162882B (zh) | 2019-12-19 | 2019-12-19 | 数据传输方法、装置、基站设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911316889.3A CN111162882B (zh) | 2019-12-19 | 2019-12-19 | 数据传输方法、装置、基站设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111162882A CN111162882A (zh) | 2020-05-15 |
CN111162882B true CN111162882B (zh) | 2023-01-31 |
Family
ID=70557397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911316889.3A Active CN111162882B (zh) | 2019-12-19 | 2019-12-19 | 数据传输方法、装置、基站设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111162882B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021243535A1 (en) * | 2020-06-02 | 2021-12-09 | Qualcomm Incorporated | Radio link control layer feedback reporting for rateless codes |
CN114979313B (zh) * | 2022-06-13 | 2024-05-17 | 深圳市宏电技术股份有限公司 | 一种通信设备数据补报方法、装置、通信设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007107032A1 (fr) * | 2006-03-15 | 2007-09-27 | Zte Corporation | Procédé de gestion de ressources de support radio de terminal |
WO2009117945A1 (zh) * | 2008-03-24 | 2009-10-01 | 华为技术有限公司 | 发送数据的方法、系统和设备 |
WO2010066152A1 (zh) * | 2008-12-10 | 2010-06-17 | 中兴通讯股份有限公司 | 无线链路控制层减少冗余报文重传的方法及系统 |
CN104486051A (zh) * | 2014-12-09 | 2015-04-01 | 京信通信系统(中国)有限公司 | 一种数据重传方法及装置 |
WO2017024581A1 (zh) * | 2015-08-13 | 2017-02-16 | 华为技术有限公司 | 数据传输方法、基站及用户设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8412691B2 (en) * | 2010-09-10 | 2013-04-02 | International Business Machines Corporation | Maintenance and access of a linked list |
KR102582554B1 (ko) * | 2017-01-03 | 2023-09-25 | 삼성전자 주식회사 | 차세대 이동 통신 시스템에서 light connection을 지원하는 방법 및 장치 |
-
2019
- 2019-12-19 CN CN201911316889.3A patent/CN111162882B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007107032A1 (fr) * | 2006-03-15 | 2007-09-27 | Zte Corporation | Procédé de gestion de ressources de support radio de terminal |
WO2009117945A1 (zh) * | 2008-03-24 | 2009-10-01 | 华为技术有限公司 | 发送数据的方法、系统和设备 |
WO2010066152A1 (zh) * | 2008-12-10 | 2010-06-17 | 中兴通讯股份有限公司 | 无线链路控制层减少冗余报文重传的方法及系统 |
CN104486051A (zh) * | 2014-12-09 | 2015-04-01 | 京信通信系统(中国)有限公司 | 一种数据重传方法及装置 |
WO2017024581A1 (zh) * | 2015-08-13 | 2017-02-16 | 华为技术有限公司 | 数据传输方法、基站及用户设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111162882A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10813005B2 (en) | Split bearer packet data converge protocol protocol data unit routing | |
CN111162882B (zh) | 数据传输方法、装置、基站设备和计算机可读存储介质 | |
US8988994B2 (en) | System and method for creating logical radio link control (RLC) and medium access control (MAC) protocol data units (PDUs) in mobile communication system | |
US20220183050A1 (en) | Transmission pre-emption | |
US7489629B2 (en) | Methods and media access controller for broadband wireless communications with variable data unit size and delayed data unit construction | |
US20050152350A1 (en) | System and method for transmitting/receiving automatic repeat request | |
US20220150951A1 (en) | Communication method and communication apparatus | |
CN110062425A (zh) | 网络传输速率的控制方法、装置、计算机设备和存储介质 | |
WO2022001416A1 (zh) | 数据传输方法、数据传输装置及数据传输设备 | |
CN112929455B (zh) | 基于udp的数据传输方法、装置、设备和可读存储介质 | |
CN113938431B (zh) | 突发数据包传输方法、装置和电子设备 | |
CN110572850A (zh) | 5g基站缓存处理业务数据方法、装置、设备和存储介质 | |
CN106413095B (zh) | 数据传输方法 | |
CN110972325B (zh) | 一种数据传输方法、设备及装置 | |
CN104426638A (zh) | 一种数据递交方法和装置 | |
EP3672189A1 (en) | Data transmission method, device and system | |
CN109905209B (zh) | 一种设置网络乱序值的方法和装置 | |
US7636313B2 (en) | Use of internal buffer to reduce acknowledgement related delays in acknowledgement-based reliable communication protocols | |
CN111147540B (zh) | 文件传输方法、装置、设备和存储介质 | |
CN104348711A (zh) | 消息接收装置及方法 | |
CN114422425A (zh) | 多链路聚合的数据传输方法、系统、装置及存储介质 | |
WO2021142583A1 (zh) | 数据传输方法、终端设备和存储介质 | |
CN109981229B (zh) | Rlc层的数据处理方法、装置、计算机设备和存储介质 | |
CN114765874A (zh) | 一种上行信道处理方法及装置 | |
RU2770619C2 (ru) | Способ счета и устройство связи |
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 | ||
CB02 | Change of applicant information |
Address after: 510663 Shenzhou Road 10, Guangzhou Science City, Guangzhou economic and Technological Development Zone, Guangzhou, Guangdong Applicant after: Jingxin Network System Co.,Ltd. Address before: 510663 Shenzhou Road 10, Guangzhou Science City, Guangzhou economic and Technological Development Zone, Guangzhou, Guangdong Applicant before: COMBA TELECOM SYSTEMS (CHINA) Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |