1、2007 年 4 月 Journal on Communications April 2007第 28 卷第 4 期 通 信 学 报 Vol.28 No.4应用层多播协议的多维特性研究廖海宁, 卢锡城(国防科学技术大学 计算机学院,湖南 长沙 410073)摘 要:从数据转发策略、服务模型、优化目标、优化技术和容错机制等 5 个维度综合研究分析了应用层多播领域的主要协议,并针对应用层多播协议设计过程中所需考虑的协议开销、可靠性、拓扑适配性、可伸缩性和优化目标等若干问题给出建议,最后对未来的研究作了展望。关键词:应用层多播;覆盖网;数据转发;优化技术;容错机制中图分类号:TP393 文献标识码:
2、A 文章编号:1000-436X(2007)04-0114-09Research on multi-dimension features of application layer multicast protocolsLIAO Hai-ning, LU Xi-cheng(School of Computer, National University of Defense Technology, Changsha 410073, China)Abstract: A set of application layer multicast protocols were described and cl
3、assified based on some properties such as data forwarding policy, service model, optimization objectives, optimization techniques, and fault mechanism. Then some recommendations were provided about the design of ALM protocols. Finally some important directions for future research are discussed.Key w
4、ords: application layer multicast; overlay network; data forwarding; optimization techniques; fault mechanism1 引言随 着 网 络 技 术 的 发 展 , 诸 如 视 频 点 播 、 视 频 会议 、 大 规 模 分 布 式 交 互 仿 真 、 计 算 机 协 同 计 算 等 应用 日 益 增 多 , 多 播 已 成 为 这 些 应 用 的 关 键 支 撑 技 术 。IP 多播需路由器的支持,它适用于时间同步、空间分布、实时不可靠的应用。由于各种原因,迄今为止 IP 多播在因特网上的部
5、署仍是十分有限1,为此研究人员近年来提出了应用层多播。应用层多播将复杂的多播功能放在端系统实现,不需路由器的支持就可为广域网提供多播通信服务,它不仅可支持时间同步空间分布的应用,更可支持诸如视频点播等的时间异步空间分布的应用。应用层多播的发展深受媒体编码、P2P、自组织覆盖网、网络性能测量、覆盖网端到端拥塞控制和安全等使能技术的影响。目前常用的应用层多播协议性能评价标准可分为 2 类 2:数据分发路径的质量和终端的性能。另外由于端系统的资源有限,故而需限制每个成员节点的邻居数,因此应用层多播树是度数受限的多播树。关于数据分发路径的质量,一般使用下列 3个指标来衡量: 强度(stress):流经
6、某一物理链路或节点的相同报文的数量。 展度(stretch):覆盖网中源到组成员的路径长度与单播路径长度的比值,常用跳步数表示。收稿日期:2006-11-10;修回日期:2006-12-30基金项目:国家重点基础研究发展计划(“973”计划)基金资助项目(2005CB321801)Foundation Item: The National Basic Research Program of China (973 Program)(2005CB321801)第 3 期 廖海宁等:应用层多播协议的多维特性研究 115通常还可表示为 RMP 和 RAP,RMP 是覆盖网中源到组成员的最大时延与单播最
7、大时延的比值,RAP 是覆盖网中源到组成员的平均时延与单播平均时延的比值 3。 代价:应用层多播树的代价可表示为覆盖网链路时延之和。通常用 TCR(tree cost ratio)来表示资源消耗情况,TCR 是覆盖网多播树代价与对应的网络层多播树代价之比 4。关于终端性能,常使用下列 3 个指标来衡量: 控制开销:反映多播协议用于维持覆盖网络所交换的控制信息数量及其所占用的带宽。 失效后包丢失率(loss after failure):单点失效后的平均包丢失情况,反映协议的顽健性。 首包等待时间(time to first packet):一个节点加入传输会话开始到接收到第一个包的时间间隔。虽
8、然应用层多播从提出至今不到十年,却已涌现了许多针对不同应用、具有不同性能优化目标和服务模型的协议 526,如最早提出的应用层多播系统 ESM 使用 Narada5实现了中等规模的视频通信,并已成功地应用于 SIGCOMM 2002/2003、OSP 2003 和 NOSSDAV 2004 等国际会议,P2P 文件共享系统 Jungle Monkey 和因特网距离测量系统 IDMaps 均用到了 BTP7。文献27根据系统结构将应用层多播系统分为对等型 519、代理型 2023和服务器型 243 类,文献28 根据控制拓扑和数据拓扑的生成顺序将应用层多播系统分为网优先 4,5, 20,23、树优
9、先 610,21,22,24,25、隐式法11,12和基于特定逻辑结构 13,15,264 类。这 2 种分类方法均较少考虑多播协议的优化目标及其采用的优化技术,且文献28认为应用层多播的数据转发均是沿着多播树进行,忽略了使用多源协同服务的这一类协议。为了更全面了解现有的应用层多播协议,并对多播协议中常用的性能优化技术的优缺点有明确认识,论文提出了多维度分类方法,并据此来研究分析并阐述当前主要的应用层多播协议。2 应用层多播协议的多维度分类方法论文提出的多维度分类方法综合考虑了应用层多播协议设计过程中所需考虑的问题,包括数据转发策略、服务模型、性能优化目标、性能优化技术和容错机制等 5 个维度
10、,多维度分类方法同时还克服了现有分类方法的不足。根据数据转发策略,应用层多播协议可分为2 类:基于树和基于多源协同服务。多源协同服务的思想是参与节点之间不一定有固定的逻辑拓扑结构,数据被划分为若干数据块,所有正在下载的节点可从源节点,或其他节点协同地获取它所需要的数据块 29,此类协议主要有文献1619。基于树的思想是数据的转发沿多播树进行,因多播树的构造和优化算法深受服务模型、优化目标、优化技术和容错机制的影响,因此下面从这 4 方面来给出基于树的多播协议的分类方法。根据服务模型,协议可分为单源和多源 2 类。支持单源的协议只需构造一棵以源为根的多播树即可,而支持多源的协议可以使用源多播树、
11、单棵双向组共享树、单棵单向组共享树或多棵组共享树中的任一种来转发数据。根据性能优化目标,协议可分为以下几类:最小代价或最小资源消耗、最小延迟、可伸缩性和带宽。最小延迟可以细分为 2 种,一是源到任一成员的最大延迟最小,即根直径最小;二是组中任两个成员间的最大延迟最小,即树直径最小。根据性能优化技术,协议可分 2 类:分布变换和局部集中调整 4。分布变换包括 switching 和swapping 2 个操作,switching 是某个节点改变父节点,s wapping 是 2 个 节 点 同 时 交 换 父 节 点 。 局部 集 中 调 整 通 常 最 多 只 涉 及 到 多 播 树 中 相
12、邻 两 层以 内 的 非 子 孙 节 点 , 主 要 操 作 有 : 1) 子 节 点 提升 成 为 父 节 点 的 兄 弟 节 点 ; 2) 父 子 节 点 相 互 交换 ; 3) 具 有 相 同 祖 父 节 点 的 两 个 节 点 相 互 交 换 位置 ; 4) 具 有 相 同 祖 先 的 2 个 节 点 相 互 交 换 位 置 ,如 节 点 x 的 父 节 点 是 节 点 y 的 祖 父 节 点 , x 与 y相 互 交 换 位 置 。根 据 容 错 机 制 , 协 议 可 分 为 3 类 : 采 用 编 码技 术 和 多 棵 树 、 反 应 的 (reactive)和 主 动 的(pr
13、oactive)。 采 用 编 码 技 术 和 多 棵 树 的 容 错 机 制 在组 成 员 之 间 同 时 维 护 多 棵 多 播 树 , 利 用 多 描 述 编码 把 流 数 据 编 码 成 N 个 媒 体 流 , 每 个 媒 体 流 同 时沿 不 同 的 多 播 树 传 播 , 每 个 组 成 员 收 到 N 个 媒 体流 中 的 任 何 M(M N)个 就 可 完 成 解 码 ; 反 应 类 协议 是 在 节 点 失 效 或 离 开 多 播 会 话 后 才 开 始 多 播 树的 修 复 工 作 ; 而 主 动 类 协 议 则 是 在 节 点 失 效 或 离116 通 信 学 报 第 2
14、8 卷开 之 前 就 预 先 为 多 播 树 中 非 叶 节 点 的 每 个 子 节 点计 算 备 用 父 节 点 。下面首先介绍基于树的应用层多播协议,然后是基于多源协同服务的应用层多播协议,最后是应用层多播协议的容错机制。3 应用层多播协议的服务模型和优化特性下 面 从 多 播 服 务 模 型 、 性 能 优 化 目 标 与 性 能 优化 技 术 3 个 维 度 阐 述 各 类 主 要 的 基 于 树 的 应 用 层 多播 协 议 , 有 ACDC8、 TBCP9、 OMNI21、 HMTP24、NICE11和 Overcast22。 其 中 ACDC、 TBCP、 OMNI和 Overc
15、ast 均 只 支 持 单 源 应 用 , HMTP 和 NICE 支 持多 源 应 用 , Overcast 的 优 化 目 标 为 源 到 节 点 的 带 宽最 大 化 , NICE 是 可 伸 缩 性 , OMNI 是 平 均 延 迟 最 小化 , ACDC 和 HMTP 是 代 价 最 小 化 , 根 据 所 使 用 的配 置 函 数 TBCP 的 优 化 目 标 可 为 代 价 最 小 化 或 延 迟最 小 化 。3.1 ACDC8ACDC 属于单源最小代价分布变换类协议,它为单源应用构建度数受限和根直径受限的最小代价多播树。为了保证延迟受限,ACDC 的每个节点保留从根到其子孙节点
16、的最大时延信息。新成员首先从 RP 处获取当前成员列表,然后随机选取多播树中的某个成员作为初始父节点。加入多播树后,每个节点执行收集与分发 2 个操作。在收集阶段,从叶节点开始每个节点向父节点报告其子孙集合及其他信息;一旦根节点接收到来自所有子节点的信息后,根节点进入分发阶段,使用文献30 提出的 RanSub 技术来向每个子节点发送一个探测集,直至到达叶节点为止。然后又开始新一轮收集/分发阶段。当节点接收到探测集后,执行到目标节点的探测工作并根据需要切换到某个目标节点,每个节点保留在测量过程中发现的最佳候选父节点的信息,并将此信息发送给当前父节点。3.2 TBCP9根 据 所 使 用 的 配
17、 置 函 数 , TBCP 既 可 属 于 单源 最 小 代 价 局 部 集 中 调 整 类 协 议 , 也 可 属 于 单 源最 小 直 径 局 部 集 中 调 整 类 协 议 。 TBCP 的 局 部 区域 调 整 只 涉 及 到 新 节 点 、 侯 选 父 节 点 和 侯 选 父 节点 的 子 节 点 。新节点加入时会测量其与局部调整范围内所有节点的距离,并将测量结果报告给侯选父节点,侯选父节点根据计分函数为所有可能的局部配置打分,选择分值最优的配置来安排新节点。TBCP所有可能的局部配置如图 1 所示 4。图 1 TBCP 局部配置为了优化多播树性能,除根节点外其他所有节点均周期性地运
18、行节点加入过程以发现更好的父节点,此时的加入过程是从根路径中随机选择的某个节点开始。3.3 OMNI21OMNI 属单源最小直径分布变换类协议,它为单源实时应用构建度数受限的平均延迟最小化的生成树。OMNI 是一个两层的基础设施,由分布在网络中的称为 MSN 的设备组成,MSN 向一组主机提供有效的数据分发。OMNI 的目标是最小化源到整个客户集的时延,因此 OMNI 需根据客户在MSN 之间的分布动态调整覆盖网的结构。所 有 的 MSN 自 组 织 成 一 棵 以 源 MSN 为 根 的 多播 树 。 多 播 树 的 生 成 分 为 初 始 化 和 局 部 优 化 2 个 阶段 。在 初 始
19、 化 阶 段 , MSN 的 根 节 点 首 先 测 量 它 到 其他 MSN 节 点 的 延 迟 , 并 按 递 增 顺 序 排 序 ; 然 后 在 树的 每 一 层 , 在 度 数 受 限 的 前 提 下 选 择 离 它 最 近 的 MSN节 点 。在局部优化阶段,本地 MSN 通过与邻近MSN 的交互,如多播树中两层以内的 MSN,来执行某种局部变换(交换或迁移 ),从而缩短平均延迟。MSN 可采用的局部变换如图 2 所示 21,每次MSN 都会选择相对优化目标而言改进最大的局部变换。OMNI 的局部变化涉及到新节点、祖父节点、第 3 期 廖海宁等:应用层多播协议的多维特性研究 117父
20、节点、父节点的兄弟节点和后二项的子节点。上述局部变换只考虑了多播树中的近邻,故不一定能实现平均延迟的全局最优。为此 OMNI引入概率转换,即每个 MSN 执行概率局部变换,并以较低的概率与通过随机漫步方式在多播树中定位的另一个 MSN 相互交换位置。图 2 OMNI 局部变换与 TBCP 相比, OMNI 不仅使用局部调整,还使用随机漫步和概率转换技术以期达到全局性能最优。3.4 HMTP24HMTP 是多源最小代价分布变换类协议,它构造一棵度数受限的最小代价双向组共享树实现数据分发。HMTP 使用应用层多播来桥接 IP 多播,每个 IP 多播域内的某个成员被选举为 DM,每个DM 均运行 H
21、MTP,DM 间用 UDP 互连。DM 类似于多播域内的多播路由器。新 成 员 h 使 用 深 度 优 先 搜 索 算 法 来 确 定 多 播树 中 距 自 己 最 近 的 侯 选 父 节 点 。 h 首 先 询 问 RP获 知 共 享 树 的 根 节 点 ; 然 后 从 根 节 点 开 始 , 在 树的 每 一 层 h 试 图 找 到 一 个 离 自 己 最 近 的 成 员 x;若 x 的 度 未 超 过 度 约 束 , h 成 为 x 的 子 节 点 , 否则 向 下 一 层 推 进 并 试 图 在 x 的 子 节 点 中 找 到 一 个可 能 的 父 节 点 。可见 HMTP 在新节点加
22、入时就尽可能将新节点置于最优位置,以便于多播树尽快收敛。新节点仅需搜索树的一部分即可找到父节点,不过父节点不一定是距新节点最近的节点,物理上邻近的节点在共享树中通常会聚集在一起形成簇。HMTP 要求每个成员周期性地运行节点加入过程以发现更好的父节点,不过此时的加入过程是从在根路径中随机选择的某个节点开始。3.5 NICE11NICE 是多源局部集中调整类协议,其优化目标为协议的可伸缩性。NICE 将成员组织成一个分层的控制拓扑,每一层的成员形成多个大小为 k到 3k1 的簇,其中 k 为常数。每个簇有一个簇首,簇首到簇中其他成员的最大距离最小。所有的成员都位于最底层 L0,层 Li 的所有簇首
23、组成层Li+1。NICE 将位于最顶层的簇的簇首设为 RP。任一层的每个簇的控制拓扑是个完全无向图,而数据拓扑是个星形结构。数据转发过程如下:源使用泛洪方式将数据转发给同一簇内的成员,然后源所在簇的簇首再将数据以泛洪方式转发给超簇(簇首在上一层所属的簇)内其他成员,超簇内的每个成员将数据转发给其在各层所属簇的其他成员,如此往复直至每个成员均接收到数据。新节点加入时从位于最高层的簇首开始,根据节点间的时延使用深度优先搜索算法来定位层L0 的距自自己最近的簇。每个簇的簇首周期性地检查所属簇的大小,若超出了规定大小 3k1 则执行簇分割操作,若低于规定大小 k 则执行簇合并操作。在执行簇分割操作时,
24、要求分解所得的簇的最大半径最小。每个成员 H(假设位于层 Li)周期性地探测其超簇中的所有成员,来决定离自己最近的成员(假设为 J)。若 J 不是 H 在层 Li 所属簇的簇首,那么 H就会离开当前簇,加入到 J 在层 Li 所属的簇。因此 NICE 的优化是通过局部集中调整来完成,此时118 通 信 学 报 第 28 卷只考虑了父节点的兄弟节点。与 NICE 类似的协议还有 Zigzag,二者区别在于:NICE 把簇的管理和数据分发这两个功能放在簇首这一个节点上;Zigzag 将簇管理交由簇首,数据分发交由称为副簇首的另一个节点。Zigzag可以提高系统的可靠性,不过 Zigzag 规定数据
25、只能由副簇首流向非簇首成员,反之不行,因此Zigzag 只能支持单源,不支持多源。 由 NICE 协议可知,最坏情况下 NICE 成员所需的控制负载为 ,平均控制负载为 O(k),(log)OkN数据转发路径长度为 。因节点度数与它所在的层次有关,最大度数有可能为 ,故logkNNICE 协议不能保证满足节点度数受限这个条件,因而不适用于带宽密集型多播应用。因簇首直接影响其他成员的性能,因此 NICE 不适合异构环境。实验结果表明 31,NICE 可在时延和代价间取得较好的平衡,但 NICE 协议的收敛性较差。3.6 Overcast22Overcast 是单源分布变换类协议,其优化目标为带宽
26、,即 Overcast 构建源到每个节点的带宽最大化的分发树。新 节 点 最 初 作 为 根 的 子 节 点 加 入 到 多 播 树 中 ,然 后 开 始 多 轮 探 测 以 定 位 距 根 更 远 的 节 点 作 为 父节 点 。 在 每 一 轮 探 测 中 节 点 评 估 到 达 根 节 点 的 多条 路 径 的 带 宽 , 一 是 节 点 通 过 父 节 点 到 达 根 节 点的 路 径 带 宽 , 二 是 节 点 通 过 父 节 点 的 任 一 子 节 点到 达 根 节 点 的 路 径 带 宽 , 若 2 类 路 径 带 宽 相 当 ,则 父 节 点 的 某 个 子 节 点 就 成 为
27、 新 的 父 节 点 (若 有多 个 子 节 点 满 足 条 件 则 选 取 最 近 的 , 即traceroute 返 回 的 跳 步 数 最 少 的 子 节 点 ), 接 着 再开 始 新 一 轮 的 探 测 。 Overcast 根 据 10kB 的 下 载时 间 来 评 估 带 宽 。 可 见 Overcast 是 在 不 牺 牲 根 路径 带 宽 的 前 提 下 , 强 制 性 地 将 每 个 新 节 点 尽 可 能放 在 多 播 树 的 下 游 。每个 Overcast 节点周期性地测量与其兄弟节点、父节点、祖父节点的带宽,以确定是否需更改自己在多播树中的位置,如将祖父节点置为新的
28、父节点,或将某个兄弟节点置为新的父节点。除了上述协议外,还有一类协议是通过路由协议生成、优化分发树,这些基本属于网优先协议。如 Narada5和 Gossamer20通过在网格上运行DVMRP 得到源多播树,CAN-Multicast 13、Scribe14和 Bayeux15则是通过 DHT 路由实现数据分发。由于 Pastry 和 Tapstry 这类 DHT 算法本身就具有树型逻辑拓扑结构,因此 Scribe 和 Bayeux分别使用 Pastry 和 Tapestry 管理组的创建、组成员的加入和退出、多播树的维护及数据的分发。这类算法的优点在于可以充分利用 DHT 算法所带来的树收敛
29、快、可扩展性好、本地化性强、自治性强、负载平衡等优点,但由于 DHT 算法本身并非是针对应用层多播设计的,树中转发节点可能不是多播组的参与节点,且 DHT 算法的逻辑拓扑并不一定与物理网络拓扑适配,这些都会导致转发时延增加,效率不高。4 应用层多播的多源协同服务特性应用层多播树中下游节点的吞吐量会受到上游节点带宽的限制,且中间节点的退出或失效会导致其子节点数据接收的中断,为了提高数据分发的可靠性和吞吐量,研究人员提出了基于 mesh的应用层多播协议,也称为基于多源协同服务的应用层多播协议,Bullet 16、DONet 17、Anysee 18和 CollectCast19等都属于此类协议,其
30、中 Bullet是典型代表。所有的 Bullet 节点可采用已有的技术,如Narada、NICE、Overcast 、Scribe 或 RanSub32等,构建一个以源为根的多播树。从源节点开始,每个 Bullet 节点向子节点传输数据的不同部分。源节点将数据分成顺序块,每个块再细分为若干独立的对象,所有的对象将被依次发送到网络中不同的节点。任一节点从父节点处接收对象,且负责定位拥有其他对象的对等节点。Bullet 数据分发过程表示如图 3 所示 16。图 3 Bullet 数据分发Bullet 主要有 4 个组件:Data 第 3 期 廖海宁等:应用层多播协议的多维特性研究 119Encod
31、ing、RanSub、Informed Content Delivery 和TCP Friendly Rate Control。Data Encoding 根据传输数据的不同类型采用不同的编码机制,当然也可不对数据做任何编码。RanSub 使用 collect 和distribute 消息在多播树中分发成员的随机子集,在 collect 阶段每个成员向父节点发送由若干随机挑选的子孙节点组成的 collect set,在 distribute 阶段每个成员向子节点发送由若干随机挑选的远程节点组成的 distribution set。Informed Content Delivery 指的是当通过
32、 RanSub 定位到拥有不同数据的对等节点后,采用文献30提出的近似一致技术来核对数据间的差别。Bullet 使用去掉了重传机制的 TFRC(TCP friendly rate control),即只有在一个 RTT 内发生了多个报文丢失时 Bullet 才降低报文发送速率。Bullet 使 用 其 他 覆 盖 网 组 织 协 议 实 现 多 播 树的 生 成 、 维 护 和 优 化 , 而 其 他 基 于 多 源 协 同 服 务的 协 议 , 如 DONet, 使 用 gossip 协 议 来 管 理 成 员关 系 , 节 点 间 没 有 固 定 的 逻 辑 拓 扑 结 构 , 根 据 数
33、据 的 可 用 性 动 态 决 定 数 据 的 转 发 , 数 据 的 流 向 无固 定 方 向 。5 应用层多播的容错特性由于端系统的转发性能和可靠性均不如路由器,端系统随意加入和退出可能性偏大,因此需考虑当出现节点失效或退出时,未失效的节点间仍能正常通信且能自动从覆盖网的分割状态中恢复并快速收敛到有效的覆盖网拓扑,即应用层多播协议需考虑容错机制的实现。可以将容错机制分为 3 类:采用编码技术和多棵树、反应类和主动类。CoopNet33是一种典型的采用编码技术和多棵树实现容错的应用层多播协议,由第 2 节可知CoopNet 是同时从控制平面和数据转发平面来提高端到端的可靠性。CoopNet
34、的缺点在于,多播树维护开销较大,多描述编码需占用较多网络带宽,且多路同时传送下数据的同步是个难点。文献57,9,1113,21,22属于反应类协议,文献4,8,14,15为主动类协议。这 2 类协议均是只从控制平面来提高数据分发的可靠性。实验结果表明 34:反应类协议多播树恢复所需时间一般情况下是主动类协议的 2 倍,在特殊情况下可能达到主动类协议的 5 倍。此外,PRM 35提出的随机转发方法则是从数据转发平面来提高可靠性,它要求每个覆盖网节点不仅要向子节点转发数据,还需随机选择常量个其他覆盖网节点并以低概率向这些节点转发数据,这样可保证即使出现了节点失效仍能有较高的数据传输比率。一般多播应
35、用中随机转发方法带来的额外流量所占比重不到 5%,然而在实时转播情况下额外流量所占比重会有较大上升。关 于 基 于 多 源 协 同 服 务 的 应 用 层 多 播 协 议 ,因 一 份 数 据 同 时 存 在 于 多 个 节 点 , 因 此 可 以 认 为这 类 协 议 是 从 数 据 平 面 来 提 高 数 据 分 发 的 可 靠 性 。6 分析比较表 1 列出了各类基于树的应用层多播协议的比较。从前面的论述可以知道,在分布式应用层多播协议中,新节点常采用下述方法定位初始父节点:随机选取方法,如 ACDC、Narada 和Gossamer;根节点方法,如HMTP、TBCP、OMNI、Over
36、cast 和 NICE。在覆盖网或多播树的维护和优化过程中,可通过下述方法发现多播树中的其他节点:根路径,节点x 到根所经过的覆盖网路径;分布式深度优先搜索;局部区域,通常由多播树中邻近一层或两层以内的节点组成,如 TBCP、NICE 和Overcast;随机漫步; RanSub,如 ACDC 和Bullet;Gossip ,如 Gossamer 和 DONet。优化时可以同时运用多种方法,如 HMTP 综合使用了根路径和深度优先搜索,OMNI 则同时使用局部区域和随机漫步。依据所使用的发现侯选父节点的方法,多播树优化技术可分为分布变换和局部集中调整 2 类。局部集中调整因其探查范围受限,故而
37、只能达到局部性能最优,而随机漫步方法可扩大节点探查范围,因此多播树优化时综合运用局部区域和随机漫步方 法 能 以 较 快 速 度 达 到 全 局 性 能 最 优 , 即 收敛 速 度 较 快 , 通 常 在 多 播 树 初 期 以 较 高 的 概 率 使 用局 部 区 域 , 后期则以较高概率使用随机漫步。当然也可在优化阶段同时使用深度优先和随机漫步。分布变换通常通过根路径、深度优先搜索、RanSub、Gossip 或随机漫步等一种或多种方法来获知覆盖网或多播树中其他节点的信息,比如可同时运用根路径、深度优先搜索和随机漫步这 3120 通 信 学 报 第 28 卷种方法来构造和优化最小代价多播
38、树,该方法不仅收敛速度快,而且生成的多播树与节点加入顺序无关 4。使用深度优先搜索的协议,物理上邻近的节点在多播树中会聚集在一起形成簇,此时覆盖网拓扑与物理网拓扑的适配性较好。使用基于簇的分层拓扑的协议也具有这个优点。通常,最小代价与最小时延是 2 个相互矛盾的性能指标,只考虑最小代价所生成的多播树往往时延较大,而只考虑最小时延所生成的多播树往往链路的强度较大且代价较高,因此在设计多播协议时需在此二者间权衡,即应考虑构造度数、时延受限的最小代价树或度数、代价受限的最小直径树。 Narada 类 的 网 优 先 协 议 通 过 运 行 DVMRP 等 路由 协 议 得 到 源 多 播 树 , 因
39、 此 在 多 源 多 播 情 况 下 数 据转 发 的 时 延 能 得 到 较 好 保 证 , 但 此 类 协 议 的 控 制 开销 为 O(n2), 因 此 只 能 支 持 组 成 员 为 几 百 的 中 等 规 模组 。 基 于 簇 的 分 层 协 议 在 时 延 与 代 价 之 间 能 取 得 较好 平 衡 , 比 如 NICE, 其 平 均 时 延 优 于 共 享 树 4, 平均 控 制 开 销 为 常 量 , 因 此 基 于 簇 的 分 层 协 议 可 伸 缩性 好 , 能 支 持 组 成 员 数 目 达 几 万 的 超 大 规 模 组 , 但由 于 它 们 不 能 保 证 节 点
40、度 数 受 限 , 因 此 这 类 协 议 不适 于 异 构 环 境 。 如 何 为 多 源 多 播 构 建 度 数 受 限 、 控制 开 销 适 中 的 最 小 直 径 多 播 树 有 待 进 一 步 研 究 , 除了 源 多 播 树 、 共 享 多 播 树 和 分 层 协 议 外 , 还 可 考 虑多 核 多 播 树 4。基于特定逻辑结构的应用层多播协议,如CAN-Multicast、Scribe 和 Bayeux,它们通过 DHT路由实现数据分发,利用 DHT 算法管理和维护多播树,具备可伸缩性好和负载均衡等优点,能支持组成员数目达几千的大规模组,但不足之处是覆盖网的逻辑拓扑不一定与物理
41、网拓扑适配,可能导致转发时延增加,以及协议控制开销较大。一般的树优先、对等型或服务器型多播协议通常能支持组成员数目达几百的中等规模组,如TBCP 和 HMTP。为了支持更多的用户,应用层多播系统可考虑采用代理型体系结构,即使用应用层多播来桥接 IP 多播,此时多播协议通常能支持组成员数目达几千的大规模组,如OMNI、 Overcast 和 Scattercast。为 了 提 高 数 据 分 发 的 可 靠 性 , 缩 短 节 点 失 效 所需 的 恢 复 时 间 , 可 从 控 制 平 面 上 采 用 主 动 类 的 容 错机 制 。 在 条 件 许 可 的 情 况 下 , 还 可 综 合 使
42、 用 随 机 转发 方 法 以 从 数 据 平 面 来 提 高 可 靠 性 。 当 然 基 于 多 源协 同 服 务 的 多 播 协 议 本 身 就 提 供 了 冗 余 的 数 据 分 发 。综上所述,对基于树的应用层多播协议来说,1)如果关注协议控制开销,可选择树优先协议或基于簇的分层协议;2)如果关注可伸缩性,可选表 1 应用层多播协议特性比较协议 数据转发策略 服务模型 优化目标 优化技术 容错机制 节点最大度数 最大路径长度 节点状态信息 组规模ACDC 多播树 单源 时延受限+最小代价 Switching 主动 c 时延受限 logOcn中等TBCP 多播树 单源 最小代价/最小直径
43、 局部集中调整 反应 c 最大不限 根 路 径 大 小 中等OMNI 多播树 单源 最小直径局部集中调整+Swapping +概率转换反应 c 最大不限 logOcn大HMTP 双向组共享树 多源 最小代价 Switching 反应 c+1 最大不限 O(c) 中等NICE 多棵源多播树 多源 伸缩性 局部集中调整 反应 logKOnlogKOn最大logK平均 O超大Overcast 多播树 单源 带宽 Switching 反应 c 最大不限 n大Narada 多播树 多源 时延根据效用函数增加/删除链路反应 m 最大不限 中等Scribe 单向组共享树 多源 伸缩性 Pastry 路由 主
44、动Pastry 邻居数:2log1b bn多播树: c2logbn2log1b bn大c 表示节点的最大子节点数,m 表示网格中节点的最大邻居数,n 表示覆盖网节点数,K 为 NICE 最大簇大小,b 为 Scribe 的设计参数。中等表示支持的组成员数目为数百,大表示支持的组成员数目为数千,超大表示支持的组成员数目为数万。第 3 期 廖海宁等:应用层多播协议的多维特性研究 121择分层协议,或者基于 DHT 路由的协议,或者使用代理型的体系结构;3)如果关注优化技术,为了加快协议的收敛速度,建议加入随机漫步技术和概率转换;4)如果关注优化目标,应同时考虑多播树代价和直径; 5)如果关注拓扑适
45、配性,可考虑基于深度优先搜索的协议或分层协议;6)如果关注多源多播,可考虑源多播树,单棵组共享树或多棵组共享树,若需构建源多播树可考虑网优先协议或分层协议; 7)如果关注可靠性,可考虑同时从控制平面和数据平面来提高覆盖网端到端数据分发的可靠性。与基于树的协议相比,基于多源协同服务的应用层多播协议可靠性高和可伸缩性好,但时延不好控制。可 以 看 出 不 同 的 多 播 应 用 具 有 不 同 的 服 务 质量 要 求 , 因 此 在 设 计 应 用 层 多 播 协 议 时 必 须 针 对不 同 的 应 用 需 求 来 综 合 考 虑 选 用 不 同 的 设 计 方 案 。7 结束语目前关于应用层
46、多播的研究中,主要集中于覆盖网构建、维护和优化算法,所考虑的应用多为视频会议、网络电视等流媒体应用。下一步的研究工作可考虑针对其他不同应用需求来设计应用层多播协议,如分布式交互仿真所要求的高吞吐量、多级别可靠、低时延和低抖动。未来的研究主要解决下列问题:覆盖网端到端的拥塞控制和可靠传输;NAT 和防火墙所带来的可达性问题;节点的自私性所引起的可信问题;安全保证,如加入多播组控制、对读取多播组内传递的数据控制、避免转发数据被篡改等。此外覆盖网的组织和优化算法也有待进一步研究。参考文献:1 DIOT C, LEVINE B N, LYLES B, et al. Deployment issues
47、for the Ip multicast service and architectureJ. IEEE Network,2000, 14(1): 78-88.2 EL-SAYED A, ROCA V, MATHY L. A survey of proposals for an alternative group communication serviceJ. IEEE Network, 2003, 17(1): 46-51.3 CASTRO M, JONES M B, KERMARREC A, et al. An evaluation of scalable application-lave
48、l multicast built using peer-to-peer networksA. IEEE INFOCOMC. San Francisco, 2003. 1510-1520.4 TAN S W. Constructing Efficient Self-organising Application Layer Multicast OverlaysD. UK. the University of Kent, 2005.5 CHU Y H, RAO S G, ZHANG H. A case for end system multicastA. Proceedings of ACM Si
49、gmetricsC. 2000.1-20.6 FRANCIS P. Yoid: extending the internet multicast architectureEB/OL. http:/www.aciri.org/yoid, 2000.7 HELDER D A, JAMIN S. End-host multicast communication using switch-trees protocolsA. Workshop on Global and Peer to Peer Computing on Large Scale Distributed System (GP2PC)C. Washington, DC, USA, 2002.419-424.8 KOSTIC D, RODRIGUEZ A, VAHDA