CN105141542B - 基于tcp通信协议的拥塞窗口的控制算法和系统 - Google Patents

基于tcp通信协议的拥塞窗口的控制算法和系统 Download PDF

Info

Publication number
CN105141542B
CN105141542B CN201510599538.3A CN201510599538A CN105141542B CN 105141542 B CN105141542 B CN 105141542B CN 201510599538 A CN201510599538 A CN 201510599538A CN 105141542 B CN105141542 B CN 105141542B
Authority
CN
China
Prior art keywords
network
congestion
est
bandwidth
congestion window
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
CN201510599538.3A
Other languages
English (en)
Other versions
CN105141542A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201510599538.3A priority Critical patent/CN105141542B/zh
Publication of CN105141542A publication Critical patent/CN105141542A/zh
Application granted granted Critical
Publication of CN105141542B publication Critical patent/CN105141542B/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于TCP通信协议的拥塞窗口控制方法和系统,其中方法包括:监测网络的实际吞吐量和连续丢包数;根据网络的实际吞吐量和期望吞吐量得到网络延时变化;判断网络延时变化是否大于第一阈值且连续丢包数是否大于第二阈值;如果是,则判定网络发生拥塞,并根据测量的网络可用带宽更新慢启动阈值;以及根据慢启动阈值设置拥塞窗口的大小。该方法能够通过网络延时变化和丢包性质准确判断网络是否发生拥塞,并且在判断网络拥塞时能够根据实时监测到的带宽估算值设置拥塞窗口,从而使拥塞窗口更快的收敛到实际带宽,提高了带宽资源的利用率以及基于TCP应用的运行速度,提升了用户体验。

Description

