一种数据递交方法和装置的制造方法
【技术领域】
[0001]本发明涉及通信领域,特别涉及一种数据递交方法和装置。
【背景技术】
[0002]3G (3rd-Generat1n,第三代移动通信技术)是指能够支持高速数据传输的蜂窝移动通讯技术。在移动互联网中,下行是指移动互联网侧至用户侧。在以3G为基础的移动互联网中,用户可以享受到高速率的下行业务。
[0003]移动互联网运行的是HSDPA(High Speed Downlink Packet Access,高速下行分组接入)协议。该HSDPA协议的结构共分为五层,按照从上到下的顺序依次为:应用层TCP (Transmiss1n Control Protocol,传输控制协议)/IP (Internet Protocol,因特网协议)'F1DCP (Packet Data Convergence Protocol,分组数据汇聚协议)层、RLC(Rad1 LinkControl,无线链路控制)层、MAC-hs (Medium Access Control High Speed,高速介质访问控制层)及物理层。其中,所述RLC层和所述MAC-hs层是传输数据的主要的协议层;所述HXP用于对数据进行打包;所述RLC用于对数据进行分段;所述MAC-hs用于对数据进行组包。网络侧应用层下发的TCP/IP数据包经过所述rocp的打包,RLC的分段,MAC-hs的组包过程,最后通过物理层发向空中接口。用户侧收到组包后的数据之后,经过相反的过程,最后传递给用户的应用层。在此过程中,为了保证传输的可靠性,在用户的RLC层有一套重传机制。该重传机制需要将丢失的F1DU (Protocol Data Unit,协议数据单元)的信息通知网络侧,从而促使网络侧RLC层进行重传。而网络进行重选的前提是发现网络进入了拥塞状态。目前的拥塞控制机制包括:慢启动、拥塞避免和快速重传。所述慢启动是指网络中发送数据呈指数级增加,所述拥塞避免是指当网络中发送数据的速率达到慢启动门限时,网络中发送数据的速度呈线性增加,所述快速重选是指根据接收到的连续的数据包来判断丢失的数据包,并对丢失的数据包进行快速重传。
[0004]此外,在RLC层设置了两种递交方法:按序递交和非按序递交。所述按序递交是指接收方应按照网络递交报文的顺序将接收到的报文顺序递交到用户的应用层,所述非按序递交是指接收方无需按照网络递交报文的顺序,可以以任意的顺序递交接收到的报文到用户的应用层。
[0005]如果网络侧RLC层设置按序递交为true (是)时按序递交,那么用户必须按序递交数据到上层。但是,如果网络侧RLC层设置按序递交为false (否)时,用户可以按序递交数据到上层,也可以非按序递交数据到上层。
[0006]如果采用按序递交方式,当有socket中的TCP包丢失的现象发生时,其余已经接收成功的数据无法及时递交给上层,只有等到所有的数据接收成功了才能向上层递交。这样可能会导致这个socket下TCP层在一定时间内不能收到任何TCP包,这可能触发TCP认为链路中断而拆链。
[0007]当网络侧以非按序递交时,如果传输数据的TCP socket (端口)只有I个,当用户端的TCP层发现有报文丢失时,用户端的TCP层每收到一个不连续的报文,用户端就会发送ACK (Acknowledgement,确认字符)报文给网络,而多个ACK报文必然会触发网络侧的拥塞避免过程,导致下行速率快速下降,并且需要一定的时间才能恢复。当并发的传输数据的TCP socket有多个时,丢失的PDU很可能只包含I个socket上的数据,即非按序递交很可能只会影响I个socket上的速率,因此并发的socket越多,则总体速率受影响越小。当网络侧以按序递交时,当传输数据的TCP socket只有I个且当有丢失的PDU时,RLC会在该PDU重传成功后,才会按序向上层递交TCP报文,使得TCP层可以收到连续的TCP报文,因此可以避免进入拥塞避免过程。但当并发传输的数据的TCP socket有多个且存在I3DU的丢失时,只有等该PDU重传成功后,其余的socket上的数据,才能继续传输,这样会导致所有socket上的传输时延增加,导致服务器端发送数据的速率降低。因此,当网络侧RLC层设置按序递交为false (否)时,用户采用按序递交或非按序递交,均无法保证不同并发TCPsocket的数量时网络中数据的高速传输。
【发明内容】
[0008]本发明的目的在于提供一种数据递交方法和装置,将不同socket连接的TCP包区分对待,避免了都采用按序递交所导致的一个socket连接的TCP包丢失导致其他socket连接也不能正常接收的情况,最大限度的减少了采用按序递交对终端下载速率的影响;此夕卜,在预设时间内如果无法收到连续的TCP报文,则在超过预设时间时,将已经收到的TCP包递交给上层,使得TCP层不会因为长时间不能收到任何数据包而拆链。
[0009]为解决上述技术问题,本发明的实施方式提供了一种数据递交方法,应用于配置的按序递交In-seuquence deliver为否false的网络中,包括:
[0010]S1、对缓存中未处理过的完整的服务数据单元SDU进行处理,当处理得到所述SDU是传输控制协议TCP包时,判断所述SDU所属的端口 socket中是否存在连续的TCP报文;
[0011]S2、当判定所述socket中存在连续的TCP报文时,将所述连续的TCP报文重组后递交;当判定所述socket中不存在连续的TCP报文时,继续处理未处理过的完整的SDU,如果在预设的时间内获取到所述socket的连续的TCP报文,则将所述连续的TCP报文重组后递交;如果未在预设的时间内获取到所述socket的连续的TCP报文,则在达到所述预设的时间时将获取到的所述socket的TCP包重组后递交。
[0012]本发明的实施方式还提供了一种数据递交装置,应用于配置的按序递交In-seuquence deliver 为否 false 的网络中,包括:
[0013]第一处理单元,用于对缓存中未处理过的完整的服务数据单元SDU进行处理,当处理得到所述SDU是传输控制协议TCP包时,判断所述SDU所属的端口 socket中是否存在连续的TCP报文;
[0014]第二处理单元,用于当判定所述socket中存在连续的TCP报文时,将所述连续的TCP报文重组后递交;当判定所述socket中不存在连续的TCP报文,继续处理未处理过的完整的SDU,如果在预设的时间内获取到所述socket的连续的TCP报文,则将所述连续的TCP报文重组后递交;如果未在预设的时间内获取到所述socket的连续的TCP报文,则在达到所述预设的时间时将获取到的所述socket的TCP包重组后递交。
[0015]本发明实施方式相对于现有技术而言,将不同socket连接的TCP包区分对待,避免了都采用按序递交所导致的一个socket连接的TCP包丢失导致其他socket连接也不能正常接收的情况,最大限度的减少了采用按序递交对终端下载速率的影响;此外,在预设时间内如果无法收到连续的TCP报文,则在超过预设时间时,将已经收到的TCP包递交给上层,使得TCP层不会因为长时间不能收到任何数据包而拆链。此外,通过判断并发传输数据的TCP socket端口号,使得属于同一 TCP socket的数据,按序递交,而属于不同TCPsocket的数据,互相之间无需按序递交。本发明没有增加任何硬件开销,仅增加了对TCP报文的解析开销,在不违背协议规定的情况下,有选择的根据TCP中每个socket连接的不同情况,对RLC层是否进行按序递交进行优化和调整,克服了现有技术中考虑不周的缺点,达到了提升终端下载速率的目的。采用本发明所提供的方法,不仅提高了终端一侧无线资源的利用率,也有利于整个系统资源的合理使用。
[0016]优选的,所述方法还包括以下步骤:S0、在所述SI之前,给每一个socket设置定时器;在所述SI中,当处理得到所述SDU是TCP协议包时,启动所述SDU所属的socket的定时器;在所述S2中,所述预设的时间为所述定时器的时长。所述定时器的时长为2秒。
[0017]当socket中不存在连续的TCP报文,即当RLC发现丢包时,可以在socket设置的定时器规定的时长内,RLC (Rad1 Link Control,无线链路控制)继续接收后续的下行F1DU(Protocol Data Unit,协议数据单元),如果在定时器时长内获取到连续的TCP报文,则可以将该socket中连续的TCP报文重组后递交,如果在定时器时长内获取到连续的TCP报文,则可以将该socket中连续的TCP报文重组后递交,如果在定时器时长内没有获取到连续的TCP报文,则可以在定时器超时时将该socket中的TCP包重组后递交,引入定时器可以使得该数据递交方法变得