一种流控制传输中拥塞控制的实现方法

文档序号:7961632阅读:136来源:国知局
专利名称:一种流控制传输中拥塞控制的实现方法
技术领域
本发明涉及IP网络技术,尤指一种流控制传输中拥塞控制的实现方法。
背景技术
流控制传输协议(SCTP,Stream Control Transmission Protocol)属于传输层协议,用于在对等SCTP端点(endpoint)之间可靠地传输用户数据。由于用户数据的平滑传输主要依赖于瞬态网络条件,故根据不同的网络条件调整SCTP端点的拥塞控制参数,对于获得可靠的数据传输性能起着重要的作用。
当执行流控制传输的SCTP端点处于可靠通信时,大量资源能够分配给通话业务,以确保用户数据的快速传输。如果上述传输遭遇严重的拥塞问题,就会出现不可靠(unlikely)通信。为了应对上述问题,必须为SCTP端点设置拥塞控制机制,使SCTP端点具备在不利环境下的工作能力。所述不利环境指的是部分网络失效或不可预知的通信电涌(surges)等。
每个SCTP端点都设置有T3定时器,用于对数据传输和重传进行时间管理。在数据正常传输过程中,某个SCTP端点会在自身发出数据包时,启动T3定时器进行计时。在下面的描述中,将发出数据包的SCTP端点称为发送端点。对应地,接收该数据包的SCTP端点被称为接收端点。图1显示的是数据传输过程中的拥塞控制流程,具体包括以下步骤步骤101、发送端点判断T3定时器是否超时,如果超时则执行步骤106,否则执行步骤102。
步骤102、发送端点判断自身是否接收到选择性确认(SACK)消息,如果没有则执行后续处理,拥塞控制流程结束;否则执行步骤103。
步骤103、发送端点根据本次接收到的SACK消息判断是否存在丢包,如果没有则执行后续处理,拥塞控制流程结束;否则执行步骤104。
现有技术中,发送端点会为自身发出的数据包设置传输序列号(TSN)。接收端点收到数据包后,逐个检查数据包的TSN,如果某个TSN的数据包缺失,比如检测到的数据包编号为#1、#3和#4,缺少#2,则接收端点判定数据发送过程出现间隙,就向发送端点发出SACK消息,将数据包的接收情况告知发送端点。发送端点根据现有定义的编码规则,解析出TSN=2的数据包丢失。
步骤104、发送端点连续接收到一个以上SACK消息后,判断是否指示同一个数据包丢失,如果是则执行步骤105,否则执行后续处理,拥塞控制流程结束。
步骤105、发送端点发起快速重传和快速恢复操作,对丢失的数据包进行重传,流程结束。
步骤106、发送端点执行拥塞控制和拥塞避免操作,将拥塞控制参数调整为拥塞缺省值,以降低网络的数据传输率,流程结束。
协议中规定,SCTP端点设置的拥塞控制参数有拥塞控制窗口(CWND)参数和慢启动阈值(ssthresh)等,这些拥塞控制参数用来调整网络的数据传输率。其中,CWND参数是每个SCTP端点为自身发送出去的数据包设置的,该参数可以根据实际检测到的网络条件进行调整。正常情况下,CWND参数设置为4*MTU。所述MTU为最大传输单元,即到达SCTP端点的单个数据包的最大允许长度。
所述拥塞缺省值指的是SCTP端点判定网络处于拥塞状态后,对拥塞控制参数的缺省设置。该步骤中,发送端点将拥塞控制参数调整为拥塞缺省值的过程如下a、发送端点根据公式(1)设置自身的ssthresh参数,其中等式右边的CWND参数为执行本次参数调整前的正常取值。
ssthresh=max(CWND/2,2*MTU)(1)
b、将CWND参数直接设置为CWND=1*MTU。
通过上述处理,网络就能按照正确的拥塞控制节拍(steps),快速地从拥塞状态恢复过来,避免拥塞造成网络性能的进一步恶化。
由于CWND参数在上述调整中被减小,SCTP端点判定网络性能下降,无法承载大量的数据传输,就会减少自身发送至网络的数据包。
但是,网络中的丢包现象在任何时候都可能存在,现有方法只是简单地根据某次丢包判断当前网络性能的好坏,这将导致网络的利用率下降,使得网络资源不能得到合理利用。比如,如果某次网络丢包只是偶然情况,并非真正的拥塞状态造成的,当前的网络潜力还很大,网元的处理能力也很强,直接减小CWND参数的拥塞控制方法,将会造成SCTP端点的数据积压,从而影响整个网络的传输性能。