基于TCP通信协议的拥塞窗口的控制算法和系统
技术领域
本发明涉及移动网络技术领域,特别涉及一种基于TCP通信协议的拥塞窗口的控制算法和系统。
背景技术
随着移动终端的兴起,移动互联网的流量已经逐渐赶超PC端的流量,用户对移动终端基于TCP(Transmission Control Protocol,传输控制协议)的应用程序的运行速度的要求也越来越高,这也就意味着对拥塞窗口的性能有更高的要求,现有的移动互联网中的拥塞窗口的控制的大部分工作几乎都是由TCP完成的,TCP协议的实现包含了一种避免和控制网络拥塞的控制算法,以用来确保网络的通畅和稳定。
目前,可通过监测数据传输时的丢包性质来判断拥塞的发生,并且考虑到了移动网络的性质,比如有线和无线的网络下判断拥塞发生的条件不同,从而优化拥塞窗口的控制。但是存在的问题是,上述方法对于移动网络的多变性,尤其是链路质量的变化考虑的并不周全,导致对拥塞发生的判断并不准确,从而不能对网络拥塞进行及时有效的处理,导致用户体验感变差。
发明内容
本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
为此本发明的第一个目的在于提出了一种基于TCP通信协议的拥塞窗口控制方法。该方法能够通过网络延时变化和丢包性质准确判断网络是否发生拥塞,并且能够在网络拥塞时根据实时监测到的带宽估算值设置拥塞窗口,从而使拥塞窗口更快的收敛到实际带宽,提高了带宽资源的利用率以及基于TCP应用的运行速度,提升了用户体验。
本发明的第二个目的在于提出了一种基于TCP通信协议的拥塞窗口控制系统。
为达上述目的,本发明第一方面的实施例提出了一种基于TCP通信协议的拥塞窗口控制方法,该方法包括:监测网络的实际吞吐量和连续丢包数;根据所述网络的实际吞吐量和期望吞吐量得到网络延时变化;判断所述网络延时变化是否大于第一阈值且所述连续丢包数是否大于第二阈值;如果是,则判定所述网络发生拥塞,并根据测量的网络可用带宽更新慢启动阈值;以及根据所述慢启动阈值设置所述拥塞窗口的大小。
本发明实施例的基于TCP通信协议的拥塞窗口控制方法,可通过网络延时变化和丢包性质准确的判断网络是否发生拥塞,并且能够在网络发生拥塞时根据实时监测到的带宽估算值设置拥塞窗口,从而使拥塞窗口更快的收敛到实际带宽,提高了带宽资源的利用率以及基于TCP应用的运行速度,提升了用户体验。
为达上述目的,根据本发明第二方面的实施例提出了一种基于TCP通信协议的拥塞窗口控制系统,包括:监测模块,用于监测网络的实际吞吐量和连续丢包数;网络延时变化获取模块,用于根据所述网络的实际吞吐量和期望吞吐量得到网络延时变化;判断模块,用于判断所述网络延时变化是否大于第一阈值且所述连续丢包数是否大于第二阈值,并在所述网络延时变化大于第一阈值且所述连续丢包数大于第二阈值时,判定所述网络发生拥塞;控制模块,用于根据测量的网络可用带宽更新慢启动阈值,并根据所述慢启动阈值设置所述拥塞窗口的大小。
本发明实施例的基于TCP通信协议的拥塞窗口控制系统,通过判断模块判断由监测模块和网络延时变化获取模块得到的丢包数和延时变化准确的判断网络是否发生拥塞,并且能够在网络发生拥塞时通过控制模块根据实时监测到的带宽估算值设置拥塞窗口,从而使拥塞窗口更快的收敛到实际带宽,提高了带宽资源的利用率以及基于TCP应用的运行速度,提升了用户体验。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明一个实施例的基于TCP通信协议的拥塞窗口控制方法的流程图;
图2是根据本发明一个具体实施例的基于TCP通信协议的拥塞窗口控制方法的流程图;
图3是根据本发明另一个具体实施例的基于TCP通信协议的拥塞窗口控制方法的流程图;以及
图4是根据本发明一个实施例的基于TCP通信协议的拥塞窗口控制系统的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的基于TCP通信协议的拥塞窗口控制方法和系统。
本发明提出了一种基于TCP通信协议的拥塞窗口控制方法,包括:监测网络的实际吞吐量和连续丢包数;根据网络的实际吞吐量和期望吞吐量得到网络延时变化;判断网络延时变化是否大于第一阈值且连续丢包数是否大于第二阈值;如果是,则判定网络发生拥塞,并根据测量的网络可用带宽更新慢启动阈值;以及根据慢启动阈值设置拥塞窗口的大小。
图1是根据本发明一个实施例的基于TCP通信协议的拥塞窗口控制方法的流程图。需要说明的是,本发明实施例的基于TCP通信协议的拥塞窗口控制方法适用于使用基于TCP通信协议的移动终端和移动网络的通信上,该移动终端可以是手机、平板电脑、个人数字助理等硬件设备。
如图1所示,该基于TCP通信协议的拥塞窗口控制方法,包括以下步骤:
S110,监测网络的实际吞吐量和连续丢包数。
其中,网络的实际吞吐量指的是对网络单位时间内实际成功的传达数据的数量,可以以比特、字节、分组等位单位进行测量。而丢包是在网络中数据传输的时候出现数据丢失的现象,因为网络中数据是以数据包的形式传输的,所以可以用丢包来表示网络中数据传输时数据的丢失,例如,可以用loss_out对丢包数进行计数。另外,检测网络的连续丢包数是为了排除单个数据包丢失的偶然性,提高判断的精确度。
具体地,网络的实际吞吐量和连续丢包数反映了当前网络数据传输的性能,也就是说,当前网络的实际吞吐量越大,连续丢包数越少,就代表当前网络的数据传输性能越好,当前的网络比较稳定。
进一步地,在本发明的实施例中,监测网络的实际吞吐量和连续丢包数是为了接下来判断网络是否发生拥塞。
S120,根据网络的实际吞吐量和期望吞吐量得到网络延时变化。
在本发明的一个实施例中,网络的延时变化可以通过根据网络中单位时间内实际成功的传达数据包的数量与期望的网络中单位时间内成功传达的数据包数量的对比得到,即网络的实际吞吐量与期望吞吐量差距越大,网络延时越大,当前网络的数据传输能力越差。其中,期望吞吐量可以是在网络中没有缓存数据包且环境较稳定时,单位时间内实际成功的传达数据包的数量。
进一步而言,由于网络吞吐量和时延有着密切的关系,所以也可以通过网络时延来计算网络延时变化,举例说明,根据本发明的实施例,网络延时变化可以通过公式N=(cwnd/BaseRTT–cwnd/RTT)*BaseRTT来计算,其中N代表网络延时变化,BaseRTT为网络中没有缓存数据包时由发送端发送数据包到发送端接收到接收端的确认收到的时间即往返时延,RTT为上一个往返时延的测量值。RTT和BaseRTT的更新在每次收到ACK(Acknowledgement,确认字符)并且完成当前的RTT计算之后记录。另外,由于丢包数的判断依据丢包之后的RTT的变化,即如果超过一定的时间没有收到ACK,则代表发送的数据包丢失,因此在网络连接开始时开启N的更新计算,在网络连接重置时重新计算N的值。
需要说明的是,上述提到的ACK,指的是在数据传输中接收端发给发送端的一种传输类控制字符,表示发来的数据已确认接收无误。
S130,判断网络延时变化是否大于第一阈值且连续丢包数是否大于第二阈值。
具体地,在得到网络延时变化后判断其是否大于第一阈值,并且判断连续丢包数是否大于第二阈值。其中,根据本发明的实施例,第一阈值为5,第二阈值为位于[4,6]之间的数。也就是说,判断网络延时变化是否大于5,连续丢包数是否位于[4,6]之间。
S140,如果是,则判定网络发生拥塞,并根据测量的网络可用带宽更新慢启动阈值。
在本发明的实施例中,如果判断出网络延时变化大于第一阈值且连续丢包数大于第二阈值,就说明,当前网络的数据传输的能力比较差,数据传输成功率低,连续丢包数多,当前网络的待处理数据超过当前的网络可用带宽,当前带宽资源争夺激烈网络发生拥塞。
举例而言,可通过公式N=(cwnd/BaseRTT–cwnd/RTT)*BaseRTT来计算网络延时,用loss_out来对连续丢包数进行计数,如果N>5且loss_out位于[4,6]之间,则判断网络发生拥塞。
具体地,如果判定网络发生拥塞,则根据测量的网络可用带宽更新慢启动阈值。其中,慢启动阈值代表对当前网络可能发生拥塞的一个阈值,即代表当前拥塞网窗口的大小,最理想的状态是将该阈值设定为当前网络的带宽值,可以理解如果慢启动阈值和当前带宽相等或者接近相等时,就相当于控制网络当前等待处理的数据量和当前网络可处理数据量的能力相匹配,既可以最大程度的的利用当前网络的可用带宽,又能保证数据不发生拥塞。
更具体地,如果慢启动阈值设定为和当前网络带宽相等,那么理论上可以完全利用带宽并且保证不发生拥塞,但是由于实际情况下网络环境非常复杂,尤其是移动网络情况下用户的带宽并不恒定,所以根据当前测量的网络可用带宽更新的慢启动阈值能保证带宽的利用率,减小数据传输时的拥塞率。
可以理解,本发明的实施例中对拥塞的判断是采用连续丢包数和延时相结合的办法获取丢包的性质来判断当前网络是否发生拥塞,也就是说如果判断出丢包的性质为随机丢包,也就是说当前的丢包是因为数据传输时的通信双方采取流量控制而主动丢弃的,则认为网络并没有发生拥塞,如果判断出丢包性质为拥塞丢包,则认为网络发生了拥塞。另外,为了增强判断的精确度,可以通过加入网络链路状况信息库的部分信息以排除其他因素造成的对丢包性质判断的干扰,比如路由故障等。
S150,根据慢启动阈值设置拥塞窗口的大小。
具体地,在本发明的实施例中,根据慢启动阈值,采用三次窗口增长函数来设置拥塞窗口的大小。经过测试,三次窗口增长函数算法相比于其他的拥塞控制算法具有明显的优势,可以根据当前网络带宽更加快速准确地控制拥塞窗口的大小,也就是说基本可以控制当前的拥塞窗口的大小和当前网络实际可用带宽保持一致。
根据本发明的实施例,可以理解,每经过一个RTT做一次带宽估计,当拥塞发生时,根据拥塞发生前的带宽估计值来设定拥塞窗口。
举例而言,如图2所示,通过sshresh钩子函数来实现拥塞控制算法,通过连续丢包数和网络延时判断当前网络是否是拥塞丢包(S210),如果是,则根据带宽估算值,采用三次增长函数更新拥塞窗口大小,即snd_ssthresh的值(S220),如果不是,则用当前的拥塞窗口大小对拥塞窗口进行更新,即不对当前拥塞窗口的大小进行改变,使用tcp_current_ssthresh值更新snd_ssthresh(S230)。
本发明实施例的基于TCP通信协议的拥塞窗口控制方法,可通过网络延时变化和丢包性质准确的判断网络是否发生拥塞,并且能够在网络发生拥塞时根据实时检测到的宽带估算值设置拥塞窗口,从而使拥塞窗口更快的收敛到实际带宽,提高了带宽资源的利用率以及基于TCP应用的运行速度,提升了用户体验。
图3是根据本发明一个具体实施例的基于TCP通信协议的拥塞窗口控制方法的流程图。
如图3所示,本发明实施例的基于TCP通信协议的拥塞窗口控制方法,包括:
S310,监测网络的实际吞吐量和连续丢包数。
S320,根据网络的实际吞吐量和期望吞吐量得到网络延时变化。
S330,判断网络延时变化是否大于第一阈值且连续丢包数是否大于第二阈值。
S340,如果是,则判定网络发生拥塞,并根据westwood拥塞控制算法估计网络可用带宽并更新慢启动阈值。
具体地,当前网络可用带宽的估算每个RTT计算一次,可以通过检测在delta时间内发送了bk个数据包,即bk/delta来表示带宽值,且在本发明的实施例中的twestwood带宽估计算法如下,如果当前测量样本为第一个测量样本,用bw_ns_est=bk/delta;bw_est=bk/delta来计算带宽,如果当前此样本为第k个测量样本,k>1,通过bw_ns_est(k)=(7/8)*bw_ns_est(k-1)+(1/8)*bk/delta,bw_est(k)=(7/8)*bw_est(k-1)+(1/8)*bw_ns_est(k)来计算带宽,其中bw_est表示可用带宽,bw_ns_est表示最终宽带值。另外,bk的计算依据ACK确认的报文长度而定。
进一步地,为了排除某些异常的情况,比如移动终端的某个应用程序中病毒造成的网络的丢包,会进行RTT的平滑处理。
S350,根据所慢启动阈值设置拥塞窗口的大小。
本发明实施例的基于TCP通信协议的拥塞窗口控制方法中对网络可用带宽进行估计,并且根据当前可用带宽对慢启动阈值进行更新,从而实现了当前拥塞窗口的大小与当前的网络带宽相匹配,提高了对网络带宽资源的利用率,并且降低了网络的拥塞率,提升了用户体验。
需要说明的是,本发明实施例的基于TCP通信协议的拥塞窗口控制方法可以模块的形式部署于IDC(Internet Data Center,互联网数据中心)服务器的Linux的内核中,从而对上层的相关应用无影响,使用成本低并且可以很方便的部署到其他的Linux的内核中。
为了实现上述实施例,本发明还提出了一种基于TCP通信协议的拥塞窗口控制系统,该系统包括:监测模块,用于监测网络的实际吞吐量和连续丢包数;网络延时变化获取模块,用于根据网络的实际吞吐量和期望吞吐量得到网络延时变化;判断模块,用于判断网络延时变化是否大于第一阈值且连续丢包数是否大于第二阈值,并在网络延时变化大于第一阈值且连续丢包数大于第二阈值时,判定网络发生拥塞;控制模块,用于根据测量的网络可用带宽更新慢启动阈值,并根据所述慢启动阈值设置拥塞窗口的大小。
图4是根据本发明一个实施例的基于TCP通信协议的拥塞窗口控制系统的结构框图。需要说明的是,本发明实施例的基于TCP通信协议的拥塞窗口控制系统适用于使用基于TCP通信协议的移动网络的移动终端上,该移动终端可以是手机、平板电脑、个人数字助理等硬件设备。
如图4所示,该基于TCP通信协议的拥塞窗口控制系统,包括:
监测模块410,用于监测网络的实际吞吐量和连续丢包数。
其中,网络的实际吞吐量指的是对网络单位时间内实际成功的传达数据的数量,可以以比特、字节、分组等位单位进行测量。而丢包是在网络中数据传输的时候出现数据丢失的现象,因为网络中数据是以数据包的形式传输的,所以可以用丢包来表示网络中数据传输时数据的丢失,例如,可以用loss_out对丢包数进行计数。另外,检测网络的连续丢包数是为了排除单个数据包丢失的偶然性,提高判断的精确度。
具体地,监测模块410对网络的实际吞吐量和连续丢包数的检测是为了反映当前网络数据传输的性能,也就是说,当前网络的实际吞吐量越大,连续丢包数越少,就代表当前网络的数据传输性能越好,当前的网络比较稳定。
进一步地,在本发明的实施例中,监测模块410对网络的实际吞吐量和连续丢包数是为了接下来判断网络是否发生拥塞。
网络延时变化获取模块420,用于根据网络的实际吞吐量和期望吞吐量得到网络延时变化。
具体地,网络的延时变化可以通过网络延时变化获取模块420根据网络中单位时间内实际成功的传达数据包的数量与期望的网络中单位时间内成功传达的数据包数量的对比得到,即网络的实际吞吐量与期望吞吐量差距越大,网络延时越大,当前网络的数据传输能力越差。其中,期望吞吐量可以是在网络中没有缓存数据包且环境较稳定时,单位时间内实际成功的传达数据包的数量。
进一步地,由于网络吞吐量和时延有着密切的关系,所以也可以通过网络时延来计算网络延时变化,举例说明,根据本发明的实施例,网络延时变化可以通过公式N=(cwnd/BaseRTT–cwnd/RTT)*BaseRTT来计算,其中N代表网络延时变化,BaseRTT为网络中没有缓存数据包时由发送端发送数据包到发送端接收到接收端的确认收到的时间即往返时延,RTT为上一个往返时延的测量值。RTT和BaseRTT的更新在每次收到ACK(Acknowledgement,确认字符)并且完成当前的RTT计算之后记录。另外,由于丢包数的判断依据丢包之后的RTT的变化,即如果超过一定的时间没有收到ACK,则代表发送的数据包丢失,因此在网络连接开始时开启N的更新计算,在网络连接重置时重新计算N的值。
需要说明的是,上述提到的ACK,指的是在数据传输中接收端发给发送端的一种传输类控制字符,表示发来的数据已确认接收无误。
判断模块430,用于判断网络延时变化是否大于第一阈值且连续丢包数是否大于第二阈值,并在网络延时变化大于第一阈值且连续丢包数大于第二阈值时,判定网络发生拥塞。
具体地,判断模块430在得到网络延时变化后判断其是否大于第一阈值,并且判断连续丢包数是否大于第二阈值。其中,根据本发明的实施例,第一阈值为5,第二阈值为位于[4,6]之间的数。也就是说,如果判断模块430判断网络延时变化大于5,连续丢包数位于[4,6]之间,判断模块430则判定当前网络发生拥塞。
控制模块440,用于根据测量的网络可用带宽更新慢启动阈值,并根据慢启动阈值设置拥塞窗口的大小。根据本发明的实施例,可通过公式N=(cwnd/BaseRTT–cwnd/RTT)*BaseRTT来计算网络延时,用loss_out来对连续丢包数进行计数,如果N>5且loss_out位于[4,6]之间,则判断模块430判断网络发生拥塞。可以理解,当前网络上的数据传输延时大,且数据连续丢失,当前带宽资源争夺激烈,网络发生拥塞。
具体地,如果判断模块430判定网络发生拥塞,控制模块440则根据测量的网络可用带宽更新慢启动阈值。其中,慢启动阈值代表对当前网络可能发生拥塞的一个阈值,即代表当前拥塞网窗口的大小,最理想的状态是将该阈值设定为当前网络的带宽值。
更具体地,如果控制模块440将慢启动阈值设定为和当前网络带宽相等,那么理论上可以完全利用带宽并且保证不发生拥塞,但是由于实际情况下网络环境非常复杂,尤其是移动网络情况下用户的带宽并不恒定,所以根据当前测量的网络可用带宽更新的慢启动阈值能保证带宽的利用率,减小数据传输时的拥塞率。
可以理解,本发明的实施例中判断模块430对拥塞的判断是采用连续丢包数和延时相结合的办法获取丢包的性质来判断当前网络是否发生拥塞,也就是说如果判断出丢包的性质为随机丢包,则判断模块430判定网络并没有发生拥塞,否则则认为网络发生了拥塞。另外,为了增强判断的精确度,可以通过加入网络链路状况信息库的部分信息以排除其他因素造成的对丢包性质判断的干扰。
进一步地,在本发明的实施例中,控制模块440根据慢启动阈值,采用三次窗口增长函数来设置拥塞窗口的大小。经过测试,三次窗口增长函数算法相比于其他的拥塞控制算法具有明显的优势,可以根据当前网络带宽更加快速准确地控制拥塞窗口的大小。
根据本发明的实施例,可以理解,每经过一个RTT做一次带宽估计,当拥塞发生时,根据拥塞发生前的带宽估计值来设定拥塞窗口。
本发明实施例的基于TCP通信协议的拥塞窗口控制系统,通过判断模块判断由监测模块和网络延时变化获取模块得到的丢包数和延时变化准确判断网络是否发生拥塞,并且能够在网络发生拥塞时通过控制模块根据实时监测到的带宽估算值设置拥塞窗口,从而使拥塞窗口更快的收敛到实际带宽,提高了带宽资源的利用率以及基于TCP应用的运行速度,提升了用户体验。
根据本发明的实施例,控制模块440还用于在根据测量的网络可用带宽更新慢启动阈值之前,根据westwood拥塞控制算法估计网络可用带宽。
具体地,控制模块440对当前网络可用带宽的估算每个RTT计算一次,可以通过检测在delta时间内发送了bk个数据包,即bk/delta来表示带宽值,且在本发明的实施例中的twestwood带宽估计算法如下,如果当前测量样本为第一个测量样本,用bw_ns_est=bk/delta;bw_est=bk/delta来计算带宽,如果当前此样本为第k个测量样本,k>1,通过bw_ns_est(k)=(7/8)*bw_ns_est(k-1)+(1/8)*bk/delta,bw_est(k)=(7/8)*bw_est(k-1)+(1/8)*bw_ns_est(k)来计算带宽,其中bw_est表示可用带宽,bw_ns_est表示最终宽带值。另外,bk的计算依据ACK确认的报文长度而定。
进一步地,为了排除某些异常的情况,比如移动终端的某个应用程序中病毒造成的网络的丢包,会进行RTT的平滑处理。
本发明实施例的基于TCP通信协议的拥塞窗口控制系统中通过控制模块对网络可用带宽进行估计,并且根据当前可用带宽对慢启动阈值进行更新,从而实现了当前拥塞窗口的大小与当前的网络带宽相匹配,提高了对网络带宽资源的利用率,并且降低了网络的拥塞率,提升了用户体验。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本申请中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
在本申请中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (8)

