一种基于ECN机制的TCP友好速率控制方法与流程

文档序号:11732668阅读:556来源:国知局
一种基于ECN机制的TCP友好速率控制方法与流程
本发明涉及一种基于ECN(ExplicitCongestionNotification,显式拥塞通知)机制的TCP友好速率控制方法,属于计算机网络和通信技术领域。

背景技术:
数据中心网络中广泛使用的TCP拥塞控制算法将网络中的丢包作为拥塞信号,当丢包发生时,算法会减小发送窗口,进而降低连接的数据包发送速度,从而避免网络发生拥塞。在现有的TCP拥塞控制方法中,与本申请最为接近的技术方案为DCTCP方案。该方案在交换机上进行ECN控制,发送方根据收到标记ECN的ACK占上一窗口发送数据包总数的比例来调整发送窗口。DCTCP的一个重要缺陷是数据包的发送是基于窗口的,窗口为整数,最小为1。然而,通过实验表明,即使将发送窗口恒定设置为1,随着发送方数目的增加,网络还是会发生incast现象的。TCP友好的速率控制算法(TCPFriendlyRateControl)简称为TFRC,其目的是控制非TCP的连接的数据包发送速度,使其数据包发送速度接近TCP连接,以保证当受TFRC控制的数据连接和TCP连接共同竞争一段网络瓶颈时,他们可以公平的分享数据连接。但传统的TFRC算法使用网络中的丢包作为拥塞信号,当丢包发生时TFRC算法会降低连接的数据包发送速度,从而避免网络发生拥塞。而丢包的发生说明此时的网络拥塞已经非常严重,因而该方法不能提早进行控制,防止拥塞的发生。所以并不适用于数据中心网络中。DCTCP数据包的发送是基于窗口的,窗口为整数,最小为1。然而,通过实验表明,即使将发送窗口恒定设置为1,随着发送方数目的增加,网络还是会发生incast现象的。Icast现象在数据中心网络中很普遍,它是指多个发送方同时通过同一条瓶颈链路向同一个接收方发送数据包,发送方不能发送下一个请求数据块,除非所有发送方都完成了当前数据块的发送,进而导致网络吞吐量的严重下降。TFRC使用网络中的丢包作为拥塞信号,而丢包的发生说明此时的网络拥塞已经非常严重,因而不能提早进行控制,防止拥塞的发生,不适用于数据中心网络中。

