发明内容
本发明实施例提供一种数据传输方法及设备,用于解决现有技术中当基站进行重传的次数达到基站配置的最大重传次数时造成的基站与终端之间的数据传输链路异常的技术问题。
第一方面,提供一种数据传输方法,该方法包括:
数据接收端记录向数据发送端发送第一状态报告的次数;所述第一状态报告用于指示所述数据发送端需要对第一RLC数据包进行重传;所述数据接收端和所述数据发送端采用AM模式进行数据传输;
所述数据接收端判断所述次数是否大于第一预设阈值;
若所述数据接收端判断所述次数大于第一预设阈值,则所述数据接收端向所述数据发送端发送第二状态报告,所述第二状态状告用于表征所述数据接收端已经接收到所述第一RLC数据包。
可选的,在所述数据接收端判断所述次数是否大于第一预设阈值之前,所述方法还包括:
所述数据接收端记录所述数据接收端发送的所有RLC数据包中每个RLC数据包的重传次数;
所述数据接收端在周期性定时器超时时,确定所述每个RLC数据包的重传次数中的最大重传次数是否大于第二预设阈值;
若所述数据接收端确定所述每个RLC数据包的重传次数中的最大重传次数大于第二预设阈值,则所述数据接收端判断所述次数是否大于第一预设阈值。
可选的,在所述数据接收端记录向数据发送端发送第一状态报告的次数之前,所述方法还包括:
所述数据接收端确定是否接收到所述第一RLC数据包的全部数据;
若所述数据接收端确定未接收到所述第一RLC数据包的全部数据,所述数据接收端向所述数据发送端发送所述第一状态报告。
可选的,在所述数据接收端确定是否接收到所述第一RLC数据包的全部数据之后,所述方法还包括:
若所述数据接收端确定接收到所述第一RLC数据包的全部数据,则所述数据接收端向所述数据发送端发送所述第二状态报告,且所述数据接收端将所述第一RLC数据包的当前状态更新为已接收状态。
第二方面,提供一种数据传输设备,该设备包括:
记录单元,用于记录向数据发送端发送第一状态报告的次数;所述第一状态报告用于指示所述数据发送端需要对第一RLC数据包进行重传;所述数据接收端和所述数据发送端采用AM模式进行数据传输;
判断单元,用于判断所述次数是否大于第一预设阈值;
发送单元,用于:若所述数据接收端判断所述次数大于第一预设阈值,则向所述数据发送端发送第二状态报告,所述第二状态状告用于表征所述设备已经接收到所述第一RLC数据包。
可选的,所述设备还包括确定单元;
所述记录单元还用于:在所述判断单元判断所述次数是否大于第一预设阈值之前,记录所述数据接收端发送的所有RLC数据包中每个RLC数据包的重传次数;
所述确定单元用于:在周期性定时器超时时,确定所述每个RLC数据包的重传次数中的最大重传次数是否大于第二预设阈值;
所述判断单元用于:若所述确定单元确定所述每个RLC数据包的重传次数中的最大重传次数大于第二预设阈值,则判断所述次数是否大于第一预设阈值。
可选的,
所述确定单元还用于:确定是否接收到所述第一RLC数据包的全部数据;
所述发送单元还用于:若所述确定单元确定未接收到所述第一RLC数据包的全部数据,则向所述数据发送端发送所述第一状态报告。
可选的,
所述发送单元还用于:若所述确定单元确定接收到所述第一RLC数据包的全部数据,则向所述数据发送端发送所述第二状态报告,且将所述第一RLC数据包的当前状态更新为已接收状态。
第三方面,提供一种计算机装置,所述装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如第一方面提供的数据传输方法任一项所述方法的步骤。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面提供的数据传输方法任一项所述方法的步骤。
在本发明实施例中,数据接收端会记录向数据发送端发送状态报告的次数,也就是数据接收端指示数据发送端进行重传的次数,当数据接收端确定记录的次数超过第一预设阈值时,则数据接收端直接通知数据发送端其发送的数据包已经收到,以使得数据发送端不再继续进行重传,以减少数据发送端和数据接收端的数据传输负荷,以及减少数据发送端不断重传所利用的资源。同时,这样还可以保证数据发送端和数据接收端之间的传输链路不会产生因不断的重传造成的异常,进而不会影响其他数据包的传输,使得数据发送端和数据接收端之间的数据传输速率得以保证,提高用户的使用体验。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
下面介绍本发明实施例的技术背景。
目前,基站的功能主要在于处理空口传输来的数据以及与网络侧进行数据交换、转发等。以长期演进型(Long Term Evolution,LTE)通信系统中的基站为例,请参见图1,为现有技术中的应用场景图。其中,基站通过空口与终端进行通信,基站的数据处理协议层主要包括媒体接入控制(Media Access Control,MAC)协议层,无线链路控制(Radio LinkControl,RLC)协议层,分组数据汇聚(Packet Data Convergence Protocol,PDCP)协议层、分组无线服务隧道(General Packet Radio Service Tunneling Protocol,GTP)协议层等。在终端中,也包括与上述协议层对等的协议层,以使得终端也可以进行相应的数据处理。
通常,每一个协议层都会将其对应的高层发来的数据保存至缓存队列,然后再对数据进行相应的处理,处理完成后,再发至其对应的下一层。其中,RLC层具有自动重传请求(auto repeat request,ARQ)能力,如果RLC接收到错误的数据包或者某个数据包的数据未被全部接收,则RLC层则会向终端发送状态报告,以指示发送端对这个错误的数据包或者未被全部接收的数据包进行重传,直至基站中RLC层确认数据包的数据被全部接收为止。当RLC层确定数据包的数据被全部接收之后,RLC层还会向终端发送用于指示数据包的数据被全部接收的状态报告。
其中,当基站与终端之间采用确认模式进行数据传输时,在基站与终端之间的网络状况较差时,例如空口环境差,或者传输网络设备等的配置异常造成的网络状况差时,基站和终端之间数据传输时的丢包情况频繁出现,则会导致终端不断请求基站进行重传,进而使得基站传输负荷增大,并且还需要更多的空口资源,更极端的情况是,当基站进行重传的次数达到基站配置的最大重传次数时还会造成数据传输链路异常,进而使得基站和终端的数据传输速率更低,使得用户体验较差。
鉴于此,本发明实施例提供一种数据传输方法,该方法中,数据接收端会记录向数据发送端发送状态报告的次数,也就是数据接收端指示数据发送端进行重传的次数,当数据接收端确定记录的次数超过第一预设阈值时,则数据接收端直接通知数据发送端其发送的数据包已经收到,以使得数据发送端不再继续进行重传,以减少数据发送端和数据接收端的数据传输负荷,以及减少数据发送端不断重传所利用的资源。同时,这样还可以保证数据发送端和数据接收端之间的传输链路不会产生因不断的重传造成的异常,进而不会影响其他数据包的传输,使得数据发送端和数据接收端之间的数据传输速率得以保证,提高用户的使用体验。
下面结合附图介绍本发明实施例提供的技术方案。
请参见图2,本发明一实施例提供一种数据传输方法,该方法包括:
步骤201:数据接收端记录向数据发送端发送第一状态报告的次数;第一状态报告用于指示数据发送端需要对第一RLC数据包进行重传;数据接收端和数据发送端采用AM模式进行数据传输;
步骤202:当数据接收端与数据发送端之间的网络状况不佳时,数据接收端判断次数是否大于第一预设阈值;
步骤203:若数据接收端判断次数大于第一预设阈值,则数据接收端向数据发送端发送第二状态报告,第二状态状告用于表征数据接收端已经接收到第一RLC数据包。
本发明实施例中,数据接收端和数据发送端均可以通过基站或者用户的终端来实现,例如当数据接收端为基站时,则数据发送端可以为用户的终端;当数据接收端为用户的终端时,则数据发送端可以为基站。
本发明实施例中,在数据接收端记录向数据发送端发送第一状态报告的次数之前,数据接收端首先可以确定是否接收到数据发送端发送的第一RLC数据包的全部数据。其中,当数据接收端的RLC层接收到数据发送端发送的第一RLC数据包之后,则可以确定第一RLC数据包的全部数据是否都被接收。
具体的,数据接收端接收到数据发送端发送的第一数据包之后,是按照协议层的顺序依次对第一数据包进行处理的,当第一数据包到达RLC层时,即RLC层接收到第一RLC数据包之后,则可以对第一RLC数据包进行解压处理,RLC层则可以根据解压后的第一RLC数据包确定该第一RLC数据包的全部数据是否被数据接收端全部接收。关于RLC层如何确定一个数据包的全部数据是否被全部接收,这属于现有技术的范畴,在此不再赘述。
本发明实施例中,若是数据接收端的RLC层确定第一RLC数据包的数据未被全部接收,则数据接收端会向数据发送端发送第一状态报告,第一状态报告是用于指示数据发送端对第一RLC数据包进行重传,当然,也可以是指示数据发送端对第一RLC数据包中未被接收的部分进行重传,本发明对此不做限制。
在数据接收端向数据发送端发送第一状态报告之后,数据接收端的RLC层则会记录向数据发送端发送第一状态报告的次数。
本发明实施例中,在数据发送端和数据接收端之间的网络状况不佳时,更有可能发生丢包现象,即在网络状况不佳时,重传的概率大大增加,因此为了避免重传的次数过多造成的传输链路异常,数据接收端还会对发送第一状态报告的次数进行限制。具体的,数据接收端可以判断数据接收端向数据发送端发送第一状态报告的次数是否大于第一预设阈值。其中,第一预设阈值的设置可以根据经验或者实验结果来设置,通常来讲,第一预设阈值不大于数据接收端和数据发送端的最大重传次数,最大重传次数是指数据接收端与数据发送端进行重传的次数的极限值,当数据接收端与数据发送端进行重传的次数超过该最大重传次数之后,数据接收端与数据发送端之间的传输链路则会发生异常。
当数据接收端判断数据接收端向数据发送端发送第一状态报告的次数大于第一预设阈值时,此时已经说明数据发送端重传第一RLC数据包的次数已经较多,若是数据接收端继续指示数据发送端继续不断的进行重传,可能则会使得第一RLC数据包重传的次数不断增长,进而在达到最大重传次数时,则使得数据接收端与数据发送端之间的传输链路发生异常。因此,在本发明实施例中,当数据接收端判断向数据发送端发送第一状态报告的次数大于第一预设阈值时,数据接收端就会向数据发送端发送第二状态报告,其中,第二状态报告是用于表征数据接收端已经接收到第一RLC数据包。这样,数据发送端在接收到第二状态报告之后,则不会再继续对第一RLC数据包进行重传,以减少数据发送端和数据接收端的数据传输负荷,同时也减少数据发送端不断重传所利用的资源。同时,这样还可以保证数据发送端和数据接收端之间的传输链路不会产生因不断的重传造成的异常,进而不会影响其他数据包的传输,使得数据发送端和数据接收端之间的数据传输速率得以保证,提高用户的使用体验。
本发明实施例中,在数据接收端判断数据接收端向数据发送端发送第一状态报告的次数大于第一预设阈值之前,数据接收端首先可以确定数据接收端和数据发送端之间的网络状况。具体的,数据接收端除接收数据发送端发送的数据包之外,也可以向数据发送端发送数据包,则数据接收端可以根据数据接收端中记录的数据接收端发送的RLC数据包中的每一个RLC数据包重传的次数,以判断数据接收端和数据发送端之间的网络状况。其中,RLC数据包是指在RLC层中进行数据处理的数据包。
数据接收端中记录的所有RLC数据包中的每一个RLC数据包重传的次数,包括数据发送端指示数据接收端进行重传的次数,以及数据接收端主动重传的次数。当然,这里所说的RLC数据包可以只是数据接收端发送给数据发送端的RLC数据包,也可以是数据接收端发送给包括数据发送端在内的其他终端的RLC数据包。下面以数据接收端发送的其中一个RLC数据包为例进行说明。
本发明实施例中,当数据接收端向数据发送端发送一个RLC数据包之后,数据发送端在则可以接收该RLC数据包,数据发送端中的RLC层在对该RLC数据包进行解压时,则可以确定接收的RLC数据包是否错误或者该RLC数据包的数据是否未被全部接收,若数据发送端确定接收的RLC数据包错误或者该数据包的数据未被全部接收,则数据发送端中的RLC层则会生成一个指示数据接收端对该RLC数据包进行重传的状态报告,并将该状态报告发送给数据接收端。当数据接收端接收到该状态报告之后,则可以对该RLC数据包进行重传,同时,数据接收端中RLC层还会将该RLC数据包重传的次数加一。
本发明实施例中,数据接收端中的RLC层在发送一个RLC数据包之后,则会对该RLC数据包开始计时,当计时时间超过预设的时间阈值时,若数据接收端还未收到数据发送端对该RLC数据包进行反馈的状态报告,则数据接收端会认为该RLC数据包数据发送端未接收到,则会主动的将RLC该数据包进行重传一次,同时,数据接收端中RLC层还会将该RLC数据包重传的次数加一。
本发明实施例中,为了确定数据接收端和数据发送端之间的网络状况,数据接收端可以周期性的确定数据接收端中记录的重传的次数中的最大次数是否超过第二预设阈值。具体的,数据接收端中可以设置一个周期性定时器,周期性定时器的周期可以根据需求进行设置,当周期性定时器超时一次,即计时周期达到一次时,数据接收端则将确定依次数据接收端中记录的重传的次数中的最大次数,并将该最大次数与第二预设阈值进行一次比较,当最大次数大于第二预设阈值时,即数据接收端和数据发送端进行重传的次数过多,则数据接收端可以确定数据接收端和数据发送端之间的传输链路环境差,当数据接收端和数据发送端分别为基站和终端时,即是指基站与终端之间的空口环境差,数据传输速率较低。其中,第二预设阈值不大于为数据接收端和数据发送端的配置的最大重传次数,且第二预设阈值还可以大于第一预设阈值。
本发明实施例中,当本发明实施例中,若是数据接收端的RLC层确定第一RLC数据包的全部内容已经被全部接收,则数据接收端会直接向数据发送端发送第二状态报告,即通知数据发送端第一RLC数据包的全部内容已经被数据接收端全部接收。
在数据接收端向数据发送端发送第二状态报告之后,数据接收端的RLC层还可以将第一RLC数据包的状态更改为已接收状态。具体的,在RLC层中,通过接收窗口来控制RLC数据包的处理,处于接收窗口之前的为已经完全处理的RLC数据包,即上述所说的已接收状态的数据包;处于接收窗口中的为正在处理的RLC数据包;处于接收窗口之后的为待处理的RLC数据包。由于RLC层的接收窗口所能处理的RLC数据包数量有限,在RLC层每处理完成一个RLC数据包之后,则会将该RLC数据包的序列往前移动,以能够其他待处理的RLC数据包能够进入接收窗口,以能够被RLC层处理。
综上所述,本发明实施例的数据接收端会记录向数据发送端发送状态报告的次数,也就是数据接收端指示数据发送端进行重传的次数,当数据接收端确定记录的次数超过第一预设阈值时,则数据接收端直接通知数据发送端其发送的数据包已经收到,以使得数据发送端不再继续进行重传,以减少数据发送端和数据接收端的数据传输负荷,以及减少数据发送端不断重传所利用的资源。同时,这样还可以保证数据发送端和数据接收端之间的传输链路不会产生因不断的重传造成的异常,进而不会影响其他数据包的传输,使得数据发送端和数据接收端之间的数据传输速率得以保证,提高用户的使用体验。
下面结合附图介绍本发明实施例提供的设备。
请参见图3,基于同一发明构思,本发明一实施例提供一种数据传输设备30。该设备包括:
记录单元301,用于记录向数据发送端发送第一状态报告的次数;所述第一状态报告用于指示所述数据发送端需要对第一RLC数据包进行重传;数据接收端和数据发送端采用AM模式进行数据传输;
判断单元302,用于判断所述次数是否大于第一预设阈值;
发送单元303,用于若所述数据接收端判断所述次数大于第一预设阈值,则向所述数据发送端发送第二状态报告,所述第二状态状告用于表征所述设备已经接收到所述第一RLC数据包。
可选的,所述设备还包括确定单元304;
所述记录单元301还用于在所述判断单元302判断所述次数是否大于第一预设阈值之前,记录所述数据接收端发送的所有RLC数据包中每个RLC数据包的重传次数;
所述确定单元304用于在周期性定时器超时时,确定所述每个RLC数据包的重传次数中的最大重传次数是否大于第二预设阈值;
所述判断单元302用于若所述确定单元304确定所述每个RLC数据包的重传次数中的最大重传次数大于第二预设阈值,则判断所述次数是否大于第一预设阈值。
可选的,
所述确定单元304还用于确定是否接收到所述第一RLC数据包的全部数据;
所述发送单元303还用于若所述确定单元304确定未接收到所述第一RLC数据包的全部数据,则向所述数据发送端发送所述第一状态报告。
可选的,
所述发送单元303还用于若所述确定单元304确定接收到所述第一RLC数据包的全部数据,则向所述数据发送端发送所述第二状态报告,且将所述第一RLC数据包的当前状态更新为已接收状态。
该设备可以用于执行图2所示的实施例所提供的方法,例如该设备为前所述的基站或者终端。因此,对于该设备的各功能模块所能够实现的功能等可参考图2所示的实施例的描述,不多赘述。其中,由于确定单元304不是必选的功能模块,因此在图3中以虚线示出。
请参见图4,本发明一实施例还提供一种计算机装置,该计算机装置包括处理器401,处理器401用于执行存储器中存储的计算机程序时实现本发明实施例提供的数据传输方法的步骤。
可选的,处理器401具体可以是中央处理器、特定应用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(英文:Field Programmable GateArray,简称:FPGA)开发的硬件电路,可以是基带处理器。
可选的,处理器401可以包括至少一个处理核心。
可选的,该计算机装置还包括存储器402,存储器402可以包括只读存储器(英文:Read Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)和磁盘存储器。存储器402用于存储处理器401运行时所需的数据。存储器402的数量为一个或多个。其中,存储器402在图4中一并示出,但需要知道的是存储器402不是必选的功能模块,因此在图4中以虚线示出。
本发明一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明实施例提供的数据传输方法的步骤。
在本发明实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性或其它的形式。
在本发明实施例中的各功能单元可以集成在一个处理单元中,或者各个单元也可以均是独立的物理模块。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备,例如可以是个人计算机,服务器,或者网络设备等,或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(Universal Serial Bus flash drive)、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。