CN103929370A - 一种用于带宽预留网络的tcp拥塞控制方法 - Google Patents
一种用于带宽预留网络的tcp拥塞控制方法 Download PDFInfo
- Publication number
- CN103929370A CN103929370A CN201310011894.XA CN201310011894A CN103929370A CN 103929370 A CN103929370 A CN 103929370A CN 201310011894 A CN201310011894 A CN 201310011894A CN 103929370 A CN103929370 A CN 103929370A
- Authority
- CN
- China
- Prior art keywords
- tcp
- network
- size
- congestion
- control method
- 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.)
- Pending
Links
Abstract
本发明涉及一种用于带宽预留网络的TCP拥塞控制方法,包括:检测网络链路中当前的可用带宽、TCP连接的往返最小时时延以及TCP连接的平均数据包大小;依据可用带宽、往返最小时延以及平均数据包大小,计算TCP滑动窗口的启动阈值T;将所述TCP滑动窗口的初始大小设置为启动阈值T,然后直接进入拥塞避免阶段;在数据包的传输过程中,一旦发生丢包或超时现象,将当前拥塞窗口的大小降为T,重新进入拥塞避免阶段。
Description
技术领域
本发明涉及网络通信领域,特别涉及一种用于带宽预留网络的TCP拥塞控制方法。
背景技术
传输控制协议TCP(Transmission Control Protocol)广泛应用于网络和计算机通信等领域中,其主要特点是数据传输可靠性好。近年来,计算机网络迅猛发展,计算机网络已经不再局限于原来的有线、单一同构网络,而是呈现高度异构化的趋势。为了更高效率地利用网络带宽,提高吞吐率,近年来国内外学者对目前应用十分广泛的高速网络、无线网络等特定网络进行了相应的优化,比如针对高速网络的BIC、FAST以及CUBIC等算法;针对无线网络的Veno、Westwood等算法。而在实际网络中,有一类网络,其带宽是通过预留方式进行分配的,同时TCP连接的可用带宽大小范围是明确可知的,包括广播电视网、电信网等。目前学者并未对针对该类网络的这个特点进行改进。
分组交换网络中,当需要传送的分组数目太多时,会出现链路带宽资源有限而导致网络传输性能下降的情况,也就是拥塞。当网络中发生拥塞时,会出现数据丢失,时延增大,网络吞吐量下降等现象,严重时会导致“拥塞崩溃”现象。为了避免TCP在连接建立初期,往网络中发送大量的数据包,导致网络拥塞,传统的TCP拥塞控制算法引入了慢启动机制。所谓的慢启动机制,具体来说,当新建连接时,滑动窗口(cwnd)初始化为1个最大报文段(MSS)大小,发送端开始按照拥塞窗口大小发送数据,每当有一个报文段被确认,cwnd就增加1个MSS大小。这样cwnd的值就随着网络往返时间(Round Trip Time,RTT)呈指数级增长。TCP使用了一个叫慢启动门限(ssthresh)的变量,当cwnd超过该值后,慢启动过程结束,进入拥塞避免阶段。对于大多数TCP实现来说,ssthresh的值是65536(同样以字节计算)。拥塞避免的主要思想是加法增大,也就是cwnd的值不再指数级往上升,开始加法增加。此时当窗口中所有的报文段都被确认时,cwnd的大小加1,cwnd的值就随着RTT开始线性增加,这样就可以避免增长过快导致网络拥塞,慢慢的增加调整到网络的最佳值。当发生丢包或者超时时,对cwnd和ssthresh进行相应的调整。
参考图1,现有技术中的TCP拥塞控制方法总体上包括三个阶段:
一、慢启动(Slow Start)阶段
当一个TCP连接建立时,发送方将拥塞窗口CWND初始化为该连接上当前使用的最大数据段长度,然后发送一个最大的数据段。如果在定时器过期之前收到该数据段的确认ACK,则将TCP的拥塞窗口增加一个数据段的字节数,从而使拥塞窗口变成两倍的最大数据段大小,然后发送两个数据段。当拥塞窗口达到n个数据段时,如果所有n个数据段都被及时确认,则拥塞窗口增加n个数据段所对应的字节数。即每一次被确认的数据段都会使拥塞窗口加倍,使得拥塞窗口呈现指数形式的增长。
二、拥塞避免(Congestion Avoidance)阶段
当拥塞窗口增长到慢启动门限值(ssthresh)时,TCP就进入拥塞避免阶段,每一次成功的传输都会使拥塞窗口线性地增长,即发送方每收到一个ACK,就将拥塞窗口增加一个数据段的大小。
三、快速重传(Fast Retransmit)与快速恢复(Fast Recovery)阶段
当数据包超时时,TCP认为网络发生了拥塞。快速重传机制是指当TCP发送端收到3个或以上重复的ACK时,即认为数据包已经丢失,则重传丢失的数据包,同时将慢启动门限值设置为当前拥塞窗口的一半,而不必等到重传定时器超时。
“快速恢复”是指当收到3个重复ACK时,TCP最后进入的不是拥塞避免阶段,而是快速恢复阶段。快速重传和快速恢复算法一般同时使用。快速恢复是基于“分组守恒”的原则的,即同一时刻在网络中传输的数据分组数量是恒定的,只有当一个老的分组离开之后才允许向网络注入一个新的分组。发送端每收到一个重复的ACK,则认为已经有一个数据包离开了网络,于是将拥塞窗口加上一个数据段的字节数。具体来说快速恢复的主要步骤是:1.当收到3个重复ACK时,把ssthresh设置为cwnd的一半,把cwnd设置为ssthresh的值加3,然后重传丢失的报文段,加3的原因是因为收到3个重复的ACK,表明有3个“老”的数据包离开了网络;2.再收到重复的ACK时,拥塞窗口增加1;3.当收到新的数据包的ACK时,把cwnd设置为第一步中的ssthresh的值。原因是因为该ACK确认了新的数据,说明从重复ACK时的数据都已收到,该恢复过程已经结束,可以回到恢复之前的状态了,也即再次进入拥塞避免状态。
从对现有技术中的TCP拥塞控制方法的描述可以看出,该方法中所采用的慢启动机制会降低网络资源利用率,在一次传输过程中,需要经过几个RTT(round trip time)的时间才能使连接充分利用可用的信道带宽。这对于带宽是预留分配的且TCP连接的可用带宽大小范围是明确可知的带宽预留网络并不十分合适,容易降低此类网络的网络资源利用率。
发明内容
本发明的目的在于克服现有技术中的TCP拥塞控制方法容易降低带宽预留网络的网络资源利用率的缺陷,从而提供一种能够有效提高带宽利用率的方法。
为了实现上述目的,本发明提供了一种用于带宽预留网络的TCP拥塞控制方法,包括:
步骤1)、检测网络链路中当前的可用带宽、TCP连接的往返最小时时延以及TCP连接的平均数据包大小;
步骤2)、依据步骤1)所得到的可用带宽、往返最小时延以及平均数据包大小,计算TCP滑动窗口的启动阈值T;
步骤3)、将所述TCP滑动窗口的初始大小设置为骤2)计算得到的启动阈值T,然后直接进入拥塞避免阶段;
步骤4)、在数据包的传输过程中,一旦发生丢包或超时现象,将当前拥塞窗口的大小降为T,重新进入拥塞避免阶段。
上述技术方案中,所述滑动窗口启动阈值T的计算方法为:
T=BWE*RTTmin/PacketSize;
其中,BWE表示链路的可用带宽,RTTmin表示链路的往返最小时延,PacketSize表示TCP连接的平均数据包大小。
上述技术方案中,所述带宽预留网络具有以下特点:网络的带宽是通过预留方式进行分配的;TCP连接的可用带宽大小范围是明确可知的。
本发明的优点在于:
1、适用于带宽预留网络,拥塞窗口大小能够快速增长至理想状态,减少慢启动带来的带宽损耗,提高了系统带宽的利用率。
2、通过对启动阈值的设置,可以满足多类业务的带宽需求。
附图说明
图1是现有技术中的TCP的拥塞控制算法拥塞窗口变化示意图;
图2为本发明方法的流程图;
图3为本发明方法中的一种具体的拥塞窗口变化示意图。
具体实施方式
现结合附图对本发明作进一步的描述。
参考图2,本发明的用于带宽预留网络的TCP拥塞控制方法包括以下步骤:
步骤1)、检测网络链路中当前的可用带宽、TCP连接的往返最小时时延以及TCP连接的平均数据包大小。
对于一个TCP连接,该连接中所传输的各个数据包的大小以及各个数据包的往返时延都是可以测量得到的,因此根据往返时延和数据包大小的历史数据,即可得到往返最小时延以及平均数据包大小。链路的可用带宽也可通过现有技术测量得到。
步骤2)、依据步骤1)所得到的可用带宽、往返最小时延以及平均数据包大小,计算TCP滑动窗口的启动阈值T。
所述滑动窗口启动阈值T的计算方法为:
T=BWE*RTTmin/PacketSize;
其中,BWE表示链路的可用带宽,RTTmin表示链路的往返最小时延,PacketSize表示TCP连接的平均数据包大小。
启动阈值T的计算方法并不限于上述计算公式,在其他实施例中,也可以采用其他计算公式,如将上述可用带宽、往返最小时延以及平均数据包大小的计算结果再乘以或除以某一因子。
步骤3)、根据步骤2)计算得到的启动阈值T,将所述TCP滑动窗口的初始大小设置为T,然后直接进入拥塞避免阶段,即每收到一个ACK,就将拥塞窗口增加一个数据段的大小。
步骤4)、在数据包的传输过程中,一旦发生丢包或超时现象,将当前拥塞窗口的大小降为T,重新进入拥塞避免阶段。
将本发明的上述方法与现有技术进行比较可以发现,本发明的方法通过设置启动阈值T能够直接进入拥塞避免阶段,避开慢启动阶段,且在整个数据包的传输过程中,如图3所示,滑动窗口的大小等于或在阈值T之上,这有助于提高网络的资源利用率。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (3)
1.一种用于带宽预留网络的TCP拥塞控制方法,包括:
步骤1)、检测网络链路中当前的可用带宽、TCP连接的往返最小时时延以及TCP连接的平均数据包大小;
步骤2)、依据步骤1)所得到的可用带宽、往返最小时延以及平均数据包大小,计算TCP滑动窗口的启动阈值T;
步骤3)、将所述TCP滑动窗口的初始大小设置为骤2)计算得到的启动阈值T,然后直接进入拥塞避免阶段;
步骤4)、在数据包的传输过程中,一旦发生丢包或超时现象,将当前拥塞窗口的大小降为T,重新进入拥塞避免阶段。
2.根据权利要求1所述的用于带宽预留网络的TCP拥塞控制方法,其特征在于,
所述滑动窗口启动阈值T的计算方法为:
T=BWE*RTTmin/PacketSize;
其中,BWE表示链路的可用带宽,RTTmin表示链路的往返最小时延,PacketSize表示TCP连接的平均数据包大小。
3.根据权利要求1所述的带宽预留网络的TCP拥塞控制算法,其特征在于,所述带宽预留网络具有以下特点:网络的带宽是通过预留方式进行分配的;TCP连接的可用带宽大小范围是明确可知的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310011894.XA CN103929370A (zh) | 2013-01-11 | 2013-01-11 | 一种用于带宽预留网络的tcp拥塞控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310011894.XA CN103929370A (zh) | 2013-01-11 | 2013-01-11 | 一种用于带宽预留网络的tcp拥塞控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103929370A true CN103929370A (zh) | 2014-07-16 |
Family
ID=51147453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310011894.XA Pending CN103929370A (zh) | 2013-01-11 | 2013-01-11 | 一种用于带宽预留网络的tcp拥塞控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103929370A (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104683259A (zh) * | 2015-02-15 | 2015-06-03 | 上海帝联信息科技股份有限公司 | Tcp拥塞控制方法及装置 |
CN106102094A (zh) * | 2016-07-06 | 2016-11-09 | 广州海格通信集团股份有限公司 | 一种基于sdn网络的tcp拥塞控制方法 |
CN106330834A (zh) * | 2015-06-30 | 2017-01-11 | 华为技术有限公司 | 一种虚拟通道连接建立方法及装置 |
CN106537867A (zh) * | 2015-03-27 | 2017-03-22 | 华为技术有限公司 | 一种数据传输方法、装置和系统 |
CN106713166A (zh) * | 2015-07-31 | 2017-05-24 | 华为技术有限公司 | 确定拥塞窗口大小的方法及装置 |
CN106850169A (zh) * | 2016-11-29 | 2017-06-13 | 上海华为技术有限公司 | 一种资源调度分配的方法以及通信设备 |
CN108075988A (zh) * | 2017-11-16 | 2018-05-25 | 华为技术有限公司 | 数据传输方法和装置 |
CN108270647A (zh) * | 2018-01-24 | 2018-07-10 | 北京奇艺世纪科技有限公司 | 一种带宽计算方法及装置 |
CN108429700A (zh) * | 2017-02-13 | 2018-08-21 | 华为技术有限公司 | 一种发送报文的方法及装置 |
CN108540400A (zh) * | 2018-03-20 | 2018-09-14 | 珠海市魅族科技有限公司 | 一种数据传输控制方法、控制装置、终端及可读存储介质 |
CN109327716A (zh) * | 2018-10-31 | 2019-02-12 | 北京达佳互联信息技术有限公司 | 延迟控制方法、延迟控制装置和计算机可读存储介质 |
CN110192394A (zh) * | 2016-12-21 | 2019-08-30 | 英国电讯有限公司 | 管理内容传送期间的拥塞响应 |
CN110324256A (zh) * | 2019-05-13 | 2019-10-11 | 西南交通大学 | 一种流式数据传输控制方法 |
CN111245578A (zh) * | 2020-01-03 | 2020-06-05 | 北京字节跳动网络技术有限公司 | 数据包传输方法、装置、电子设备和存储介质 |
CN111277502A (zh) * | 2020-01-20 | 2020-06-12 | 北京红云融通技术有限公司 | 多链路聚合传输数据的方法及发送设备 |
CN114500399A (zh) * | 2021-12-28 | 2022-05-13 | 赛尔网络有限公司 | 数据传输方法、设备、介质和产品 |
WO2022178682A1 (zh) * | 2021-02-23 | 2022-09-01 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN115514710A (zh) * | 2022-11-08 | 2022-12-23 | 中国电子科技集团公司第二十八研究所 | 一种基于自适应滑动窗的弱连接流量管控方法 |
US11711553B2 (en) | 2016-12-29 | 2023-07-25 | British Telecommunications Public Limited Company | Transmission parameter control for segment delivery |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010015956A1 (en) * | 2000-02-23 | 2001-08-23 | Nec Corporation | Packet size control technique |
CN102104908A (zh) * | 2011-01-18 | 2011-06-22 | 华为技术有限公司 | 一种数据传输控制方法及设备 |
-
2013
- 2013-01-11 CN CN201310011894.XA patent/CN103929370A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010015956A1 (en) * | 2000-02-23 | 2001-08-23 | Nec Corporation | Packet size control technique |
CN102104908A (zh) * | 2011-01-18 | 2011-06-22 | 华为技术有限公司 | 一种数据传输控制方法及设备 |
Non-Patent Citations (2)
Title |
---|
郑艳伟等: "《多通道并行传输中接收缓存阻塞的缓解方法》", 《计算机工程与应用》 * |
郑艳伟等: "《异构网络多路径并行传输吞吐量建模》", 《西安电子科技大学学报》 * |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104683259B (zh) * | 2015-02-15 | 2018-02-09 | 上海帝联信息科技股份有限公司 | Tcp拥塞控制方法及装置 |
CN104683259A (zh) * | 2015-02-15 | 2015-06-03 | 上海帝联信息科技股份有限公司 | Tcp拥塞控制方法及装置 |
CN106537867B (zh) * | 2015-03-27 | 2019-07-19 | 华为技术有限公司 | 一种数据传输方法、装置和系统 |
US10461986B2 (en) | 2015-03-27 | 2019-10-29 | Huawei Technologies Co., Ltd. | Data transmission method, apparatus, and system |
CN106537867A (zh) * | 2015-03-27 | 2017-03-22 | 华为技术有限公司 | 一种数据传输方法、装置和系统 |
CN106330834B (zh) * | 2015-06-30 | 2020-02-14 | 华为技术有限公司 | 一种虚拟通道连接建立方法及装置 |
CN106330834A (zh) * | 2015-06-30 | 2017-01-11 | 华为技术有限公司 | 一种虚拟通道连接建立方法及装置 |
CN106713166B (zh) * | 2015-07-31 | 2020-10-09 | 华为技术有限公司 | 确定拥塞窗口大小的方法及装置 |
CN106713166A (zh) * | 2015-07-31 | 2017-05-24 | 华为技术有限公司 | 确定拥塞窗口大小的方法及装置 |
CN106102094A (zh) * | 2016-07-06 | 2016-11-09 | 广州海格通信集团股份有限公司 | 一种基于sdn网络的tcp拥塞控制方法 |
CN106102094B (zh) * | 2016-07-06 | 2019-09-06 | 广州海格通信集团股份有限公司 | 一种基于sdn网络的tcp拥塞控制方法 |
CN106850169B (zh) * | 2016-11-29 | 2019-11-29 | 上海华为技术有限公司 | 一种资源调度分配的方法以及通信设备 |
CN106850169A (zh) * | 2016-11-29 | 2017-06-13 | 上海华为技术有限公司 | 一种资源调度分配的方法以及通信设备 |
CN110192394B (zh) * | 2016-12-21 | 2023-10-20 | 英国电讯有限公司 | 通过网络传送媒体内容的方法和服务器 |
CN110192394A (zh) * | 2016-12-21 | 2019-08-30 | 英国电讯有限公司 | 管理内容传送期间的拥塞响应 |
US11159834B2 (en) | 2016-12-21 | 2021-10-26 | British Telecommunications Public Limited Company | Managing congestion response during content delivery |
US11711553B2 (en) | 2016-12-29 | 2023-07-25 | British Telecommunications Public Limited Company | Transmission parameter control for segment delivery |
CN108429700A (zh) * | 2017-02-13 | 2018-08-21 | 华为技术有限公司 | 一种发送报文的方法及装置 |
CN108075988A (zh) * | 2017-11-16 | 2018-05-25 | 华为技术有限公司 | 数据传输方法和装置 |
CN108270647A (zh) * | 2018-01-24 | 2018-07-10 | 北京奇艺世纪科技有限公司 | 一种带宽计算方法及装置 |
CN108540400A (zh) * | 2018-03-20 | 2018-09-14 | 珠海市魅族科技有限公司 | 一种数据传输控制方法、控制装置、终端及可读存储介质 |
CN109327716B (zh) * | 2018-10-31 | 2020-09-11 | 北京达佳互联信息技术有限公司 | 延迟控制方法、延迟控制装置和计算机可读存储介质 |
US11490156B2 (en) | 2018-10-31 | 2022-11-01 | Beijing Dajia Internet Information Technology Co., Ltd. | Delay control method, delay control apparatus, terminal device and storage medium |
CN109327716A (zh) * | 2018-10-31 | 2019-02-12 | 北京达佳互联信息技术有限公司 | 延迟控制方法、延迟控制装置和计算机可读存储介质 |
CN110324256A (zh) * | 2019-05-13 | 2019-10-11 | 西南交通大学 | 一种流式数据传输控制方法 |
CN110324256B (zh) * | 2019-05-13 | 2022-10-14 | 西南交通大学 | 一种流式数据传输控制方法 |
CN111245578A (zh) * | 2020-01-03 | 2020-06-05 | 北京字节跳动网络技术有限公司 | 数据包传输方法、装置、电子设备和存储介质 |
CN111245578B (zh) * | 2020-01-03 | 2022-11-08 | 北京字节跳动网络技术有限公司 | 数据包传输方法、装置、电子设备和存储介质 |
CN111277502A (zh) * | 2020-01-20 | 2020-06-12 | 北京红云融通技术有限公司 | 多链路聚合传输数据的方法及发送设备 |
WO2022178682A1 (zh) * | 2021-02-23 | 2022-09-01 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN114500399A (zh) * | 2021-12-28 | 2022-05-13 | 赛尔网络有限公司 | 数据传输方法、设备、介质和产品 |
CN115514710A (zh) * | 2022-11-08 | 2022-12-23 | 中国电子科技集团公司第二十八研究所 | 一种基于自适应滑动窗的弱连接流量管控方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103929370A (zh) | 一种用于带宽预留网络的tcp拥塞控制方法 | |
US9112799B2 (en) | Network packet loss processing method and apparatus | |
CN101616077B (zh) | 互联网大文件的快速传输方法 | |
KR102061772B1 (ko) | 데이터 전송 방법 및 장치 | |
US9167473B2 (en) | Communication processing method, apparatus and gateway device | |
CN103428240B (zh) | 数据传输方法和数据传输终端 | |
CN102204182A (zh) | 一种数据传输的拥塞控制方法及装置 | |
CN105049369A (zh) | 异构无线网络中基于mptcp的视频传输拥塞控制方法 | |
CN106789702B (zh) | 控制tcp传输性能的方法及装置 | |
CN102594434B (zh) | 面向卫星网络的传输控制机制改进方法 | |
KR101741003B1 (ko) | 중복된 애크를 이용한 통신 방법 | |
CN105471757A (zh) | 一种tcp拥塞控制方法及装置 | |
CN101969432B (zh) | 基于随机回退的tcp拥塞窗口的控制方法 | |
CN105376172A (zh) | 一种控制网络拥塞的方法 | |
CN105207949A (zh) | 一种tcp优化方法和系统、sp服务器 | |
CN110740098A (zh) | 一种针对空间数据通信的拥塞控制算法 | |
CN104580171A (zh) | Tcp协议的传输方法、装置和系统 | |
US9537778B2 (en) | Traffic shaping drive method and driver | |
Al-Hasanat et al. | Enhanced TCP Westwood slow start phase | |
Gururaj et al. | Effect of link level impairments on transmission control protocol in military networks | |
KR101334990B1 (ko) | 전송 제어 프로토콜의 혼잡 윈도우 제어 방법 | |
Hindawi et al. | A proposed method for TCP congestion control using AIMD approach | |
KR100915996B1 (ko) | 대역폭변화에 따른 적응형 전송 제어 프로토콜을 이용한데이터 패킷 전송 방법 및 그를 위한 송신측 단말장치 | |
Yun et al. | An improved TCP congestion control algorithm over mixed wired/wireless networks | |
Harun et al. | A performance study of adaptive FEC mechanism for video transmission over 802.11 WLANs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140716 |
|
RJ01 | Rejection of invention patent application after publication |