当前位置: 首页 > 专利查询>中南大学专利>正文

一种数据中心网络中基于数据包优先级的传输控制方法技术

技术编号:15942613 阅读:677 留言:0更新日期:2017-08-04 23:49
本发明专利技术公开了一种数据中心网络中基于数据包优先级的传输控制方法,发送方主动发送具有高优先级的控制包,并根据数据包和控制包的ACK接收顺序来调整窗口大小,控制网络拥塞。此外,通过保证至少有一个高优先级控制包处于链路中,发送方可快速地重传可能丢失的数据包,最终极大地消除了TCP超时现象。本发明专利技术不需任何硬件更新,并能够较好地解决数据中心网络TCP Incast、TCP Outcast和长的查询完成时间等问题,提高了链路的利用率,从而改善应用性能。

【技术实现步骤摘要】
一种数据中心网络中基于数据包优先级的传输控制方法
本专利技术涉及一种数据中心网络(DCN,DataCenterNetwork)中基于数据包优先级的传输控制方法。
技术介绍
现在,大规模数据中心作为云计算的基础架构建立起来,以提供各种分布式应用服务,如Web搜索、社交和推荐系统。这些数据中心通常包含成千上万台服务器,并由数据中心网络(DataCenterNetworks,DCN)连接起来。由于这些服务器通常位于同一建筑物内,物理距离近,所以在DCN中往返延迟(RoundTripTime,RTT)低,约数十微妙;同时,为了节约成本,数据中心网络通常更偏好使用廉价的、浅缓存的交换机来组建。尽管DCN的这些特性与Internet不同,但是DCN中部署的应用服务仍然采用传统的TCP进行流控,结果TCP遭受了严重的性能问题,网络利用率下降。TCPIncast问题出现在采用分聚模型架构的应用服务中。当多个服务器同时向一个接收端发送数据时,容易引起浅缓存交换机处大量地丢包,最终导致TCP超时,而TCP默认的超时重传时间为毫秒级别,比RTT大几个数量级。此时,网络的吞吐量因TCP超时会严重下降。TCPOutcast是另外一个TCP遭受的问题。当从交换机不同端口进来的流都同时要从相同端口出去时,有可能一个进端口的流一直抢占出端口,而另一个进端口的流因竞争不到该出端口而不断丢包,直到发生超时,即发生了所谓的“端口封锁”现象。在这种情况下,发生超时的流的吞吐量受到了严重影响。最后,采用TCP传输的查询流会遭受长的查询完成时间。查询流的大小为几十KB,正常情况下,可以在微秒时间内完成。如果TCP发生超时,查询流需要等待数百毫秒的时间,严重影响了查询流的性能。总之,TCP超时是TCP性能问题的原因。针对数据中心网络中TCP暴露的问题,许多文献都提出了相应的处理办法。如著名的DCTCP协议,它的思想是利用交换机进行ECN标记,多个包携带ECN信息来反应网络的拥塞程度,发送方根据该拥塞程度信息来更好地调节发送速率来控制交换机队列占用量,以达到减小超时的目的。但是,ECN机制不是所有的廉价交换机都支持,而且随着并发数的增加,DCTCP仍然发生丢包甚至超时,导致DCTCP遭受TCP同样的问题。TIMELY通过精确地测量RTT来控制拥塞,但是实现RTT的精确测量需要特殊的硬件支持。由于目前文献中提出的解决方案还存在上述缺点,因此,有必要设计一种新的拥塞控制防范,能够满足以下要求:(i)有效性。拥塞控制协议应在网络发生拥塞时缓解网络拥塞以避免丢包防止超时发生;同时,在发生丢包时,能迅速地恢复丢失的包以避免代价高昂地超时。(ii)部署性。协议需要在不修改交换机硬件的前提下能在数据中心中部署。
技术实现思路
本专利技术所解决的问题是,针对现有技术的不足,提供一种数据中心网络中基于数据包优先级的传输控制方法,通过插入高优先级的控制包来进行拥塞控制和迅速恢复以尽可能减少TCP超时,且有利于在数据中心中的部署。本专利技术的技术方案为:一种数据中心网络中基于数据包优先级的传输控制方法,发送方主动发送具有高优先级的控制包,并根据数据包和控制包的ACK接收顺序来调整窗口大小,控制网络拥塞。所述方法具体包括以下步骤:步骤一:初始化:发送方将control_pkt_num,no_data_in_flight和sent_pkt均置为0,交换机打开SP(严格优先级)调度策略,接收方开始监听是否收到控制包;其中控制包是只有包头部分而不携带数据负载的包,它具有高优先级,且其序号与当前发送方最近发送的一个数据包序号相同;如果收到了控制包,则生成相应的控制包ACK,且赋予高优先级,并将其序号设置为与最新的已接收到的数据包序号相同;如果收到的是数据包,则按默认流程处理;变量contrl_pkt_num用来记录已发送的但未被确认的控制包个数,以限制发送的控制包数量,no_data_in_fligh用来记录控制包ACK在相应窗口所有数据包的ACK之前接收的情况出现的次数,以决定是否重传一个数据包,sent_pkt用来记录已发送的数据包个数,以判断是否在数据包后面发送一个控制包;将控制包赋予高优先级,当网络拥塞时,控制包虽然比相应窗口中的数据包后发,但是可以被交换机优先转发,所以它比数据包先到达接收方,即“后发先到”。控制包的ACK具有高优先级,是为了确保它在交换机处的转发不受数据包ACK的影响,即它同样要能够被交换机优先转发。控制包的序号与发送方最近发送的一个数据包序号相同以携带它相应窗口中的数据包信息,将控制包ACK的序号设置为与最新的已接收到的数据包序号相同,这样在发送方收到控制包ACK时,可以依据此信息来判断它是否比其对应的数据包ACK先被接收;步骤二:发送方每次发送完一个数据包,sent_pkt自加1,并判断其值是否与当前窗口大小cwndi相等,如是,则发送一个控制包,然后sent_pkt置0,control_pkt_num自加1,转步骤三;否则,转步骤八;步骤三:发送方判断当前是否已经收到了三个重复ACK或是已发生TCP超时,如是则按默认TCP进行快速恢复或超时重传,然后转步骤八;否则,发送方看是否收到了控制包ACK,如果没有,则转步骤三;如果已收到,control_pkt_num自减1,转步骤四;步骤四:发送方判断控制包ACK和数据包ACK的接收顺序和它们相应的包的发送顺序是否一致,如是则按默认TCP的增窗算法增窗,并置no_data_in_flight为0,然后转步骤八;否则,转步骤五;步骤五:发送方判断控制包ACK是否在相应窗口内的所有数据包ACK之前收到,如是则转步骤六;否则,计算偏移比例p,以衡量控制包与相应窗口中数据包的发送顺序与两种包的ACK的接收顺序之间的偏离程度,并根据p计算网络拥塞程度α,再将窗口大小降为cwndi+1,如果no_data_in_flight不为0,则将其置0,转步骤八;步骤六:发送方将no_data_in_flight加1,并判断其值是否大于等于阈值N,如是,则重传一个最老的未被确认的数据包,并置no_data_in_flight为0,然后转步骤七;否则直接转步骤七;其中,阈值N根据应用场景测得的经验值进行设置,在不同的场景下阈值N可以调节以达到性能上的优化;步骤七:判断control_pkt_num是否为0,如是,则发送一个控制包,control_pkt_num自加1;否则,转步骤八;步骤八:发送方根据TCP的默认机制来判断是否能发送新的数据包,即当要发送的数据包序号小于已确认数据包序号与当前窗口大小之和时可以发送新的数据包,如是,则转步骤二继续发送新的数据包;否则,转步骤九;步骤九:发送方查看是否仍有应用数据需要发送,如果没有,则发送一个控制包,control_pkt_num自加1,然后判断是否所有已发包都得到确认,如是则结束发送过程,否则转步骤三;如果发送方当前仍有应用数据需要发送,则转步骤三。所述步骤一中,控制包是只有包头部分而不携带数据负载的包,它具有高优先级,且其序号与当前发送方最近发送的一个数据包序号相同。所述步骤一中,接收方监听是否收到控制包的具体操作为:如果收到了控制包,则生成相应的控制包ACK,且赋予高优先级,并本文档来自技高网
...
一种数据中心网络中基于数据包优先级的传输控制方法

【技术保护点】
一种数据中心网络中基于数据包优先级的传输控制方法,其特征在于,发送方主动发送具有高优先级的控制包,并根据数据包和控制包的ACK接收顺序来调整窗口大小,控制网络拥塞。

【技术特征摘要】
1.一种数据中心网络中基于数据包优先级的传输控制方法,其特征在于,发送方主动发送具有高优先级的控制包,并根据数据包和控制包的ACK接收顺序来调整窗口大小,控制网络拥塞。2.根据权利要求1所述的数据中心网络中基于数据包优先级的传输控制方法,其特征在于,具体包括以下步骤:步骤一:初始化:发送方将control_pkt_num,no_data_in_flight和sent_pkt均置为0,交换机打开SP调度策略,接收方开始监听是否收到控制包;其中控制包是只有包头部分而不携带数据负载的包,它具有高优先级,且其序号与当前发送方最近发送的一个数据包序号相同;如果收到了控制包,则生成相应的控制包ACK,且赋予高优先级,并将其序号设置为与最新的已接收到的数据包序号相同;如果收到的是数据包,则按默认流程处理;步骤二:发送方每次发送完一个数据包,sent_pkt自加1,并判断其值是否与当前窗口大小cwndi相等,如是,则发送一个控制包,然后sent_pkt置0,control_pkt_num自加1,转步骤三;否则,转步骤八;步骤三:发送方判断当前是否已经收到了三个重复的ACK或是已发生TCP超时,如是则按TCP默认的设置进行快速恢复或超时重传,然后转步骤八;否则,发送方判断是否收到了控制包ACK,如果没有,则重复步骤三;如果已收到,则control_pkt_num自减1,转步骤四;步骤四:发送方判断控制包ACK和数据包ACK的接收顺序和它们相应的包的发送顺序是否一致,如是则按TCP默认的增窗算法进行增窗,并置no_data_in_flight为0,然后转步骤八;否则,转步骤五;步骤五:发送方判断控制包ACK是否在相应窗口内的所有数据包ACK之前收到,如是则转步骤六;否则,计算偏移比例p,以衡量控制包与相应窗口中数据包的发送顺序与两种包的AC...

【专利技术属性】
技术研发人员:王建新阮昌黄家玮张韬
申请(专利权)人:中南大学
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1