CN104137507B - 反馈丢包的消息处理方法及装置 - Google Patents

反馈丢包的消息处理方法及装置 Download PDF

Info

Publication number
CN104137507B
CN104137507B CN201380000199.1A CN201380000199A CN104137507B CN 104137507 B CN104137507 B CN 104137507B CN 201380000199 A CN201380000199 A CN 201380000199A CN 104137507 B CN104137507 B CN 104137507B
Authority
CN
China
Prior art keywords
tcp
data packet
rlc
packet
message
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
Application number
CN201380000199.1A
Other languages
English (en)
Other versions
CN104137507A (zh
Inventor
王立波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN104137507A publication Critical patent/CN104137507A/zh
Application granted granted Critical
Publication of CN104137507B publication Critical patent/CN104137507B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Abstract

本发明涉及一种反馈丢包的消息处理方法及装置,所述处理方法包括:RLC装置接收TCP装置发送的TCP数据包,将所述TCP数据包组包形成RLC数据包,并将所述RLC数据包发送给对端设备;所述RLC装置接收所述对端设备返回的所述RLC数据包的应答消息;所述RLC装置根据所述RLC数据包的应答消息构造所述RLC数据包对应的TCP数据包的应答消息;所述RLC装置将所述TCP数据包的应答消息反馈给所述TCP装置。本发明能够准确判断是否发生了TCP丢包,并可以获得准确的TCP丢包信息,明确具体丢失了哪个数据包。

Description

反馈丢包的消息处理方法及装置
技术领域
本发明涉及无线通信技术领域,尤其涉及一种反馈丢包的消息处理及装置。
背景技术
传输控制协议(Transmission Control Protocol,TCP)是目前互联网上使用最为广泛的传输协议,但其最初的设计目标是在有线网络中工作,因而当TCP连接中存在一段无线空口部分(即无线TCP)时,针对有线网络所涉及的TCP协议就不再能够保证高效的工作。
在有线网络中,TCP协议通过引入发送端拥塞窗口的控制机制,来控制传输的拥塞。接收端会通知发送端其当前的接收窗口大小,发送端根据这个接收窗口大小以及拥塞窗口大小,来决定发送端还能够发送多少数据给接收端,即真正的发送窗口的取值,为拥塞窗口和通告窗口中的最小值。这样就可以避免发送端发送过多的数据,而不会导致接收端的TCP缓存溢出,以及降低网络中拥塞出现的概率。
在第三代移动通信技术(3rd Generation,3G)的无线网络控制器(Radio NetworkController,RNC)或者第四代移动通信技术(3rd Generation,3G)的演进型基站(evolutionNodeB,eNodeB)中,可能存在相应的TCP代理功能或TCP实体,用以对无线TCP进行加速。在具有TCP代理功能或TCP实体的终端的无线侧,由于空口丢包和非按序递交,会导致接收端收到大量的乱序包。通常接收端在接收到乱序包后,会发送多个重复的确认(Dupacknowledgement,Dup ACK)或者发送选择性确认(Select acknowledgement,SACK)给发送端,表示丢失某个数据包。
由于发送SACK的方案中要求接收端能够支持SACK选项,如果接收端不支持使用SACK选项,则无法使用该方案。因而,现有的丢包判断方法大多采用发送Dup ACK的方案。当发送端收到Dup ACK时,拥塞窗口会减小,一般减小到慢启动的门限大小;而发送端在发送一个数据包后,会启动一个定时器。在这个定时器的时间范围内,如果还没有收到这个数据包的确认(acknowledgement,ACK)的话,拥塞窗口会减小到1。
因而,拥塞窗口的控制在TCP协议中至关重要,现有的很多算法都是针对TCP的拥塞窗口进行调整而给出的。其中最为常见的算法是根据可用带宽的估计值和拥塞窗口对应的带宽来判断是否可能丢包。对当前的网络状态进行一个判断,这个状态判断的结果可以是拥塞和不拥塞。在拥塞情况下,如果出现了重复的ACK,或者是RTO超时,则在重传数据包的同时,修改当前的拥塞窗口的大小;在不拥塞的情况下,如果出现了重复的ACK,或者是RTO超时,则在重传数据包的同时,维持当前的拥塞窗口的大小不变,避免拥塞窗口调整过小而导致的无线空口利用率不足的问题。然而,现有的这种算法是基于当前的TCP链路带宽估计进行的,在对当前的TCP链路带宽估计存在误差的情况下,对丢包的判断是不准确的,而且也无法区分丢包和拥塞的情况,另外,也不能明确具体丢失的是哪个数据包。
发明内容
本发明的目的是提供一种反馈丢包的消息处理及装置,能够准确判断是否发生了TCP丢包。
为实现上述目的,本发明第一方面提供了一种无线链路控制RLC装置,包括:处理器,第一接口和第二接口;
所述第一接口,用于与传输控制协议TCP装置进行交互;
所述第二接口,用于与对端设备进行交互;
所述处理器用于:
通过所述第一接口接收所述TCP装置发送的TCP数据包;
将所述TCP数据包组包形成RLC数据包;
通过所述第二接口将所述RLC数据包发送给对端设备;
通过所述第二接口接收所述对端设备返回的所述RLC数据包的应答消息;
根据所述RLC数据包的应答消息构造所述RLC数据包对应的TCP数据包的应答消息;
通过所述第一接口将所述TCP数据包的应答消息反馈给所述TCP装置。
结合第一方面,在第一方面的第一种可能的实现方式中,所述第一接口接收的TCP数据包中携带有TCP数据包的信息,所述TCP数据包的信息包括以下所列的一种或任意结合:IP地址、端口和字节范围;
所述处理器用于将所述TCP数据包组包形成RLC数据包,具体包括:
所述处理器用于:
根据所述TCP数据包的信息,对所述TCP数据包进行标识,并记录所述TCP数据包的标识;
对所述TCP数据包进行RLC组包形成RLC数据包,并标识所述RLC数据包;以及
根据所述TCP数据包的标识和所述RLC数据包的标识,建立并记录所述RLC数据包与TCP数据包的对应关系。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述处理器用于根据所述RLC数据包的应答消息构造所述RLC数据包对应的TCP数据包的应答消息,包括:
所述处理器用于:
根据所述RLC数据包的应答消息,利用所述RLC数据包与TCP数据包的对应关系,构造所述TCP数据包的应答消息。
结合第一方面,在第一方面的第三种可能的实现方式中,所述RLC数据包的应答消息为RLC确认ACK信息,所述处理器用于根据所述RLC数据包的应答消息构造所述RLC数据包对应的TCP数据包的应答消息,具体包括:
所述处理器用于根据所述RLC ACK信息构造TCP数据包的TCP ACK信息。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述处理器还用于:
通过所述第二接口接收所述对端设备反馈的TCP ACK信息;
将所述对端设备反馈的TCP ACK信息与构造的所述TCP ACK信息相比较,如果不一致,则判断为所述TCP数据包在发送给所述对端设备的TCP装置时发生丢包。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,当发生丢包时,所述处理器还用于:
根据所述对端设备反馈的TCP ACK信息和RLC ACK信息确定发生丢包的TCP数据包;
指示所述TCP装置重传所述发生丢包的TCP数据包或者通过所述第二接口发送所述发生丢包的TCP数据包对应的RLC数据包。
结合第一方面的第三种可能的实现方式,在第一方面的第六种可能的实现方式中,所述处理器还用于:
通过所述第二接口接收所述对端设备反馈的TCP ACK信息;
将所述对端设备反馈的TCP ACK信息与构造的所述TCP ACK信息相比较,如果一致,则判断为未发生丢包,并不再向所述TCP装置发送所述对端设备反馈的TCP ACK信息。
结合第一方面,在第一方面的第七种可能的实现方式中,所述RLC数据包的应答消息为RLC否定确认NACK信息,所述处理器用于根据所述RLC数据包的应答消息构造所述RLC数据包对应的TCP数据包的应答消息,具体包括:
所述处理器用于根据所述RLC NACK信息构造TCP数据包的TCP NACK信息,用以指示所述TCP装置重传所述TCP NACK信息对应的TCP数据包。
结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述处理器用于根据所述RLC NACK信息构造TCP数据包的TCP NACK信息,具体包括:
所述处理器用于:
将所述RLC数据包的应答消息为RLC NACK信息的RLC数据包重传给所述对端设备,并启动RLC重传定时器和/或RLC重传计数器;
当所述RLC重传定时器和/或RLC重传计数器的计数值超过预设阈值时,根据所述RLC NACK信息构造TCP NACK信息。
结合第一方面,在第一方面的第九种可能的实现方式中,所述TCP数据包的应答消息通过用户面的GPRS隧道协议GTP-U的扩展头或TCP选择性确认SACK选项来传递。
结合第一方面,在第一方面的第十种可能的实现方式中,所述RLC装置为无线网络控制器RNC或者演进型基站eNodeB。
第二方面,提供了一种TCP装置,包括:处理器和通信接口;
所述通信接口,用于与RLC装置进行交互;
所述处理器用于:
通过所述通信接口接收RLC装置发送的TCP NACK信息,所述TCP NACK信息由所述RLC装置根据RLC NACK信息构造得到;
根据所述TCP NACK信息确定丢包的TCP数据包。
结合第二方面,在第二方面的第一种可能的实现方式中,当确定丢包后,所述处理器还用于:
通过所述通信接口重传所述丢包的TCP数据包给所述对端设备,并启动TCP重传定时器和/或TCP重传计数器;
当所述TCP重传定时器和/或TCP重传计数器的计数值超过预设阈值时,缩小发送端的拥塞窗口值。
结合第二方面,在第二方面的第二种可能的实现方式中,所述TCP装置为RNC、eNodeB、GGSN、SGSN或者PGW。
第三方面,提供了一种基站设备,包括:本发明实施例所述RLC装置和TCP装置。
第四方面,提供了一种反馈丢包的消息处理方法,所述方法包括:
无线链路控制RLC装置接收传输控制协议TCP装置发送的TCP数据包,将所述TCP数据包组包形成RLC数据包,并将所述RLC数据包发送给对端设备;
所述RLC装置接收所述对端设备返回的所述RLC数据包的应答消息;
所述RLC装置根据所述RLC数据包的应答消息构造所述RLC数据包对应的TCP数据包的应答消息;
所述RLC装置将所述TCP数据包的应答消息反馈给所述TCP装置。
结合第四方面,在第四方面的第一种可能的实现方式中,所述RLC装置接收的所述TCP数据包中携带有TCP数据包的信息,所述TCP数据包的信息包括以下所列的一种或任意结合:IP地址、端口和字节范围;
所述将所述TCP数据包组包形成RLC数据包,包括:
所述RLC装置根据所述TCP数据包的信息,对所述TCP数据包进行标识,并记录所述TCP数据包的标识;
所述RLC装置对所述TCP数据包进行RLC组包形成RLC数据包,并标识所述RLC数据包;
所述RLC装置根据所述TCP数据包的标识和所述RLC数据包的标识,建立并记录所述RLC数据包与TCP数据包的对应关系。
结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述根据所述RLC数据包的应答消息构造TCP数据包的应答消息,具体为:
根据所述RLC数据包的应答消息,利用所述RLC数据包与TCP数据包的对应关系,构造所述TCP数据包的应答消息。
结合第四方面,在第四方面的第三种可能的实现方式中,所述RLC数据包的应答消息为RLC ACK信息;
所述根据所述RLC数据包的应答消息构造TCP数据包的应答消息,具体为:
根据所述RLC ACK信息构造TCP数据包的TCP ACK信息。
结合第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,在所述RLC装置将所述TCP数据包的应答消息反馈给所述TCP装置之后,还包括:
所述RLC装置接收所述对端设备反馈的TCP ACK信息;
所述RLC装置将所述对端设备反馈的TCP ACK信息与构造的所述TCP ACK信息相比较,如果不一致,则判断为所述数据包在发送给所述对端设备的TCP装置时发生丢包。
结合第四方面的第四种可能的实现方式,在第四方面的第五种可能的实现方式中,当发生丢包时,所述方法还包括:
所述RLC装置根据所述对端设备反馈的TCP ACK信息和RLC ACK信息确定发生丢包的TCP数据包;
所述RLC装置指示所述TCP装置重传所述发生丢包的TCP数据包或者发送所述发生丢包的TCP数据包对应的RLC数据包。
结合第四方面的第三种可能的实现方式,在第四方面的第六种可能的实现方式中,在所述RLC装置将所述TCP数据包的应答消息反馈给所述TCP装置之后,还包括:
所述RLC装置接收所述对端设备反馈的TCP ACK信息;
所述RLC装置将所述对端设备反馈的TCP ACK信息与构造的所述TCP ACK信息相比较,如果一致,则判断为未发生丢包,并不再向所述TCP装置发送所述对端设备反馈的TCPACK信息。
结合第四方面,在第四方面的第七种可能的实现方式中,所述RLC数据包的应答消息为RLC NACK信息;
所述根据所述RLC数据包的应答消息构造TCP数据包的应答消息,具体为:
根据所述RLC NACK信息构造TCP数据包的TCP NACK信息,用以指示所述TCP装置重传所述TCP NACK信息对应的TCP数据包。
结合第四方面的第七种可能的实现方式,在第四方面的第八种可能的实现方式中,所述根据所述RLC NACK信息构造TCP数据包的TCP NACK信息,具体包括:
将所述RLC数据包的应答消息为RLC NACK信息的RLC数据包重传给所述对端设备,并启动RLC重传定时器和/或RLC重传计数器;
当所述RLC重传定时器和/或RLC重传计数器的计数值超过预设阈值时,根据所述RLC NACK信息构造TCP NACK信息。
结合第四方面,在第四方面的第九种可能的实现方式中,所述TCP数据包的应答消息通过GTP-U的扩展头或TCP SACK选项来传递。
第五方面,提供了一种反馈丢包的消息处理方法,所述方法包括:
接收RLC装置发送的TCP否定确认NACK信息,所述TCP NACK信息由所述RLC装置根据RLC NACK信息构造得到;
根据所述TCP NACK信息确定丢包的TCP数据包。
结合第五方面,在第五方面的第一种可能的实现方式中,在所述根据所述TCPNACK信息确定丢包的TCP数据包之后,还包括:
重传所述丢包的TCP数据包给所述对端设备,并启动TCP重传定时器和/或TCP重传计数器;
当所述TCP重传定时器和/或TCP重传计数器的计数值超过预设阈值时,缩小发送端的拥塞窗口值。
第六方面,提供了一种反馈丢包的消息处理装置,所述装置包括:
组包单元,用于接收TCP装置发送的TCP数据包,将所述TCP数据包组包形成RLC数据包,并将所述RLC数据包发送给对端设备;
接收单元,用于接收所述对端设备针对所述组包单元发送的所述RLC数据包返回的所述RLC数据包的应答消息;
处理单元,用于根据所述接收单元接收的所述RLC数据包的应答消息构造所述RLC数据包对应的TCP数据包的应答消息;
发送单元,用于将所述处理单元得到的TCP数据包的应答消息反馈给所述TCP装置。
结合第六方面,在第六方面的第一种可能的实现方式中,所述组包单元具体包括:
接收子单元,用于接收所述TCP装置发送的TCP数据包并得到所述TCP数据包中携带的TCP数据包的信息,所述TCP数据包的信息包括以下所列的一种或任意结合:IP地址、端口和字节范围;
记录子单元,用于根据所述接收子单元得到的所述TCP数据包的信息,对所述TCP数据包进行标识,并记录所述TCP数据包的标识;
组包子单元,用于对所述接收子单元接收的所述TCP数据包进行RLC组包形成RLC数据包,并标识所述RLC数据包;
存储子单元,用于根据记录子单元记录的所述TCP数据包的标识和所述组包子单元得到的所述RLC数据包的标识,建立并记录所述RLC数据包与TCP数据包的对应关系。
结合第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,所述处理单元具体用于根据所述RLC数据包的应答消息,利用所述存储子单元记录的所述RLC数据包与TCP数据包的对应关系,构造所述TCP数据包的应答消息。
结合第六方面,在第六方面的第三种可能的实现方式中,当所述接收单元接收的所述RLC数据包的应答消息为RLC ACK信息时,所述处理单元根据所述RLC ACK信息构造TCP数据包的TCP ACK信息。
结合第六方面的第三种可能的实现方式,在第六方面的第四种可能的实现方式中,所述接收单元还用于接收所述对端设备反馈的TCP ACK信息;
所述装置还包括:
比较单元,用于将所述对端设备反馈的TCP ACK信息与构造的所述TCPACK信息相比较,如果不一致,则判断为所述数据包在发送给所述对端设备的TCP装置时发生丢包。
结合第六方面的第四种可能的实现方式,在第六方面的第五种可能的实现方式中,当发生丢包时,所述比较单元根据所述对端设备反馈的TCP ACK信息和RLC ACK信息确定发生丢包的TCP数据包;并触发所述发送单元发送指示所述TCP装置重传所述发生丢包的TCP数据包的指令或者发送所述发生丢包的TCP数据包对应的RLC数据包的指令。
结合第六方面的第三种可能的实现方式,在第六方面的第六种可能的实现方式中,所述接收单元还用于接收所述对端设备反馈的TCP ACK信息;
所述装置还包括:
比较单元,用于将所述对端设备反馈的TCP ACK信息与构造的所述TCPACK信息相比较,如果一致,则判断为未发生丢包,并不再触发所述发送单元向所述TCP装置发送所述对端设备反馈的TCP ACK信息。
结合第六方面,在第六方面的第七种可能的实现方式中,当所述接收单元接收的所述RLC数据包的应答消息为RLC NACK信息时,所述处理单元根据所述RLC NACK信息构造TCP数据包的TCP NACK信息,用以指示所述TCP装置重传所述TCP NACK信息对应的TCP数据包。
结合第六方面的第七种可能的实现方式,在第六方面的第八种可能的实现方式中,所述装置还包括:
第一重传单元,用于当所述接收单元接收的所述RLC数据包的应答消息为RLCNACK信息时,将所述RLC数据包的应答消息为RLC NACK信息的RLC数据包重传给所述对端设备,并启动RLC重传定时器和/或RLC重传计数器;当所述RLC重传定时器和/或RLC重传计数器的计数值超过预设阈值时,触发所述处理单元根据所述RLC NACK信息构造TCP NACK信息。
结合第六方面,在第六方面的第九种可能的实现方式中,所述发送单元反馈的所述TCP数据包的应答消息通过GTP-U的扩展头或TCP SACK选项来传递。
第七方面,提供了一种反馈丢包的消息处理装置,所述装置包括:
接收单元,用于接收RLC装置发送的TCP否定确认NACK信息,所述TCPNACK信息由所述RLC装置根据RLC NACK信息构造得到;
判断单元,用于根据所述接收单元接收的所述TCP NACK信息确定丢包的TCP数据包。
结合第七方面,在第七方面的第一种可能的实现方式中,所述装置还包括:
第二重传单元,用于当所述判断单元确定所述丢包的TCP数据包之后,重传所述丢包的TCP数据包给所述对端设备,并启动TCP重传定时器和/或TCP重传计数器;
调整单元,用于当所述重传单元启动的所述TCP重传定时器和/或TCP重传计数器的计数值超过预设阈值时,缩小发送端的拥塞窗口值。
本发明提供的反馈丢包的消息处理方法及装置,通过无线链路控制(Radio LinkControl,RLC)层反馈的ACK/NACK信息,来判断当前的某个TCP数据包是否正确接收,从而准确判断TCP丢包并获得准确的TCP丢包信息,仅需要对没有正确接收的数据进行重传,可以减少不必要的重传,提升无线TCP的性能,充分利用空口资源。
附图说明
图1为本发明实施例一提供的反馈丢包的消息处理方法流程图;
图2为本发明实施例一提供的对TCP数据包进行组包的处理流程图;
图3为本发明实施例一提供的RNC中各协议层的对应关系示意图;
图4为本发明实施例二提供的反馈丢包的消息处理方法流程图;
图5为本发明实施例二提供的根据TCP NACK信息进行拥塞控制的方法流程图;
图6为本发明实施例三提供的反馈丢包的消息处理方法的信令图;
图7为一种GTP-U协议的扩展头的示意图;
图8为本发明实施例四提供的反馈丢包的消息处理装置示意图;
图9为本发明实施例五提供的反馈丢包的消息处理装置示意图;
图10为本发明实施例六提供的RLC装置的结构组成示意图;
图11为本发明实施例七提供的TCP装置的结构组成示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
第三代合作伙伴计划(3rd Generation Partnership Project,3GPP)开始了3G长期演进计划(Long Term Evolution,LTE)。在LTE协议栈层次结构中,无线链路控制(RadioLink Control,RLC)层作为LTE协议栈L2层的协议之一,主要用于提供可靠的数据传输链路,该链路类型用于屏蔽无线链路带来的影响并为上层提供可靠的数据传输。
在当前的3G系统中,无线接入网(Radio Access Network,RAN)侧包括RNC节点和基站NodeB,RNC节点对多个NodeB进行控制,NodeB直接与用户设备(User Equipment,UE)进行通信。在当前的4G系统中,RAN侧包括eNodeB节点,eNodeB节点直接与核心网的移动管理实体(Mobility Management Entity,MME)和网关进行通信,同时和UE进行通信。
本发明提供的反馈丢包的消息处理方法和装置应用于RAN侧与UE侧之间建立承载通道之后,进行无线TCP数据传输的过程中,用以判断传输的TCP数据包是否发生丢包的情况。
实施例一
图1是本实施例提供的反馈丢包的消息处理方法流程图,如图1所示,该方法包括:
S101、RLC装置接收TCP装置发送的TCP数据包,将所述TCP数据包组包形成RLC数据包,并将所述RLC数据包发送给对端设备。
RLC装置接收到的TCP数据包可以是处理过的TCP数据包(如经过其他协议层处理后的数据包),也可以是TCP装置发送的TCP数据包。对端设备通常为UE。具体的处理过程将在后续的篇幅中结合图2和图3进行说明。
S102、RLC装置接收所述对端设备返回的所述RLC数据包的应答消息。
对端设备对应的RLC装置会针对每一个RLC数据包会返回对应RLC数据包的应答信息。RLC数据包的应答信息可以包括RLC ACK信息和/或RLC NACK信息。
S103、RLC装置根据所述RLC数据包的应答消息构造所述RLC数据包对应的TCP数据包的应答消息。
如果某个RLC数据包的应答消息为ACK,则该RLC数据包对应的TCP数据包的应答消息为ACK。如果某个RLC数据包的应答消息为NACK,则该RLC数据包对应的TCP数据包的应答消息为NACK。利用这种对应关系,根据RLC数据包的应答消息构造TCP数据包的应答消息,即利用RLC ACK信息构造TCPACK信息,利用RLC NACK信息构造TCP NACK信息。
S104、RLC装置将所述TCP数据包的应答消息反馈给所述TCP装置。
TCP装置根据TCP数据包的应答消息判断所述TCP数据包是否丢包。当RLC装置发送TCP NACK信息时,TCP装置则判断为TCP数据包发生丢包。当TCP装置接收到某个TCP数据包的ACK,则判断为该TCP数据包未发生丢包。
图2是本实施例提供的对TCP数据包进行组包的处理流程图,如图2所示,该处理过程包括:
S1011、RLC装置接收所述TCP装置发送的TCP数据包并得到所述TCP数据包中携带的TCP数据包的信息。
在RAN侧与UE侧之间的数据传输过程中,发送端可以为RAN侧,接收端可以为UE,在RAN侧与UE侧均对等地设有RLC装置和TCP装置。在实际应用场景中,发送端的TCP装置发送的TCP数据包在到达RLC装置前通常还会通过其他协议层进行头压缩、数据包解析等预处理,RLC装置接收到的是经过处理后的TCP数据包。
图3是一种RNC中各协议层的对应关系示意图,如图3所示,TCP代理服务器(TCPproxy)通过RNC与基站NodeB进行数据传输。TCP代理服务器包括多个用户的多个TCP连接。在RNC中可以包括分组数据汇聚协议(PaeketData Convergenee Protocol,PDCP)层、RLC装置(即RLC层)、专用媒体接入控制(Media Access Control-D,MACD)层和媒体接入控制业务(Media Access Control Client)层。RNC通过PDCP层接收从用户的多个TCP连接发送的TCP数据包,PDCP层对TCP数据包进行解析,得到TCP数据包的信息,所述TCP数据包的信息包括以下所列的一种或任意结合:IP地址、端口和字节范围,用以根据TCP数据包的信息标识所述TCP数据包。PDCP层还具有头压缩功能,将进行头压缩后的TCP数据包传递给RLC装置。MACD层对RLC装置发送的RLC数据包进行调度,MACC层用于对小区内的业务进行汇总发送给NodeB。
如果RLC装置接收到的是发送端的TCP装置发送的TCP数据包,则先对TCP数据包进行解析,得到TCP数据包的信息,再将解析后的TCP数据包发给PDCP层进行头压缩处理,RLC装置再将经过PDCP层处理后的数据包提供给S1012。
S1012、RLC装置根据所述TCP数据包的信息,对所述TCP数据包进行标识,并记录所述TCP数据包的标识。
相应的,数据包的标识包括以下所列TCP数据包的信息中的一种或任意结合:IP地址、端口和字节范围。
S1013、RLC装置对所述数据包进行RLC组包形成RLC数据包,并标识所述RLC数据包。
在实际应用场景中,RLC装置将标识好的RLC数据包发送给对端设备时,可能会通过其他协议层将处理后的RLC数据包发送给对端设备,例如图3中通过MACD层发送。此时,RLC装置根据MACD层的调度来决定组包的大小,以及该发送多少数据量给MACD层,以进行流量控制,避免RNC和NodeB之间IuB口的拥塞。
S1014、RLC装置根据所述数据包的标识和所述RLC数据包的标识,建立并记录所述RLC数据包与TCP数据包的对应关系。
RLC数据包与TCP数据包的对应关系为以下三种之一:一个所述TCP数据包对应一个所述RLC数据包;一个所述TCP数据包对应多个所述RLC数据包;或者,多个所述TCP数据包对应一个所述RLC数据包。
在S103中,则根据RLC数据包与TCP数据包的对应关系来构建TCP数据包的应答消息。
具体地,如果某个TCP数据包仅对应一个RLC数据包,那么该RLC数据包的ACK就是TCP数据包的ACK。如果某个TCP数据包对应于多个RLC数据包,则多个RLC数据包的ACK都收到后,那么该TCP数据包才能认为ACK,即要求多个RLC数据包都ACK。如果多个TCP数据包对应于一个RLC数据包,则该RLC数据包的ACK就是多个TCP数据包的ACK。
本发明通过RLC装置的消息反馈,能够准确判断是否发生了TCP丢包,并可以获得准确的TCP丢包信息,明确具体丢失了哪个数据包,可以有效率地进行数据重传。
实施例二
图4是本实施例提供的反馈丢包的消息处理方法流程图,如图4所示,该方法包括:
S201、TCP装置接收发送端的RLC装置发送的TCP数据包的应答消息。
TCP数据包的应答消息通过实施例一的方法获得,于此不再赘述。
S202、TCP装置根据所述TCP数据包的应答消息判断对应的所述TCP数据包是否丢包,当判断到所述TCP数据包发生丢包时,进入S203,否则进入S205。
S203、TCP装置重传对应的所述TCP数据包给对端设备,并启动TCP重传定时器和/或TCP重传计数器。
S204、当所述TCP重传定时器和/或TCP重传计数器的计数值超过预设阈值时,TCP装置缩小发送端的拥塞窗口值。
如果接收到TCP数据包的应答消息为TCP NACK消息,则认为对应的TCP数据包发生丢包,则进行数据重传,并启动TCP重传定时器或TCP重传计数器。当TCP重传定时器超时或TCP重传计数器超过预设阈值时,缩小拥塞窗口值。
S205、TCP装置增大所述发送端的拥塞窗口值。
当TCP装置收到RLC装置反馈的TCP ACK消息后,进行发送窗口的滑动,并增大拥塞窗口的大小,具体的处理过程和现有的TCP协议中的处理相同。
以TCP装置接收的TCP数据包的应答消息为TCP NACK信息为例,具体的处理过程如图5所示,包括:
S301、设定TCP装置的重传时间(Retransmission Timeout,RTO)门限RTO_threshold。
S302、接收数据包n的TCP NACK信息,即可判断到数据包n发生丢包。
S303、启动TCP重传定时器记录数据包n的RTO时间RTO_n。
S304、判断RTO_n是否大于RTO门限RTO_threshold,如果是,则进入S305,重传数据包n并减小拥塞窗口,否则进入S306,重传数据包n,拥塞窗口保持不变。
RTO门限RTO_threshold的大小可以根据实际需要进行设定,在实际传输中,通常设定一个比较小的RTO门限值即可,因为RLC层的直接丢包的延迟时间是非常短的。
另外,考虑到RLC装置的流控和MACD的调度机制,拥塞窗口值的初始值可以设置为和通告窗口大小相同,即将流控的功能完全交给RLC层和底层的MAC层来完成。当然,如果RLC装置能够准确的反馈任意一个TCP数据包的NACK信息,也可以不使用TCP装置中利用RTO进行丢包判断的机制。
这样,TCP装置可以根据RLC装置反馈的应答消息,进行有效的拥塞控制,准确重传丢失的TCP数据包,优化无线TCP系统。
实施例三
图6是本实施例提供的反馈丢包的消息处理方法的信令图,如图6所示,该方法包括:
S401、RAN TCP装置向RAN RLC装置发送TCP数据包。
S402、RAN RLC装置对所述TCP数据包进行组包,形成RLC数据包。
RAN RLC装置在接收到发送端的TCP装置发送的TCP数据包之后,RAN RLC装置对所述TCP数据包进行组包,形成至少一个RLC数据包,并记录所述TCP数据包与所述RLC数据包的对应关系。
S403、RAN RLC装置发送所述RLC数据包给用户设备UE。
S404、UE RLC装置在接收到所述RLC数据包反馈RLC ACK信息给RAN RLC装置。
S405、UE RLC装置发送由所述RLC数据包组包形成的TCP数据包给UE TCP装置。
S406、RAN RLC装置根据UE RLC装置反馈的RLC ACK信息构造TCP ACK信息。
RAN RLC装置根据当前的RLC数据包与TCP数据包的关系,构造相应TCP数据包的ACK信息,进而将TCP ACK信息反馈给RAN TCP装置。
S407、RAN RLC装置发送TCP ACK信息给RAN TCP装置。
当RAN TCP装置接收到TCP ACK信息,则判断为该TCP数据包没有丢包。
S408、RAN RLC装置接收UE TCP装置反馈的TCP ACK信息。
S409、RAN RLC装置将UE TCP装置反馈的TCP ACK信息与TCP ACK信息相比较。
通常,UE RLC装置反馈的RLC ACK信息一般会比UE TCP装置反馈的TCPACK信息早到。如果UE TCP装置反馈的TCP ACK信息与构造的TCP ACK信息一致,则确认没有丢包,不再向所述RAN TCP装置发送所述UE TCP装置反馈的TCP ACK信息。如果不一致,则判断为所述RLC数据包在所述UE RLC装置发送给所述UE TCP装置时发生丢包,可以根据所述对端设备反馈的TCP ACK信息和RLC ACK信息确定发生丢包的TCP数据包,并指示TCP装置重传所述发生丢包的TCP数据包或者发送所述发生丢包的TCP数据包对应的RLC数据包,进行重传操作。此时,可能是发送端的流控存在问题,导致UE TCP装置的缓存溢出,发出RLC ACK信息的TCP数据包在传输给TCP装置后,被TCP装置丢弃。
例如,RAN RLC装置向UE发送了6个数据包,具体标识为1~6,UE RLC装置反馈的RLC ACK信息为1,2,3,5,6,表示接收到标识为1,2,3,5,6的RLC数据包,对应于RLC数据包标识与TCP数据包标识的对应关系,根据该RLC ACK可以构造得到对应的TCP ACK信息,以RLC数据包标识与TCP数据包标识一一对应为例,则构造得到的TCP ACK信息也为1,2,3,5,6,表示标识为1,2,3,5,6的TCP数据包没有丢包。而UE TCP装置反馈的TCP ACK信息为3,表示接收到标识为1,2,3的数据包。可以看出UE TCP装置反馈的TCP ACK信息与构造的TCP ACK信息不一致,可以判断出有发生丢包的TCP数据包,且根据UE TCP装置反馈的TCP ACK信息与构造的TCP ACK信息可以确定出发生丢包的TCP数据包为标识为4的TCP数据包,则指示RANTCP装置重传标识为4的TCP数据包或者RAN RLC装置重传标识为4的RLC数据包,对应于标识为4的TCP数据包。对于RLC数据包标识与TCP数据包标识不是一一对应的情形,则可以根据对应关系,相类似地确定丢包的RLC数据包的标识以及对应的TCP数据包标识,进行丢包的数据包重传。
S410、UE RLC装置对未接收到的RLC数据包,反馈RLC NACK信息给RANRLC装置。
S411、RAN RLC装置对反馈RLC NACK信息的RLC数据包进行重传。
RAN RLC装置重传对应的RLC数据包,并启动RLC重传定时器或RLC重传计数器。当所述RLC重传定时器和/或RLC重传计数器的计数值超过预设阈值时,表示出现了RLC随机丢包、RLC超时丢包、RLC重传超时或者RLC重传失败的情形,进入S412。
在RLC装置中,一个数据的丢失存在多种情况。比如,如果其缓存不能接收来自PDCP层的TCP数据包的话,RLC装置可以直接将该RLC数据包丢弃。或者,一个RLC数据包传输多次后,超过重传时间限制,或者超出重传次数限制,则反馈NACK给TCP装置。即RAN RLC装置将多种丢包情况进行考虑,但是反馈给TCP层都是一个NACK信息,因为对RAN TCP装置来说,就是某个TCP数据包没有发送成功。
S412、RAN RLC装置根据RLC NACK信息构造TCP NACK信息,用以指示所述TCP装置重传所述TCP NACK信息对应的TCP数据包。
S413、RAN RLC装置发送TCP NACK信息给RAN TCP装置。
S414、RAN TCP装置判断TCP数据包的丢包情况。
根据RAN RLC装置反馈的TCP ACK信息或TCP NACK信息,判断丢包情况。
当接收到TCP ACK信息,则表明数据包传输成功。
当接收到TCP NACK信息时,TCP装置判断丢包的情况具体如下:首先,RLC装置反馈了TCP NACK信息,则表明一定是发生了丢包。丢失的数据包可能是重传多次后失败的,也可能是被RLC装置直接丢弃的。如果是重传多次失败后反馈的NACK信息,那么该数据包的RTO记录时间是比较长的。如果是被RLC装置直接丢弃的,则存在两种可能:一种是等待了一段时间后丢弃,该数据包在TCP装置的RTO定时器有比较长的时间记录;一种是因为缓存已经满了,直接丢弃,那么该数据包在TCP装置的RTO定时器记录的时间是非常短的。正常情况下,无论是重传超时,重传超过次数,或者是等待时间超时,那么该数据包的RTO时间都是比较长的,而直接丢弃则该数据包的RTO定时器记录的时间是非常短的。
S415、RAN TCP装置重传丢失的TCP数据包。
RLC数据包具体的传输情况有如下几种:第一种是一次传输成功,第二种是重传多次成功,第三种是重传多次后达到重传次数而失败,第四种是重传多次后超过重传的时间限制而失败,第五种情况是RLC装置的缓冲满的情况下,将收到的数据包直接丢弃。在第三、四、五种情况下,RLC装置都是向TCP装置反馈对应TCP数据包的NACK信息,由TCP层进行重传。
在本实施例中,将TCP装置和RLC装置集合于无线侧(即RAN侧)中,可以彻底解决无线TCP中丢包判断问题,同时还避免了信息传递的时延问题。
在RAN侧中能够提供RLC装置的网元可以是RNC或者eNodeB等设备,而RAN侧反馈的TCP ACK/NACK信息的可能提供网元位置为RNC,eNodeB,通用分组无线业务网关支持节点(Gateway GPRS Support Node,GGSN)和分组数据网络网关(Packet Data NetworkGateway,P-GW)等。也就是说,RAN侧反馈的TCP ACK/NACK信息可以通过RNC或者eNodeB直接反馈给其他网元,或者也可以通过RNC或者eNodeB先传给GGSN、P-GW等设备后再转发给其他网元。因而,本实施例中RLC装置可以是RNC,eNodeB等设备,TCP装置可以是RNC,eNodeB,GGSN,P-GW等设备。
由于RNC到GGSN、eNodeB到P-GW之间都是用户面的GPRS隧道协议(GPRSTunnelling Protocol-User plane,GTP-U)协议,因而,可以采用GTP-U协议的扩展头,来传递相应TCP ACK/NACK信息。图7是一种GTP-U协议的扩展头的示意图,包括扩展头长度、扩展头内容和下一个扩展头类型,可以将TCP ACK/NACK信息作为扩展头内容进行传递。当然,TCP ACK/NACK信息也可以采用RLC装置中的SACK中的ACK和NACK标识位进行传递,由于SACK位于RLC装置中,对TCP装置是否具有SACK选项并不作要求,均可以进行传递。
需要说明的是,上述RAN TCP装置和RAN RLC装置可以在同一个基站设备中,所述基站设备可以为RNC或者eNodeB等设备。当然,发送端的TCP装置也可以不在RAN侧中,即在RAN侧中不存在TCP优化的情况,RAN TCP装置和RAN RLC装置处于不同网元中,则RAN RLC装置可以将反馈的TCP ACK信息或TCP NACK信息反馈给其他网元的TCP装置,例如,服务GPRS支持节点(Service GPRS Supporting Node,SGSN)或者策略和计费规则功能(Policy AndCharging Rules Function,PCRF)等网元,具体的处理过程与本实施例类似,不再赘述。
以上是对本发明所提供的反馈丢包的消息处理方法和拥塞控制方法进行的详细描述,下面对本发明提供的反馈丢包的消息处理装置和拥塞控制装置进行详细描述。
实施例四
图8是本实施例提供的反馈丢包的消息处理装置示意图,如图8所示,本发明的装置包括:组包单元501、接收单元502、处理单元503和发送单元504。
组包单元501用于接收TCP装置发送的TCP数据包,将所述TCP数据包组包形成RLC数据包,并将所述RLC数据包发送给对端设备。
组包单元501具体包括:接收子单元、记录子单元、组包子单元和存储子单元(图未示)。
接收子单元用于接收所述TCP装置发送的TCP数据包并得到所述TCP数据包中携带的所述TCP数据包的信息。
在实际应用场景中,发送端的TCP装置发送的TCP数据包在到达RLC装置前通常还会通过其他协议层进行头压缩、数据包解析等预处理,接收子单元接收到的是经过处理后的TCP数据包。
图3是一种RNC中各协议层的对应关系示意图,如图3所示,TCP代理服务器(TCPproxy)通过RNC与基站NodeB进行数据传输。TCP代理服务器包括多个用户的多个TCP连接。在RNC中可以包括分组数据汇聚协议(Paeket Data Convergenee Protocol,PDCP)层、RLC装置、专用媒体接入控制(Media Access Control-D,MACD)层和媒体接入控制业务(MediaAcces s Control Client)层。RNC通过PDCP层接收从用户的多个TCP连接发送的TCP数据包,PDCP层对TCP数据包进行解析,得到TCP数据包的信息,所述包头信息包括以下所列的一种或任意结合:IP地址、端口和字节范围,用以根据TCP数据包的信息标识所述TCP数据包。PDCP层还具有头压缩功能,将进行头压缩后的TCP数据包传递给RLC装置。MACD层对RLC装置发送的RLC数据包进行调度,MACC层用于对小区内的业务进行汇总发送给NodeB。
如果RLC装置接收到的是发送端的TCP装置发送的TCP数据包,则接收子单元还对TCP数据包进行解析,得到TCP数据包的信息,再将解析后的TCP数据包发给PDCP层进行头压缩处理,再将经过PDCP层处理后的数据包提供给记录子单元。
记录子单元用于根据所述接收子单元得到的所述TCP数据包的信息,对所述TCP数据包进行标识,并记录所述TCP数据包的标识。
相应的,记录子单元记录的TCP数据包的标识包括以下所列TCP数据包的信息中的一种或任意结合:IP地址、端口和字节范围。
组包子单元用于对所述接收子单元接收的所述TCP数据包进行RLC组包形成RLC数据包,并标识所述RLC数据包。
组包子单元根据MACD层的调度来决定组包的大小,以及该发送多少数据量给MACD层,以进行流量控制,避免RNC和NodeB之间IuB口的拥塞。
存储子单元用于根据记录子单元记录的所述TCP数据包的标识和所述组包子单元得到的所述RLC数据包的标识,建立并记录所述RLC数据包与TCP数据包的对应关系。
存储子单元记录的RLC数据包与TCP数据包的对应关系为以下三种之一:一个所述TCP数据包对应一个所述RLC数据包;一个所述TCP数据包对应多个所述RLC数据包;或者,多个所述TCP数据包对应一个所述RLC数据包。
接收单元502用于接收所述对端设备的RLC装置针对组包单元501发送的所述RLC数据包返回的所述RLC数据包的应答消息。
对端设备的RLC装置会针对每一个RLC数据包会返回对应RLC数据包的应答信息。接收单元502接收的RLC数据包的应答信息包括RLC ACK信息和/或RLC NACK信息。
处理单元503用于根据接收单元502接收的所述RLC数据包的应答消息构造所述RLC数据包对应的TCP数据包的应答消息。
处理单元503根据组包单元501中记录的RLC数据包与TCP数据包的对应关系来构建TCP数据包的应答消息。
如果某个RLC数据包的应答消息为ACK,则该RLC数据包对应的TCP数据包的应答消息为ACK。如果某个RLC数据包的应答消息为NACK,则该RLC数据包对应的TCP数据包的应答消息为NACK。利用这种对应关系,处理单元503根据RLC数据包的应答消息构造TCP数据包的应答消息,即利用RLC ACK信息构造TCP ACK信息,利用RLC NACK信息构造TCP NACK信息,用以指示所述TCP装置重传所述TCP NACK信息对应的TCP数据包。
处理单元503根据所述RLC数据包的应答消息,利用所述存储子单元记录的所述RLC数据包与TCP数据包的对应关系,构造所述TCP数据包的应答消息。具体地,如果某个TCP数据包仅对应一个RLC数据包,那么该RLC数据包的ACK就是TCP数据包的ACK。如果某个TCP数据包对应于多个RLC数据包,则多个RLC数据包的ACK都收到后,那么该TCP数据包才能认为ACK,即要求多个RLC数据包都ACK。如果多个TCP数据包对应于一个RLC数据包,则该RLC数据包的ACK就是多个TCP数据包的ACK。
发送单元504用于将处理单元503得到的TCP数据包的应答消息反馈给TCP装置。
所述TCP装置根据TCP数据包的应答消息判断所述TCP数据包是否丢包。
当发送单元504发送TCP NACK信息时,发送端的TCP装置则判断为TCP数据包发生丢包。当发送端的TCP装置接收到某个TCP数据包的ACK,则判断为该TCP数据包未发生丢包。
所述发送单元反馈的所述TCP数据包的应答消息通过用户面的GPRS隧道协议GTP-U的扩展头或选择性确认SACK来传递。
可选地,本发明的消息处理装置还包括:比较单元505和第一重传单元506。
比较单元505与接收单元502、处理单元503和发送单元504相连接。
接收单元502还用于接收所述对端设备的TCP装置反馈的ACK信息。
比较单元505用于将接收单元502接收的所述TCP装置反馈的ACK信息与处理单元503得到的所述TCP ACK信息相比较,如果不一致,则判断为所述数据包在发送给所述接收端的TCP装置时发生丢包;如果一致,则判断为未发生丢包,并不再触发发送单元504向所述发送端发送所述TCP装置反馈的ACK信息。
通常,UE RLC装置反馈的RLC ACK信息一般会比UE TCP装置反馈的TCPACK信息早到。如果UE TCP装置反馈的TCP ACK信息与构造的TCP ACK信息一致,则比较单元505确认没有丢包,不再向所述发送端的TCP装置发送所述TCP装置反馈的TCP ACK信息。如果不一致,则比较单元505判断为所述RLC数据包在所述UE的RLC装置发送给所述UE的TCP装置时发生丢包,可以根据所述对端设备反馈的TCP ACK信息和RLC ACK信息确定发生丢包的TCP数据包,并指示TCP装置重传所述发生丢包的TCP数据包或者发送所述发生丢包的TCP数据包对应的RLC数据包,进行重传操作。此时,可能是发送端的流控存在问题,导致UE TCP装置的缓存溢出,发出RLC ACK信息的TCP数据包在传输给TCP装置后,被TCP装置丢弃。
第一重传单元506与接收单元502和处理单元503相连接。第一重传单元506用于当接收单元502接收的所述RLC数据包的应答消息为RLC NACK信息时,将所述RLC数据包的应答消息为RLC NACK信息的RLC数据包重传给所述对端设备,并启动RLC重传定时器和/或RLC重传计数器;当所述RLC重传定时器和/或RLC重传计数器的计数值超过预设阈值时,触发处理单元503根据所述RLC NACK信息构造TCP NACK信息。
实施例五
图9是本发明实施例提供的反馈丢包的消息处理装置示意图,如图9所示,该装置包括:接收单元601、判断单元602、第二重传单元603和调整单元604。
接收单元601用于接收RLC装置发送的TCP NACK信息。
所述TCP NACK信息通过实施例四的装置获得。
判断单元602用于根据接收单元601接收的所述TCP NACK信息确定丢包的TCP数据包。
第二重传单元603用于当判断单元602确定所述丢包的TCP数据包之后,重传所述丢包的TCP数据包给UE,并启动TCP重传定时器和/或TCP重传计数器。
调整单元604用于当第二重传单元603启动的所述TCP重传定时器和/或TCP重传计数器的计数值超过预设阈值时,缩小发送端的拥塞窗口值。
如果接收单元601接收到TCP数据包的应答消息为TCP NACK消息,则判断单元602判断为对应的TCP数据包发生丢包,第二重传单元603进行数据重传,并启动TCP重传定时器或TCP重传计数器。当TCP重传定时器超时或TCP重传计数器超过预设阈值时,调整单元604缩小拥塞窗口值。当接收单元601接收到RLC装置反馈的TCP ACK消息后,判断单元602判断为数据包没有丢包,调整单元604进行发送窗口的滑动,并增大拥塞窗口的大小,具体的处理过程和现有的TCP协议中的处理相同。
实施例六
图10是本发明实施例的RLC装置的结构组成示意图,如图10所示,本发明实施例的RLC装置可包括:
处理器701、第一接口702和第二接口703。
处理器701可能为单核或多核中央处理单元(Central Processing Unit,CPU),或者为特定集成电路(Application Specific Integrated Circuit,ASIC),或者为被配置成实施本发明实施例的一个或多个集成电路。
第一接口702用于与TCP装置进行交互。
第二接口703用于与对端设备进行交互。
处理器701用于:
通过所述第一接口接收所述TCP装置发送的TCP数据包;
将所述TCP数据包组包形成RLC数据包;
通过所述第二接口将所述RLC数据包发送给对端设备;
通过所述第二接口接收所述对端设备返回的所述RLC数据包的应答消息;
根据所述RLC数据包的应答消息构造所述RLC数据包对应的TCP数据包的应答消息;以及
通过所述第一接口将所述TCP数据包的应答消息反馈给所述TCP装置。
具体地,第一接口702接收的TCP数据包中携带有TCP数据包的信息。在实际应用场景中,第一接口702接收到的TCP数据包可以是处理过的TCP数据包,也可以是TCP装置发送的TCP数据包。
处理器701根据所述TCP数据包的信息,对所述TCP数据包进行标识,并记录所述TCP数据包的标识;对所述TCP数据包进行RLC组包形成RLC数据包,并标识所述RLC数据包;以及,根据所述TCP数据包的标识和所述RLC数据包的标识,建立并记录所述RLC数据包与TCP数据包的对应关系。
处理器701根据所述RLC数据包的应答消息,利用所述RLC数据包与TCP数据包的对应关系,构造所述TCP数据包的应答消息。
如果所述RLC数据包的应答消息为RLC确认ACK信息,处理器701根据所述RLC ACK信息构造TCP数据包的TCP ACK信息。
第二接口703还可以接收所述对端设备反馈的的TCP ACK信息,处理器701则将所述对端设备反馈的TCP ACK信息与构造的所述TCP ACK信息相比较,如果一致,则判断为未发生丢包,并不再向所述TCP装置发送所述对端设备反馈的TCP ACK信息;如果不一致,则判断为所述TCP数据包在发送给所述对端设备的TCP装置时发生丢包。当判断到发生丢包时,处理器701根据所述对端设备反馈的TCP ACK信息和RLC ACK信息确定发生丢包的TCP数据包,并指示所述TCP装置重传所述发生丢包的TCP数据包或者通过第二接口703发送所述发生丢包的TCP数据包对应的RLC数据包。
如果所述RLC数据包的应答消息为RLC否定确认NACK信息,处理器701用于根据所述RLC NACK信息构造TCP数据包的TCP NACK信息,用以指示所述TCP装置重传所述TCP NACK信息对应的TCP数据包。
处理器701将所述RLC数据包的应答消息为RLC NACK信息的RLC数据包重传给所述对端设备,并启动RLC重传定时器和/或RLC重传计数器;当所述RLC重传定时器和/或RLC重传计数器的计数值超过预设阈值时,根据所述RLCNACK信息构造TCP NACK信息。
具体地,RLC装置还可以执行上述图1-3,图6所示的处理方法,具体在此不再赘述。
实施例七
图11是本发明实施例的TCP装置的结构组成示意图,如图11所示,本发明实施例的TCP装置可包括:处理器801和通信接口802。
处理器801可能为单核或多核中央处理单元(Central Process ing Unit,CPU),或者为特定集成电路(Application Specific Integrated Circuit,ASIC),或者为被配置成实施本发明实施例的一个或多个集成电路。
通信接口802用于与RLC装置进行交互。
处理器801用于:
通过所述通信接口接收RLC装置发送的TCP NACK信息;
根据所述TCP NACK信息确定丢包的TCP数据包。
所述TCP NACK信息由所述RLC装置根据RLC NACK信息构造得到,具体的构造方法如实施例一或实施例三中所述,于此不再赘述。
当确定有丢包的TCP数据包时,处理器801还用于通过通信接口802重传所述丢包的TCP数据包给所述对端设备,并启动TCP重传定时器和/或TCP重传计数器;当所述TCP重传定时器和/或TCP重传计数器的计数值超过预设阈值时,缩小发送端的拥塞窗口值,从而对传输过程进行拥塞控制。
具体地,TCP装置还根据所述指令执行上述图4-6所示的控制方法,具体在此不再赘述。
需要说明的是,实施例六中的RLC装置可以为无线网络控制器RNC或者演进型基站eNodeB。实施例七中的TCP装置可以为RNC或者eNodeB,也可以是GGSN,P-GW等设备。由于RNC到GGSN、eNodeB到P-GW之间都是用户面的GPRS隧道协议(GPRS Tunnelling Protocol-Userplane,GTP-U)协议,因而,所述TCP数据包的应答消息通过用户面的GPRS隧道协议GTP-U的扩展头来传递。当然,所述TCP数据包的应答消息也可以采用RLC装置中的SACK中的ACK和NACK标识位进行传递。
上述TCP装置和RLC装置可以在同一个基站设备中,所述基站设备可以为RNC或者eNodeB等设备。如果TCP装置和RLC装置处于不同网元中,则RLC装置可以将反馈的TCP ACK信息或TCP NACK信息反馈给其他网元的TCP装置,具体的处理过程与本实施例类似,不再赘述。
本发明提供的反馈丢包的消息处理方法及装置,通过RLC层反馈的ACK/NACK信息,判断当前的某个TCP数据包是否正确接收,从而准确判断TCP丢包并获得准确的TCP丢包信息,仅需要对没有正确接收的数据进行重传,可以减少不必要的重传,提升无线TCP的性能,充分利用空口资源。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (23)

1.一种无线链路控制RLC装置,其特征在于,所述装置包括:处理器,第一接口和第二接口;
所述第一接口,用于与传输控制协议TCP装置进行交互;
所述第二接口,用于与对端设备进行交互;
所述处理器用于:
通过所述第一接口接收所述TCP装置发送的TCP数据包;
将所述TCP数据包组包形成RLC数据包;
通过所述第二接口将所述RLC数据包发送给对端设备;
通过所述第二接口接收所述对端设备返回的所述RLC数据包的应答消息,所述RLC数据包的应答消息包括:RLC ACK信息和/或RLC NACK信息;
根据所述RLC ACK信息构造TCP ACK信息;
通过所述第一接口将构造的所述TCP ACK信息发送给TCP装置;
通过所述第二接口接收对端设备反馈的TCP ACK信息;
将所述对端设备反馈的TCP ACK信息与构造的所述TCP ACK信息相比较,如果不一致,则判断为所述数据包在发送给所述对端设备的TCP装置时发生丢包;如果一致,则判断为未发生丢包,并不再向所述TCP装置发送所述对端设备反馈的TCP ACK信息。
2.根据权利要求1所述的装置,其特征在于,所述第一接口接收的TCP数据包中携带有TCP数据包的信息,所述TCP数据包的信息包括以下所列的一种或任意结合:IP地址、端口和字节范围;
所述处理器用于将所述TCP数据包组包形成RLC数据包,具体包括:
所述处理器用于:
根据所述TCP数据包的信息,对所述TCP数据包进行标识,并记录所述TCP数据包的标识;
对所述TCP数据包进行RLC组包形成RLC数据包,并标识所述RLC数据包;以及
根据所述TCP数据包的标识和所述RLC数据包的标识,建立并记录所述RLC数据包与TCP数据包的对应关系。
3.根据权利要求2所述的装置,其特征在于,所述处理器用于根据所述RLC数据包的应答消息构造所述RLC数据包对应的TCP数据包的应答消息,包括:
所述处理器用于:
根据所述RLC数据包的应答消息,利用所述RLC数据包与TCP数据包的对应关系,构造所述TCP数据包的应答消息。
4.根据权利要求1所述的装置,其特征在于,所述RLC数据包的应答消息为RLC确认ACK信息,所述处理器用于根据所述RLC数据包的应答消息构造所述RLC数据包对应的TCP数据包的应答消息,具体包括:
所述处理器用于根据所述RLC ACK信息构造TCP数据包的TCP ACK信息。
5.根据权利要求1所述的装置,其特征在于,当发生丢包时,所述处理器还用于:
根据所述对端设备反馈的TCP ACK信息和RLC ACK信息确定发生丢包的TCP数据包;
指示所述TCP装置重传所述发生丢包的TCP数据包或者通过所述第二接口发送所述发生丢包的TCP数据包对应的RLC数据包。
6.根据权利要求1所述的装置,其特征在于,所述RLC数据包的应答消息为RLC否定确认NACK信息,所述处理器用于根据所述RLC数据包的应答消息构造所述RLC数据包对应的TCP数据包的应答消息,具体包括:
所述处理器用于根据所述RLC NACK信息构造TCP数据包的TCP NACK信息,用以指示所述TCP装置重传所述TCP NACK信息对应的TCP数据包。
7.根据权利要求6所述的装置,其特征在于,所述处理器用于根据所述RLC NACK信息构造TCP数据包的TCP NACK信息,具体包括:
所述处理器用于:
将所述RLC数据包的应答消息为RLC NACK信息的RLC数据包重传给所述对端设备,并启动RLC重传定时器和/或RLC重传计数器;
当所述RLC重传定时器和/或RLC重传计数器的计数值超过预设阈值时,根据所述RLCNACK信息构造TCP NACK信息。
8.根据权利要求1所述的装置,其特征在于,所述TCP数据包的应答消息通过用户面的GPRS隧道协议GTP-U的扩展头或TCP选择性确认SACK选项来传递。
9.根据权利要求1所述的装置,其特征在于,所述RLC装置为无线网络控制器RNC或者演进型基站eNodeB。
10.一种TCP装置,其特征在于,所述装置包括:处理器和通信接口;
所述通信接口,用于与RAN RLC装置进行交互;
所述处理器用于:
通过所述通信接口接收RAN RLC装置发送的TCP NACK信息,所述TCP NACK信息由所述RAN RLC装置根据RLC NACK信息构造得到;其中,TCP数据包与RLC数据包的对应关系为:一个所述TCP数据包对应一个所述RLC数据包;或者,一个所述TCP数据包对应多个所述RLC数据包;或者,多个所述TCP数据包对应一个所述RLC数据包;
根据所述TCP NACK信息确定丢包的TCP数据包。
11.根据权利要求10所述的装置,其特征在于,当确定丢包后,所述处理器还用于:
通过所述通信接口重传所述丢包的TCP数据包给对端设备,并启动TCP重传定时器和/或TCP重传计数器;
当所述TCP重传定时器和/或TCP重传计数器的计数值超过预设阈值时,缩小发送端的拥塞窗口值。
12.根据权利要求10所述的装置,其特征在于,所述TCP装置为RNC、eNodeB、GGSN、SGSN或者PGW。
13.一种基站设备,其特征在于,包括:
如权利要求1~9任一权项所述的RLC装置和如权利要求10~12任一权项所述的TCP装置。
14.一种反馈丢包的消息处理方法,其特征在于,所述方法包括:
RLC装置接收TCP装置发送的TCP数据包,将所述TCP数据包组包形成RLC数据包,并将所述RLC数据包发送给对端设备;
所述RLC装置接收所述对端设备返回的所述RLC数据包的应答消息,所述RLC数据包的应答消息包括:RLC ACK信息和/或RLC NACK信息;
所述RLC装置根据所述RLC ACK信息构造TCP ACK信息;
所述RLC装置将构造的所述TCP ACK信息发送给TCP装置;
所述RLC装置接收对端设备反馈的TCP ACK信息;
所述RLC装置将所述对端设备反馈的TCP ACK信息与构造的所述TCP ACK信息相比较,如果不一致,则判断为所述数据包在发送给所述对端设备的TCP装置时发生丢包;如果一致,则判断为未发生丢包,并不再向所述TCP装置发送所述对端设备反馈的TCP ACK信息。
15.根据权利要求14所述的消息处理方法,其特征在于,所述RLC装置接收的所述TCP数据包中携带有TCP数据包的信息,所述TCP数据包的信息包括以下所列的一种或任意结合:IP地址、端口和字节范围;
所述将所述TCP数据包组包形成RLC数据包,包括:
所述RLC装置根据所述TCP数据包的信息,对所述TCP数据包进行标识,并记录所述TCP数据包的标识;
所述RLC装置对所述TCP数据包进行RLC组包形成RLC数据包,并标识所述RLC数据包;
所述RLC装置根据所述TCP数据包的标识和所述RLC数据包的标识,建立并记录所述RLC数据包与TCP数据包的对应关系。
16.根据权利要求15所述的消息处理方法,其特征在于,所述根据所述RLC数据包的应答消息构造TCP数据包的应答消息,具体为:
根据所述RLC数据包的应答消息,利用所述RLC数据包与TCP数据包的对应关系,构造所述TCP数据包的应答消息。
17.根据权利要求14所述的消息处理方法,其特征在于,所述RLC数据包的应答消息为RLC ACK信息;
所述根据所述RLC数据包的应答消息构造TCP数据包的应答消息,具体为:
根据所述RLC ACK信息构造TCP数据包的TCP ACK信息。
18.根据权利要求14所述的消息处理方法,其特征在于,当发生丢包时,所述方法还包括:
所述RLC装置根据所述对端设备反馈的TCP ACK信息和RLC ACK信息确定发生丢包的TCP数据包;
所述RLC装置指示所述TCP装置重传所述发生丢包的TCP数据包或者发送所述发生丢包的TCP数据包对应的RLC数据包。
19.根据权利要求14所述的消息处理方法,其特征在于,所述RLC数据包的应答消息为RLC NACK信息;
所述根据所述RLC数据包的应答消息构造TCP数据包的应答消息,具体为:
根据所述RLC NACK信息构造TCP数据包的TCP NACK信息,用以指示所述TCP装置重传所述TCP NACK信息对应的TCP数据包。
20.根据权利要求19所述的消息处理方法,其特征在于,所述根据所述RLC NACK信息构造TCP数据包的TCP NACK信息,具体包括:
将所述RLC数据包的应答消息为RLC NACK信息的RLC数据包重传给所述对端设备,并启动RLC重传定时器和/或RLC重传计数器;
当所述RLC重传定时器和/或RLC重传计数器的计数值超过预设阈值时,根据所述RLCNACK信息构造TCP NACK信息。
21.根据权利要求14所述的消息处理方法,其特征在于,所述TCP数据包的应答消息通过GTP-U的扩展头或TCP SACK选项来传递。
22.一种反馈丢包的消息处理方法,其特征在于,所述方法包括:
RAN TCP装置接收RAN RLC装置发送的TCP否定确认NACK信息,所述TCP NACK信息由所述RAN RLC装置根据RLC NACK信息构造得到;其中,TCP数据包与RLC数据包的对应关系为:一个所述TCP数据包对应一个所述RLC数据包;或者,一个所述TCP数据包对应多个所述RLC数据包;或者,多个所述TCP数据包对应一个所述RLC数据包;
根据所述TCP NACK信息确定丢包的TCP数据包。
23.根据权利要求22所述的消息处理方法,其特征在于,在所述根据所述TCP NACK信息确定丢包的TCP数据包之后,还包括:
重传所述丢包的TCP数据包给对端设备,并启动TCP重传定时器和/或TCP重传计数器;
当所述TCP重传定时器和/或TCP重传计数器的计数值超过预设阈值时,缩小发送端的拥塞窗口值。
CN201380000199.1A 2013-01-31 2013-01-31 反馈丢包的消息处理方法及装置 Active CN104137507B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/071193 WO2014117359A1 (zh) 2013-01-31 2013-01-31 反馈丢包的消息处理方法及装置

Publications (2)

Publication Number Publication Date
CN104137507A CN104137507A (zh) 2014-11-05
CN104137507B true CN104137507B (zh) 2018-11-16

Family

ID=51261414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380000199.1A Active CN104137507B (zh) 2013-01-31 2013-01-31 反馈丢包的消息处理方法及装置

Country Status (2)

Country Link
CN (1) CN104137507B (zh)
WO (1) WO2014117359A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018027814A1 (zh) * 2016-08-11 2018-02-15 华为技术有限公司 一种数据传输方法、数据接收设备及数据发送设备
CN109525374B (zh) * 2017-09-20 2020-10-16 华为技术有限公司 数据传输的方法、无线接入点、用户设备及传输设备
CN111435866B (zh) * 2019-01-14 2023-02-10 华为技术有限公司 数据传输方法及相关装置
CN111447144A (zh) * 2020-04-01 2020-07-24 中核武汉核电运行技术股份有限公司 一种基于透明代理的应用路由方法
CN115085890A (zh) * 2022-06-23 2022-09-20 杭州云合智网技术有限公司 数据中心网络芯片优化tcp rto重传等待时间的方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1842052A (zh) * 2005-03-29 2006-10-04 华为技术有限公司 无线链路控制层的数据传输方法
CN101043299A (zh) * 2006-04-05 2007-09-26 华为技术有限公司 一种ack/nack方法
CN102130756A (zh) * 2008-07-17 2011-07-20 华为技术有限公司 数据传输方法和装置
CN102316515A (zh) * 2011-09-16 2012-01-11 中兴通讯股份有限公司 无线链路控制层状态报告的构造方法及装置
CN102347827A (zh) * 2010-07-28 2012-02-08 中兴通讯股份有限公司 一种实现rlc层重传的方法及系统
CN102664718A (zh) * 2012-04-28 2012-09-12 大唐移动通信设备有限公司 无线侧tcp数据重传的方法和设备
CN102761403A (zh) * 2012-06-28 2012-10-31 深信服网络科技(深圳)有限公司 探测tcp丢包的方法、装置及tcp协议栈

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2843670B1 (fr) * 2002-08-14 2005-01-14 Evolium Sas Procede pour l'allocation de ressources en mode paquet dans un systeme de radiocommunications mobiles
ATE383048T1 (de) * 2004-06-15 2008-01-15 Matsushita Electric Ind Co Ltd Auf priorität basierte behandlung von datenübertragungen
CN101001131B (zh) * 2006-01-12 2010-08-11 华为技术有限公司 一种分割级联方法
CN101132261A (zh) * 2006-08-21 2008-02-27 华为技术有限公司 一种数据包重传方法和系统
KR101394784B1 (ko) * 2007-10-16 2014-05-15 엘지전자 주식회사 고속데이터 전송을 위한 arq 과정의 수행방법
EP2229746B1 (en) * 2008-01-09 2011-12-07 Telefonaktiebolaget L M Ericsson (publ) Method and transmitting unit for reducing a risk of transmission stalling
US8320250B2 (en) * 2008-02-12 2012-11-27 Nvidia Corporation Method and arrangement for TCP flow control
US8279822B2 (en) * 2009-12-30 2012-10-02 Motorola Mobility Llc Method and apparatus for scheduling an acknowledgement in a wireless communication system
CN102761905B (zh) * 2011-04-26 2016-03-30 华为技术有限公司 消息处理方法、设备及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1842052A (zh) * 2005-03-29 2006-10-04 华为技术有限公司 无线链路控制层的数据传输方法
CN101043299A (zh) * 2006-04-05 2007-09-26 华为技术有限公司 一种ack/nack方法
CN102130756A (zh) * 2008-07-17 2011-07-20 华为技术有限公司 数据传输方法和装置
CN102347827A (zh) * 2010-07-28 2012-02-08 中兴通讯股份有限公司 一种实现rlc层重传的方法及系统
CN102316515A (zh) * 2011-09-16 2012-01-11 中兴通讯股份有限公司 无线链路控制层状态报告的构造方法及装置
CN102664718A (zh) * 2012-04-28 2012-09-12 大唐移动通信设备有限公司 无线侧tcp数据重传的方法和设备
CN102761403A (zh) * 2012-06-28 2012-10-31 深信服网络科技(深圳)有限公司 探测tcp丢包的方法、装置及tcp协议栈

Also Published As

Publication number Publication date
WO2014117359A1 (zh) 2014-08-07
CN104137507A (zh) 2014-11-05

Similar Documents

Publication Publication Date Title
US11133897B2 (en) Data transmission method and apparatus
JP4906844B2 (ja) 無線移動通信システムで下位階層データブロックを生成する方法
US9397791B2 (en) Transmitting data in a mobile communication system
EP2811681B1 (en) Method for moving a receive window in a radio access network
TWI415433B (zh) 雙向無線電連結控制非持久模式低延遲服務
US8428086B2 (en) Transmitting data in a mobile communication system
EP1315341B1 (en) Receiver polling for data transmission with sliding window data flow control
CN104137507B (zh) 反馈丢包的消息处理方法及装置
CN111435866B (zh) 数据传输方法及相关装置
CN104080121A (zh) 一种传输数据的方法及系统
CN103179618B (zh) 一种基于LTE Femto系统中提高回程网络的QoS的方法
WO2021128913A1 (zh) 蜂窝网络上行链路ecn机制的增强方法、设备及介质
EP3611859A1 (en) Data receiving state reporting method and apparatus
KR20080111395A (ko) 이동통신 시스템에서의 무선자원 향상 방법, 상태정보 보고방법 및 수신장치
KR101509766B1 (ko) 이동통신시스템에서의 rlc pdu 전송 방법, 자원할당 방법 및 rlc 엔티티
TW200836537A (en) Method for transmitting control information in a mobile communication system
CN109194452A (zh) 数据重传方法、装置、存储介质及其网络设备
WO2012083762A1 (zh) 数据传输方法、设备及系统
CN108400842A (zh) 一种应用于接收方的状态报告发送方法及装置
TWI729464B (zh) 資料封裝方法與通訊裝置
US20090257377A1 (en) Reducing buffer size for repeat transmission protocols
CN106341348A (zh) 一种面向tcp业务的流量控制方法及接入网网元
CN106658546A (zh) 无线链路控制层轮询定时器的时长调整方法及装置
CN116033478A (zh) 通信方法、通信装置及计算机可读存储介质
CN116963175A (zh) 数据传输方法、装置及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant