本发明属于宽带接入技术中gpon(gigabit-capablepassiveopticalnetwork,吉比特无源光网络)技术领域,具体涉及一种gpon中动态带宽分配的改进算法。
背景技术
电信网络主要由核心网、接入网和用户驻地网组成,接入网是连接核心网和用户的网络,被称为“最后一公里”或“最初一公里”。接入网技术的主流pon(passiveopticalnetwork,无源光网络)技术已经得到了大规模的部署,包括epon和gpon技术得到了很大的发展,尤其是gpon技术已经占据了光纤接入技术的较大份额。一种有效的带宽分配机制在gpon系统中具有重要意义,它可以提高gpon的上行带宽利用率,减小网络时延,减少网络的抖动,为用户提供更好的服务,网络运营商能增加更多的用户来分享额外的带宽。
带宽分配的方式主要有静态和动态两种。静态分配实现简单,但缺点较多,不能实现带宽的统计复用,带宽利用率低,在网络业务流量具有突发性时,会使整个网络负载很低,静态分配也可能会使某些onu的某些时隙产生“溢出”的现象,导致分组传送延迟。为了有效支持多媒体业务,gpon致力于提供更高的数据传输效率和业务等级,因为为了提高带宽利用率,降低分组时延,在gpon中引入动态带宽分配机制是十分必要的。动态带宽分配(dba,dynamicbandwidthallocation)是一种在毫秒微秒的数量级下动态分配上行带宽的机制,它的带宽利用率高,能完成统计复用的tdma。olt(opticallineterminal)根据即时的网络拥塞状况给每个onu(opticalnetworkunit)逐个分配带宽,每周更新一次。但是标准的动态带宽分配算法存在两点不足:1、没有按照各t-cont的实际需求分配带宽;2、状态报告的固有时延没有考虑。所以现有的动态带宽分配算法的效率不高。
技术实现要素:
本发明针对gpon中标准动态带宽分配(dba)算法的问题,以抬高gpon带宽利用率、降低gpon系统传输时延为目标,针对现有的标准dba算法中的没有考虑各个t-cont对实际带宽的需求以及gpon中存在固有时延的问题,改进优化了gpon标准中的dba算法,提出了一种gpon中动态带宽分配的改进算法。
本发明是通过以下技术方案实现的:
一种gpon中动态带宽分配的改进算法,包括以下步骤:
第一步:为各个t-cont分配固定带宽,这是静态带宽分配,完全满足各个t-cont的要求;
bf(i)=fix(i)
bf(i)为第i个t-cont固定带宽的获得带宽,fix(i)表示第i个t-cont需要分配的固定带宽;
第二步:为各个t-cont分配确定带宽,即在确定带宽上限的范围内尽可能的满足各个t-cont的需求;
ba=min{r(i),ass(i)}
ba为确定带宽的获得带宽,min{}代表取最小值,r(i)表示第i个t-cont的带宽需求,ass(i)表示需要分配的确定带宽的上限值;
第二步分配后,仍未使用的确定带宽为:
然后更新带宽需求表:
r(i)=r(i)-bf(i)-ba(i),bf(i)表示第i个t-cont固定带宽的带宽需求;
更新预测所得的带宽需求表:
第三步:如果还有剩余带宽,即bwunused>0,就开始分配非确定带宽,在分配非确定带宽和尽力而为带宽时,需要把预测得到的需求和t-cont汇报的需求做一次比较,如果差距过大,即认为预测得到的结果不准确,那么就用t-cont汇报得到的带宽需求;如果二者的差距不大,即用预测得到的带宽需求替代t-cont汇报得到的带宽需求。这里差距是否过大的依据是比较预测得到的带宽需求与t-cont汇报得到的带宽需求之间的变化率ε:
即,如果
如果
此时开始分配非确定带宽,若
注:bna(i)表示第i个t-cont非确定带宽的获得带宽;
若
此时,还要考虑给各个t-cont分配的非确定带宽是否超过了它的带宽上限max(i),max(i)表示需要分配的最大带宽的上限值;
如果在先前分配的非确定带宽bna(i),确定带宽ba(i)与固定带宽bf(i)的和大于带宽上限max(i),即:bna(i)=max(i)-bf(i)-ba(i)
如果在先前分配的非确定带宽bna(i),确定带宽ba(i)与固定带宽bf(i)的和不大于带宽上限max(i),那么给该t-cont分配的带宽即为bna(i)本身;
此时,当前的剩余带宽更新为:
仍然没有被满足的带宽更新为:
r(i)=r(i)-bna(i)
第四步,如果剩余带宽bwunused>0就进入尽力而为带宽的分配过程,其分配方式和非确定带宽类似;先判断此时的带宽需求应该用预测值还是应该用t-cont汇报的带宽,判断方式和第三步的判断方式类似:
如果
注:rl(i)表示在经过非确定带宽分配后,在实际计算中的带宽需求;
如果
此时开始分配尽力而为带宽,若
注:bbe(i)表示第i个t-cont尽力而为带宽的获得带宽;
若
此时,还要考虑给各个t-cont分配的尽力而为带宽是否超过了它的带宽上限max(i)。
bbe(i)=min{bbe(i),(max(i)-bf(i)-ba(i)-bna(i))}
即:如果在先前分配的尽力而为带宽bbe(i),非确定带宽bna(i),确定带宽ba(i)与固定带宽bf(i)的和大于带宽上限max(i),那么给该t-cont分配的带宽不能超过带宽上限max(i),即:
bbe(i)=max(i)-bf(i)-ba(i)-bna(i)
如果在先前分配的尽力而为带宽bbe(i),非确定带宽bna(i),确定带宽ba(i)与固定带宽bf(i)的和不大于带宽上限max(i),那么给该t-cont分配的带宽即为bbe(i)本身。
此时,将当前的剩余带宽更新为:
仍未满足的带宽请求数更新为:
rl(i)=rl(i)-bbe(i)
最后,如果bwunused>0,即仍有剩余带宽,且非确定带宽或尽力而为带宽的请求未满足,则返回第三步,对非确定带宽和尽力而为进行循环分配,直到剩余带宽为0或者所有的带宽请求都已被满足,则退出循环。
本发明的优点和有益效果为:
1、采用状态报告+带宽预测的方式来分配带宽,用预测带宽修正了状态报告得到的带宽需求,减小因时延造成的误差;
2、对non-assured和best-effort这两种动态分配的带宽,采用循环级联的方式分配,使它们尽量得到满足,当分配给它们的带宽超出它们的最大带宽限制时,又将多余的带宽收回,避免了带宽浪费;
3、采用加权平均的算法对各个t-cont进行队列调度,让状态平衡的t-cont在保证自身业务有效传输的同时,能为突发流量的t-cont挤出适当的带宽,从一定程度上缓解了后者的拥塞,防止整个gpon系统的抖动;
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合具体实施例进一步说明本发明的技术方案。
一种gpon中动态带宽分配的改进算法,包括以下步骤:
第一步:为各个t-cont分配固定带宽,这是静态带宽分配,完全满足各个t-cont的要求。
bf(i)=fix(i)
注:bf(i)为第i个t-cont固定带宽的获得带宽,fix(i)表示第i个t-cont需要分配的固定带宽。
第二步:为各个t-cont分配确定带宽,即在确定带宽上限的范围内尽可能的满足各个t-cont的需求。
ba=min{r(i),ass(i)}
注:ba为确定带宽的获得带宽,min{}代表取最小值,r(i)表示第i个t-cont的带宽需求,ass(i)表示需要分配的确定带宽的上限值。
第二步分配后,仍未使用的确定带宽为:
然后更新带宽需求表:
r(i)=r(i)-bf(i)-ba(i),bf(i)表示第i个t-cont固定带宽的带宽需求。
更新预测所得的带宽需求表:
第三步:如果还有剩余带宽,即bwunused>0,就开始分配非确定带宽,在分配非确定带宽和尽力而为带宽时,需要把预测得到的需求和t-cont汇报的需求做一次比较,如果差距过大,即认为预测得到的结果不准确,那么就用t-cont汇报得到的带宽需求;如果二者的差距不大,即用预测得到的带宽需求替代t-cont汇报得到的带宽需求。这里差距是否过大的依据是比较预测得到的带宽需求与t-cont汇报得到的带宽需求之间的变化率ε:
即,如果
如果
此时开始分配非确定带宽,若
注:bna(i)表示第i个t-cont非确定带宽的获得带宽。
若
此时,还要考虑给各个t-cont分配的非确定带宽是否超过了它的带宽上限max(i)。max(i)表示需要分配的最大带宽的上限值。
bna(i)=min{bna(i),(max(i)-bf(i)-ba(i))}
即,如果在先前分配的非确定带宽bna(i),确定带宽ba(i)与固定带宽bf(i)的和大于带宽上限max(i),即:bna(i)=max(i)-bf(i)-ba(i)
如果在先前分配的非确定带宽bna(i),确定带宽ba(i)与固定带宽bf(i)的和不大于带宽上限max(i),那么给该t-cont分配的带宽即为bna(i)本身。
此时,当前的剩余带宽更新为:
仍然没有被满足的带宽更新为:
r(i)=r(i)-bna(i)
第四步,如果剩余带宽bwunused>0就进入尽力而为带宽的分配过程,其分配方式和非确定带宽类似。先判断此时的带宽需求应该用预测值还是应该用t-cont汇报的带宽,判断方式和第三步的判断方式类似:
如果
注:rl(i)表示在经过非确定带宽分配后,在实际计算中的带宽需求。
如果
此时开始分配尽力而为带宽,若
注:bbe(i)表示第i个t-cont尽力而为带宽的获得带宽。
若
此时,还要考虑给各个t-cont分配的尽力而为带宽是否超过了它的带宽上限max(i)。
bbe(i)=min{bbe(i),(max(i)-bf(i)-ba(i)-bna(i))}
即:如果在先前分配的尽力而为带宽bbe(i),非确定带宽bna(i),确定带宽ba(i)与固定带宽bf(i)的和大于带宽上限max(i),那么给该t-cont分配的带宽不能超过带宽上限max(i),即:
bbe(i)=max(i)-bf(i)-ba(i)-bna(i)
如果在先前分配的尽力而为带宽bbe(i),非确定带宽bna(i),确定带宽ba(i)与固定带宽bf(i)的和不大于带宽上限max(i),那么给该t-cont分配的带宽即为bbe(i)本身。
此时,将当前的剩余带宽更新为:
仍未满足的带宽请求数更新为:
rl(i)=rl(i)-bbe(i)
最后,如果bwunused>0,即仍有剩余带宽,且非确定带宽或尽力而为带宽的请求未满足,则返回第三步,对非确定带宽和尽力而为进行循环分配,直到剩余带宽为0或者所有的带宽请求都已被满足,则退出循环。
以上对本发明做了示例性的描述,应该说明的是,在不脱离本发明的核心的情况下,任何简单的变形、修改或者其他本领域技术人员能够不花费创造性劳动的等同替换均落入本发明的保护范围。