【Gang Yi’s Notes】Practical, Real-time Centralized Control for CDN-based Live Video Delivery

2018-11-07

Posted by 易港

Live vedio delivery 逐年增加,为了降低cost,减少延迟,提出了一些方法。

 

CDN

1

传统的CDN将视频传输网络体系结构分为三层,Sources, Reflectors, Edges, AS/Clients.

Sources:  import vedios to system

Reflectors: forward contents internally

Edge clusters: directly serve end-users

每个node之间link有不同的cost。

 

client获取vedio的过程:

1、 client先通过DNS和edge取得联系,发送request。联系方式:地理位置、load等

2、 edge clusters 通过DNS找到reflectors

3、 reflectors通过DNS找到sources。

4、 沿着相反的路径返回数据

 

如果有相同的request汇聚在某一个cluster,会做聚合。

 

(问题:都是靠DNS,这是CDN吗?)

 

存在的问题:

作者认为client和Edge通过DNS获取联系是可以的,因为大多数视频内容是和网站挂钩。但是内部clusters和upstream clusters之间通过DNS来map就不是很好。原因如下:

1)、 CDN不能主动将内容push给下行clusters。

2)、 为了减少DNS的load,CDN会将不同stream的DNS聚合以减少粒度,如果用DNS来map,准确性不高

3)、CDN往往使用启发式的map方式

 

DNS TLL——域名生存时间

也就是域名解析记录缓存时间,对于不同类型的内容,其DNS TLL应设置不同。

 

启发式map算法

CDNmap end-user和edge clusters是通过地理位置,load,是否这个cluster曾经接收过和这个request相类似的请求。同样地,在edge clusters和reflectors之间也可以利用地理位置、vedio trace之类的来map。

 

作者在CDN的基础之上做了一些优化,提出了VDN。

 

VDN

Hybrid contol

Centralized system:

有一个全局的network overview.易于实现和控制,服务质量高,但是用户每次获取内容都得和这个central联系,这个join time比较长。

Distributed system:

用户和cluster连接,这个响应时间就会比较短,而且有利于fast failure recovery。但是由于链路增加,对于服务质量不能保证,而且cost也不能很好控制因为缺乏全局调控。

所以作者采取了Hybrid control。

 

先大致说一下用户获取vedio的流程:

Client a想获取vedio v,速度是 b (bps)。

1、 a这个request先发送到DNS server, 这个server便会回复a让a连到附近的edge cluster。

2、如果这个cluster知道(v,b)的路径,那OK。如果不知道那就运行distributed control algorithm。

3、 reflectors和edge cluster进行同样的操作联系到source.

4、 centralized control 更新每个cluster的转发表。

 

Design

2

 

增加了两块部件Central Controller和 Local Agent. 每个部件都由control和discovery部分构成。control部分用来计算路径。 discovery用来track requests和拓扑结构相关信息。

 

控制机制分为两个loop

Central control loop

  1. Local discovery measures link information and tracks AS- and cluster-level channel viewership.
  2. Global discovery collects measurements from each cluster and builds a global network view.
  3. Global control computes optimal distribution trees.
  4. Local control merges local state with the global decision and updates the forwarding table.
  5. Global control updates DNS.

Distributed control loop:

  1. Local discovery measures link information and tracks AS- and cluster-level channel viewership.
  2. Local control merges local state with the global decision and updates the forwarding table.

 

Central loop可以看到所有的clusters,以及所有link等,建立distribution tree。

Distributed loop 可以看到local links和一个cluster的所有vedio requests。Local agent会综合整理central control的信息,确定forwarding路径。

 

Hybrid control

  1.   Central control

基于一个global view of the network,通过某个优化算法(后面会讲)产生一个路由信息表RIB,这个RIB会发给每一个local agent。RIB除了各种distribution tree之外还会有每个cluster的前一跳后一跳之类的。

每个local agent根据自己的distributed control更新RIB表形成FIB。

如何形成distrbution tree——Centroalized optimization

 

4

大致是一个求最小费用流问题

对于每个vedio有很多channel V={v1,v2…},每个channel有若干个bitrate B= {b1,b2…}

我们的系统把每一个V× B中的item看作是一个独立的object,每一个vedio就会有一个object集合

O= {o1,o2,…},每一个o都有一个优先级Priorityo>0,是提前设置好的。

每一个client到vedio会有很多link L={l1,l2,…}

 

  1. Ditributed control

Distributed control 保有track of viewership and path information of upstream neiborhors.

主要是为了能在短时间内针对link的变化做出调整。

clusters之间对于每个(v,b)维护一个d(v,b),d(v,b)是指该cluster到一个知道(v,b)路径的cluster的距离。另外不同link有不同的距离d和瓶颈容量c。对于每个cluster都维护一张类似距离矢量算法中的(d,c)表。例如:

3

Distributed control algorithm:

Input: request for channel v, bitrate b

Output: next-hop cluster for channel v, bitrate b

/* randomly pick a parent that has a

min-hop path to (v; b) with enough

capacity to support delivery */

useful :=∅ ;

for parent in parents do

if d(v; b)via parent == min(d(v; b)) and

c(v; b)via parent > b then

useful = useful ∪{ parent }

end

end

return pick at random(useful)

 

这篇文章在CDN上提出了一个新的live video机制VDN,主要贡献是

1、 centalized algorithm即在知道全局网络结构的一个最小费用流算法

2、 综合了集中式和分布式的控制,整体集中,局部分配。

总结:找到已有方法的优缺点所在,合理综合运用也可以很好地提高性能。