1.一种基于TCP通信协议的拥塞窗口控制方法,其特征在于,包括以下步骤:
监测网络的实际吞吐量和连续丢包数;
根据所述网络的实际吞吐量和期望吞吐量得到网络延时变化;
判断所述网络延时变化是否大于第一阈值且所述连续丢包数是否大于第二阈值,其中,所述第一阈值为5,所述第二阈值位于[4,6]之间;
如果是,则结合网络链路状况信息库中的部分信息判定所述网络是否发生拥塞,如果是,则获取网络可用带宽,其中,如果当前测量样本为第一个测量样本,用bw_est=bk/delta来计算可用带宽,其中,第一个测量样本中bw_ns_est=bk/delta,如果当前测量样本为第k个测量样本,k>1,通过bw_est(k)=(7/8)*bw_est(k-1)+(1/8)*bw_ns_est(k)来计算可用带宽,其中,bw_ns_est(k)=(7/8)*bw_ns_est(k-1)+(1/8)*bk/delta,其中bw_est表示网络可用带宽,bw_ns_est表示最终宽带值,delta为可用带宽估算周期,在delta时间内发送了bk个数据包,根据测量的所述网络可用带宽更新慢启动阈值,使得所述慢启动阈值接近所述可用带宽;以及
根据所述慢启动阈值设置所述拥塞窗口的大小。
2.根据权利要求1所述的基于TCP通信协议的拥塞窗口控制方法,其特征在于,所述网络延时变化通过如下公式得到,所述公式为:
N=(cwnd/BaseRTT–cwnd/RTT)*BaseRTT,
其中,所述BaseRTT为网络中没有缓存数据包时的往返时延,RTT为上一个往返时延的测量值。
3.根据权利要求1所述的基于TCP通信协议的拥塞窗口控制方法,其特征在于,在根据测量的网络可用带宽更新慢启动阈值之前,还包括:
根据westwood拥塞控制算法估计所述网络可用带宽。
4.根据权利要求1-3任一项所述的基于TCP通信协议的拥塞窗口控制方法,其特征在于,所述根据慢启动阈值设置所述拥塞窗口,具体包括:
根据所述慢启动阈值,采用三次窗口增长函数设置所述拥塞窗口的大小。
5.一种基于TCP通信协议的拥塞窗口控制系统,其特征在于,包括:
监测模块,用于监测网络的实际吞吐量和连续丢包数;
网络延时变化获取模块,用于根据所述网络的实际吞吐量和期望吞吐量得到网络延时变化;
判断模块,用于判断所述网络延时变化是否大于第一阈值且所述连续丢包数是否大于第二阈值,并在所述网络延时变化大于第一阈值且所述连续丢包数大于第二阈值时,结合网络链路状况信息库中的部分信息判定所述网络是否发生拥塞,其中,所述第一阈值为5,所述第二阈值位于[4,6]之间;
控制模块,用于在所述判断模块判断所述网络发生拥塞时,获取网络可用带宽,其中,如果当前测量样本为第一个测量样本,用bw_est=bk/delta来计算网络可用带宽,其中,第一个测量样本中bw_ns_est=bk/delta,如果当前测量样本为第k个测量样本,k>1,通过bw_est(k)=(7/8)*bw_est(k-1)+(1/8)*bw_ns_est(k)来计算可用带宽,其中,bw_ns_est(k)=(7/8)*bw_ns_est(k-1)+(1/8)*bk/delta,其中bw_est表示网络可用带宽,bw_ns_est表示最终宽带值,delta为可用带宽估算周期,在delta时间内发送了bk个数据包,根据测量的所述网络可用带宽更新慢启动阈值,使得所述慢启动阈值接近所述可用带宽,并根据所述慢启动阈值设置所述拥塞窗口的大小。
6.根据权利要求5所述的基于TCP通信协议的拥塞窗口控制系统,其特征在于,所述网络延时变化通过如下公式得到,所述公式为:
N=(cwnd/BaseRTT–cwnd/RTT)*BaseRTT,
其中,所述BaseRTT为网络中没有缓存数据包时的往返时延,RTT为上一个往返时延的测量值。
7.根据权利要求5所述的基于TCP通信协议的拥塞窗口控制系统,其特征在于,所述控制模块还用于在根据测量的网络可用带宽更新慢启动阈值之前,根据westwood拥塞控制算法估计所述网络可用带宽。
8.根据权利要求5-7任一项所述的基于TCP通信协议的拥塞窗口控制系统,其特征在于,所述控制模块用于根据所述慢启动阈值,采用三次窗口增长函数设置所述拥塞窗口的大小。
CN201510599538.3A 2015-09-18 2015-09-18 基于tcp通信协议的拥塞窗口的控制算法和系统 Active CN105141542B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510599538.3A CN105141542B (zh) 2015-09-18 2015-09-18 基于tcp通信协议的拥塞窗口的控制算法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510599538.3A CN105141542B (zh) 2015-09-18 2015-09-18 基于tcp通信协议的拥塞窗口的控制算法和系统

