作者简介:张海旸(1977-),男,副教授,博士.研究方向:多媒体网络,云计算,SDN网络.E-mail:zhhy@bupt.edu.cn
针对视频云中大规模视频流服务,带宽提前预留存在阻塞率高、带宽利用率低等问题,提出了一种基于时间约束的延展性带宽预留策略。利用视频流服务对带宽资源需求的可伸缩性,定义了有限延展带宽预留模型。基于此模型提出基于时间约束的带宽碎片调整策略,以减少碎片率。鉴于视频流多径服务的特点,提出多径模式下的预留算法,以提高预留成功率。实验结果表明:与其他带宽预留策略相比,本文方法可以在保证视频服务QoS的前提下,获得更低的带宽预留阻塞率。
In large-scale video stream service in video cloud, advanced reservation can cause high blocking probability and low bandwidth utilization. To overcome such problems, investigation on time-constrained malleable bandwidth reservation scheme is carried out. First, a finite malleable reservation model is defined. Then, based on this model, a time-constrained bandwidth fragment adjusting algorithm is proposed to improve bandwidth utilization. Finally, considering multi-path service of video streams in video cloud, the reservation algorithm is explored into multi-path mode, thus improving the success probability of bandwidth reservation. Simulation results show that, compared with other bandwidth reservation schemes, the proposed solution can effectively guarantee the QoS of video service while with lower blocking probability of bandwidth reservation.
视频点播、视频会议、视频广播和视频监控等视频服务在网络服务中所占的比重越来越大, 这些服务需要大量的带宽资源, 对服务质量(Quality of service, QoS)也有严格的要求。但当前网络不能有效地管理和使用各种资源, 在服务规模较大的情况下很难提供可靠的QoS。视频云凭借其资源的全面共享能力、全局负载均衡能力以及服务的动态组合能力[1], 可以很好地解决视频服务的可扩展性、服务多样性、动态性的需求。然而很多视频服务对于QoS有很严格的要求, 一旦视频质量下降, 会对服务的效果产生较大的影响, 这类应用侧重于保障视频QoS, 并兼顾资源利用率。
针对这种需求, 一些研究人员先后提出了IntServ[2]、DiffServ[3]等架构; 文献[4]通过调整P2P类业务带宽资源实现网络资源的可重构, 以保证高优先级业务的质量; 采用不同的拓扑结构和网络编码也可以提高服务质量和传输效率[5]。但是, 只有提前预留才能确保服务需要的资源。
由于网络带宽预留的时效性, 提前预留会产生大量网络碎片, 导致预留阻塞率(Blocking probability)的增加[6], 影响网络带宽的利用率。对于带宽和实时性要求较高的视频流来说, 影响会更加显著。文献[7]提出一种动态带宽调度方案, 采用带宽预留的半可伸缩特性, 来解决带宽碎片问题。文献[8]对于提前预留所产生的带宽阻塞率增加问题作了详细的分析, 提出延展性预留方案以降低阻塞率, 提高带宽预留的效率。
上述方法均未能利用视频流对带宽需求的有限伸缩特性来降低带宽预留碎片, 不能灵活地变形和平移预留带宽, 未考虑多条路径带宽的协作预留。为此, 定义有限延展性预留模型, 以有限的预留带宽变形提供灵活、有效的带宽预留。在此模型基础上, 本文提出基于时间约束的带宽碎片调整策略来降低带宽碎片率。由于同一视频流可以通过多条网络路径来传输, 利用多条路径间带宽预留的分配和协作能够降低带宽碎片, 提高整体带宽预留的效率。
带宽分配过程中, 用户请求通常被分成多个固定的Slots。在提前预留时, 需要提交一些参数, 比如:开始时间tstart, 结束时间tstop, 以及预留带宽w。在提前预留中有两种情况会产生阻塞:①在预定时间段中会产生一些短的间隙, 不足以容纳新的请求, 如图1(a)所示, [t1, t2]是请求的带宽, 但当其大于t3时, w1< w, 无法满足请求带宽的需求, 导致被阻塞; ②在固定带宽预留中, 当某一段的带宽小于请求的预留带宽时, 会导致拒绝, 如图1(b)所示, [t3, t4]段的可用带宽为w1, 小于请求预留的带宽w, 无法满足预留请求。
提前预留会导致带宽碎片的产生, 可以对时间和带宽不敏感的预留进行伸缩, 填补带宽分配所产生的空隙, 以降低带宽碎片的数量。但是, 实时视频流对于时间有较为严格的限制。通常视频流服务的客户端具有一定的缓存, 使得视频流具有一定程度的可伸缩性。为此, 本文定义了一种有限延展性预留(Finite malleable reservation, FMR)模型。
当可用网络带宽不能满足预留需求时, 有限延展性预留模型可以根据预留带宽段的时间约束来决定预留带宽的变形程度和平移范围, 以扩大预留范围、减小局部预留带宽需求, 并能够充分利用网络带宽碎片, 从而在满足网络带宽预留需求的前提下, 提高网络带宽预留的成功率。
定义1 有限延展性预留模型定义为:R=(u, v, W, ts, te, γ , β ), u为服务节点; v为接受服务节点; W为预留的带宽; ts、te分别为预留开始时间和结束时间; γ 为可伸缩率, γ 0< γ < γ 1, γ 0和γ 1与客户端的缓存大小有关; β 为预留带宽延展的最小单位。
在FMR模型中, 预留带宽持续时间Tsum=(te-ts), 提前预留带宽总量为W× Tsum, 带宽预留的延展性变化可分为平移和变形。预留带宽平移过程如图2(a)所示, 在t3之后, 可用带宽w2< W, 预留被拒绝, 采用平移方法, 将预留带宽向前移Dt, 则在请求预留范围内的可用带宽w1> W, 预留被接受。预留带宽变形过程如图2(b)所示, 在t3之后, 可用带宽w2< W, 预留被拒绝, 采用变形方法, 预留带宽变大Dw, 而预留时间缩短Dt, 满足:(W+Dw)× (Tsum-Dt)=W× Tsum。预留带宽变为[t1, t4], 带宽大小为w+Dw, 在[t1, t4]间的可用带宽w1> W+Dw, 预留被接受。
通过图2可以看出, 网络中可用带宽在时间轴上是非均匀的, 传统的预留策略在整个时间轴上有任何一点无法满足带宽需求, 预留都会失败, 而采用FMR模型, 可以利用带宽需求的有限伸缩特性来规避可用带宽较小的时间段, 或者降低部分时间段带宽的整体需求, 以完成带宽预留。
对于视频流, 由于其预留时间较长, 如果以整个申请带宽进行预留, 伸缩变形的效果不好, 因此需要对预留带宽进行更精细的伸缩变形。预留带宽粒度β 成为视频流带宽预留中的关键因素, β 越小, 调整越精细, 利用带宽碎片的可能性越大, 但也提高了预留的复杂度。
为了实现对带宽的精细分配, 定义了已分配带宽的分布结构Dd和剩余带宽的分布结构Dr。Dd={B1, B2, …, Bn}, 其中Bi为已分配的一条带宽, Bi={bi1, bi2, …, bim}; bij为面积大小为β 的矩形区域; bij=(tds, tde, Wd); tds、tde分别为矩形区域的起始和终止时间, Wd为分配带宽的大小; n为已分配带宽的数量, m为一条已分配带宽所包含的带宽分配单位数。Dr={b1, b2, …, bl}, 其中bi是剩余未分配带宽的一个矩形区域, bi=(trs, tre, Wr), Wr为剩余带宽的大小, l为剩余带宽矩形区域的数量。
本模型使得带宽预留可以灵活地变形, 以实现视频流带宽预留的可伸缩性, 降低带宽预留碎片数量, 同时, 又通过时限的约束, 来保证视频流类服务中对于时间的要求, 维持稳定的视频服务QoS。
带宽碎片的多少对于带宽提前预留准入率的影响很大, 也决定了延展性的程度。当矩形带宽区域的持续时间较短时, 这部分带宽很难被恒定带宽的长时间视频流类服务所使用, 认为是碎片; 当矩形区域的带宽w较小时, 这部分带宽很难被带宽需求较大的视频流类服务所使用, 也认为是碎片。带宽碎片(Bandwidth fragment)定义为:BF={(u, v, tfs, tfe, Wf)|Wf< WT‖ (tfe-tfs)< TT}, Wf为碎片带宽, Wf=W-max(Wr, Wl); Wr为tfs前面的带宽, Wl为tfe后面的带宽; tfs、tfe分别为矩形区域的起始和终止时间; 带宽碎片集合Ω BF=(BF1, BF2, …, BFi)。
当网络带宽使用负载过高、无法容纳新的预留请求时, 碎片率对准入率会产生很大的影响。为提高准入率需要对已经预留的带宽进行调整, 降低带宽碎片率。为此本文提出了基于时间约束的带宽碎片调整算法(Bandwidth fragment adjusting, BFA)。网络中的视频流服务可以通过多条路径进行传输, 为此, 提出了基于时间约束多径预留算法(Time-constrained multi-path reservation, TCMPR), 在多条路径上协作完成可伸缩预留, 以提高视频流带宽的预留准入率。
每隔一段时间根据带宽的琐碎程度采用BFA算法对预留的带宽进行一定的整理过程, 以降低碎片的离散程度。用带宽碎片率来粗略评估带宽的琐碎程度。
定义2 带宽碎片率η 定义为所有带宽碎片的总和与整个带宽的比值:
当η > η 0时, 就需要进行BFA过程, 以减小带宽的琐碎程度。调整的目标是使得带宽碎片数量尽量少, 碎片的粒度尽量大。用带宽碎片的平均琐碎程度来评估碎片粒度的大小。当带宽较小时, 琐碎程度主要由带宽的大小决定, 琐碎度ρ b=kb/W; 当持续时间较小时, 带宽的琐碎程度主要由带宽持续时间决定, 琐碎度ρ t=kt/(te-ts)。当两者都较小时, 其区别不大, 可以将琐碎度归一化为δ 。
定义3 带宽碎片平均琐碎度ρ avg定义如下:
式中:Ω b={BFi|W(i)< DW and[te(i)-ts(i)]> Dt}, Ω t={BFi|W(i)> DW and[te(i)-ts(i)]< Dt}, Ω δ ={BFi|W(i)< DW and[te(i)-ts(i)]< Dt}; DW和Dt分别为带宽琐碎门限和持续时间琐碎门限。
采用BFA可以降低带宽碎片率η , 减少带宽碎片的数量, 并使平均碎片琐碎度ρ avg尽量大。在BFA中采用启发式算法, 按照BF的琐碎度ρ 进行排序, 从大的碎片进行调节, 以提高调整的速度, 优化调节的结果。所有已预留的带宽以ρ 大的BF为中心向两边移动, 以优先增加ρ 较大的碎片的琐碎度, 对于ρ 小的BF, 所有已预留的带宽都向该BF方向移动, 以优先减低ρ 小的BF直至消失。
BFA算法的详细实现过程如下所示。
Step1 获取带宽碎片集合Ω BF, 并按照BF琐碎度ρ 的大小进行降序排序;
Step2 从集合Ω BF中依次选出最大的碎片BFi=(ts, te, Wa), 根据向前和向后可调节的最大距离计算出调整范围, 选择通过调节可以改变其大小的预留带宽Ω B(i)={bjk|[ts(jk)-β /γ 1, te(jk)+β /γ 0]∩ [ts(i), te(i)] ≠ Ф }。
Step3 如果Ω B(i) ≠ Ф , 从其中依次选择一个已预留带宽bjk进行调整。选出碎片集合, 使得该预留带宽可以平移或变形以满足调整需要, Ω BF(jk)={BFx|([ts(jk)-β /γ 1, te(jk)+β /γ 0]∩ [ts(x), te(x)] ≠ Ф )}。
Step4 如果Ω BF(jk) ≠ Ф , 从其中依次选择碎片BFx进行调整。当Wa(x)> Wd(jk)时, 可进行平移。若te(x)≥ te(i), 则将bjk的[é te(i), ts(jk)ù , ë ts(x), te(jk)û ]段从ts(x)开始向te(x)移动Dtp, 用[ë ts(x), te(jk)û -Δ tp, ë ts(x), te(jk)û ]段填充碎片BFx。如果te(x)< te(i), 则将bjk的[é te(x), ts(jk)ù , ë te(i), te(jk)û ]段从te(x)开始向ts(x)移动Dtp, 用[é te(x), ts(jk)ù , é te(x), ts(jk)ù +Dtp]段填充碎片BFx。Dtp如式(3)所示。若移动到ts(x), 表示已预留带宽还有移动的能力, 则原碎片变为新的碎片, 重复进行移动, 直至预留带宽bjk已经达到移动极限, 或者带宽碎片BFx不能支持平移为止。
当Wa(x)< Wd(jk)时, 无法平移, 需要进行变形, 按照碎片所能容纳的最多带宽总数进行变形。由于先进行了平移, 则保证Wa(x)< Wd(jk), 因此对于bjk以τ 为单位进行带宽减小的变形并填充。
Step5 当η < η 0并且ρ avg< ρ 0时, 调整过程结束; 如果调整无法使得η < η 0并且ρ avg< ρ 0, 则当两次递归过程中η 的变化范围小于η 1并且ρ avg的变化范围小于ρ 1时, 调整过程结束; 否则返回Step 2。η 0、η 1、ρ 0、ρ 1为带宽碎片程度和碎片的琐碎程度的门限值。
视频云中的视频流服务可以通过多条路径传输, 如果在多条路径上都采用基于FMR模型来预留带宽, 并联合利用多个路径上的带宽碎片, 可以提高视频流带宽预留的成功率。在多条路径上进行联合预留, 需要能够在多条路径上按比例分配预留带宽。
当带宽分配请求bU=(ts, te, wU)到达时, 首先由代理根据多条链路带宽的剩余分布情况, 对请求进行分配。如果能够满足bU的请求, 则直接分配, 如果无法满足, 则需要判断剩余的带宽分布是否能够通过延展bU来实现预留, 如果不行, 则将已预留带宽按照伸缩性向两边延展。采用λ 来判断一条路径上能否通过bU延展实现成功的带宽分配:
式中:Dtλ 1=ts(U)-α (te(U)-ts(U)+β /γ 1), Dtλ 2=te(U)+α (te(U)-ts(U)+β /γ 0); α 为延展系数, 由实验得出。
将预留范围按照β 进行分割, 计算每一段的预留满足估计值λ i。预留调度的目标就是在满足λ 的情况下, 从多条路径间选择出尽量少的路径的集合P, 并且获得尽量大的λ 值, 也就是:
式中:pj表示分配路径集合P中的路径, pj上在预留请求的时间范围内按β 分为lj段, 其中每段的预留满足估计值为λ i(j)。
在选择路径过程中, 首先选择在预留请求的时间范围内带宽Σ λ i最大的路径pi加入P中。然后根据每一段时间ti中带宽缺少的情况, 按比例给每一段赋一个权值ω i, 然后计算剩余路径的Σ ω iλ i值, 选取Σ ω jλ j最大的路径pj加入P中, 反复计算, 直到集合P中的λ > λ T。在选出的路径集合P上进行联合延展预留, 如果在延展预留过程中某时间段ti内, 带宽无法满足预留的需要, 则选择该段时间具有最大λ i的路径加入P中, 并重新进行该段时间的延展预留。算法具体流程如下所示。
算法1 TCMPR
输入:多条带宽集合Ω P, 以及每条带宽的剩余可用带宽分布Dr(i), 请求预留带宽bU
输出:调整后的Ω P中各路径剩余可用带宽分布Dr(i)
(1)计算预留带宽bU的可用带宽范围;
(2)选择在预留请求的时间范围内带宽Σ λ i最大的路径pi加入P中;
(3)根据ti中带宽缺少的情况, 按比例给每一段赋一个权值wi, 计算Ω P中剩余路径的Σ wiλ i;
(4) while Ω P< > Ф
(5) 选择Σ wjλ j最大的路径pj加入P;
(6) 按照式(5)计算λ ;
(7) if λ < λ T
(8) 根据Dti带宽缺少的情况, 按比例给每一段重新赋一个权值wi, 计算剩余路径的Σ wiλ i;
(9) 选择Σ wjλ j最大的路径pj加入P;
(10) else { break; }
(11)将P中的所有路径看成一条路径p', MR(p');
(12)if 分配成功 {goto End; }
(13)else
(14) while Ω P< > Ф
(15) 选择带宽分配失败部分的Dti中λ 最大的pj, 加入P中;
(16) 将P中的所有路径看成一条路径p', MR(p');
(17) if 分配成功{break; }
End TCMPR
MR(· )是延展预留函数, 采用两端交替延展的带宽分配方法, 从两端交替取出剩余带宽。
采用仿真方法进行试验, 通过带宽预留的阻塞率来衡量本文提出算法的优劣。在仿真试验中, 使用GT-ITM生成Transit-Stub型的网络拓扑, 网络节点规模为1000个节点。主干Transit网络采用100 M网络, Transit网络与Stub之间的链路采用10 M网络, Stub内的各节点之间主要为10/1 M链路。在1000个节点中均匀地分布10个视频服务器, 并让所有节点不定时产生视频请求, 假定每个服务器的节目请求服从泊松分布。在仿真过程中, 假设了两类视频流服务:①直播流, 带宽50~250 kbit/s, 持续时间60~720 s, 时间约束0~10 s; ②点播流, 带宽100~500 kbit/s, 持续时间60~600 s, 时间约束-60~20 s。其中, 带宽需求和持续时间在该范围内呈正态分布, 时间约束表示该视频流容忍的提前量和滞后量。
采用Java开发仿真平台来开展一系列仿真试验。本仿真试验运行于IBM Think Centre M8400t, 8核3.4 GHz, 16 G内存。
在实验中, 选择多条瓶颈链路观察预留情况。采用带宽预留阻塞率来考查本算法的主要参数α , λ T对算法性能的影响。图3(a)(b)表示不同点播流比例和不同带宽预留请求数下参数α 和λ T对带宽预留阻塞率的影响; 图3(c)表示不同带宽预留请求数下TCMPR算法、弹性预留(ER)算法、延展预留(MR)算法的带宽预留阻塞率。
从图3(a)中可以看出, 当α 增加时带宽预留阻塞率呈下降趋势, 当α > 1.1时, 随着α 的增加带宽预留阻塞率下降不多, 而α 的增加使得算法的计算量大幅增加, 因而α 取1.1。从图3(a)中还可以看出, 随着点播流所占比例的增大, 带宽预留阻塞率有较大的降低, 这是由于点播流的时间约束较为宽松, 预留算法对于点播流的调整能力更强。从图3(b)中可以看出, 随着λ T的增加, 带宽预留阻塞率呈下降趋势, 当λ T> 1.2时, 差距不大, 但是随着λ T的增加算法的计算量大幅增加, 因而λ T取1.2。
利用视频流类应用在带宽需求上的可伸缩性, 提出了一种有限延展性带宽预留模型, 可以支持灵活、有效的带宽预留, 并提出了多径预留算法, 可以综合利用多条路径上的带宽碎片, 降低带宽预留阻塞率。实验结果表明, 本策略可以有效地消除带宽碎片, 降低带宽预留阻塞率。
The authors have declared that no competing interests exist.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|