发明内容
有鉴于此,本发明的主要目的在于提供一种流控制传输中拥塞控制的实现方法,在缓解网络拥塞的同时,保证网络的合理利用。
为达到上述目的,本发明的技术方案具体是这样实现的一种流控制传输中拥塞控制的实现方法,执行流控制传输的发送端点在自身设置的T3定时器超时后启动延时定时器,该方法包括a、判断所述延时定时器是否超时,如果没有超时则执行步骤b,否则拥塞控制流程结束;b、发送端点根据自身接收到的选择性确认消息判断网络是否处于拥塞状态,如果不处于则返回执行步骤a;否则,发送端点将拥塞控制参数调小,降低网络的数据传输率。
发送端点预先设置丢包门限值,则步骤b所述判断网络是否处于拥塞状态的方法为在延时时间内,发送端点接收选择性确认消息,从中获取丢包指示,并记录所获得的丢包指示数目,如果丢包指示数目超过丢包门限值,则确定网络处于拥塞状态。
所述获取丢包指示的方法为发送端点根据编码规则从选择性确认消息中获取丢包指示。
所述拥塞控制参数包括拥塞控制窗口参数,则步骤b所述将拥塞控制参数调小的方法为将拥塞控制窗口参数减半,或者将拥塞控制窗口参数设为最大传输单元的两倍。
步骤b所述将拥塞控制参数调小的方法为将拥塞控制参数设置为拥塞缺省值。
该方法进一步包括发送端点在T3定时器超时后设置超时标记,并在发送端点判定网络处于拥塞状态时,或拥塞控制流程结束之前清除所述超时标记。
该方法进一步包括发送端点在判定网络处于拥塞状态时,或拥塞控制流程结束之前关闭延时定时器。
所述延时定时器的时长根据以下至少其中之一个参数确定,所述参数包括当前偶联的网络流量、已发出未被确认的数据大小、双向传播时间和当前重发的超时时长。
由上述技术方案可见,本发明的这种流控制传输中拥塞控制的实现方法,在发送端点的T3定时器超时后,启动延时定时器,在延时时间内根据SACK消息判断是否接收到丢包指示,并记录接收到的丢包指示的数目,一旦丢包指示数目超过丢包门限值,发送端点就将拥塞控制参数调小,以减少自身向网络发送的数据量,使得网络能够从拥塞状态尽快恢复。如果丢包指示数目没有超过丢包门限值,发送端点保持当前的拥塞控制参数设置,以便合理利用当前可用的网络资源。


