首页> 中国专利> 一种基于SDN网络的TCP拥塞控制方法

一种基于SDN网络的TCP拥塞控制方法

摘要

本发明公开了一种基于SDN网络的TCP拥塞控制方法,SDN控制器收集实时的网络时延、时延抖动、可用网络带宽、网络拥塞状况以及目标是否可达信息,将这些信息发送给需要调整的TCP数据流;根据对应的调整目标分别对各需要调整的TCP数据流进行调整。本发明通过与SDN控制器进行交互,能够快速感知网络时延、拥塞状况、带宽、误码等网络状态信息,尤其是在高时延、高误码率的无线网络环境下,可以快速准确区分空口丢包与网络拥塞丢包,从而使得TCP协议可以快速感知网络状态,进而快速调整TCP协议的拥塞控制机制,提高TCP协议的传输效率。

著录项

  • 公开/公告号CN106102094A

    专利类型发明专利

  • 公开/公告日2016-11-09

    原文格式PDF

  • 申请/专利权人 广州海格通信集团股份有限公司;

    申请/专利号CN201610529907.6

  • 发明设计人 赵伟;徐飞;江俊锋;常利平;王浩;

    申请日2016-07-06

  • 分类号H04W28/02(20090101);H04W28/10(20090101);H04W80/06(20090101);

  • 代理机构44245 广州市华学知识产权代理有限公司;

  • 代理人黄磊

  • 地址 510663 广东省广州市科学城海云路88号

  • 入库时间 2023-06-19 00:53:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-06

    授权

    授权

  • 2016-12-07

    实质审查的生效 IPC(主分类):H04W28/02 申请日:20160706

    实质审查的生效

  • 2016-11-09

    公开

    公开

说明书

技术领域

本发明涉及网络拥塞的研究领域,特别涉及一种基于SDN网络的TCP拥塞控制方法。

背景技术

近年来,互联网爆炸式的增长使各种网络应用大量出现,网络上的数据量越来越多,网络的负载越来越重,从而导致拥塞的发生。TCP是目前在Internet中使用最广泛的传输协议,TCP中使用的拥塞控制算法是保证Internet稳定性的重要因素。TCP运行在一个端到端的虚连接之上,主要基于拥塞控制在不可靠的网络中提供可靠的数据报传送。

TCP起初是为有线网络设计的,其中,网络拥塞被认为是数据包丢失和重传定时器超时(RTO,Retransmission TimeOut)的主要原因,此外,端到端的时延及时延变化较小。然而,在高时延、高误码的无线网络中,TCP由于未能合理优化地利用无线链路的特性而遭遇严重的性能下降问题。传统TCP中针对有线网络的假设以及部署往往并不适用于无线网络,这主要表现在以下两个方面:

(1)TCP通过数据分段的重复确认和RTP超时机制来判断拥塞,而在无线网路中,大多数丢包问题并不是由网络拥塞导致的,因而TCP极易出现误判和误响应问题;

(2)TCP启动之后,源端在每次收到新的ACK时增加拥塞窗口以尽可能多地发送数据,然而,无线网络中的时延和时延抖动较大,导致ACK的到达时机极不规律,从而导致窗口增长过程的不稳定,即增长过快或过慢问题。

发明内容

本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于SDN网络的TCP拥塞控制方法,通过与SDN控制器进行交互,能够快速感知网络时延、拥塞状况、带宽、误码等网络状态信息,尤其是在高时延、高误码率的无线网络环境下,可以快速准确区分空口丢包与网络拥塞丢包,从而使得TCP协议可以快速感知网络状态,进而快速调整TCP协议的拥塞控制机制,提高TCP协议的传输效率。

为了达到上述目的,本发明采用以下技术方案:

本发明的一种基于SDN网络的TCP拥塞控制方法,包括下述步骤:

SDN控制器收集实时的网络时延、时延抖动、可用网络带宽、网络拥塞状况以及目标是否可达信息,将这些信息发送给需要调整的TCP数据流;

根据对应的调整目标分别对各需要调整的TCP数据流进行调整。

作为优选的技术方案,该控制方法具体为:

SDN控制器将网络时延和网络可用带宽信息发送给TCP数据流,TCP数据流根据带宽时延乘积调整发送窗口大小;

