发明名称 基于SCTP的ForCES传输映射层的带宽分配方法
摘要 本发明公开了一种基于SCTP的ForCES传输映射层的带宽分配方法。本发明包括如下步骤:1)初始时分别为控制消息、事件消息、重定向消息建立队列,调度模块为三类队列设置初始调度概率;2)队列管理模块根据实际队列缓存情况,计算出因队列长度变化引起的丢包概率;3)速率估算模块计算出消息流的到达速率和因消息流到达速率变化引起的丢包概率;4)调度模块根据上述两个丢包概率计算出总丢包概率,根据总丢包概率决定消息是否入队,同时为三类消息队列重新计算调度概率;5)调度模块根据重新计算出的调度概率分配链路带宽。本发明采用基于速率和缓存控制的动态概率调度来分配控制件和转发件之间的链路带宽,提升了带宽利用性能。
申请公布号 CN102752192B 申请公布日期 2015.06.03
申请号 CN201210127690.8 申请日期 2012.04.27
申请人 浙江工商大学 发明人 诸葛斌;王伟明;宋换换
分类号 H04L12/70(2013.01)I 主分类号 H04L12/70(2013.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 杜军
主权项 基于SCTP的ForCES传输映射层的带宽分配方法,其特征在于该方法包括以下步骤:步骤(1).传递ForCES协议消息的ForCES接口被进一步分为协议层和传输映射层;ForCES协议消息的类型可分为控制消息、事件消息、重定向消息三类;首先,初始时分别为控制消息、事件消息、重定向消息三类不同的消息流各自建立一个消息队列,并根据初始时三类消息重要程度的不同,调度模块设定控制消息队列的初始调度概率为0.7,事件消息队列的初始调度概率为0.2,重定向消息的初始调度概率为0.1;然后,调度模块根据三类消息队列的初始调度概率进行带宽分配并开始传输消息,控制消息所占初始带宽B<sub>c</sub>=p<sub>c</sub>×B、事件消息所占初始带宽B<sub>e</sub>=p<sub>e</sub>×B、重定向消息所占初始带宽B<sub>d</sub>=p<sub>d</sub>×B;其中,p<sub>c</sub>为控制消息的传输概率,p<sub>e</sub>为事件消息的传输概率,p<sub>d</sub>为重定向消息的传输概率,B为控制件通信时允许的最大带宽;步骤(2).队列管理模块根据消息队列缓存的当前实际占用情况,计算出因当前消息队列缓存长度变化引起的丢包概率p<sub>q_dp</sub>;队列管理模块分别设置各个消息队列缓存长度的最小缓冲阀值Min<sub>thd</sub>和最大缓冲阀值Max<sub>thd</sub>,并通过队列管理模块获得当前消息队列的实际缓存占用信息,然后与之前设定的最小缓冲阀值Min<sub>thd</sub>和最大缓冲阀值Max<sub>thd</sub>作比较;若消息队列长度超过最大缓冲阀值Max<sub>thd</sub>,则说明该消息通道已经出现拥塞现象,直接丢弃该消息,所以此时丢包概率p<sub>q_dp</sub>=1;若消息队列长度小于最小缓冲阀值Min<sub>thd</sub>,则说明该消息通道没有发生拥塞现象,到达的消息队列全部被获准进入当前消息队列,所以此时丢包概率p<sub>q_dp</sub>=0;若消息队列长度介于最大缓冲阀值Max<sub>thd</sub>和最小缓冲阀值Min<sub>thd</sub>之间,则此时丢包概率p<sub>q_dp</sub>计算如下:p<sub>q_dp</sub>=a(x‑t)<sup>2</sup>;其中,a是常数,x表示当前消息队列的长度,Min<sub>thd</sub><x<Max<sub>thd</sub>,t=Min<sub>thd</sub>;步骤(3).当有新的消息包到达时,速率估算模块采用指数平均算法估算出控制消息、事件消息、重定向消息三类不同消息包的平均到达速率,然后根据各类消息包的平均到达速率和该类消息队列当前的最大服务速率ω计算出因各类消息包的到达速率变化引起的丢包概率p<sub>r_dp</sub>;各类消息包平均到达速率r<sub>new</sub>具体计算如下:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>r</mi><mi>new</mi></msub><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&alpha;</mi><mo>)</mo></mrow><mfrac><msub><mi>l</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><msub><mi>T</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub></mfrac><mo>+</mo><mi>&alpha;</mi><mo>&times;</mo><msub><mi>r</mi><mi>old</mi></msub><mo>;</mo></mrow>]]></math><img file="FDA0000617087030000021.GIF" wi="511" he="135" /></maths>其中,<img file="FDA0000617087030000022.GIF" wi="151" he="82" />为指数权值,r<sub>old</sub>是新的消息包到达之前消息流的平均到达速率,T<sub>k+1</sub>=t<sub>k+1</sub>‑t<sub>k</sub>,表示第k+1个消息包和第k个消息包到达的间隔时间,l<sub>k+1</sub>表示第k+1个消息包的长度,K是一个常数;根据当前各类消息包平均到达速率r<sub>new</sub>和当前该消息队列的最大服务速率ω,获得当前消息流的服务速率min(r<sub>new</sub>,ω);若r<sub>new</sub><ω,则所有的消息包都会被入队发送;若r<sub>new</sub>>ω,则有<img file="FDA0000617087030000023.GIF" wi="152" he="122" />个消息包将被丢弃,根据前面的两种情况,所有消息流中消息包的丢弃概率<img file="FDA0000617087030000024.GIF" wi="526" he="131" />步骤(4).调度模块根据步骤(2)和步骤(3)计算得到的两种丢包概率,计算出三类消息各自的总丢包概率为p<sub>dp</sub>=p<sub>q_dp</sub>·p<sub>r_dp</sub>,根据各类消息总丢包概率p<sub>dp</sub>来决定该类消息是否可以入队,①.若消息类型为控制消息,则根据总丢包概率p<sub>dp</sub>改变控制消息的传输概率p<sub>c</sub>,设置阀值p<sub>thd</sub>,其中p<sub>c</sub>的调整方法如下:a.若p<sub>dp</sub>>p<sub>thd</sub>,为了保证控制消息的传输,增大p<sub>c</sub>,增大p<sub>c</sub>的计算如下:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msubsup><mi>p</mi><mi>c</mi><mi>new</mi></msubsup><mo>=</mo><mi>min</mi><mrow><mo>(</mo><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>&Delta;p</mi><mo>)</mo></mrow><mo>&times;</mo><msub><mi>p</mi><mi>c</mi></msub><mo>,</mo><mn>1</mn><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000617087030000025.GIF" wi="626" he="79" /></maths>其中,Δp=p<sub>dp</sub>‑p<sub>thd</sub>,<img file="FDA0000617087030000026.GIF" wi="92" he="66" />为增大后的p<sub>c</sub>,且小于等于1,即<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msubsup><mi>p</mi><mi>c</mi><mi>new</mi></msubsup><mo>=</mo><mi>min</mi><mrow><mo>(</mo><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>&Delta;p</mi><mo>)</mo></mrow><mo>&times;</mo><msub><mi>p</mi><mi>c</mi></msub><mo>,</mo><mn>1</mn><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000617087030000027.GIF" wi="601" he="91" /></maths>b.当p<sub>dp</sub>=0,且<img file="FDA0000617087030000028.GIF" wi="118" he="98" />时,为充分利用带宽资源,则减小参数p<sub>c</sub>,即将p<sub>c</sub>乘以参数λ,0<λ<1,减小p<sub>c</sub>的计算如下:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msubsup><mi>p</mi><mi>c</mi><mi>new</mi></msubsup><mo>=</mo><mi>max</mi><mrow><mo>(</mo><mn>0.5</mn><mo>,</mo><msub><mi>p</mi><mi>c</mi></msub><mo>&times;</mo><mi>&lambda;</mi><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000617087030000031.GIF" wi="550" he="84" /></maths>c.若此时事件消息和重定向消息中其一通道为空,则事件消息的传输概率<img file="FDA0000617087030000032.GIF" wi="318" he="83" />重定向消息的传输概率<img file="FDA0000617087030000033.GIF" wi="201" he="85" />或者事件消息的传输概率<img file="FDA0000617087030000034.GIF" wi="215" he="87" />重定向消息的传输概率<img file="FDA0000617087030000035.GIF" wi="325" he="91" />即把剩余带宽全部分配给非空消息通道;d.若此时事件消息和重定向消息都为非空,则根据通道优先级,把除了控制消息带宽以外的剩余带宽按一定比例分配给事件消息通道和重定向消息通道;分配方式如下:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msubsup><mi>p</mi><mi>e</mi><mi>new</mi></msubsup><mo>=</mo><mi>&beta;</mi><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msubsup><mi>p</mi><mi>c</mi><mi>new</mi></msubsup><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000617087030000036.GIF" wi="438" he="94" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msubsup><mi>p</mi><mi>d</mi><mi>new</mi></msubsup><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&beta;</mi><mo>)</mo></mrow><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msubsup><mi>p</mi><mi>c</mi><mi>new</mi></msubsup><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000617087030000037.GIF" wi="516" he="94" /></maths>其中0<β<1,并且根据实际情况和优先级,参数β的大小可以被控制调整,<img file="FDA0000617087030000038.GIF" wi="96" he="71" />为调整后p<sub>e</sub>的大小,<img file="FDA0000617087030000039.GIF" wi="110" he="76" />为调整后p<sub>d</sub>的大小,且<img file="FDA00006170870300000310.GIF" wi="92" he="71" />和<img file="FDA00006170870300000311.GIF" wi="96" he="77" />的调整方法在除去<img file="FDA00006170870300000312.GIF" wi="78" he="67" />的传输概率基础上与<img file="FDA00006170870300000313.GIF" wi="80" he="67" />相同;②若消息类型为事件消息或者重定向消息,则分别根据它们各自的总丢包概率p<sub>dp</sub>=p<sub>q_dp</sub>·p<sub>r_dp</sub>来决定该类消息是否可以入队即可,若事件消息的总丢包概率为p<sub>dp</sub>,则就以p<sub>dp</sub>的概率随机丢弃到来的事件消息;若重定向消息的总丢包概率为p<sub>dp</sub>,则就以p<sub>dp</sub>的概率随机丢弃到来的重定向消息;步骤(5).调度模块根据重新计算出来的三类消息队列的调度概率与总带宽的乘积重新分配链路带宽来传输消息,具体分配过程如下:控制消息分配的新带宽为:B<sub>c</sub><sup>new</sup>=p<sub>c</sub><sup>new</sup>×B事件消息分配的新带宽为:B<sub>e</sub><sup>new</sup>=p<sub>c</sub><sup>new</sup>×B重定向消息分配的新带宽为:B<sub>d</sub><sup>new</sup>=p<sub>d</sub><sup>new</sup>×B分配结束后,循环执行步骤(2)。
地址 310018 浙江省杭州市下沙高教园区学正街18号