摘 要:针对在IPTV服务中当网上收视人数大规模增长时网络带宽消耗及服务器负载大大提高的问题,提出了利用P2P(Peer-to-Peer)概念中的应用层群播所形成的重迭网络来解决IPTV负载分享的问题,并通过P2P中Chord路由算法,加速构建与寻找对应的群播代理人节点。实验证明将Chord与应用层群播代理人做有效结合,可以提供用户具有服务质量、扩充性与负载分享的全方位P2P IPTV服务。
关键词:网络电视; 重迭网络; 负载分享; 群播代理人
随著宽带网络的蓬勃发展,网络电视IPTV(Internet Protocol Television)服务成为许多营运商抢攻的新市场,其不仅可依照一般电视节目来播放影音,更可透过上传视频来进行互动式多媒体服务需求,提高使用者与服务之间的互动性[1]。
目前大多数营运商是通过CDN(Content Delivery Network)方式,采用网络群播将用户所需的节目传送到距离用户最近的服务器提供给用户观看[2]。但建设成本将随用户的增加而提高,同时分散各个区域的服务器也将加大设备维护的难度及成本。实际上在现今大部分的网络皆无法使用网络群播来进行数据传送,因为网络群播包含以下原因,导致因特网提供商(ISP)不愿使用此功能[3]。
(1)扩展性不足。网络群播的运作原理是让想要收到数据的用户加入某一个群组之中,但是这些群组的信息是由网络上的路由器来负责组织及维护。
(2)布建不易。需要网络上所有的路由器都启动群播的功能,如果某些路由器不提供这项服务,就可能造成该地区的用户不能使用群播功能。
(3)群播群组管理困难。由于网络上的用户加入与离开非常频繁,有用户加入时需要重新使用群播路由协议来建立群播树;而用户离开的话需要删减多余群播树的分支。
有学者提出应用层群播ALM(Application Layer Multicast)的概念,将群播实现于各个端点的计算机上,使用应用程序与其他计算机上的应用程序建立连接来达成群播功能,不再依靠路由器的支持来使用群播功能[4]。由发送端将数据送给某个需要这份数据的节点,收到的节点再进行转送。透过这种方式将数据送到所有需要这份数据的节点上,此路径可视为一个逻辑的网络拓扑。该方法会造成数据从起始点传送到终点的时间变长,因此这并不是一个有效率的网络拓扑。
本文采用类似Ad-Hoc的网络拓扑形态,让每一个节点完全地拥有自主权,达成彼此传送数据的目的。节点基本的功能包含了自行建构网络、搜寻目标和所需的资源,主要在于运用Distributed Hash Table(DHT)的方式,让每一个节点持有少量的索引信息,再透过 DHT 来进行运作,而Chord就是其中一种。透过Chord 进行信息交换,用以减少服务器的负担,提高服务器运作效率及服务质量。
1 研究方法
1.1 群播代理人
为了能够在用户较多的情况下,有效减轻系统与网络带宽的负荷,在架构中为每一个子网群播设置一个群播代理人MA(Multicast Agent)服务器来代为转送群播视频封包到其他的子网上, 代理人之间使用单播来互相沟通。
1.2 Chord
Chord是建立在应用层中的查询算法,它利用一致性哈希算法[5]将每一个节点都给予一个唯一的ID,将其建构成一个环的网络形态。如图1所示,在Chord环上的各点表示存在的MA,每一个MA的指针列表FT(Finger Table)中最多负责O(logN)笔数据,查询时只需O(logN)次即可找到所要的数据,在MA加入和离开时也只需花费O(logN)的消息量。FT是用来储存Chord 环上ID值与Successor的关系,节点间利用自己的FT来查询和帮助其他MA找寻ID的successor。而FT之间会定时进行信息交换,以确保各节点仍正常在Chord环中。
在IPTV 基础下架构Chord环,需以服务器作为MA的引导节点,所有的MA都必须透过引导节点加入Chord环中进行注册并且加入群播树中接收所需IPTV 内容,MA之间所建构出的传输路径以及维持该架构的相关信息会分散于每个MA上,每个MA 都包含了3个Table来记录这些消息:
(1)Finger Table(FT):MA加入Chord环进行注册。
(2)Multicast Spanning Tree Table(MSTT):记录群播树中的传输路径,当有节点失效时可以根据MSTT中的数据与其他节点重新连接。
(3)Leaf Node Table(LNT):记录每个MA剩余空间的子节点。
2 应用层群播树建构方法
ABTP(Average Bandwidth-Time Product)由参考文献[6]所提出的BTP(Bandwidth-Time Product)衍生而来,BTP希望能够结合带宽与成员在线的时间两项参数,将两个参数相乘之后作为群播树调整的标准。但是BTP的带宽值仅依照单次带宽测试的结果来决定,这可能会因为短时间带宽的波动影响,造成不必要的群播树调整,而ABTP是将各次测得的带宽大小平均之后,再乘上成员所留在群播树中的时间,得到平均带宽时间乘积,避免了测试频宽的过程中因为其他程序暂时消耗额外带宽所造成的影响。本文群播树建构算法将以ABTP值为调整标准,用以解决当有大量使用者观看节目时,服务器无法负担大量带宽需求,造成传输质量下降及负荷过大的问题。算法的基本概念是让各应用层群播树成员MA互相交换在群播树上的位置,将由ABTP 参数所计算出数值较高者,往树的上层提升,以达到优化状态。此算法架构分为:
(1)成员注册:当使用者(MA)欲观看节目时,先向引导节点进行注册Chord动作,用来加入Chord 结构,提高之后找寻节点地址效率。
(2)成员加入:成员要加入群播树时会先从引导节点开始查询LNT。当MA收到加入的要求时会先查看本身是否能够负担,无法负担时,便从LNT中挑选剩余负担能力最大的子节点,让新成员加入。如果LNT中没有可加入的节点,则告知新成员依循广度优先BFS(Breadth-First Search)方式找寻适当的节点当作其父节点(Parent Node)。而在节点加入群播树中,找寻节点的方式是透过Chord环中FT来进行搜寻适当的节点位置。图2为新成员加入的方法:①新加入的MA,也就是节点N,向引导节点B,提出加入的请求;②如果B已经到达负载上限,到达的分支的极限,则B便会选择还具有负担能力成员M2告知N;③N转向成员M2要求加入群播树; ④因为M2还具有能力负担,所以送出回复OK给新来的成员表示同意;⑤N送出Acknowledgement来回答M2的接受,之后M2便开始负责转传内容给新加入的成员N。
(3)成员离开:成员离开群播树时,为避免离开成员子节点收看节目中断,成员应该要依循正确方式离开,等待子节点回报完成与新节点进行连接后才可离开。图3中,M1欲要离开此群播树:①通知子节点M3,自己即将要离开;②M3会对自己的祖父M0送出加入的请求,信息里会特别标示为MA rebuilding,避免因为M0没有额外的空间容纳,而拒绝了底下成员的加入;③M0传回确认接收消息给M3;④M3会送出Acknowledgement给M0,并告知M1自己已经与M0连接完成;⑤M1收到M3与M0连接成功的信息后,便告知M0自己要离开;⑥M0回传确认信息;⑦此时M1可离开,结束收看节目动作。
(4)群播树调整:为了让群播树能够适应不停变化的网络状况,需要将性能好的成员往上提升来达到IPTV重迭网络优化。比较两个不同层的成员的ABTP大小,比较后使其互相交换位置,在系统运行一段时间之后,ABTP最大的成员将会占据群播树的上层位置。在群播树调整的动作中,会设定服务器也就是群播树根节点的ABTP为无限大,因而无法被取代。当新成员加入群播树时,因其在线时间为0,所以它的ABTP会被设置为0。依照加入的程序,这个新的成员会被置放在树的底层位置。随着在系统中的时间增长,其ABTP值会逐渐地成长,一旦ABT值超越了自己现在父节点的ABTP时,便会进行位置交换。如图4所示,M3因为拥有较大的带宽,因此ABTP值有机会超越自己的父节点M1,最后在一次群播树调整的过程与M1交换位置。为了减少群播树调整时受到影响的节点,发动群播树调整的节点选择将其子节点里ABTP最小的成员更换连接,成为自己父节点的子节点,其他成员则一并提升位置。
3.2 实验结果及分析
3.2.1 优化标准对群播树调整次数的影响
由于群播树调整动作复杂,因此群播树调整次数的多少,也会造成群播树成员负担。如图5所示,以带宽为标准时,由于成员加入离开频繁,因此造成优化次数增加。因为考量了时间的参数,ABTP避免了带宽大幅变动所造成许多不必要的群播树调整。
3.2.2 优化标准对控制消息数量影响
图6所示是在不同系统中有不同成员数量时,每个成员传送控制消息的平均数量,系统在稳定状况的成员达到预定的数量之后,进行2.5 h的计算。以带宽作为衡量标准时,虽然可以将有较大带宽的成员放置在群播树的上层,但因为带宽大的成员有可能很快便会离开系统,因此系统中的成员便需要时常进行修复的动作,而产生较多的控制信息。ABTP 结合了带宽大小与成员在线时间长短两项因素来作为衡量标准,所以控制信息数量相对较少。
3.2.3 中断次数与优化标准的关系
由图7中可以看到把带宽大的成员优先放在上层的作法,会使成员时常遭受到父节点离开所造成的中断。而以ABTP 和成员上线时间作为标准的情况下,在线时间较短的成员不会被排在系统的下层,当这些成员要离开时,受到影响的成员也就较少。
利用了Chord的分布式特点,并利用应用层群播代理人的方式,尝试建构具有网络层群播效率与单播稳定度的应用层群播树,并透过应用层群播代理人所形成的IPTV重迭网络及该重迭网络的扩展性、稳定度与负载分享可以有效提升IPTV使用者的影片质量。本研究中的多项实验项目,包含了构建的重迭网络上针对既有的不同优化标准来比较群播树的调整次数、控制信息的数量、群播树成员离开的影响,验证了平均带宽与上线时间乘积(ABTP)度量值可以建构出有效的IPTV重迭网络。
参考文献
[1] 李晓蔚. 全媒体时代电视的涅槃与重生[J].新闻界,2012(14):37-39.
[2] 王传安, 贾丙静, 赵海燕. WiMax接入技术在IPTV系统中的应用[J]. 电子技术应用, 2011,37(11):112-115.
[3] 吴吉义, 郑继文.P2P在IPTV中的应用[J].电子技术应用,2007,33(9):103-105.
[4] 栾淑莉, 贺萍.考虑主机容量的应用层组播协议研究[J]. 计算机应用与软件,2013,30(3):213-216.
[5] 吴荣玉, 樊丰, 舒建. 基于非负矩阵分解的鲁棒哈希函数验证性研究[J]. 电子技术应用,2012,38(1):130-132.
[6] TAN G, JARVIS S A. Improving the fault resilience of overlay multicast for Media Streaming[J]. Parallel and Distributed Systems, IEEE Transactions on,2007(18):721-734.