一种SDN环境下基于调节通告窗口方法的拥塞控制机制与流程

文档序号:15846018发布日期:2018-11-07 09:02阅读:160来源:国知局
一种SDN环境下基于调节通告窗口方法的拥塞控制机制与流程

本发明涉及sdn(software-definednetworking)以及计算机网络技术领域,实现一种sdn环境下基于调节通告窗口方法的拥塞控制机制。

背景技术

网络的吞吐量与通信子网负荷(即通信子网中正在传输的分组数)有着密切的关系。当通信子网负荷比较小时,网络的吞吐量(分组数/秒)随网络负荷(每个节点中分组的平均数)的增加而线性增加。当网络负荷增加到某一值后,若网络吞吐量反而下降,则表征网络中出现了拥塞现象。在一个出现拥塞现象的网络中,到达某个节点的分组将会遇到无缓冲区可用的情况,从而使这些分组不得不由前一节点重传,或者需要由源节点或源端系统重传。当拥塞比较严重时,通信子网中相当多的传输能力和节点缓冲器都用于这种无谓的重传,从而使通信子网的有效吞吐量下降。由此引起恶性循环,使通信子网的局部甚至全部处于死锁状态,最终导致网络有效吞吐量接近为零。

传统计算机网络使用拥塞控制和拥塞避免技术来尽量避免上述性能崩溃。在拥塞控制机制中通常tcp/ip网络将丢包作为拥塞的标志,并使用aimd(additiveincreaseandmultiplicativedecrease)算法来调节发送端的行为以期适应网络的实际状况。此方法易于实现,但是算法的精确度比较低,无法精准地反应网络的状态,丢包策略本身对充分利用网络资源也有较大的损害。随着互联网的发展,人们提出了ecn(explicitcongestionnotification)机制,即中间节点通过对数据包进行标记来反馈拥塞,而无需丢包。这实现了端到端的拥塞反馈,极大的提升了网络的效率。在ecn的基础上,人们还提出了一些拥塞控制算法致力于提升中间节点反馈网络状况的准确度。譬如,dpcp(distributedcongestion-controlprotocol)使用链式的两个数据包中的四个比特位来描述更多的网络状态;dctcp(datacentertcp)参照一组数据包中的ecn数据包的比例来反映网络的状况。dpcp,dctcp这类算法在一定程度上提高了反馈的精确度,但源端获取的依然不是十分精确的网络状况。并且这些算法需要修改现有的tcp/ip实现,导致兼容性问题的出现,从而给应用和推广带来了难度。

目前在sdn网络环境下拥塞控制的主要机制是流量的负载均衡。在该机制中,控制器会检测网络中业务流的数量种类以及网络的拓扑变化。当有业务流进入网络的时候,控制器发送命令控制交换机转发业务流数据包到负载较低的节点。进而将整个网络的负载均衡地分摊到各个交换机上面,以期充分利用网络资源获得更好的网络利用率。但是当整个网络的负载都比较高的时候,sdn网络环境下如何控制拥塞的机制还没有得到充分的研究。



技术实现要素:

本发明主要应用在sdn环境中,涉及的技术主要有:sdn,tcp拥塞控制机制,ecn机制,p4(programmingprotocol-independentpacketprocessors)中间节点编程语言,int(in-bandnetworktelemetry)技术,pi机制。

本发明克服了现有技术的局限性,提出了一种sdn环境下基于调节通告窗口方法的拥塞控制机制。本发明应用在sdn环境中,将利用sdn提供的中间节点和控制器的灵活性与可编程性,通过对中间节点和控制器进行编程,使用调节通告窗口的方法将网络的实际承载能力准确地反馈到源端节点,使源端节点能够精准地调节自己的发送速率而实现网络带宽的充分利用。

本发明包括以下步骤:

s1.管理员设定系统运行参数,如期望使用的带宽分配算法、不同业务流的优先级等。