SDN控制器将网络时延和时延抖动信息发送给TCP数据流,TCP数据流根据延抖动信息调整超时重传定时器的超时时间,同时提供与传输路径相匹配的重传定时机制,加快重传效率;

SDN控制器将网络拥塞通知给TCP数据流,TCP数据流进入标准的拥塞处理状态,此时减小发送窗口大小;

SDN控制器将网络拥塞消失通知给TCP数据流,同时将网络时延和网络可用带宽信息通知给TCP数据流,TCP数据流根据带宽时延乘积将发送窗口调整为最大;

当TCP数据流检测到丢包,并且没有收到SDN控制器的网络拥塞通知,则TCP数据流判断丢包是由于空口丢包导致,而非网络拥塞导致,此时仍然维持原发送窗口大小,不会降低数据发送速率;

SDN控制器将目标不可达通知发送给TCP数据流,TCP数据流此时会停止发送数据,但仍维持原发送窗口大小;

SDN控制器将目标可达通知发送给TCP数据流,TCP数据流此时会按照原发送窗口大小,继续发送数据。

作为优选的技术方案,所述SDN控制器将网络时延和网络可用带宽信息发送给TCP数据流,TCP数据流根据带宽时延乘积调整发送窗口大小的步骤中,TCP数据流根据带宽时延乘积调整发送窗口大小的具体方法为:

TCP数据流中的MTU是确定的,即每个数据报的大小基本不变,有如下关系式:

RTT×Bandwidth=MTU×Cwnd

其中RTT为网络往返时延,Bandwidth为分配的网络带宽,MTU为TCP数据流的最大单元长度,Cwnd为TCP数据流的拥塞窗口大小,即TCP数据流的窗口大小由如下公式计算:

(RTT×Bandwidth)/MTU=Cwnd。

作为优选的技术方案,在SDN控制器将网络时延和时延抖动信息发送给TCP数据流,TCP数据流根据延抖动信息调整超时重传定时器的超时时间,同时提供与传输路径相匹配的重传定时机制,加快重传效率的步骤中,TCP数据流根据延抖动信息调整超时重传定时器的超时时间的具体方法为:

SDN报告的网络时延信息使用sRTT表示,超时重传定时器的超时时间使用RTO表示,在TCP数据流刚进行连接建立时有:

RTO=sRTT

在数据传输过程中,新的超时时间变化公式为:

Err=sRTT-oldRTO

D←D+h(|Err|-D)

newRTO=sRTT+2D

其中,oldRTO为旧的RTO值,newRTO为计算出的新的RTO值,Err是时延测量结果与当前的RTO估计值之差,D是对偏移方差的估计值。

作为优选的技术方案,所述SDN控制器将网络拥塞通知给TCP数据流,TCP数据流进入标准的拥塞处理状态,此时减小发送窗口大小的步骤中,减小发送窗口大小的具体方法为:

TCP数据流在接收到SDN控制器发送的网络拥塞通知后,将拥塞窗口大小进行减半,并在至少RTO时间内对接收到的网络拥塞通知不再进行处理,若在首次减半RTO时间之后,再次收到SDN控制器发送的网络拥塞通知,则才再次进行窗口减半操作。

作为优选的技术方案,所述SDN控制器将网络拥塞消失通知给TCP数据流,同时将网络时延和网络可用带宽信息通知给TCP数据流,TCP数据流根据带宽时延乘积将发送窗口调整为最大的步骤中,TCP数据流根据带宽时延乘积将发送窗口调整为最大的具体方法为:

TCP数据流中的MTU是确定的,即每个数据报的大小基本不变,有如下关系式:

RTT×Bandwidth=MTU×Cwnd

其中RTT为网络往返时延,Bandwidth为分配的网络带宽,MTU为TCP数据流的最大单元长度,选取TCP数据流中最大的拥塞窗口Cwnd,通过公式下公式计算:

(RTT×Bandwidth)/MTU=Cwnd;

计算出的Cwnd即为调整后的最大发送窗口。

