无线侧tcp数据重传的方法和设备的制作方法

文档序号:7894694阅读:318来源:国知局
专利名称:无线侧tcp数据重传的方法和设备的制作方法
技术领域
本发明涉及通信技术领域,特别涉及一种无线侧TCP数据重传的方法和设备。
背景技术
TCP (Transmission Control Protocol,传输控制协议)是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport Layer)通信协议。在具有TCP代理功能的RNC (Radio Network Controller,无线网络控制器)或者有TCP实体的3G (3rd Generation,第三代移动通信技术)终端的无线侧,由于空口丢包和非按序递交,会导致终端收到大量的乱序包,终端的TCP实体在收到乱序包后会发送DupACK (重复确认)或者SACK (选择性确认),表示丢失某个数据包。 其实,这些包在空口被分成很多小包进行传输,由于某个小包的丢弃,导致整个大包不能递交给终端的TCP实体,这时候终端的TCP实体就会发送Dup ACK或者SACK,要求RNC侧的TCP代理重传这包数据。而小包丢失后会在RLC (Radio Link Control,无线链路控制)层重传,当重传的小包被终端正确接收后,整个大包就交给终端的TCP层。但是,如果这时候RNC的TCP层也重传了这包数据,就会导致这包在空口中重复传输,导致空口资源和带宽的浪费。Dup ACK或者SACK是TCP协议告知发送端数据丢失的两种方式
连续收到3个Dup ACK (一共4个ACK具有相同的确认号),表示确认号开始的数据包接收端没有收到。SACK是直接告诉发送端哪些数据收到了,哪些数据没有收到。目前TCP代理对重传的处理大多是按照TCP协议的重传机制或者对TCP协议重传机制的改进。( I) TCP协议快速重传算法
如果发送方在重传计时器超时之前连续收到3个Dup ACK (一共4个ACK具有相同的确认号),则说明极有可能某一包数据已经丢失,此时立即启动快速重传算法,也就是立即重传这一包数据。(2)重传定时器
当TCP发送一个报文段时,会根据RTT (Round-Trip Time,往返时间)创建一个针对特定报文段的重传计时器。如果在计时器截止时间之前收到对这个报文段的确认,则撤销这个定时器;如果在计时器截止时间之前没有收到对这个报文段的确认,则重传这个报文段,并清除定时器。(3)次幂重传算法
这个算法是在快速重传算法上的改进,如果重传计时器超时之前收到3个Dup ACKC-共4个ACK具有相同的确认号),则立即重传这一包,后续继续收到3个Dup ACK,不再重传,直到收到8个ACK具有相同的确认号,才重传这一包,后续收到16个ACK具有相同的确认号,才重传这一包......从而,避免后续不必要的多次重传。
在实现本发明的过程中,发明人发现现有技术中至少存在以下问题
以上三种方法,TCP协议快速重传算法和重传定时器是TCP协议的一部分,次幂重传算法是基于快速重传算法的一种改进。这些方法在解决无线侧是否需要重传数据包的问题上有很大的局限性,具体分析如下
(I)TCP协议快速重传算法,这个是TCP协议规定的实现方式,这种方式的弊端很明显,在无线环境较差的情况下,TCP实体发送的数据包在RLC被分割成多个小包,如果丢失其中的部分小包,而重传这些小包的过程需要一定的时间或者这些小包在空口反复的丢弃,都会导致终端发送大量的Dup ACK,如果按照快速重传算法,整个数据包被不停的发送,浪费带宽和空口的资源。(2)重传定时器的方法在无线环境中具有局限性,主要是RTT在空口是一个变化很大的值,根据以前的值预测往往不准。如果RTT时间预测短了,会导致没必要的重传,浪费带宽和空口资源;如果RTT时间预测长了,首先实时性较差,其次发送窗满,也会导致空口空闲,导致空口资源不必要的浪费。(3)次幂重传算法是对TCP协议快速重传算法的改进,虽然可以减少TCP实体发送重复数据包的次数,但是不能避免,而且,如果数据包再次丢失了,再次重传数据包的实时性较差。综上所述,这些方法都不可避免的带来的空口带宽资源浪费,而且还有可能引入实时性差等其他问题。

