基于流控技术的数据中心拥塞控制方法与流程

文档序号:18543149发布日期:2019-08-27 21:25阅读:202来源:国知局
基于流控技术的数据中心拥塞控制方法与流程

本发明涉及网络传输技术领域,特别涉及基于流控技术的数据中心拥塞控制方法。



背景技术:

越来越多的应用移向数据中心,导致数据中心的应用日趋复杂化和多样化,而这些复杂和多样化的应用产生了大量数据特征和需求都归结于千差万别的网络数据流。这些负载的网络数据流都要征用有限的网络资源,导致很难保证数据中心复杂应用的qos(qualityofservice,服务质量指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术)需求;同时,数据中心传输网络数据流具有突发性,当多个时延敏感的应用数据流与大块的备份数据流争用网络资源时,很容易导致时延敏感的应用无法获得低延时的qos保障。另外多个数据流争用一个共享的网络链路时,大块数据流冗余将小块数据流的多个数据包分隔开,导致小块数据流的数据包长时间无法被传送,大大增加时延敏感应用的尾时延,从而降低整体的传输性能。另外一方面,数据中心为提升资源利用率,一般都会做虚拟化,一个物理机虚拟多个虚拟机,再以虚拟机为服务单元向租户提供服务,这进一步使数据中心应用更加复杂。

现有保障数据中心网络qos(服务质量)的传输方案大致可分为两种,一种是数据中心网络传输协议,这类方案具有很好的可部署性,不需要提前或者任何数据中心应用的数据特征,也不需要修改任何软硬件。因此能很好的使用于各类数据中心,但这种方案由于对数据中心复杂的应用缺乏明确区分,导致很难提供非常出众的性能。另一种数据中心多队列传输方案,利用提前获知的数据中心应用的数据特征,来明确区分各类复杂的应用,并未这些应用提供差异化的qos保障。由于针对不同qos需求的应用采用差异化的qos保障机制,这类传输方案一般都能获得非常不错的性能。

但是这两种方案存在非常明显的缺陷,一是需要提前或者数据中心复杂的应用特征,面对动态变化的应用信息,动态获取这些复杂的应用数据特征是不现实的;而且将复杂的数据特征从用户端传输的应用层,会存在很大的开销。二是这类传输方案一般都需要好修改上层应用,或者定制特定功能的交换机,来完成的特定的流量调度机制,这导致这类方案很难在现在的数据中心实施。



技术实现要素:

本发明要解决的技术问题是:提供一种基于流控技术的数据中心拥塞控制方法,解决现有技术无法在不改动数据中心硬件的前提下,兼顾网络传输性能的技术问题。

为解决上述问题,本发明采用的技术方案是:基于流控技术的数据中心拥塞控制方法,包括以下步骤:

s1.数据包抵达发送方主机端的网络协议栈时,根据数据包所属应用当前累计发送到网络中的数据包个数,发送方主机端的网络协议栈动态定义数据包的优先级;

s2.数据包从发送方主机端的网络协议栈进入发送方主机端的网卡队列时,网卡队列根据数据包的优先级来确定数据包的调度顺序和丢包顺序;

s3.数据包从发送方户籍端的网卡队列进入交换机队列;

s4.按照数据包的调度顺序,数据包从交换机进入接收方主机端,接受方向发送方发送拥塞反馈信息;

s5.基于拥塞反馈信息,发送方主机端进行拥塞控制和丢包处理。

进一步的,步骤s1动态定义数据包的优先级的规则可以为:应用向网络中发送的数据包越少,其数据包的优先级就越高;应用向网络中发送的数据包越多,其数据包的优先级就越低。

进一步的,可按照数据包优先级由高到低的顺序依次出队,按照数据包优先级由低到搞得顺序依次丢弃。

进一步的,步骤s5中,若发送方接受到的拥塞反馈信息为未拥塞,则可通过lldct协议来放大短流的发送串口的大小;若发送方接受到的拥塞反馈信息为轻度拥塞,则可通过lldct协议来缩小长流的发送窗口的大小;若发送方接收到的拥塞反馈信息为重度拥塞,则按照发送方主机端网卡队列中数据包的优先级,从低到高的顺序丢弃数据包,直到网络拥塞环节到轻度拥塞。

