论文部分内容阅读
互联网组通信应用的日益普及和传统IP组播发展面临的困境导致应用层组播技术逐步受到广泛关注。将组播功能从路由器迁移到主机虽然有效解决不少与IP组播相关的问题,但也面临新的挑战。不同于将路由器作为组播树内部节点的IP组播,应用层组播由主机构成组播树的全部节点,它会因为单个节点的退出或失效,而被迫调整多个其它节点在组播树中的位置,从而导致多个组播连接被迫中断,因此需要重新构造组播树。通常称这种问题为应用层组播稳定性问题。应用层组播稳定性问题严重影响用户接收组播数据的连续性,因此提高稳定性成为提高组播服务质量的必然要求,本文主要研究如何提高应用层组播稳定性。本文首先阐述应用层组播稳定性问题产生的原因,提出衡量应用层组播稳定性的指标,分析影响应用层组播稳定性的因素,根据影响因素将应用层组播稳定性提高技术分为降低节点离开事件发生频率、缩小节点离开事件影响范围和缩短节点离开后组播树恢复时间等三类技术,综合分析了目前各种提高应用层组播稳定性的技术。针对现有研究存在的主要不足,对应用层组播稳定性提高技术展开深入研究,主要研究工作包括以下四个方面:组播树构造算法是决定应用层组播性能的关键,而现有研究还没有明确提出以应用层组播稳定性为优化目标的组播树生成问题及其算法。针对该问题,本文首先提出瞬态稳定度模型ISDM,该模型定义了衡量组播树在组播会话某一时刻稳定性的指标。利用组播用户动态行为的统计学特性,提出一种评估ISDM模型中节点相对离开概率的方法。基于ISDM模型,本文进而提出延迟受限最大瞬态稳定度组播树生成问题DDSD及其退化问题DSD,证明了它们是NP-Hard问题,并分别给出集中式算法DDSD-H和分布式算法DSD-D。仿真结果表明,DDSD-H算法和DSD-D算法能够有效缩小节点离开事件的平均影响范围。节点失效检测是恢复因节点失效而造成分割的组播树的前提,提高失效检测性能是缩短组播树恢复时间的重要措施之一。可以从两个方面提高失效检测性能,一是设计高效的失效检测机制,二是优化失效检测机制的参数配置方法。针对前者,本文提出合作式探测机制CPS,该机制将各个节点的父子节点组成检测环,并在环内共享探测丢失信息。针对现有参数配置方法难以适应节点对检测性能需求的差异性问题,本文提出基于节点影响度的参数配置模型,基于该模型进而提出层次化参数配置方法HPC。理论分析和仿真结果表明,通过HPC方法合理地配置参数,CPS能够以较低的额外开销,同时降低节点失效检测时间和误检概率。组播树重构是检测出节点失效和节点主动退出后都需要的过程,加快组播树重构过程是缩短组播树恢复时间的重要措施之一。相对于后向式树重构策略,前向式树重构策略通过在父节点离开前预先计算备用节点,能够有效缩短非结构型应用层组播树的重构时间。本文将前向式重构策略扩展应用于基于Chord DHT的结构型应用层组播树,提出路径备用机制,该机制在父节点离开前预先为每个节点寻找一条用于重新加入组播树的备用路径。本文设计了支持快速重构组播树的应用层组播协议ChordM-FR。仿真结果表明,在重构组播树的速度方面,ChordM-FR协议比采用后向式重构策略的ChordM-SR协议平均快约2.5倍。代理型应用层组播是一种通过降低节点离开事件发生频率和缩小节点离开事件影响范围而提高应用层组播稳定性的技术,然而传统代理节点的组播转发机制存在重复复制报文的缺陷,这将浪费代理节点有限的带宽和计算资源。针对该问题,本文提出基于硬件的组播转发机制,该机制有效降低了应用层组播报文从主机内存到网卡缓冲区之间的复制次数,并降低了主机CPU处理开销。理论分析表明,该机制不但可以降低应用层组播延迟,而且可以提高应用层组播代理节点的组播转发服务容量。通过修改网卡驱动并向协议栈增加相应的API,本文实现了基于硬件的组播转发机制。实际环境测试表明该机制具有可行性和有效性。