技术实现要素:
本发明的技术解决问题:克服现有技术的不足,提供一种基于ECN机制的TCP友好速率控制方法,用于避免数据中心网络中incast现象的发生。本发明技术解决方案:一种基于ECN机制的TCP友好速率控制方法,实现步骤如下:首先在交换机上进行ECN标记,接收方计算丢包率和ECN标记率,通过ACK返回给发送方,并查看收到的数据包是否设置了ECN标记,如果是,则在它所发送的ACK中设置ECN-echo位,否则,返回没有设置ECN-echo位的ACK;发送方动态调整发送速率,即发送方维护一个虚拟发送窗口win,并根据接收方返回的信息计算网络的往返时延R和发送方的期望发送速率Expect_rate,然后根据Expect_rate和当前发送速率Rate_的大小的比较来动态调整虚拟发送窗口win,最后根据win计算新的发送速率。所述在交换机上进行ECN标记的具体方法为:当交换机收到数据包时,首先判断当前缓冲区的队列长度,如果超过某一个门限值,则为该数据包设置ECN标记位;否则,不设置。所述发送方包括RTT计算模块、ECN控制模块、期望发送速率计算模块和发送速率控制模块;发送方维护一个虚拟的发送窗口win,当发送端收到ACK后,首先由RTT计算模块计算当前网络的往返时延R,由ECN控制模块查看该ACK是否设置了ECN-echo位,如果是,则设置ecn_flag表示需要根据ECN计算期望发送速率,并计算它收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例α;然后,期望发送速率计算模块根据RTT计算模块和ECN控制模块的输出信息计算期望发送速率Expect_rate,并将结果传给发送速率控制模块;最后,由发送速率控制模块计算实际的发送速率。所述期望发送速率计算公式如下:其中,R是网络的往返时延RTT,p是丢包率,g是ECN标记率,α是发送方收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例。本发明与现有技术相比优点在于:本发明与现有拥塞控制方法的区别是本发明可以根据交换机缓冲区队列长度提前对发送速率进行调整,防止网络拥塞的发生。而且,本发明中数据包的发送是基于速率的,同时为了能与其他网络连接公平竞争网络带宽,本发明为每个连接维护一个虚拟发送窗口,根据期望发送速率与当前发送速率的比较来调整虚拟发送窗口的大小,进而调整发送速率。由于数据包的发送是基于速率的,因而,不存在发送窗口最小值的限制,进一步避免的incast现象的发生。附图说明图1为本发明的实现流程图;图2为本发明中发送端结构示意图;图3为本发明中发送端控制过程流程图;图4为本发明与其它几种拥塞控制方法在incast场景下的性能比较。具体实施方式如图1所示,本发明实现步骤如下:步骤一:交换机上进行ECN标记当交换机收到数据包时,首先判断当前缓冲区的队列长度,如果超过某一个门限值,则为该数据包设置ECN标记位。否则,不设置。步骤二:接收方设置ECN-echo接收方收到的数据包后,计算丢包率p和ECN标记率g,通过ACK返回给发送方,并查看收到的数据包是否设置了ECN标记,如果是,则在它所发送的ACK中设置ECN-echo位,否则,返回没有设置ECN-echo位的ACK。步骤三:发送方动态调整发送速率如图2所示,发送方主要包括RTT计算模块、ECN控制模块、期望发送速率计算模块和发送速率控制模块。具体控制过程如图3所示。发送方维护一个虚拟的发送窗口win。当发送端收到ACK后,首先由RTT计算模块计算当前网络的往返时延R,由ECN控制模块查看该ACK是否设置了ECN-echo位,如果是,则设置ecn_flag表示需要根据ECN计算期望发送速率,并计算它收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例α。然后,期望发送速率计算模块根据RTT计算模块和ECN控制模块的输出信息计算期望发送速率Expect_rate,并将结果传给发送速率控制模块。传统TFRC的发送速率计算公式为:该公式并没有考虑ECN标记的情况。本发明提出当发送方收到的ACK不带有ECN标记时,按照公式(1)计算期望发送速率,否则,计算公式如下:综上,本发明的期望发送速率计算公式为:其中,R是网络的往返时延RTT,p是丢包率,g是ECN标记率,α是发送方收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例。期望发送速率的计算具体过程如下:如果ecn_flag=true,则根据公式(2)计算期望发送速率。否则,根据公式(1)计算期望发送速率。最后,由发送速率控制模块计算实际的发送速率Rate_。具体过程如下:如果Expect_rate>Rate_,则设置虚拟发送窗口win=win+1,Rate_=win×size_/R。否则,设置虚拟发送窗口Rate_=win×size_/R。其中,R是网络的往返时延RTT,size_是数据包的载荷长度。如图4所示,在incast场景下,将本发明与DCTCP和Reno以及发送窗口恒定为1的TCP进行比较。x轴表示发送方的数目,y轴表示吞吐量(单位为:Mbps)。可以看到,DCTCP和Reno以及1窗口TCP随着发送端数目的增加,终会导致吞吐量的急剧下降,而本发明并没有出现吞吐量的下降,即本发明并没有像其他方法一样出现吞吐量的骤降。因此,本发明可以防止数据中心网络中的incast现象,可以应用于数据中心网络中。总之,本发明采用ECN技术,并基于速率发送数据包。ECN可以在网络轻度拥塞时进行控制,在一定程度上避免数据中心的Incast现象。而且,基于速率发送数据包不存在发送窗口最小值的限制,进一步避免数据中心网络中Incast现象的出现。因此,本发明适用于数据中心网络。本发明未详细阐述部分属于本领域公知技术。以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1