发明内容
本发明实施例提供一种无线侧TCP数据重传的方法和设备,解决现有的技术方案中在存在跨无线网络TCP连接的系统中,无法合理解决无线侧重传处理,造成系统资源浪费的问题。为达到上述目的,本发明实施例一方面提供了一种无线侧TCP数据重传的方法,至少包括以下步骤
当TCP实体接收到终端设备发送的上行消息时,所述TCP实体判断所述上行消息中是否包含Dup ACK消息;
如果包含,所述TCP实体判断RLC层是否已经将所述Dup ACK消息所对应的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息;
如果判断结果为是,所述TCP实体对所述Dup ACK消息进行计数累加;
所述TCP实体判断所述Dup ACK消息当前的计数值是否达到2 ;
如果达到,所述TCP实体重传所述Dup ACK消息所对应的数据包,并将所述Dup ACK消息的计数值置零。另一方面,本发明实施例还提供了一种网络设备,作为TCP实体应用于存在跨无线网络的TCP连接的网络系统中,至少包括
接收模块,用于接收终端设备发送的上行消息;
第一判断模块,用于判断所述接收模块所接收到的上行消息中是否包含Dup ACK消
息;
第二判断模块,用于在所述第一判断模块的判断结果为包含时,判断RLC层是否已经将所述Dup ACK消息所对应的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息;
计数模块,用于在所述第二判断模块的判断结果为是时,对所述接收模块所接收到的Dup ACK消息进行计数累加;
第三判断模块,用于判断所述计数模块所计数的Dup ACK消息当前的计数值是否达到
2 ;
处理模块,用于在所述第三判断模块的判断结果为达到时,重传所述Dup ACK消息所对应的数据包,并通知所述计数模块将所述Dup ACK消息的计数值置零。与现有技术相比,本发明实施例所提出的技术方案具有以下优点
通过应用本发明实施例的技术方案,在TCP实体接收到终端设备发送的包含Dup ACK消息的上行消息的情况下,如果TCP实体判断RLC层已经将该Dup ACK消息所对应的数据包的所有分片包发送给终端设备,并接收到了终端设备返回的确认消息,则对该Dup ACK消息进行计数累加,并在计数值达到2时,重传该Dup ACK消息所对应的数据包,从而,可以灵活运用TCP实体数据本地缓冲及重传的特点,并结合RLC可靠传输的特性,对终端设备的DupACK进行甄别,实现TCP层数据的快速重传,在TCP代理的无线侧准确确定数据包是否需要TCP层的重传,提高了 TCP的性能和空口资源利用率,避免了非必要的数据重传所带来的系统资源浪费。