进一步的,放大短流的发送串口的大小的方式可以为:cwnd=cwnd+k,其中cwnd为应用的发送窗口大小,k为修正参数,k>0;缩小长流的发送窗口的方式可以为:cwnd=cwnd*(1-b/2),其中cwnd为应用发送窗口大小,b为修正参数,0<b<1。

本发明的有益效果是:

1、本发明通过从交换机解耦主机端的流量调度,通过将网络中的丢包转移至发送方主机端网卡队列中,可有效缓解网络丢包,提高网络资源利用率;在主机端利用最少获得服务优先算法,在交换机端利用先进先出算法,不仅能使本发明能适用于任何复杂应用的数据中心,并获得近似最优的网络传输性能。

2、本发明通过两种反馈调节机制,将拥塞反馈控制应用于流量调节,避免了现有基于内网优先级流量调节算的缺陷,同时获得与内网优先级流量调度算法同样有效的网络传输性能。

附图说明

图1是实施例的流程图。

图2是实施例提供的两个拥塞反馈控制机制示意图。

具体实施方式

解决现有技术无法在不改动数据中心硬件的前提下,兼顾网络传输性能的技术的问题,本发明公开了一种基于流控技术的数据中心拥塞控制方法,以下从两个方面来说明本发明的方案:

第一方面,提供一种数据中心网络中基于主机端流量调度的传输控制方法,步骤如下:

s1.数据包抵达发送方主机端的网络协议栈时,根据所属数据包所属应用单签累计发送到网络中的数据包个数,发送方主机端的网络协议栈定义数据包的优先级。其中,动态定义数据包的优先级的规则可以为:应用向网络中发送的数据包越少,其数据包的优先级就越高;应用向网络中发送的数据包越多,其数据包的优先级就越低。在定义数据包的优先级后,将该优先级存储到数据包ip头部的dscp域中。

s2.数据包从发送方主机端的网络协议栈进入发送方主机端的网卡队列时,网卡队列根据数据包的优先级来确定数据包的调度顺序和丢包顺序。调度顺序即从交换机队列出队的顺序,按照数据包优先级由高到低的顺序依次出队,丢包顺序即从发送方主机端网卡队列丢弃数据包的顺序,按照数据包优先级由低到搞得顺序依次丢弃。

s3.数据包从发送方主机端的网卡队列进入交换机队列。

s4.按照数据包的调度顺序,数据包从交换机队列进入接收方主机端,接收方向发送发发送拥塞反馈信息。

其中,交换机可以为小缓存交换机;

拥塞信息分为三种:未拥塞,轻度拥塞,重度拥塞;

拥塞判断依据为:未拥塞,发送方收到的ack包不带ecn拥塞标志;轻度拥塞,发送方收到的ack带ecn拥塞标志,短流的数据包未出现超时;重度拥塞,发送方收到的ack包带ecn拥塞标志,短流的数据包出现超时;

若发送方接受到的拥塞反馈信息为未拥塞,则可通过lldct协议来放大短流的发送串口的大小;若发送方接受到的拥塞反馈信息为轻度拥塞,则可通过lldct协议来缩小长流的发送窗口的大小;若发送方接收到的拥塞反馈信息为重度拥塞,则按照发送方主机端网卡队列中数据包的优先级,从低到高的顺序丢弃数据包,直到网络拥塞环节到轻度拥塞。其中,放大短流的发送串口的大小的方式可以为:cwnd=cwnd+k,其中cwnd为应用的发送窗口大小,k为修正参数,k>0。缩小长流的发送窗口的方式可以为:cwnd=cwnd*(1-b/2),其中cwnd为应用发送窗口大小,b为修正参数,0<b<1。

s5.基于拥塞反馈信息,发送方主机端进行拥塞控制和丢包处理。

第二方面,提供一种计算机刻度存储介质,该计算机刻度存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现第一方面所述的传输控制方法。

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例

