发明内容
为实现上述目的,本发明公开了一种带宽动态分配方法,用于动态分配分布式设备交换网带宽,从而对有限的出口带宽实现合理分配与有效利用,并预先避免拥塞的发生。
本发明的另一目的在于提供一种实现本发明分布式设备交换网带宽动态分配方法的分布式设备交换网带宽动态分配装置。
本发明的再一个目的在于提供一种具有本发明带宽动态分配装置的交换设备。
为实现上述目的,本发明的技术方案如下:
本发明的带宽动态分配方法,用于动态分配分布式设备交换网的带宽,所述交换网的目的端每隔设定时间间隔将总出口带宽向各源端口进行一次分配,各源端口可被分给的最大带宽为该源端口的最大配置带宽,所述带宽分配基于各源端口的拥塞状态与测量带宽,包括步骤:
S100:基础带宽分配,为各源端口分配满足所述源端口最基本带宽需求的出口带宽;
S200:剩余带宽分配,如果总出口带宽在基础带宽分配后仍有剩余,则为至少包括报告拥塞的源端口在内的源端口分配剩余带宽,直至所有带宽分配完毕,且已获得所述最大配置带宽的源端口退出后续的剩余带宽分配。
本发明的带宽动态分配方法,其中,对测量带宽小于设定的带宽精度的源端口,所述目的端不为其分配基础带宽;在步骤S100中包括步骤S110:对报告拥塞的源端口,所述目的端以该源端口的配置带宽为其分配基础带宽。
本发明的带宽动态分配方法,其中,所述步骤S110之后还进行步骤:
S120:对测量带宽大于配置带宽的源端口,所述目的端以该配置带宽为其分配基础带宽;
S130:对测量带宽小于配置带宽且小于前次分配带宽但大于设定的带宽精度的源端口,所述目的端以该测量带宽为其分配基础带宽;
S140:对测量带宽等于前次分配带宽的源端口,所述目的端以该测量带宽为其分配基础带宽。
本发明的带宽动态分配方法,其中,参与所述剩余带宽分配的源端口还包括测量带宽大于配置带宽的源端口,参与剩余带宽分配的各源端口平均分配所述剩余带宽。
本发明的带宽动态分配方法,其中,所述步骤S200后还进行步骤S300:将所述源端口的分配带宽,换算成令牌数,更新所述源端口的令牌桶,通过所述令牌桶控制下一时间间隔内所述源端口的数据发送速率。
本发明的带宽动态分配方法,其中,所述源端口通过向所述目的端发送FCN报文报告拥塞。
实现本发明另一目的的技术方案如下:
本发明的带宽动态分配装置,用于动态分配分布式设备交换网带宽,所述动态分配装置包括:
分配控制模块,用于将目的端的总出口带宽向各源端口分配,并输出各源端口获得的出口带宽;
分配触发模块,在设定时间间隔到来时,触发所述分配控制模块进行所述分配;
带宽统计模块,统计各源端口的实际出口带宽,并向所述分配控制模块输入各端口的测量带宽;
拥塞监控模块,监控各源端口的拥塞状态,并向所述分配控制模块输入各端口的拥塞状态;
所述分配控制模块包括:基础带宽分配单元,分配并输出各源端口满足各自最基本带宽需求的基础带宽;剩余带宽分配单元,如果总出口带宽在基础带宽分配单元分配后仍有剩余,则为至少包括报告拥塞的源端口在内的源端口分配剩余带宽,直至所有带宽分配完毕,并输出各源端口获得的剩余带宽,已获得最大配置带宽的源端口退出后续的剩余带宽分配。
本发明的交换设备,用于分布式设备交换网,具有本发明的带宽动态分配装置。
本发明的优点和有益效果在于:本发明提供了一种分布式设备交换网带宽分配方法及其分配装置,实现了带宽的动态分配。本发明采用一种测量-预测的分布式设备交换网带宽动态分配方法,将有限的出口带宽合理分配给各个入接口。该方法根据当前时间内测量的结果预测未来一个周期内的行为,可预先避免拥塞的发生。有效的利用有限的带宽资源,提高了网络单元间数据传输的效率,增强了分布式设备交换网的性能。
具体实施方式
下面将结合附图及具体实施例对本发明作进一步说明。
本说明书中,配置带宽,由用户进行配置,缺省情况下,由各个源端口平均分配总出口带宽而得到。
测量带宽,即某一时间间隔内的实际出口带宽,由实时测量每个源端口的在某一时间间隔内的出口带宽得到,是带宽动态分配的输入。
分配带宽,本发明带宽动态分配方法分配给各个源端口的带宽,包括分得的基础带宽与剩余带宽之和,剩余带宽是指总出口带宽经基础带宽分配后的所剩余的出口带宽。部分源端口分得的基础带宽等于配置带宽,所以,分配带宽既可以大于配置带宽,也可以小于配置带宽。因受源端口、目的端之间的网络属性及端口吞吐能力限制,每一源端口的分配带宽不能超过该源端口的最大配置带宽,超过部分对源端口来说毫无意义,同时也浪费了其他端口对该超过部分带宽的利用机会。前次分配带宽是指本次分配之前的最后一次分配所分得的带宽,通常,在一个时间间隔内,源端口只能以分配带宽为限,向目的端传送该数据,因此某一源端口的测量带宽总是小于或等于前次分配带宽。如果源端口的待发送数据大于或远大于该前次分配带宽,则会报告拥塞。
拥塞状态通知报文(FCN,Flow Congest Notification):用于源端口向目的端报告所述源端口处于拥塞状态的报文。
如图1所示,在分布式设备交换网中,各个网络单元同时是发送数据的源端,也是接收数据的目的端。每一目的端,均给向其发送数据的源端分配出口带宽。初始情况下,各源端口的带宽遵循公平分配的原则,即几个源端口平均分配或按权重比例分配出口带宽,该权重比例参数用户可以进行配置。
本发明的分布式设备交换网带宽动态分配方法,每隔设定时间间隔便对带宽进行一次重新分配。本发明优选实施例的设定时间间隔是一个固定的周期,T=4096纳秒。本发明的分布式设备交换网带宽动态分配方法,也可以依据网络运行特点及端口间数据流波动规律,生成一个间隔不固定的时刻序列,在该时刻序列中的时刻到来时进行带宽重新分配。数据流相对平稳的时段,可以有较大的时间间隔;而在数据流变化频繁的时段,相应的缩小时间间隔。
本发明的带宽分配方法的输入包括两部分:各个源端口的拥塞状态和测量带宽(即设定时间间隔内对应的出口带宽)。如果收到某源端口发送的FCN报文,则认为该源端口处于拥塞状态,即该源端口报告拥塞;为保证目的端及时了解各源端口的拥塞状态,目的端收到源端口的实时发送的FCN报文,会把源端口的拥塞状态缓存下来,直到定时周期到达,将所有缓存的拥塞状态作为本发明带宽动态分配方法的输入。
本发明优选实施例的分布式设备交换网带宽动态分配方法,在出口处定时测量各个源端口发送的流量,定时周期T到达时,即得到测量带宽,将各个源端口的测量带宽提供给带宽动态分配方法的输入,并将各个源端口发送的带宽清0,重新进行统计。
如图2所示,带宽分配控制过程触发条件是定时周期T到达,按照下面的分配方法进行带宽分配,包括步骤:
S100:基于各源端口的拥塞状态与测量带宽,为各源端口分配满足该源端口最基本带宽需求的基础带宽;
S200:为至少包括报告拥塞的源端口在内的源端口分配剩余带宽,已获得所述最大配置带宽的源端口退出后续的剩余带宽分配,直至所有带宽分配完毕。
步骤S100中,为报告拥塞的源端口,以该源端口的配置带宽为其分配基础带宽。对测量带宽小于设定的带宽精度的源端口,即该源端口基本上未使用前次分配带宽,如再给其多分配带宽,势必造成带宽的浪费,所以不为其分配基础带宽。本发明实施例的带宽动态分布方法中,在总出口带宽精度为10G的情况下,设定带宽精度为2M。
如图3所示,本发明优选实施例的带宽动态分配方法,基础带宽的分配,及步骤S100包括步骤,
S110:对报告拥塞的源端口,以该源端口的配置带宽为其分配基础带宽;
S120:对测量带宽大于配置带宽的源端口,以该配置带宽为其分配基础带宽;
S130:对测量带宽小于配置带宽且小于前次分配带宽但大于设定的带宽精度的源端口,以该测量带宽为其分配基础带宽;
S140:对测量带宽等于前次分配带宽的源端口,以该测量带宽为其分配基础带宽。
不满足上面的条件的源端口,则不为其分配基础带宽。
分配基础带宽后,如果总出口带宽仍有剩余,则进行剩余带宽分配,这里可采取平均分配的原则,也可以按一定比例分配的原则。根据各个源端口的拥塞状态和测量带宽决定是否参与剩余带宽分配。
本发明优选实施例的带宽动态分配方法,由报告拥塞的源端口和测量带宽大于配置带宽的源端口参与剩余带宽分配,在所有源端口都不满足上述条件的情路下,所有源端口均参与剩余带宽分配。在报告拥塞的源端口和测量带宽大于配置带宽的源端口已获得最大配置带宽的情况下,由其他源端口平均分配余下的剩余带宽,直至剩余带宽分配完毕。对于报告拥塞的源端口,势必应该给其多分配带宽,以缓解其拥塞;同时,若某一源端口的测量带宽大于配置带宽,则说明该源端口的流量仍然处于较高水平,给其多分配带宽,可以有效的预防其在下一周期发生拥塞。
本发明的带宽动态分配方法,也可以先只允许报告拥塞的源端口参与剩余带宽分配,在报告拥塞的源端口均已获得最大配置带宽的情况下,由其他源端口平均分配余下的剩余带宽。
本发明的带宽动态分配方法,在没有源端口报告拥塞,也没有源端口的测量带宽大于配置带宽的情况下,所有源端口均参与剩余带宽的分配。
剩余带宽为总出口带宽减去各个源端口分配的基础带宽,参与剩余带宽分配的源端口可公平分配总剩余带宽,也可以按比例分配,例如可以给处于拥塞状态的源端口分配两倍于其他源端口的剩余带宽。因此各个源端口获得的分配带宽为:基础分配带宽+剩余分配带宽(如果有的话),如果某源端口获得的分配带宽大于该源端口的最大配置带宽,则为其分配最大配置带宽,该差额的出现,使得剩余带宽在经过第一次分配后还有剩余,为了避免浪费,仍需进行第二次剩余带宽分配,但禁止已获得最大配置带宽的源端口参与下一轮的剩余带宽分配。第二次分配方法与第一次分配剩余带宽分配相同,直到没有剩余带宽为止。
本发明的带宽动态分配方法,根据分配方法计算的结果,可得各个源端口在当前周期T内需要获得的带宽数,利用该结果预测下一周期各个源端口的拥塞状态。将该带宽分配给各个源端口的令牌桶,利用令牌桶控制各源端口下一时间周期T内的发送速率。
下面简介一下本发明优选实施例的带宽动态分配方法的实际分配过程。
如表1所示,在目的端对源端口0、源端口1、源端口2、源端口3和源端口4的出口带宽进行分配。总出口带宽为10.0G,带宽精度为2M。初始状态下,各源端口平均分配该总出口带宽,即各源端口的配置带宽均为2.0G。源端口0的最大配置带宽为3.0G、源端口1的最大配置带宽为5.0G、源端口2的最大配置带宽为2.2G、源端口3的最大配置带宽为6.0G、和源端口4的最大配置带宽为10.0G。
在第一个周期T结束时,源端口0报告拥塞,其他端口未报告拥塞。经统计,各源端口的测量带宽分别为2.0G、1.5G、2.0G、1.5G和1M。
首先进行基础带宽分配,报告拥塞的源端口得到等于其配置带宽的2.0G的基础带宽;源端口1和源端口3的测量带宽小于配置带宽,也即小于其前次分配带宽,所以得到等于其测量带宽(也即实际使用带宽)的1.5G的基础带宽;源端口2的测量带宽对于前次分配带宽,所以得到等于其测量带宽(也即前次分配带宽)的2.0G的基础带宽。源端口5因为其测量带宽小于设定的带宽精度,所以目的端不为其分配基础带宽。各源端口所分得的基础带宽共计7.0G,因此总出口带宽中仍有3.0G未分配,所以要进行剩余带宽分配。
其他源端口的测量带宽都未大于其各自的配置带宽,因此能够参与剩余带宽分配的源端口包括报告拥塞的源端口1。但源端口1的最大配置带宽为3.0G,已分得基础带宽2.0G,所以源端口0再分得剩余带宽1.0G后退出后续的剩余带宽分配过程,由源端口1、源端口2、源端口3和源端口4平均分配余下的2.0G出口带宽,即各得0.5G。由于源端口2的最大配置带宽只有2.2G,因此,所以源端口2分得剩余带宽1.0G后退出后续的剩余带宽分配过程,由源端口1、源端口3和源端口4进行第三次剩余带宽分配,即各自再得0.1G出口带宽。
分配结束后,各源端口依次得到3.0G、2.1G、2.2G、2.1G和0.6G的出口带宽,也即在目的端进行下一次带宽分配时的前次分配带宽。
表1
端口标识 |
配置带宽 |
最大配置带宽 |
测量带宽 |
拥塞状况 |
所得基础带宽 |
剩余带宽分配 |
分配带宽合计 |
第一次 |
第二次 |
第三次 |
源端口0 |
2.0G |
3.0G |
2.0G |
拥塞 |
2.0G |
1.0G |
0 |
0 |
3.0G |
源端口1 |
2.0G |
5.0G |
1.5G |
正常 |
1.5G |
0 |
0.5G |
0.1G |
2.1G |
源端口2 |
2.0G |
2.2G |
2.0G |
正常 |
2.0G |
0 |
0.2G |
0 |
2.2G |
源端口3 |
2.0G |
6.0G |
1.5G |
正常 |
1.5G |
0 |
0.5G |
0.1G |
2.1G |
源端口4 |
2.0G |
10.0G |
1.0M |
正常 |
0 |
0 |
0.5G |
0.1G |
0.6G |
如表2所示,在第二个周期T结束时,源端口2和源端口3报告拥塞,其他端口未报告拥塞。经统计,各源端口的测量带宽分别为2.5G、1.5G、2.2G、2.1G和0.4G。
首先进行基础带宽分配,报告拥塞的源端口2和源端口3得到等于其配置带宽的2.0G的基础带宽;源端口0的测量带宽大于配置带宽,所以得到等于其配置带宽的2.0G的基础带宽;源端口1和源端口4的测量带宽小于配置带宽,也小于其前次分配带宽,所以得到等于其测量带宽(也即实际使用带宽)的1.5G和0.4G的基础带宽;源端口2的测量带宽对于前次分配带宽,所以得到等于其测量带宽(也即前次分配带宽)的2.0G的基础带宽。各源端口所分得的基础带宽共计7.9G,因此总出口带宽中仍有2.1G未分配,所以要进行剩余带宽分配。
能够参与该次剩余带宽分配的源端口包括报告拥塞的源端口2和源端口3,以及测量带宽大于配置带宽的源端口0。但源端口2的最大配置带宽为2.2G,已分得基础带宽2.0G,所以源端口2再分得剩余带宽0.2G后退出后续的剩余带宽分配过程,由源端口0和源端口3平均分配余下的0.5G出口带宽,即各得0.25G。分配结束后,各源端口依次得到2.95G、1.5G、2.2G、2.95G和0.4G的出口带宽。
表2
端口标识 |
配置带宽 |
前次分配带宽 |
最大配置带宽 |
测量带宽 |
拥塞状况 |
所得基础带宽 |
剩余带宽分配 |
分配带宽合计 |
第一次 |
第二次 |
源端口0 |
2.0G |
3.0G |
3.0G |
2.5G |
正常 |
2.0G |
0.7G |
0.25G |
2.95G |
源端口1 |
2.0G |
2.1G |
5.0G |
1.5G |
正常 |
1.5G |
0 |
0 |
1.5G |
源端口2 |
2.0G |
2.2G |
2.2G |
2.2G |
拥塞 |
2.0G |
0.2G |
0 |
2.2G |
源端口3 |
2.0G |
2.1G |
6.0G |
2.1G |
拥塞 |
2.0G |
0.7G |
0.25G |
2.95G |
源端口4 |
2.0G |
0.6G |
10.0G |
0.4G |
正常 |
0.4G |
0 |
0 |
0.4G |
本发明的分布式设备交换网带宽动态分配方法,上面所列举的基本带宽与剩余带宽的具体分配原则只是其中一种,基于其他标准获得基础带宽和剩余带宽的具体分配原则也在本发明保护之列。
本发明的带宽动态分配装置,用于动态分配分布式设备交换网带宽。如图4所示,本发明的动态分配装置包括:
分配控制模块,用于将目的端的总出口带宽向各源端口分配,并输出各源端口获得的出口带宽;
分配触发模块,在设定时间间隔到来时,触发所述分配控制模块进行所述分配;
带宽统计模块:向分配控制模块输入各端口的测量带宽;带宽统计模块通过统计各源端口在设定时间间隔内的出口带宽得到所述源端口的测量带宽,该统计在设定时间间隔结束时清0。
拥塞监控模块:向分配控制模块输入各端口的拥塞状态;通过接收各源端口发送的FCN报文确定哪些源端口处于拥塞状态。目的端口收到FCN报文后会把该状态缓存下来,直到定时周期到达,将所有缓存的拥塞状态输入到分配控制模块中。
执行模块:按照分配控制模块的输出,将带宽分配给各源端口;
分配控制模块包括:
基础带宽分配单元:基于各源端口的拥塞状态与测量带宽,为各源端口分配满足该源端口最基本带宽需求的基础带宽;
剩余带宽分配单元:为至少包括报告拥塞的源端口在内的源端口分配剩余带宽,直至所有带宽分配完毕。
本发明实施例的带宽动态分配装置,基础带宽分配单元,对报告拥塞的源端口,输出该源端口的配置带宽;对测量带宽大于配置带宽的源端口,输出该源端口的配置带宽;对测量带宽小于配置带宽且小于前次分配带宽但大于设定的带宽精度的源端口,输出该测量带宽;对测量带宽等于前次分配带宽的源端口,输出该测量带宽;剩余带宽分配单元,还包括为测量带宽大于配置带宽的源端口分配剩余带宽,并平均分配所述剩余带宽。
如图4所示,本发明实施例的带宽动态分配装置,还包括参数设定模块,用于向分配控制模块输入基础带宽分配、剩余带宽分配的分配参数。包括剩余带宽分配时,报告拥塞的源端口与其他参与分配的源端口所分配剩余带宽的比例。
所述带宽统计模块设置有数据表,用于存储各所述源端口的最大配置带宽、配置带宽、前次分配带宽与测量带宽,给分配控制模块分配带宽提供依据。
本发明实施例的执行模块,包括在各源端口设置的令牌桶管理单元,令牌桶管理单元接收分配控制模块对带宽分配结果的广播输出,按照被分配的出口带宽一次更新源端口的令牌桶。各源端口均设置用于暂存待发送数据包的缓存队列,令牌桶中的令牌足以发送排在队列最前面的数据包时,将该数据包读出队列;如令牌桶中的令牌不足以发送该数据包,则该数据包在队列中等待。新到的数据包排在队尾等待处理,当缓存队列达到一定长度时,就向所述目的端报告拥塞,以期在下一次分配中获得较多的出口带宽以缓解源端口的拥塞。
本发明的交换设备,包括交换机和路由器,用于分布式设备交换网,具有本发明的带宽动态分配装置。
以上所述的仅为本发明的较佳可行实施例,所述实施例并非用以限制本发明的专利保护范围,因此凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。