图I为本发明实施例所提出的一种无线侧TCP数据重传的方法的流程示意 图2为本发明实施例所提出的一种无线侧TCP数据重传的方法中的根据SACK消息进行数据包重传处理的流程示意 图3为本发明实施例所提出的一种具体场景中的无线侧TCP数据重传的方法的流程示意 图4为本发明实施例提出的一种网络设备的结构示意图。
具体实施例方式如背景技术所述,TCP是为有线网络Internet而研究、开发出来的可靠的传输协议。有线网络的传输特性是低误码率、易拥塞性,因此,它的传输控制算法主要是基于网络 的拥塞模型而设计的。但是,当一个TCP连接跨越了有线和无线两个网络时,TCP将不能适应无线传输信道的高误码率、高时延抖动、小区切换、乱序等特性,弓I起错误的慢启动、拥塞避免和重传,当空口质量迅速恢复的时候,TCP数据不能及时传输,造成带宽资源利用率降低、有效带宽下降和吞吐波动等现象。为了提升上述跨越无线网络TCP连接的传输性能,现有技术中比较通用的做法是在RNC侧设置TCP代理,通过本地缓存、排序、流量控制、本地重传、抑制Dup ACK等机制来增强无线侧传输的性能。但是,在无线环境中,由于空口环境变化大,会导致很多的乱序包,这些包的重传可以在RLC解决,如果在TCP层重传,会导致空口资源不必要的浪费。
为了克服这样的缺陷,本发明实施例提出了一种无线侧TCP数据重传的方法,主要解决在TCP代理的无线侧如何确定数据包是否需要TCP层的重传,以提高TCP的性能和空口资源利用率的问题。如图I所示,为本发明实施例所提出的一种无线侧TCP数据重传的方法的流程示意图,该方法具体包括以下步骤
步骤SlOl、当TCP实体接收到终端设备发送的上行消息时,所述TCP实体判断所述上行消息中是否包含Dup ACK消息。如果包含,则执行步骤S102 ;
如果不包含,则按照预设规则采用其它方式(例如,根据SACK消息或者其他信息进行处理)进行相应的处理,具体的处理方式在后续说明中进行描述,在此不再赘述。
步骤S102、所述TCP实体判断RLC层是否已经将所述Dup ACK消息所对应的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息。如果判断结果为是,则表示相应的数据包已经在RLC层发送完毕,但是终端设备侧并没有正确接收,可能需要进行相应的重传处理,需要通过后续过程进行判断,因此,执行步骤S103 ;
如果判断结果为否,则表示相应的数据包在RLC层中还没有发送完毕,或者,虽然RLC已经发送,但是暂时还没有收到终端设备侧返回的正确接收的确认消息,相应的Dup ACK消息所提出的重传请求有可能随着数据包完成发送并接收到终端设备的确认而解决,因此,可以暂时进行相应的重传处理,在本实施例中,TCP实体进一步执行步骤S106。在实际的应用场景中,本步骤的处理具体包括
(I)所述TCP实体确定所述Dup ACK消息所对应的数据包的各分片包中,已经由所述终端设备确认的分片包的序列号。(2)所述TCP实体判断所述序列号的最大值是否达到所述Dup ACK消息所对应的数据包在RLC层的终止序列号。如果达到,所述TCP实体确认RLC层已经将所述Dup ACK消息所对应的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息。相反,如果没有达到,则表示相应的数据包在RLC层中还没有发送完毕,或者,虽然RLC已经发送,但是暂时还没有收到终端设备侧返回的正确接收的确认消息。步骤S103、所述TCP实体对所述Dup ACK消息进行计数累加。步骤S104、所述TCP实体判断所述Dup ACK消息当前的计数值是否达到2。如果达到,则执行步骤S105 ;
如果没有达到,则表示TCP实体对于该Dup ACK消息所对应的数据包暂时不需要进行重传处理,返回步骤SlOl。需要说明的是,在本实施例中,采用Dup ACK消息的计数值等于2的依据作为数据包重传的触发条件的思想在于
在上行数据中,ACK消息(包括Dup ACK消息)和RLC层确认数据(包括终端设备侧接收到数据包中的分片包后所发送的正确接收的确认消息)经常会在同一个FP (FrameProtocol,帧协议)帧中,基于这样的原因,如果设置Dup ACK消息的计数值等于I即触发数据包重传,则会出现很大概率的重复多发。但是,如果Dup ACK消息的计数值等于2才触发数据包重传,则说明在上次收到到Dup ACK消息时,RLC层已经将该数据包全部发送给终端设备侧,并收到终端设备侧的确认。步骤S105、所述TCP实体重传所述Dup ACK消息所对应的数据包,并将所述DupACK消息的计数值置零。在实际的应用场景中,所述TCP实体在进行数据包重传的过程中,还需要记录进行重传的所述数据包在RLC层的终止序列号,以便将该终止序列号作为在后续处理过程中判断是否对该数据包是否进行重传处理的依据。通过这样的处理,完成了对该Dup ACK消息所对应的数据包的重传处理,本步骤执行完成后,继续执行步骤S106。步骤S106、所述TCP实体将所述Dup ACK消息的计数值置零。
将Dup ACK消息的计数值置零后,可以对该Dup ACK消息开始新的计数过程,以便确定执行新的重传处理过程。需要进一步说明的是,TCP实体完成根据Dup ACK消息进行数据包重传的处理过程,在此基础上,TCP实体还可以按照预设规则采用其它方式(例如,根据SACK消息或者其他信息进行处理)继续进行后续的处理,具体的处理方式在后续说明中进行描述,在此不再赘述。需要说明的是,在步骤SlOl判断结果为否,以及步骤S106完成之后,均提到了 TCP实体按照预设规则采用其它方式进行处理的过程,在实际应用中,这样的预设规则所对应的处理过程可以包括多种类型,其中,为了提高数据包重传过程的全面性和准确性,可以根据SACK消息进行这样的处理。具体的,当所述TCP实体在步骤SlOl中判断所述上行消息中不包含Dup ACK消息,或所述TCP实体在步骤S105中重传所述Dup ACK消息所对应的数据包之后,还包括以下的根据SACK消息进行数据包重传处理的过程,该过程的流程示意图如图2所示,具体包括以下步骤
步骤S201、所述TCP实体判断自身所接收到的上行消息中是否包含SACK消息。如果包含,则执行步骤S202 ;
如果不包含,则进行其他处理或者直接停止当前的数据包重传处理。步骤S202、所述TCP实体按照所述SACK消息所对应的各数据包的发送顺序,选择相应的数据包。步骤S203、所述TCP实体判断RLC层是否已经将当前所选择的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息。如果判断结果为是,则执行步骤S204 ;
如果判断结果为否,则执行步骤S205。与前述的步骤S102相类似,本步骤中进行判断的过程具体如下
所述TCP实体确定所述当前所选择的数据包的各分片包中,已经由所述终端设备确认的分片包的序列号。所述TCP实体判断所述序列号的最大值是否达到所述当前所选择的数据包在RLC层的终止序列号。如果达到,所述TCP实体确认RLC层已经将所述当前所选择的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息。步骤S204、所述TCP实体重传所述当前所选择的数据包。在实际的应用场景中,所述TCP实体在进行数据包重传的过程中,还需要记录进行重传的所述数据包在RLC层的终止序列号,以便将该终止序列号作为在后续处理过程中判断是否对该数据包是否进行重传处理的依据。步骤S205、所述TCP实体确认当前所选择的数据包之后的所述SACK消息所对应的各数据包均没有发送完毕。
通过本步骤,可以快速的确定后续数据包的发送状态,避免分别对SACK消息所对应的每个数据包进行分别判断所带来的系统资源和处理时间的消耗,提高相应的处理效率。需要说明的是,上述的根据SACK消息进行处理的过程可以在前述的根据Dup ACK消息进行重传处理的基础上,对终端设备侧返回的信息进行更加全面的处理,从而,更加准确的确定是否对相应的数据包进行重传处理。与现有技术相比,本发明实施例所提出的技术方案具有以下优点
通过应用本发明实施例的技术方案,在TCP实体接收到终端设备发送的包含Dup ACK消息的上行消息的情况下,如果TCP实体判断RLC层已经将该Dup ACK消息所对应的数据包的所有分片包发送给终端设备,并接收到了终端设备返回的确认消息,则对该Dup ACK消息进行计数累加,并在计数值达到2时,重传该Dup ACK消息所对应的数据包,从而,可以灵活运用TCP实体数据本地缓冲及重传的特点,并结合RLC可靠传输的特性,对终端设备的DupACK进行甄别,实现TCP层数据的快速重传,在TCP代理的无线侧准确确定数据包是否需要TCP层的重传,提高了 TCP的性能和空口资源利用率,避免了非必要的数据重传所带来的系统资源浪费。下面,结合具体的应用场景,对本发明实施例所提出的技术方案进行说明。本发明实施例所提出的技术方案是一种灵活运用TCP实体数据本地缓冲及重传的特点,并结合RLC (无线链路层)可靠传输的特性,对终端设备侧发送的Dup ACK消息进行甄别,以实现快速重传TCP层数据的方法。如图3所示,为本发明实施例所提出的一种具体应用场景下的无线侧TCP数据重传的方法的流程示意图,该方法具体包括以下步骤
步骤S301、TCP实体在RLC层进行正常的数据包发送。在此过程中,TCP实体记录下每个数据包在RLC层最后一个分片包的序列号,即前述的终止序列号。在实际的应用场景中,本步骤的处理过程实际为
TCP层将数据包发送给RLC层,RLC将数据包分段形成多个分片包,并将最后一个分片包的序列号(EndSn,即前述的终止序列号)在TCP层记录下来。步骤S302、TCP实体接收到终端设备发送的ACK消息,判断是否是Dup ACK消息。如果判断结果为是,则执彳丁步骤S303 ;
如果判断结果为否,则执行步骤S308。步骤S303、TCP实体确定该Dup ACK消息所对应的需要重传的数据包的EndSn,以及RLC层收到的终端设备已经确认的该数据包的分片包序列号AckSn。
步骤S304、TCP实体将所确定的最大的AckSn和EndSn进行比较。如果该AckSn大于等于EndSn,则执行步骤S305 ;
如果该AckSn小于EndSn,则表示TCP实体对于该Dup ACK消息所对应的数据包暂时不需要进行重传处理,对本次所接收到的ACK消息中的Dup ACK消息的处理过程结束,可以执行步骤S308进行SACK处理,或者进行其他处理,在图3中,表示为进行其他处理。步骤S305、TCP实体将该Dup Ack消息所对应的Dup Ack变量加I。步骤S306、TCP实体判断该Dup Ack变量是否等于2。如果是,则执行步骤S307 ; 如果否,则表示TCP实体对于该Dup ACK消息所对应的数据包暂时不需要进行重传处理,对本次所接收到的ACK消息中的Dup ACK消息的处理过程结束,可以执行步骤S308进行SACK处理,或者进行其他处理,在图3中,表示为进行其他处理。步骤S307、TCP实体重发该数据包给RLC层,并记录新发送数据包的最后一个分片包的Sn,以更新该数据包的EndSn,同时,将该Dup Ack变量清零。本步骤执行完成后,为了实现更加准确和全面的数据重传处理,可以进一步执行步骤S308。步骤S308、TCP实体判断当前是否接收到SACK消息。如果有,则执行步骤S309,进行相应的转SACK处理流程;
如果没有,则表示TCP实体不需要根据SACK消息对相应的数据包进行重传处理,在实际的应用场景中,此种情况下,可以进行其他处理。步骤S309、TCP实体按照所述SACK消息所对应的各数据包的发送顺序,选择相应的数据包。步骤S310、TCP实体确定该数据包的EndSn,以及RLC层收到的终端设备已经确认的该数据包的分片包序列号AckSn。步骤S311、TCP实体将所确定的最大的AckSn和该数据包的EndSn进行比较。如果该AckSn大于等于EndSn,则执行步骤S312 ;
如果该AckSn小于EndSn,则执行步骤S314。步骤S312、TCP实体重传该数据包。在实际的应用场景中,所述TCP实体在进行数据包重传的过程中,还需要记录进行重传的所述数据包在RLC层的终止序列号,以便将该终止序列号作为在后续处理过程中判断是否对该数据包是否进行重传处理的依据。本步骤执行完成后,继续执行步骤S313。步骤S313、TCP实体判断SACK消息对应的需要重传的数据包是否全部选择完毕。如果判断结果为否,则返回步骤S309 ;
如果判断结果为是,则执行其他处理。步骤S314、TCP实体确认当前所选择的数据包之后的SACK消息所对应的各数据包均没有发送完毕。
本步骤完成后,直接执行其他处理。
通过本步骤,可以快速的确定后续数据包的发送状态,避免分别对SACK消息所对应的每个数据包进行分别判断所带来的系统资源和处理时间的消耗,提高相应的处理效率。需要说明的是,在实际的应用场景中,上述的各步骤中所提及的其他处理,可以包括
返回步骤S302继续等待后续的ACK消息,或者按照预设的处理规则进行其他处理操作,该其他处理具体内容的变化并不会影响本发明的保护范围。与现有技术相比,本发明实施例所提出的技术方案具有以下优点
通过应用本发明实施例的技术方案,在TCP实体接收到终端设备发送的包含Dup ACK消息的上行消息的情况下,如果TCP实体判断RLC层 已经将该Dup ACK消息所对应的数据包的所有分片包发送给终端设备,并接收到了终端设备返回的确认消息,则对该Dup ACK消息进行计数累加,并在计数值达到2时,重传该Dup ACK消息所对应的数据包,从而,可以灵活运用TCP实体数据本地缓冲及重传的特点,并结合RLC可靠传输的特性,对终端设备的DupACK进行甄别,实现TCP层数据的快速重传,在TCP代理的无线侧准确确定数据包是否需要TCP层的重传,提高了 TCP的性能和空口资源利用率,避免了非必要的数据重传所带来的系统资源浪费。为了实现本发明实施例的技术方案,本发明实施例还提供了一种网络设备,作为TCP实体应用于存在跨无线网络的TCP连接的网络系统中,其结构示意图如图4所示,至少包括
接收模块41,用于接收终端设备发送的上行消息;
第一判断模块42,用于判断所述接收模块41所接收到的上行消息中是否包含Dup ACK消息;
第二判断模块43,用于在所述第一判断模块42的判断结果为包含时,判断RLC层是否已经将所述Dup ACK消息所对应的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息;
计数模块44,用于在所述第二判断模块43的判断结果为是时,对所述接收模块41所接收到的Dup ACK消息进行计数累加;
第三判断模块45,用于判断所述计数模块44所计数的Dup ACK消息当前的计数值是否达到2 ;
处理模块46,用于在所述第三判断模块45的判断结果为达到时,重传所述Dup ACK消息所对应的数据包,并通知所述计数模块44将所述Dup ACK消息的计数值置零。其中,所述第二判断模块43,具体用于
确定所述Dup ACK消息所对应的数据包的各分片包中,已经由所述终端设备确认的分片包的序列号;
判断所述序列号的最大值是否达到所述Dup ACK消息所对应的数据包在RLC层的终止序列号;
如果达到,确认RLC层已经将所述Dup ACK消息所对应的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息。进一步的,所述计数模块44,还用于在所述第二判断模块43的判断结果为否时,将所述Dup ACK消息的计数值置零。需要说明的是,所述处理模块46,还用于在重传所述Dup ACK消息所对应的数据包的过程中,记录进行重传的所述数据包在RLC层的终止序列号。另一方面,该网络设备还包括第四判断模块47、选择模块48和第五判断模块49 所述第四判断模块47,用于在所述第一判断模块42判断所述上行消息中不包含Dup
ACK消息,或所述处理模块46重传所述Dup ACK消息所对应的数据包之后,判断所述上行消息中是否包含SACK消息;
所述选择模块48,用于在所述第四判断模块47的判断结果为包含时,按照所述SACK消息所对应的各数据包的发送顺序,选择相应的数据包;
所述第五判断模块49,用于判断RLC层是否已经将所述选择模块48当前所选择的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息;
所述处理模块46,还用于在所述第五判断模块49的判断结果为是时,重传所述当前所 选择的数据包。其中,所述第五判断模块49,具体用于
确定所述选择模块48当前所选择的数据包的各分片包中,已经由所述终端设备确认的分片包的序列号;
判断所述序列号的最大值是否达到所述当前所选择的数据包在RLC层的终止序列号;如果达到,确认RLC层已经将所述当前所选择的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息。进一步的,所述处理模块46,还用于在所述第五判断模块49的判断结果为否时,确认所述选择模块48当前所选择的数据包之后的所述SACK消息所对应的各数据包均没有发送完毕。在实际的应用场景中,所述处理模块46,还用于在重传所述选择模块48当前所选择的数据包的过程中,记录进行重传的所述数据包在RLC层的终止序列号。与现有技术相比,本发明实施例所提出的技术方案具有以下优点
通过应用本发明实施例的技术方案,在TCP实体接收到终端设备发送的包含Dup ACK消息的上行消息的情况下,如果TCP实体判断RLC层已经将该Dup ACK消息所对应的数据包的所有分片包发送给终端设备,并接收到了终端设备返回的确认消息,则对该Dup ACK消息进行计数累加,并在计数值达到2时,重传该Dup ACK消息所对应的数据包,从而,可以灵活运用TCP实体数据本地缓冲及重传的特点,并结合RLC可靠传输的特性,对终端设备的DupACK进行甄别,实现TCP层数据的快速重传,在TCP代理的无线侧准确确定数据包是否需要TCP层的重传,提高了 TCP的性能和空口资源利用率,避免了非必要的数据重传所带来的系统资源浪费。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或网络侧设备等)执行本发明实施例各个实施场景所述的方法。本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明实施例所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本发明实施例的几个具体实施场景,但是,本发明实施例并非局限于此,任何本领域的技术人员能思之的变化都应 落入本发明实施例的业务限制范围。
权利要求
1.一种无线侧TCP数据重传的方法,其特征在于,至少包括以下步骤 当TCP实体接收到终端设备发送的上行消息时,所述TCP实体判断所述上行消息中是否包含Dup ACK消息; 如果包含,所述TCP实体判断RLC层是否已经将所述Dup ACK消息所对应的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息; 如果判断结果为是,所述TCP实体对所述Dup ACK消息进行计数累加; 所述TCP实体判断所述Dup ACK消息当前的计数值是否达到2 ; 如果达到,所述TCP实体重传所述Dup ACK消息所对应的数据包,并将所述Dup ACK消息的计数值置零。
2.如权利要求I所述的方法,其特征在于,所述TCP实体判断RLC层是否已经将所述Dup ACK消息所对应的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息,具体包括 所述TCP实体确定所述Dup ACK消息所对应的数据包的各分片包中,已经由所述终端设备确认的分片包的序列号; 所述TCP实体判断所述序列号的最大值是否达到所述Dup ACK消息所对应的数据包在RLC层的终止序列号; 如果达到,所述TCP实体确认RLC层已经将所述Dup ACK消息所对应的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息。
3.如权利要求I所述的方法,其特征在于,所述TCP实体判断RLC层是否已经将所述Dup ACK消息所对应的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息之后,还包括 如果判断结果为否,所述TCP实体将所述Dup ACK消息的计数值置零。
4.如权利要求I所述的方法,其特征在于,所述TCP实体重传所述DupACK消息所对应的数据包的过程中,还包括 所述TCP实体记录进行重传的所述数据包在RLC层的终止序列号。
5.如权利要求I所述的方法,其特征在于,当所述TCP实体判断所述上行消息中不包含Dup ACK消息,或所述TCP实体重传所述Dup ACK消息所对应的数据包之后,还包括 所述TCP实体判断所述上行消息中是否包含SACK消息; 如果包含,所述TCP实体按照所述SACK消息所对应的各数据包的发送顺序,选择相应的数据包; 所述TCP实体判断RLC层是否已经将当前所选择的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息; 如果判断结果为是,所述TCP实体重传所述当前所选择的数据包。
6.如权利要求5所述的方法,其特征在于,所述TCP实体判断RLC层是否已经将当前所选择的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息,具体包括 所述TCP实体确定所述当前所选择的数据包的各分片包中,已经由所述终端设备确认的分片包的序列号; 所述TCP实体判断所述序列号的最大值是否达到所述当前所选择的数据包在RLC层的终止序列号; 如果达到,所述TCP实体确认RLC层已经将所述当前所选择的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息。
7.如权利要求5所述的方法,其特征在于,所述TCP实体判断RLC层是否已经将当前所选择的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息之后,还包括 如果判断结果为否,所述TCP实体确认当前所选择的数据包之后的所述SACK消息所对应的各数据包均没有发送完毕。
8.如权利要求5所述的方法,其特征在于,所述TCP实体重传所述当前所选择的数据包的过程中,还包括 所述TCP实体记录进行重传的所述数据包在RLC层的终止序列号。
9.一种网络设备,作为TCP实体应用于存在跨无线网络的TCP连接的网络系统中,其特征在于,包括 接收模块,用于接收终端设备发送的上行消息; 第一判断模块,用于判断所述接收模块所接收到的上行消息中是否包含Dup ACK消息; 第二判断模块,用于在所述第一判断模块的判断结果为包含时,判断RLC层是否已经将所述Dup ACK消息所对应的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息; 计数模块,用于在所述第二判断模块的判断结果为是时,对所述接收模块所接收到的Dup ACK消息进行计数累加; 第三判断模块,用于判断所述计数模块所计数的Dup ACK消息当前的计数值是否达到2 ; 处理模块,用于在所述第三判断模块的判断结果为达到时,重传所述Dup ACK消息所对应的数据包,并通知所述计数模块将所述Dup ACK消息的计数值置零。
10.如权利要求9所述的网络设备,其特征在于,所述第二判断模块,具体用于 确定所述Dup ACK消息所对应的数据包的各分片包中,已经由所述终端设备确认的分片包的序列号; 判断所述序列号的最大值是否达到所述Dup ACK消息所对应的数据包在RLC层的终止序列号; 如果达到,确认RLC层已经将所述Dup ACK消息所对应的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息。
11.如权利要求9所述的网络设备,其特征在于,所述计数模块,还用于在所述第二判断模块的判断结果为否时,将所述Dup ACK消息的计数值置零。
12.如权利要求9所述的网络设备,其特征在于,所述处理模块,还用于 在重传所述Dup ACK消息所对应的数据包的过程中,记录进行重传的所述数据包在RLC层的终止序列号。
13.如权利要求9所述的网络设备,其特征在于,还包括第四判断模块、选择模块和第五判断模块 所述第四判断模块,用于在所述第一判断模块判断所述上行消息中不包含Dup ACK消息,或所述处理模块重传所述Dup ACK消息所对应的数据包之后,判断所述上行消息中是否包含SACK消息; 所述选择模块,用于在所述第四判断模块的判断结果为包含时,按照所述SACK消息所对应的各数据包的发送顺序,选择相应的数据包; 所述第五判断模块,用于判断RLC层是否已经将所述选择模块当前所选择的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息; 所述处理模块,还用于在所述第五判断模块的判断结果为是时,重传所述当前所选择的数据包。
14.如权利要求13所述的网络设备,其特征在于,所述第五判断模块,具体用于 确定所述选择模块当前所选择的数据包的各分片包中,已经由所述终端设备确认的分片包的序列号; 判断所述序列号的最大值是否达到所述当前所选择的数据包在RLC层的终止序列号;如果达到,确认RLC层已经将所述当前所选择的数据包的所有分片包发送给所述终端设备,并接收到了所述终端设备返回的确认消息。
15.如权利要求13所述的网络设备,其特征在于,所述处理模块,还用于 在所述第五判断模块的判断结果为否时,确认所述选择模块当前所选择的数据包之后的所述SACK消息所对应的各数据包均没有发送完毕。
16.如权利要求13所述的网络设备,其特征在于,所述处理模块,还用于 在重传所述选择模块当前所选择的数据包的过程中,记录进行重传的所述数据包在RLC层的终止序列号。
全文摘要
本发明实施例公开了一种无线侧TCP数据重传的方法和设备,通过应用本发明实施例的技术方案,在TCP实体接收到终端设备发送的包含DupACK消息的上行消息的情况下,如果TCP实体判断RLC层已经将该DupACK消息所对应的数据包的所有分片包发送给终端设备,并接收到了终端设备返回的确认消息,则对该DupACK消息进行计数累加,并在计数值达到2时,重传该DupACK消息所对应的数据包,从而,可以灵活运用TCP实体数据本地缓冲及重传的特点,并结合RLC可靠传输的特性,对终端设备的DupACK进行甄别,实现TCP层数据的快速重传,在TCP代理的无线侧准确确定数据包是否需要TCP层的重传,提高了TCP的性能和空口资源利用率,避免了非必要的数据重传所带来的系统资源浪费。
文档编号H04L1/16GK102664718SQ20121012985
公开日2012年9月12日 申请日期2012年4月28日 优先权日2012年4月28日
发明者柴新旺 申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1