作为优选的技术方案,TCP协议栈与SDN网络交互包括主动查询和状态推送两种方式,当TCP建立连接时,通过主动查询SDN控制器的方式,获取传输路径的状态信息;当TCP连接已经建立之后,如果传输路径出现由于拥塞、误码、丢包、时延变化因素导致的状态变化时,由SDN控制器主动推送传输路径状态变化信息给TCP协议栈,TCP协议栈收到推送信息后,回复应答给SDN控制器。

作为优选的技术方案,网络的状态机制包括正常状态、断开连接状态和拥塞状态,

所述正常状态运行标准的快速重传机制,但是不运行TCP拥塞控制机制,如果收到了SDN控制器的拥塞控制通知或目标不可达通知,则退出正常状态,如果发现有包丢失,在保持拥塞窗口不变的前提下,重传丢失的包,这种丢包的原因被认为是空口丢包导致的,而不是拥塞导致的;

若收到SDN控制器的不可达通知,则进入断开连接状态,当收到SDN控制器的拥塞控制通知或目标可达通知,则退出断开连接状态;

若收到SDN控制器的拥塞通知,则进入拥塞状态,进入拥塞状态后采用拥塞控制机制,或者根据SDN通知的带宽时延乘积大小动态调整拥塞窗口,当收到SDN控制器的拥塞去除通知时,退出拥塞状态。

本发明与现有技术相比,具有如下优点和有益效果:

1、本发明可以精确感知网络的时延及时延抖动,相应的调整超时重传定时器,达到快速重传的目的。

2、本发明可以精确感知网络可用带宽,是TCP发送窗口快速调整为适应网络可用带宽的最大窗口,提高TCP协议的传输效率。

3、本发明可以精确区分空口丢包与网络拥塞丢包,根据不同的丢包原因调整TCP协议的拥塞控制机制,提高TCP协议的传输效率。

附图说明

图1是本发明TCP协议栈与SDN控制器交互模型图;

图2是本发明基于SDN的TCP拥塞控制状态机;

图3是本发明SDN控制器对TCP拥塞控制机制的控制流程。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例

如图1所示,本实施例基于SDN网络的TCP拥塞控制方法,通过SDN控制器收集实时的网络时延、时延抖动、可用网络带宽、网络拥塞状况以及目标是否可达信息,将这些信息发送给需要调整的TCP数据流;根据对应的调整目标分别对各需要调整的TCP数据流进行调整;该控制方法具体为:

S1、SDN控制器将网络时延和网络可用带宽信息发送给TCP数据流,TCP数据流根据带宽时延乘积调整发送窗口大小;

步骤S1中,TCP数据流根据带宽时延乘积调整发送窗口大小的具体方法为:

TCP数据流中的MTU是确定的,即每个数据报的大小基本不变,有如下关系式:

RTT×Bandwidth=MTU×Cwnd

其中RTT为网络往返时延,Bandwidth为分配的网络带宽,MTU为TCP数据流的最大单元长度,Cwnd为TCP数据流的拥塞窗口大小,即TCP数据流的窗口大小由如下公式计算:

(RTT×Bandwidth)/MTU=Cwnd。

S2、SDN控制器将网络时延和时延抖动信息发送给TCP数据流,TCP数据流以此调整超时重传定时器超时时间,防止存在高时延的传输路径导致的错误的超时重传(链路时延过高时,往返时延大于重传定时器的超时时间,则会导致数据已经收到并返回了确认ACK,但是ACK仍在路径中传输,此时会导致错误的超时重传),同时可以提供与传输路径相匹配的重传定时机制,加快重传效率;

步骤S2中,TCP数据流根据延抖动信息调整超时重传定时器的超时时间的具体方法为:

SDN报告的网络时延信息使用sRTT表示,超时重传定时器的超时时间使用RTO表示,在TCP数据流刚进行连接建立时有:

RTO=sRTT

在数据传输过程中,新的超时时间变化公式为:

Err=sRTT-oldRTO

D←D+h(|Err|-D)

newRTO=sRTT+2D

其中,oldRTO为旧的RTO值,newRTO为计算出的新的RTO值,Err是时延测量结果与当前的RTO估计值之差,D是对偏移方差的估计值。

S3、SDN控制器将网络拥塞通知给TCP数据流,TCP数据流进入标准的拥塞处理状态,此时会减小发送窗口大小;