s2.控制器收集网络状态信息并计算业务流的期望带宽。控制器收集网络的状态信息,结合管理员设定的带宽分配算法从全局的角度为每个业务流计算期望带宽,旨在降低网络拥塞的可能性及提高网络的资源利用率。为了适应不同的网络环境和应用需求,带宽分配算法是可以动态增删的。此处以平均分配带宽和按照优先级分配带宽为例来说明期望带宽的计算方法:

1.在平均分配带宽的方法中,各个业务流平均分配总的网络带宽。控制器计算期望带宽的公式为:其中be表示期望带宽的值,btotal为总的带宽值,number为网络中的业务流数目。

2.在按优先级分配带宽的方法中,业务流的优先级越高分配到的带宽值就越大。控制器计算期望带宽的公式为:其中be表示期望带宽的值,btotal为总的带宽值,p表示当前业务流的权值,ptotal表示所有的业务流的权值总和,表示当前业务流所占的权值比重。

s3.控制器根据期望带宽计算并下发期望通告窗口。控制器根据业务流的期望带宽结合网络的状态信息计算出业务流的期望通告窗口,并将期望通告窗口的值通过pi(protocolindependentapi)机制下发给交换机。pi机制定义了一系列协议无关的和交换机交互的api。它为控制器对交换机的控制提供了极大的便利。

s4.交换机修改数据包通告窗口。交换机根据下发的信息使用调节通告窗口的方法修改数据包的通告窗口来将网络的实际状况精确地反馈到源端节点。

源端节点接收到交换机发来的数据包时,并不知道数据包是否经过修改,只是按照原有的tcp拥塞控制逻辑调整发送的速率。源端节点将会在通告窗口的影响下,更好地感知网络的实际承载能力,进行更合理的发送速率的调节,进而充分利用网络资源,提高利用率。

本发明首次提出了一种sdn环境下基于调节通告窗口方法的拥塞控制机制。该机制充分借助和发挥了现有网络技术的优势:从运行环境上来说,本发明运行在sdn下以便利用其带来的数据平面和控制平面的可编程性和灵活性;从编程语言上面来说,本发明使用p4这样一种对中间节点编程的语言,以一个统一的“匹配转发”机制消除了处理不同网络协议的数据包的复杂性;从调节源端节点的方法上来说,本发明使用了调节通告窗口的方法在无需修改源端节点现有tcp实现的情况下更加精确地将网络状态反馈到源端节点;在通信方式上,本发明使用了pi这样一种协议无关的通信机制,使网络协议对交换机透明,并有着快速、准确、节省网络带宽的特点。

该机制使源端节点获得更精确的网络状况,从而精准地调节发送速率,来更好地适应网络的变化达到提高网络资源利率的要求。该方法无需修改源端节点现有拥塞控制逻辑的实现,能够很好地适应现有的网络,兼容性良好。此外,该方法还能够很好地解决ecn与non-ecn流共存时的不公平性问题,极大地缓解了ecn对non-ecn流的抑制。

附图说明

图1为本发明sdn环境下基于调节通告窗口方法的拥塞控制机制的流程图。

图2本发明sdn环境下基于调节通告窗口方法的拥塞控制机制的工作环境示意图。

具体实施方式

结合以下具体实施示例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。

如图1所示本发明可分为四个主要的步骤:①管理员设置运行参数;②控制器计算期望带宽;③控制器计算并下发期望通告窗口;④交换机修改数据包通告窗口。整个发明工作在图2所示的工作环境中。从图2中可以看到源端节点(主机)通过中间节点连接在一起组成网络。整个网络的运行在控制器的管理之下。交换机和控制器之间通过pi机制进行通信。当网络中有新的数据流通过的时候,交换机会将数据流信息上报给控制器。当控制器想要控制交换机时,其会使用pi机制修改交换机中的表项来控制交换机行为。

为进一步描述本发明的执行过程,此处以图1为基础扩展讲述一下。在工作流程图中,入口点s1处管理员设定必要的运行参数,如业务流的带宽分配方法、业务流的优先级等。常见的业务流带宽分配方法有公平分配带宽、按照优先级分配带宽等。带宽分配方法的选择是一个可拓展的模块,为了适应不同的网络环境和工作需求,管理员可以动态的添加和删除方法。管理员通过修改控制字段bandwidth_scheme来设定不同的分配方法,如当bandwidth_scheme为1时表示采用业务流公平分配带宽的方法。