Publications (2)

Publication Number Publication Date
CN105141542A CN105141542A (zh) 2015-12-09
CN105141542B true CN105141542B (zh) 2019-04-02

Family

ID=54726755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510599538.3A Active CN105141542B (zh) 2015-09-18 2015-09-18 基于tcp通信协议的拥塞窗口的控制算法和系统

Country Status (1)

Country Link
CN (1) CN105141542B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105721333B (zh) * 2016-01-21 2019-02-15 全时云商务服务股份有限公司 一种数据传输装置及方法
CN105827537B (zh) * 2016-06-01 2018-12-07 四川大学 一种基于quic协议的拥塞改进方法
CN106160953B (zh) * 2016-07-06 2019-04-16 四川大学 一种基于学习型能效模型的传输方法
CN107800642A (zh) * 2016-08-31 2018-03-13 北京金山云网络技术有限公司 一种拥塞控制方法及装置
CN108574644B (zh) * 2017-09-15 2021-05-14 北京金山云网络技术有限公司 一种tcp连接恢复方法、装置、电子设备及存储介质
WO2019143181A1 (en) 2018-01-18 2019-07-25 Samsung Electronics Co., Ltd. Method and an electronic device for dynamically controlling tcp congestion window
CN108600121A (zh) * 2018-03-29 2018-09-28 烽火通信科技股份有限公司 网络终端设备中实现单用户上行、下行限速的方法及设备
CN111343666A (zh) * 2018-12-19 2020-06-26 中国移动通信集团四川有限公司 基于lte网络的拥塞调整方法、装置、设备和介质
CN112054965A (zh) * 2019-06-05 2020-12-08 阿里巴巴集团控股有限公司 一种拥塞控制方法、设备及计算机可读介质
CN110493213A (zh) * 2019-08-13 2019-11-22 北京奇艺世纪科技有限公司 基于响应时间的访问控制方法、装置及电子设备
CN110519175B (zh) * 2019-08-22 2023-05-02 咪咕视讯科技有限公司 一种信息处理方法、设备及计算机可读存储介质
CN111614572B (zh) * 2020-04-28 2023-04-18 网络通信与安全紫金山实验室 一种基于rtt的tcp网络拥塞控制方法
CN112217741A (zh) * 2020-09-30 2021-01-12 上海商米科技集团股份有限公司 一种动态带宽调整方法
CN112165355B (zh) * 2020-10-23 2022-03-22 中国电子科技集团公司第三十研究所 一种面向卫星网络的基于udp的可靠数据传输方法
CN112492646B (zh) * 2020-11-27 2022-04-08 清华大学 基于拥塞成因识别的拥塞控制方法及装置
CN115134292B (zh) * 2022-06-28 2023-11-28 王蕊 基于接收窗口的多路径传输实时流媒体的路径管理方法
WO2024082111A1 (zh) * 2022-10-17 2024-04-25 北京小米移动软件有限公司 一种上行发送丢弃的处理方法及装置
CN116155825B (zh) * 2023-04-04 2023-06-30 山东大学 一种bbr拥塞控制算法数据重传的优化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557607A (zh) * 2009-05-15 2009-10-14 东南大学 无线传感器网络中汇聚节点的传输控制方法
CN101997729A (zh) * 2009-08-12 2011-03-30 华为技术有限公司 网络控制方法和装置
CN102594434A (zh) * 2012-02-17 2012-07-18 南京邮电大学 面向卫星网络的传输控制机制改进方法
CN102882803A (zh) * 2012-10-11 2013-01-16 四川大学 一种基于丢包和时延的混合拥塞控制方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5377327A (en) * 1988-04-22 1994-12-27 Digital Equipment Corporation Congestion avoidance scheme for computer networks
US6741555B1 (en) * 2000-06-14 2004-05-25 Nokia Internet Communictions Inc. Enhancement of explicit congestion notification (ECN) for wireless network applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557607A (zh) * 2009-05-15 2009-10-14 东南大学 无线传感器网络中汇聚节点的传输控制方法
CN101997729A (zh) * 2009-08-12 2011-03-30 华为技术有限公司 网络控制方法和装置
CN102594434A (zh) * 2012-02-17 2012-07-18 南京邮电大学 面向卫星网络的传输控制机制改进方法
CN102882803A (zh) * 2012-10-11 2013-01-16 四川大学 一种基于丢包和时延的混合拥塞控制方法

