搜索
您的当前位置:首页正文

VoIP网络会议系统中分层服务和组播功能的研究

来源:筏尚旅游网
第27卷第4期 2010年4月 计算机应用与软件 Computer Applications and Software Vol_27 No.4 Apr.2010 VoIP网络会议系统中分层服务和组播功能的研究 王 南 聂朋朋 陆建德 (苏州大学计算机科学与技术学院,江苏省计算机信息处理技术重点实验室江苏苏州215006) 摘要 首先概述会议模型的分类,重点分析信令集中、媒体流分布的会议模型下结点采用单播分发音频流的缺点,然后提出一 种基于分层服务的会议系统改进方案,同时引入应用层组播技术实现较大规模会议中音频流的转发,并对会议组播树的构建及性能 进行了讨论。 关键词 会议模型分层服务组播 oN LAYERED SERVICE AND MULTICAST FUNCTIoN IN VOIP NETWoRK CoNFERENCING SYSTEM Wang Nan Nie Pengpeng Lu Jiande (Jiangsu Province Computer IT Key Lab,School of Computer Science and Technology,Soochow University,Suzhou 215006,Jiangsu,China) Abstract In this paper we first outline the classification of conference models,the analysis emphasis is put on the advantages and disad- vantages of distirbuting audio stream with unicast by the nodes in the conference model of concentrated signaling and distributed media stream, then propose an improved conference system scheme based on layered service,and simuhaneously introduce the application layer muhicast technology to realize the transmission of audio stream in large scale conference,the construction and performance of the conference multicast tree are discussed as wel1. Keywords Conference model Layered service Muhieast 制器的许可,因而网络扩展性一般。现有的各会议系统中,媒体 0引 言 流分发采用单播方式,即会议中的成员需向其他每个会议成员 均发送一份自己的媒体流拷贝。这种方式对每个参与会议结点 VoIP会议系统按信令与媒体流的关系主要分为紧耦合和 的带宽要求比较高,只适合规模不大的会议。随着用户对多媒 松耦合两种模型…。紧耦合会议模型是指由一个中心结点实 体会议需求的增加,引入视频功能后对结点带宽的要求更高,因 现信令集中控制,又分为端系统混合、集中混合和信令集中媒体 而进一步限制了会议规模。 流分布三种模式。松耦合会议模型则是指无需中央信令的控 在网络会议的实际应用中,并非所有与会者都需要发言,经 制,终端直接进行交互,又分为组播会议和网状分布式单播会议 常出现的情况是与会者中只有少数人员在发言,而大部分与会 两种模式。其中系统信令集中、媒体流分布模型使用较为广泛, 者处于接听状态。针对这种参加会议的结点需求不同的状况, 如图1所示。它是本文所讨论的会议系统模型。 本文提出一种互动式和广播式相结合的分层服务方案,并讨论 { 、如何引入应用层组播技术来实现大规模会议中音频流的转发。 妒 L了—下_J、、, 、、  如下的讨论假定VolP系统中各节点间的交互采用SIP信 , , 、 、 令,该信令的技术细节可参见RFC 3261文档。 1分层服务 网络会议系统中,会议参与者可以分为两类:一类是VIP结 点,可以发言和接听、发送和接收文件;另一类是大量的Ordinary 图1 信令集中、媒体流分布模型 结点,不能发言但可语音接听及接收文件,少量Ordinary结点在 系统信令集中、媒体流分布模型中核心控制器负责会议的 满足某些激发条件时可转换成VIP结点。这种分层服务模型适 控制,并维护所有终端间点对点的信令连接,各与会终端负责媒 用于大规模网络会议,VIP结点要实现VoIP语音互动,对时间延 体流处理。其结构如图1所示。媒体流的分发采用组播或单播 迟比较敏感,将和会议中其它VIP成员直接建立SIP连接,其音 的方式。该会议模型具有集中的会议控制功能,媒体流的处理 比较方便,且延迟较小。缺点是要求每个终端需具有较高带宽 收稿日期:2008—1l一1l。王南,硕士生,主研领域:网络技术 且支持所有成员的编码格式。此外新成员的加入需通过中心控 P2PSIP VoIP网络通话。 246 计算机应用与软件 2010血 频流可以实时发送和接收,适合于会议发言者;作为被动接收方 标识进行HASH运算,得到Conf-ID,通过CHORD算法定位会议 的Ordinary结点,其对时间延迟的敏感度较低,其音频流可通过 管理结点CM,向其发出INVITE请求加入会议。CM将验证其 应用层组播来实现,适合于大规模的会议参与者。因此,VIP结 VIP身份,若验证成功,将向待加入结点发送200 OK响应消息, 点之间组成的是一个完全图,而Ordinary结点之间组成的是一棵 并在Contact头域中携带一些会议信息。而待加入结点可以向 组播树。Ordinary结点可按照物理位置相近原则挂接到相近的 CM发送SUBSCRIBE消息订阅会议相关信息。同时CM向其它 VIP结点。挂接原则是将Ordinary结点挂接到与其DNS服务器 与会VIP结点发送NOTIFY消息以通知新结点的加入。最后 地址相同或者最相近的区域,这样就使得位置较近的Ordinary结 CM通过心跳机制向备份会议管理结点发送更新数据,以保持 点组成组播树,所有的Ordinary结点构成了包含有若干棵组播树 管理结点群的一致性。 的一个树林。按照这些方法建构的组播树,在进行数据转发时可 (3)退出会议VIP结点主动退出会议时向CM发送BYE 尽量避免覆盖网结构和物理结构不匹配的问题。 消息请求退出。CM接收后,将所有由该VIP结点负责管理的 1.1 改进后的基于分层服务的会议模型 Ordinary结点转移到一个新的VIP结点,然后向其他与会人员 基于分层服务的会议模型主干由VIP结点和会议管理结点 发送NOTIFY消息告知该VIP结点的退出,同时将相关信息发 组成,采用信令集中、媒体流分布模型,而Ordinary结点之间组成 送至备份管理结点。 的是一棵组播树。则如图2所示,其中M为会议管理结点,A、B、 1.4 Ordinary结点会议功能设计 H、E为VIP结点,C、F、I、G、D、K为Ordinary结点,按照上述的挂 Ordinary结点主要与所挂靠的VIP结点进行信令交互,通 接原则,与B距离较近的C、F、I挂接到B结点上,C、D挂接到与 过该VIP结点获取会议信息。Ordinary结点的功能罗列如下: 它们较近的H结点,K挂接到与之距离较近的E结点。 (1)参加会议 Ordinayr结点参加会议时,对会议标识进 行HASH运算,得到Con ̄ID,通过CHORD算法定位会议管理结 点CM,向其发出INVITE消息请求加入会议。CM会验证其身 份,按第2节所述的挂接原则为其选择VIP管理结点,再按第3 节所述方案加入到该VIP管理结点所负责的组播树中。 (2)退出会议Ordinary结点正常退出时,向所挂靠的VIP 管理结点发出退出请求,该VIP管理结点将更新管理信息及组 播树。Ordinary结点异常退出时,如果它是所在组播树的根结 图2基于分层服务的会议模型 点,则其VIP管理结点将启用备用挂接结点挂接组播树;若不 该模型中核心管理结点组成会议的信令控制中心,负责维 是,组播树将通过恢复算法进行更新。 护与所有参与会议VIP结点问的信令连接。VolP音频流则由 (3)升级为VIP结点若Ordinary结点想拥有发言权,可升 每个VIP结点各自处理,每个参与会议的VIP结点同时接收其 级为VIP结点。首先它需要获得VIP密码,再向CM发送升级请 它与会VIP结点的VoIP音频流。Ordinary结点在开始加入时 求,CM接收请求后验证其VIP密码,若验证通过,CM首先通知 需要同会议管理结点之间有信令交互,一旦挂接到某个VIP结 该Ordinary结点原来所挂靠的VIP结点使其退出组播树,然后将 点后则其操作主要与该挂接VIP结点之间进行信令交互,音频 此Ordinary结点作为VIP结点加入,同时向其它VIP结点发出 流则直接通过组播方式转发。会议管理结点不参与音频流的处 NOTIFY通知。最后将更新信息传给备份会议管理结点。 理,会议管理信息将备份到同一会议的不同管理结点上。每个 会议的发起由CHORD 逻辑环上的结点发出,CHORD逻辑环 2结点挂接原则 上的各结点可以发起多个会议,不同会议的管理将分布在不同 的结点上。 Ordinayr结点选择挂靠VIP结点时,将比较Ordinary结点的 1.2分层服务下的结点角色扩展 DNS服务器与各VIP结点的DNS服务器之间的距离,从中取距 分层服务下的会议角色主要分为:会议创建者CC(Confer. 离最近的VIP结点进行挂靠。这样使得位置较近的Ordinary结 ence Creator)、会议管理者CM(Conference Manager)、会议参与 点组成组播树。可采用CTAG(Critical Topology Aware Grouping) 者CP(Conference Participant)。其中会议参与者又分为高级与 分组方式 来衡量给定IP地址的两个结点之间的距离。CTAG 会者CVP(Conference VIP Participant)和普通与会者COP(Con. 分组方式是采用IP地址作为计算对象,参考全球和各分区IP ference Ordinary Participant)。 地址管理机构的分配策略,在扩展的Gnutella协议上将不同区 1.3 VIP结点会议功能设计 域的结点分布开,使其与各自区域邻近的结点连接起来,形成区 域上的群体。CTAG基于IP地址的区域分配机制。 VIP结点的功能罗列如下: CTAG分组策略通过计算两个结点的IP地址间的“距离” (1)获取会议信息VIP结点可通过向会议管理结点发送 来获得结点之间大致的物理拓扑的邻近程度。对于A和B两 SUBSCRIBE消息订阅相关事件和会议通知服务,会议管理者 个IP地址,具体的计算原则为最长匹配地址段:从地址二进制 CM会验证其身份,VIP结点享用一个密码以标识其权限,该权 数值最高位开始,每次以8位为单位匹配。每匹配8位,结点邻 限码由会议发起者在会议创建之初传给CM。会议管理结点会 近度量AM(Adjacency Measurement)增加1,直至遇到不匹配的 周期性的或在与会结点发生变动的时刻,向所有参与会议的 8位为止。因此AM可能取值为3、2、1和0。若AM:0/1,此时 VIP结点发送NOTIFY消息以更新本地会议信息及与会人员列 表示两个IP地址最高的8位或者为不同,或者为虽然相同,但 表等。 后续的都不同,需要进一步通过一个IP分区表来确定两个IP (2)参加会议VIP结点参加会议时,将事先得知的会议 地址所属区域,并以此来最后决定确切的AM数值。若确实属 第4期 王南等:VolP网络会议系统中分层服务和组播功能的研究 247 于同一个区域,则AM为0,否则AM为一1。 B结点的失效,VIP结点将启动组播树的稳定性维护算法对整 3会议组播 组播技术是互联网研究的重要课题之一。IP组播主要在路 棵组播树进行更新,一旦D、E结点找到新的父结点,它们将向 c发出信息,通知C结点暂时代替B的工作结束。与VIP结点 直接挂靠的结点作为整个组播树的根,也存在单点失效性的问 题,因此VIP结点内还要存放m个备份挂靠点的链接。当其失 效时,VIP结点将从备份挂靠结点中选择一个新的结点作为根 以进行组播树的更新。 由器上实现,通过合并重复信息来减少带宽浪费和降低服务器的 负担。由于IP组播在传输技术和管理上存在严重问题,目前没 有在互联网中普遍采用。随之出现了应用层组播ALM(Applica- tion Layer Multicast)技术。它保持了互联网的“单播、尽力发送” 模型,将组播功能从路由器转移到终端,不需要路由器维护组播 组的路由表,且不用改变现有网络设施,方便实现组播功能。采 用应用层组播技术,传输的性能将大为改善 。同样,VolP网络 会议系统若采用应用层组播技术,将节省网络带宽,提高流媒体 传输的性能。接下来讨论VolP会议系统的组播方案。 3.1会议音频流组播方案 对于音频媒体流的接收,VIP结点间采用直接传送,接收到 媒体流的VIP结点还负责把媒体流转发给自己的挂接结点,由 挂接结点通过应用层组播策略继续转发给其余Ordinary结点。 本文所设计的应用层组播策略采用集中控制,由该组播树所挂 靠的VIP结点负责结点的加入和离开,以及结点失效时的处理。 一个VIP结点挂接的各Ordinayr结点组成一棵k叉组播 树,该k叉树的根就作为挂接点与VIP结点相连接。当根接收 到媒体数据时,立刻将媒体数据传至孩子结点,接受到媒体数据 的孩子结点继续传给自己的孩子结点,依此类推,直到树中所有 结点接收到媒体数据。随着树每层结点数以k倍递增,音频数 据将很快转发至叶子结点。 k的取值受结点带宽能力的限制,带宽能力较强时,k可设 定较大的值,以降低树的深度。本文仅讨论 =2时的方案,这 种方案中每个Ordinayr结点只需将音频数据发至2个孩子结 点,大大降低了对普通与会者的带宽要求。缺点在于叶子结点 接收数据的时间延迟较大,但实际来讲,只要听众所听的声音是 持续不间断的,时间的延迟在某种程度上可以接受。 3.2会议组播树 挂靠在某一个VIP结点的所有Ordinary结点,根据其与 VIP结点间的DM值作为KEY值组成一棵二叉排序树。组播树 挂靠的VIP结点作为整棵树的中心控制者,负责结点的加人以 及组播树的维护。当有结点成员加入、离开或失效时,VIP结点 要保证组播树不断裂,同时与各结点之间进行必要的信令连接。 每个结点成员通过心跳机制监视自己与其它相关部分结点的单 播路径,向VIP结点提供相应信息。 组播树虽然易于控制,但存在单点失效问题,某个子树的根 结点一旦失效,该子树的所有结点都将从组播树中脱离。作为 P2P网络中的结点,其动态性较强,随时都有可能加入或退出, 所以本文对组播树作了改进。每个结点在与左右孩子相连之 外,还与其兄弟结点的孩子结点相连接。如图3所示,结点B不 仅与孩子结点D、E连接,同时也跟其兄弟结点C的孩子结点 F、G双向连接。F、G称为B的托管孩子结点,B称为F、G的托 管父结点。媒体数据流在正常情况下转发时,采取父结点一孩 子结点的向下洪泛策略。一旦某结点如B失效,其孩子结点D、 E向其托管父结点C发起请求报文,C结点通过验证得知是D 和E自己的托管孩子结点,将暂时承担起结点B的工作,代替B 结点进行数据转发。同时,D、E向VIP结点发出通知信息,报告 图3组播树结构 以下讨论组播树中结点的加人和退出。 (1)结点加入组播树 当Ordinary结点要加入到VIP结点所挂靠的组播树中时, 将其与挂靠VIP结点间的DM值作为KEY值,按照插入算法选 择合适的位置插入到组播树中,其父结点将兄弟结点的地址传 给该结点,同时向其兄弟结点发送报文告知该结点的加入。以 某Ordinary结点s为例,其加入过程如下: ①s向VIP结点发送join报文。 ②VIP结点将S的DM值跟所挂靠根结点ROOT的key值 作比较,如S.DM>ROOT.key,则执行第③步准备将s插入到 ROOT的左子树,否则将s插入ROOT的右子树。 ③重复②直至找到合适的位置插入组播树,根据图3所 示,注意更新该结点父结点的孩子指针、其托管父结点的托管结 点指针,此外还要更新该结点的托管父结点指针。 (2)结点退出组播树 当结点s准备退出会议,或者由Oridnary结点升级到VIP 结点时,都会退出组播树。此时分三种情况: ①若s是组播树的叶子结点,则s首先通知其父结点以及 托管父结点,其父结点将孩子指针置空,其托管父结点删除指向 该结点的指针。 ②若s只有一个孩子结点,则s首先通知其父结点以及伯 父结点,s的父结点只须将孩子指针指向s的孩子结点,同时s 托管父结点的指针也指向s的孩子结点,而由s负责的托管结 点转移由s的孩子结点负责。 ③若s有两个孩子结点,设s在组播树中序遍历序列中的 直接前驱结点P,S的左子树的根结点为c,右子树的根结点为 D,则s退出时首先将s的左子树改为s原父结点的左子树,将 s的右子树改为P的右子树。同时S负责托管的孩子结点转由 c托管,c的托管父结点也改为s的托管父结点,D的托管父结 点改为P的兄弟结点,D的孩子结点的托管父结点改为D的新 兄弟结点。 3.3会议组播树的性能讨论 现有的应用层组播协议有很多评价标准,这里主要就以下 三个方面对本文提出的组播树方案进行性能讨论: (1)路径长度和树的最大度约束本文组播树路径长度最 大即组播树的深度,即Llog2ⅣJ+1,最大度约束为4,包括一般 情况下数据转发给的2个孩子结点,以及异常情况下数据转发 给的2个托管孩子结点。如果组播树是k叉树,则路径长度更 248 小,而最大度约束值更大。 (2)平均控制代价计算机应用与软件 2010正 VolP网络会议系统有很好的参考价值。但是对该策略的研究 还需要作深入探讨,具体实现尚待构建大规模的测试环境,以测 平均控制代价是指维护拓扑的平均代 价,用控制信息的数目或占用的带宽计算。本文组播树的拓扑 维护主要通过VIP结点来维护,其结点的加入删除操作时间复 杂度为0(1ogⅣ)。 试组播树的性能,从而进一步修正组播树策略。 参考文献 (3)物理底层网络与覆盖网不匹配问题本文的组播方案 [1]Rosenberg J.A Framework for Confereneing with the Session Initiation Protocol(SIP)[S].RFCA353,February 2006. [2]Stoica I,Moms R,Karger D,et a1.Chord:A Scalable Peer—to-peer 是按DM值组成一棵类似二叉排序树的组播树。在本文组播树 方案中,DM相近的结点被置放于一个子树中,这样在应用层组 播转发数据时,会将数据转发到距离相近的结点,尽量避免物理 Lookup Service for Inteuert Applications[C]//Proceedings of the ACM SIGCOMM 2001 Conference,San Diego,August 2001:149—160. 网与覆盖网的不匹配,也使得数据转发时延降低。 [3]Jia Zhao,Jian—De Lu.Solving Overlay Mismatching of Unstructured P2P 4结语 Networks using Physical Locality Information[C]//The Sixth IEEE International Conference OFi Peer—to-Peer Computing,September 2006: 75—76. 本文讨论了信令集中、媒体流分布模型下会议系统的特点, [4]Suman Banerjee,Bobby Bhattach ee,Christopher Kommareddy.Scala- 同时针对大规模会议的需求,提出一种基于分层服务和应用层 ble Application Layer Muhicast[C]//Proceedings of ACM Sigcomm, 组播的解决方案,并讨论了组播树策略。本策略对现有的各种 Pittsburgh,USA,2002. (上接第168页) 代开发周期的实现过程中,为了更好地设计开发,开发组每天早 的规范性,强调每个人都必须遵守编码标准以方便整个小组的 上有一次简短的站立会议,沟通遇到的问题,交流开发知识,明 工作,并使得整个程序的风格保持一致,增强代码的可读性和可 确一天工作重点;接下来,两两配对协商工作,先编写单元测试 维护性。也就是说,重点不在于标准本身,而在于所有人都必须 程序,以便于更快地生成代码.通过不断地编写和累积,测试可 遵守。 以基本覆盖全部的客户和开发需求,因此得到尽可能充足的反 极限编程中的代码重构也是确保代码质量的一种手段。所 馈;然后结队编程(前面工作增加了软件质量却并未影响软件 谓代码重构是指在不改变功能性的前提下对代码进行改进,以 交付时间),编写出符合测试要求的代码,并不断地设计重整和 消除冗余、增加灵活性和提高性能。当一段代码的设计不够完 优化。通过代码规划/反馈循环过程,客户能非常清楚地掌握已 善、不够简洁、不够规范时,对其进行设计重整,设计重整是同行 经完成的功能和开发进度,并基于这些情况和开发人员进行有 评审或自我评审的结果。它导致更加完善的设计或编码,达到 效地、及时地交流,用户意见可以随时返回循环图中的任意一个 精化系统。 环节,开发人员相应修改、精化代码的生成。极限编程要求频繁 地发布软件,(几乎每隔一两天)整合后,就发布一个新的应用 系统,每次整合都要运行相应的单元测试和验收测试,保证符合 客户和开发的要求。 4 结论 代码复查通过成对地编写代码来做到,测试用例必须在编 写代码之前编写。文档很少与代码保持一致,因此抛弃了大量 冗余的开发文档,各个需求取决于明确编写的代码和测试。极 限编程缩短了开发周期,但仍然可以通过快速的周期迭代、客户 图2代码规划/反馈循环图 参与、持续集成、测试先行、配对开发等方式从开发过程的角度 围绕代码进行的规划/反馈循环过程(如图2所示),能够 来进行质量的控制。并且,统一的代码规范以及对代码的重构 及早发现问题、解决问题,从根本上保证生成质量不错的代码。 发布计划让客户阐述需求,开发人员估算开发成本和风险,之后 也从代码的角度来确保软件产品的质量。因此,极限编程在做 客户制订一个大致的项目计划(该计划在实施过程中被不断地 到敏捷的同时能够保证软件的一定质量。 调整以趋精确)。迭代计划就是开发团队根据发布计划,和客 参考文献 户一起把需求分解成一个个很小的需求模块(UserStory),经过 [1]卡耐基梅隆大学软件工程研究所.能力成熟度模型(CMM):软件 开发人员和客户分别从不同的角度评估每个模块的开发成本和 过程改进指南[M].刘盂仁,译.北京:电子工业出版社,2003. 风险后,它们被安排在不同的开发周期里,之后分别被程序员们 [2]Highsmith J,Cockburn A.Agile software development:the business of 在各个小的迭代开发周期中实现。在同一个项目中,每经过一 innovation[J].Computer,2001,34(9):120—122. 个开发周期,下一次的估算都会有更好的经验、参照和依据,从 [3]马凯西.极限编程透视[M].卢庆龄,译.北京:电子工业出版 而更加准确。客户为每个需求模块指定验收测试,从测试角度 社.2004. 评审编程任务设计,通过运行验收测试开发人员和客户可以知 [4]Kenet P S.Sotfware process quality:management and control[M].New 道开发出来的软件是否符合要求,并相应调整。在各个小的迭 York:Marcel Dekker,1999, 

因篇幅问题不能全部显示,请点此查看更多更全内容

Top