步骤S3中,减小发送窗口大小的具体方法为:

TCP数据流在接收到SDN控制器发送的网络拥塞通知后,将拥塞窗口大小进行减半,并在至少RTO时间内对接收到的网络拥塞通知不再进行处理,若在首次减半RTO时间之后,再次收到SDN控制器发送的网络拥塞通知,则才再次进行窗口减半操作。

S4、SDN控制器将网络拥塞消失通知给TCP数据流,同时将网络时延和网络可用带宽信息通知给TCP数据流,TCP数据流根据带宽时延乘积将发送窗口调整为最大;

步骤S4中,TCP数据流中的MTU是确定的,即每个数据报的大小基本不变,有如下关系式:

RTT×Bandwidth=MTU×Cwnd

其中RTT为网络往返时延,Bandwidth为分配的网络带宽,MTU为TCP数据流的最大单元长度,选取TCP数据流中最大的拥塞窗口Cwnd,通过公式下公式计算:

(RTT×Bandwidth)/MTU=Cwnd;

计算出的Cwnd即为调整后的最大发送窗口。

S5、当TCP数据流检测到丢包,并且没有收到SDN控制器的网络拥塞通知,则TCP数据流判断丢包是由于空口丢包导致,而非网络拥塞导致,此时仍然维持原发送窗口大小,不会降低数据发送速率;

S6、SDN控制器将目标不可达通知发送给TCP数据流,TCP数据流此时会停止发送数据,但仍维持原发送窗口大小;

S7、SDN控制器将目标可达通知发送给TCP数据流,TCP数据流此时会按照原发送窗口大小,继续发送数据。

如图2所示,本实施中TCP协议栈与SDN网络交互包括主动查询和状态推送两种方式;当TCP建立连接时,通过主动查询SDN控制器的方式,获取传输路径的状态信息。当TCP连接已经建立之后,如果传输路径出现由于拥塞、误码、丢包、时延变化等因素导致的状态变化时,由SDN控制器主动推送传输路径状态变化信息给TCP协议栈,TCP协议栈收到推送信息后,回复应答给SDN控制器。

TCP协议采用慢启动的方式增加拥塞窗口的大小,当达到网络容量上限时,中间路由器产生丢包,发送方会减小拥塞窗口的大小。即,传统的TCP拥塞控制算法不知道网络容量大小,因此需要采用慢启动和拥塞避免算法调整拥塞窗口,以便于使得TCP的发送速率逼近网络容量。通过本发明的实现方案,SDN控制器可以实时提供传输路径的带宽时延乘积,即可供使用的网络容量大小,TCP可据此动态调整发送窗口大小,不需要采用慢启动和拥塞避免算法。

如图3所示,本实施例的实现方案在传统的TCP的正常状态和拥塞状态之外,增加了断开连接状态,以体现无线链路因干扰等各种原因造成的断开连接状态。下面分别介绍这三种状态。

(1)正常状态

正常状态运行标准的快速重传机制,但是不运行TCP拥塞控制机制。如果收到了SDN控制器的拥塞控制通知或目标不可达通知,则退出正常状态。如果发现有包丢失,在保持拥塞窗口不变的前提下,重传丢失的包。这种丢包的原因被认为是空口丢包导致的,而不是拥塞导致的。

(2)断开连接状态

在传统TCP协议中,在丢包之后会采用指数回退,在无线网络中,如果是断开连接导致的丢包,指数回退会引起不必要的网络时延。如果网络频繁的时断时续,这种影响就会更加严厉。

(3)拥塞状态

如果收到了SDN控制器的拥塞通知,进入拥塞状态。进入拥塞状态后可以采用拥塞控制机制,也可根据SDN通知的带宽时延乘积大小动态调整拥塞窗口。当收到SDN控制器的拥塞去除通知时,退出拥塞状态。

本实施例通过与SDN控制器进行交互,能够快速感知网络时延、拥塞状况、带宽、误码等网络状态信息,尤其是在高时延、高误码率的无线网络环境下,可以快速准确区分空口丢包与网络拥塞丢包,从而使得TCP协议可以快速感知网络状态,进而快速调整TCP协议的拥塞控制机制,提高TCP协议的传输效率。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号