Also Published As

Publication number Publication date
CN105141542A (zh) 2015-12-09

Similar Documents

Publication Publication Date Title
CN105141542B (zh) 基于tcp通信协议的拥塞窗口的控制算法和系统
CN107171969B (zh) 一种数据传输方法、装置及系统
CN111817977B (zh) 一种网络拥塞控制方法和装置
CN106464598A (zh) 用于基于传输速率梯度的网络拥塞控制的方法和装置
EP2760182B1 (en) Data communication apparatus, data transmission method, and computer system
WO2020048147A1 (zh) 数据传输方法及装置
US8929212B2 (en) Communication quality monitoring device, communication system, communication quality monitoring method and program thereof
JP5941853B2 (ja) パケット通信方法及び装置
CN106656642B (zh) 一种往返时延的测量方法、装置及系统
KR20060100512A (ko) 전송제어 프로토콜 기반의 네트워크에서 평균 대역폭 추정방법 및 시스템
CN104704783A (zh) Tcp映射的系统和方法
WO2021103706A1 (zh) 控制数据包发送方法、模型训练方法、装置及系统
CN104320809A (zh) 基于rtt的无线多跳网络拥塞控制方法及系统
CN105432054B (zh) 确定传输缓存量的方法和设备
WO2014140673A1 (en) Congestion avoidance and control for udp-based protocols
CN109167734A (zh) 识别传输控制协议状态的方法和装置
EP2922241B1 (en) Methods and apparatus to determine network delay with location independence from retransmission delay and application response time
KR100922472B1 (ko) 통신 단말, 통신 제어 방법 및 통신 제어 프로그램
US11153220B2 (en) Methods and apparatus to determine network delay with location independence
EP2936741A1 (en) Probing a network
EP3560152B1 (en) Determining the bandwidth of a communication link
JP3614835B2 (ja) パケット通信品質測定方法およびシステム
US20170280342A1 (en) Measurement apparatus, measurement method, and communication system
CN110290552B (zh) 缓存深度的测量方法和装置、存储介质、电子装置
US10063489B2 (en) Buffer bloat control

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