图1为本发明实施例提供的一种数据中心网络基于主机端流量调度的传输控制方法的流程图。如图1所示,该方法包括以下步骤:

s1.数据包抵达发送方主机端的网络协议栈时,根据数据包所属应用当前累计发送到网络中的数据包个数,发送方主机端的网络协议栈动态定义数据包的优先级;

s2.数据包从发送方主机端的网络协议栈进入发送方主机端的网卡队列时,网卡队列根据数据包的优先级来确定数据包的调度顺序和丢包顺序;

s3.数据包从发送方户籍端的网卡队列进入交换机队列;

s4.按照数据包的调度顺序,数据包从交换机进入接收方主机端,接受方向发送方发送拥塞反馈信息;

s5.基于拥塞反馈信息,发送方主机端进行拥塞控制和丢包处理。

步骤s1,数据包的优先级可定义为所属应用当前累计发送到网络中的数据包个数,因此,赢用想网络中发送的数据包越少,其数据包的优先级就越高;应用向网络中发送的数据包越多,其数据包的优先级就越低。

发送方主机端的网络协议栈具体为linux网络协议栈,利用linux内核的netfilter框架来对数据包进行优先级编码,即根据数据包所属应用累积发送到网络中数据流的大小,来为没个数据包进行编辑优先级,并将该优先级存储到数据包ip头部的dscp域中。

数据包ip头部的服务类别tos标识域包括两部分:dscp(6比特)+ecn(2比特),其中dscp(查分服务代码点)用于区分服务的优先级,ecn(显式拥塞通知)用于实现显式拥塞通知的功能。

结合linux网络协议栈netfilter框架,根据数据包的优先级和拥塞反馈信息,实施例可以对所有数据包的调度顺序和丢包顺序进行调整。

步骤s2,调度顺序即从交换机队列出队的顺序,按照数据包优先级由高到低的顺序依次出队。丢包顺序即从发送方主机端网卡队列丢弃数据包的顺序,按照数据包优先级由低到高的顺序依次丢弃。

由于是基于主机端的流量调度,因此不首先由交换机支持优先级队列数量的限制,因此实施例在主机端能够获得近似最优的调度顺序,让数据量小的应用优先占用网络资源发送数据包,能最优化网络传输性能,因此,实施例能获得近似最优的传输性能。

步骤s3,实施例使用小缓存交换机,并且在交换机中使用单一的先进先出队列,来实现交换机低的计算和设计开销,并且使用得实施例能适用于任何复杂的数据中心,所有应用的数据包在交换机队列中,不区分优先级。

步骤s4,每个支持显示拥塞通知ecn机制的交换机缓存中保存了一个显示拥塞通知ecn门限值。当交换机端口的数据包的个数超过该们限制时,交换机会在每个数据包的头部的ecn域标识拥塞。接受方收到带有ecn拥塞标识的数据包后,会在反馈给发送方的数据包ack的ip头部标识拥塞。

未拥塞的判断依据为:发送方主机端的网卡队列长度超过ecn门限值,此时,发送方收到的ack包不带ecn拥塞标志。

步骤s5,发送方基于拥塞反馈信息,就能知道在上一次传输中网络的拥塞状态,并采用相应的措施,具体如下:

若发送方接收端熬拥塞反馈信息为未拥塞,则通过lldct协议来放大短流的发送窗口的大小。

图2为实施例提供的两个拥塞反馈控制机制示意图,如图2所示,长虚线标识,当发送方收到带有ecn拥塞标志的ack,但是时延敏感应用的数据包没有出现超时,说明网络出现轻度拥塞,此时,利用数据中心传输协议lldct来试试拥塞控制。短虚线表示,当发送方收到带有ecn拥塞标志的ack,同时时延敏感应用的数据包出现超时,说明网络出现重度拥塞,此时,丢弃主机端网卡队列中最低优先级的数据包,直到网络拥塞缓解到轻度拥塞。

通过将网络中的丢包转移至发送方主机端网卡队列中,可有效缓解网络丢包,提供网络资源利用率。对于丢弃的数据包,利用lldct协议实施丢包恢复策略。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1