图1为现有技术中的拥塞控制流程;图2为本发明一个较佳实施例中的拥塞控制流程。
具体实施例方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
图2为本发明一个较佳实施例中拥塞控制的实现流程,具体包括以下步骤步骤201、发送端点判断T3定时器是否超时,如果超时则执行步骤206,否则执行步骤202。
步骤202~205的过程与图1中的步骤102~105相同,此处不再赘述。
步骤206、判断延时定时器是否已经启动,如果没有启动则执行步骤207,否则执行步骤211。
步骤207、发送端点设置超时标记并启动延时定时器。
该步骤中,延时定时器的时长根据当前偶联(association)的网络流量、已发出未被确认的数据大小(Total Data Outstanding)、双向传播时间(RTT)、当前重发的超时时长(RTO)等参数进行设置。比如,延时定时器的时长设置为N*RTO,N在2~4之间。
步骤208、判断延时定时器是否超时,如果超时则执行步骤209,否则执行步骤210。
步骤209、关闭延时定时器并清除超时标记,拥塞控制流程结束。
步骤210、发送端点根据延时时间内接收到的SACK消息判断网络是否处于拥塞状态,如果不处于则返回执行步骤208,否则执行步骤211。
由于接收端点在没有接收到某个TSN的数据包时,会持续通过SACK消息发出丢包指示给发送端点,故发送端点可以根据接收到的丢包指示对网络的拥塞状态进行判断,如果丢包指示数目超过丢包门限值,发送端点就能确定网络处于拥塞状态,立即执行步骤211。
其中,发送端点根据编码规则从SACK消息中获取丢包指示,此处不再赘述。
采取以上处理的原因在于根据偶尔丢包是无法准确衡量网络情况的,一检测到网络丢包就减小SCTP端点向网络发送的数据量,这种做法是很不可取的。为了避免对拥塞状态的误判,在发现网络丢包后,发送端点并不立即减小拥塞控制参数,而是在一定的延时时间内探测是否继续丢包,如果没有继续丢包,则正常传输数据,此时发送端点保持向网络发送的数据量,这样可以使网络资源得到充分利用。如果在首次丢包后的延时时间内,发送端点继续收到丢包指示,则证明确实是由于拥塞导致网络条件变坏。这种情况下,发送端点才会减小向网络发送的数据量。
所述丢包门限值根据需要进行设置,一般情况下设置为4,以期在网络拥塞和网络合理利用这两个方面达到平衡。
步骤211~212、关闭延时定时器并清除超时标记,执行拥塞控制和拥塞避免操作,将拥塞控制参数逐步调小,来降低网络的数据传输率,流程结束。
该步骤中,拥塞控制参数可以直接设置为缺省值,比如将CWND参数直接设置为1*MTU等。
另外,为了避免网络的数据发送能力骤降到最小,造成SCTP端点的数据积压,发送端点也可以逐步调小拥塞控制参数,比如将CWND参数从当前值减半或设为2*MTU等。
由上述的实施例可见,本发明的这种流控制传输中拥塞控制的实现方法,在发送端点的T3定时器超时后,设置一段延时时间,并根据这段时间内接收到的丢包指示判断网络是否处于拥塞状态。只有在确定网络处于拥塞状态后,发送端点才会调小拥塞控制参数,以减少自身向网络发送的数据量,缓解网络拥塞。如果在延时时间内丢包指示数目没有超过丢包门限值,发送端点将保持当前的拥塞控制参数,以便合理利用当前可用的网络资源。
权利要求
1.一种流控制传输中拥塞控制的实现方法,其特征在于,执行流控制传输的发送端点在自身设置的T3定时器超时后启动延时定时器,该方法包括a、判断所述延时定时器是否超时,如果没有超时则执行步骤b,否则拥塞控制流程结束;b、发送端点根据自身接收到的选择性确认消息判断网络是否处于拥塞状态,如果不处于则返回执行步骤a;否则,发送端点将拥塞控制参数调小,降低网络的数据传输率。
2.根据权利要求1所述的方法,其特征在于,发送端点预先设置丢包门限值,则步骤b所述判断网络是否处于拥塞状态的方法为在延时时间内,发送端点接收选择性确认消息,从中获取丢包指示,并记录所获得的丢包指示数目,如果丢包指示数目超过丢包门限值,则确定网络处于拥塞状态。
3.根据权利要求2所述的方法,其特征在于,所述获取丢包指示的方法为发送端点根据编码规则从选择性确认消息中获取丢包指示。
4.根据权利要求1所述的方法,其特征在于,所述拥塞控制参数包括拥塞控制窗口参数,则步骤b所述将拥塞控制参数调小的方法为将拥塞控制窗口参数减半,或者将拥塞控制窗口参数设为最大传输单元的两倍。
5.根据权利要求1所述的方法,其特征在于,步骤b所述将拥塞控制参数调小的方法为将拥塞控制参数设置为拥塞缺省值。
6.根据权利要求1所述的方法,其特征在于,该方法进一步包括发送端点在T3定时器超时后设置超时标记,并在发送端点判定网络处于拥塞状态时,或拥塞控制流程结束之前清除所述超时标记。
7.根据权利要求1至6任一项所述的方法,其特征在于,该方法进一步包括发送端点在判定网络处于拥塞状态时,或拥塞控制流程结束之前关闭延时定时器。
8.根据权利要求1所述的方法,其特征在于,所述延时定时器的时长根据以下至少其中之一个参数确定,所述参数包括当前偶联的网络流量、已发出未被确认的数据大小、双向传播时间和当前重发的超时时长。
全文摘要
本发明公开了一种流控制传输中拥塞控制的实现方法。该方法的过程包括发送端点在自身设置的T3定时器超时后启动延时定时器,a.判断所述延时定时器是否超时,如果没有超时则执行步骤b,否则拥塞控制流程结束;b.发送端点根据自身接收到的选择性确认消息判断网络是否处于拥塞状态,如果不处于则返回执行步骤a;否则,发送端点将拥塞控制参数调小,降低网络的数据传输率。本发明的这种方法在缓解网络拥塞的同时,保证网络的合理利用。
文档编号H04L29/06GK101087244SQ20061008316
公开日2007年12月12日 申请日期2006年6月7日 优先权日2006年6月7日
发明者汪碧海, 纳哥希 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1