在业务流按照优先级分配带宽的方法中,管理员还要为业务流设置不同的优先级,优先级越高的业务流分配到的带宽越大。当新的业务流进入到网络中时,控制器会为该业务流分配一个唯一的id,和配置不同的方法类似管理员也是通过修改字段来设定业务流的优先级。在配置好处理策略之后整个系统便开始了工作。

s2.当有新的业务流进入网络的时候,控制器会判断业务流是否需要使用配置的特殊的业务流处理策略,如果不需要则使用传统的业务流处理策略(如ecn或者简单的丢包机制)。控制器通过int收集网络中各个节点的信息,如rtt,平均队列长度等,以便进一步的计算。int框架旨在借助普通的数据包收集网络中节点的状态信息。int框架中有收集者和提供者两个角色,收集者是想要收集信息的节点,提供者是提供信息的节点,它们是多对多的关系。收集者设置数据包中int标志位,提供者根据标志位填写状态信息。不同的状态信息需要不同的标志位。更具体来说控制器作为一个收集者会设置平均队列长度、数据包处理平均时间等标志位,中间节点收到此类的数据包之后就会填充对应信息。

得到网络的状态信息后,控制器使用配置好的数据流处理方法计算期望带宽。为了叙述方便我们以业务流公平分配带宽、按照优先级分配带宽的方法为例讲述s2中具体的期望带宽计算方法。

s201.在各个业务流公平分配带宽的方法中,各个业务流平均分配总的带宽。控制器通过公式计算出期望带宽值,其中be表示期望带宽的值,btotal为总的带宽值,number为网络中的业务流数目,所以本公式计算出来的be也就是在各个业务流平均分配总的带宽的情况下应该分配到的带宽值。

s202.在业务流按照优先级分配带宽的方法中,业务流按照优先级来分配带宽,优先级越高分配到的带宽值就越大。控制器通过公式计,其中be表示期望带宽的值,btotal为总的带宽值,p表示当前业务流的权值,ptotal表示所有的业务流的权值总和,表示当前业务流所占的权值比重。

s3.控制器依据所计算出的期望带宽值确定对应的期望通告窗口大小。根据上一步骤中得出的be,通过公式计算出期望通告窗口的值。其中rtt为往返时间,mtu为网络中最大数据包长度,wa为数据包中原本的通告窗口值。也就是取与数据包中原始的通告窗口值的小者,作为最终的要设置到通告窗口中的数值。这样做是为了防止发送方发送超过接收方承受能力的数据致使数据丢失。计算出通告窗口的数值之后,控制器利用pi机制通过交换机中提前暴露出的操作表的接口修改表中的数据。详细来说控制器生成并下发上一步骤中计算得出的we到交换机的对应表中,来控制交换机的行为进而控制源端节点的行为。

s4.交换机修改数据包通告窗口。交换机在处理数据包的时候,每处理一个数据包都是一次解析,匹配,修改,转发的过程。交换机拿到上一步骤中控制器写入其表项中的数据,解析表项并按照配置好的规则进行数据包的字段和表项的字段匹配,然后根据匹配的结果进行处理。如果匹配成功,交换机修改数据包的通告窗口字段为we。修改完通告窗口后,交换机将数据包转发到相应的端口;如果有所表项都没有匹配,交换机将数据包作为普通的数据包(不采取特殊操作)转发到对应的端口。交换机处理数据包时,不关心ecn标志位是否设置且不会优先存储ecn流的数据包,从而解决了ecn流与non-ecn流共存时的不公平性问题。

源端节点接收到交换机发来的数据包时,并不知道数据包是否经过修改,只是按照原有的tcp拥塞控制逻辑调整发送的速率。源端节点将会在通告窗口的影响下,更好地感知网络的实际承载能力,进行更合理的发送速率的调节,进而充分利用网络资源,提高利用率。

本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。

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