论文部分内容阅读
【摘要】:P2P 技术的迅速发展使其成为构建广域网中大型分布式系统的有力工具。本文以下内容将对P2P流媒体系统设计进行研究和探讨,以供参考。
【关键词】:P2P;流媒体;系统设计
中图分类号: S611 文献标识码: A
1、前言
P2P 系统由网络中为数众多的参与结点组成,其数量一般在十万以上,甚至具有百万或百万以上的量级。每个参与结点具有一定的服务能力,单个结点的资源和能力可能非常弱小,譬如仅是一台普通桌面电脑的空闲资 源。P2P 系统设计的关键在于让单个能力弱小但总数巨大的结点群体通过精巧的协作方式,提供强大的聚合服务能力。由于结点数量众多,整个系统的资源总量(如计算能力、存储空间、聚合带宽等)是相当可观的,而且能随着结点不断加入而自我扩展。通过合理的结构和协作算法,P2P 系统能够均衡地利用各个结点的资源,保证每个结点的负载都不超过其有限的服务能力,同时整体达到相当巨大的服务能力。由此可见对其进行研究具有非常重要的意义,本文以下内容将对P2P流媒体系统设计进行分析和探讨,以供参考。
2、P2P流媒体系统设计
P2P 流媒体系统的核心模块是对数据发送节点的动态选择和在多个数据发送节点间的数据分派算法。由于 P2P环境地高度动态性和异构性,为了实现高质量的媒体流,如何选择最优的数据发送节点是一个很重要的问题,也是设计实现流媒体系统最大的挑战之一。在动态环境中维护和选择出满足流媒体播放质量要求的邻居节点的基础上,还要设计合理的算法在多个数据发送节点间优化数据发送的选择, 来获得最小的数据传输延迟。
2.1、P2P流媒体系统总体设计
P2P 流媒体系统的基本目标是在 P2P 底层覆盖网提供的拓扑维护、信息查询等通讯服务的基础上,以接受节点驱动(PUSH)的方式,以网状的拓扑结构,动态选择数据发送节点,并在数据发送结点间合理分派数据来实现的高质量的媒体数据传输。该系统由四个关键功能模块组成:一是底层 P2P 覆盖网络模块。为流媒体应用提供基本的拓扑结构构造 维护,信息路由查询和网络状况探测等功能。二是数据发送节点动态选择模块。根据网络状况和数据传输速率等因 素来动态选择出“活动数据发送节点集合”,从这个集合中的节 点请求媒体数据来获取最优的数据传输速率。三是数据调度模块。在数据发送节点间,根据对方服务能力,数据带 宽等因素来分派每个数据发送节点所发送数据的次序,从而获得 最小的数据接受延迟。四是监控和自调整模块。动态监控每个数据发送节点的数据传输和数 据丢失状况,为节点选择模块和数据分派模块提供必要的统计信息。
2.2、核心算法
P2P核心算法主要包含如下几个方面:第一,数据发送节点选择算法。决定一个数据发送节点S服务能力的主要参数是与数据接受节点R间的端到端带宽。因此,一个简单的数据发送节点算法就是对底层拓扑返回的节点列表按照端到端带宽进行排序,选出前 n 个数据发送节点,使得每个数据发送节点的数据发送带宽之和 ∑ Bu (S j ) ≥ β Bp (R) 。其中,j =1,β ≥ 1 。更为精确的节点选择算法还需要考虑的备选结点到数据接受节点间端到端路径的相关性。因为,这些端到端路径可能共享某些底层网络路径,从而有同时网络涌塞(Congestion)的可能。本文暂不考虑这些情况。第二,数据调度算法。具體来说, 就是给定一个数据请求节点和一个数据发送节点集合,而这些数据发送节 点间的上载带宽各不相同,如何在与每个数据发送节点间建立的数据传输通道间调度数据传输速率和数据块次序来获得最小的数据传输延迟。这个问题的形式化描述如下:给定一个数据接受节点 R 和 n 个可用数 据发送节点,数据发送节点 Si 的发送带宽上限为 Bu (Si ) ,优化目标是获得 使节点 R 可以连续播放的最小数据传输延迟。这个传输延迟定义为节点 R 上媒体流的开始时间与播放时间的差。这个传输延迟的产生是由于存在多 个数据发送管道,而在多个管道中数据块的传输顺序与播放顺序不同。因 此,对于多个数据发送节点的 P2P 流媒体系统来说,数据传输调度算法对 于减少传输延迟来说至关重要。我们定义函数 p(t ) 为播放开始之后时间t秒所播放的数据,函数 d (t) 定义为从流媒体开始之后t秒之后数据接收节点R所接受到的连续数据块。假定数据用CBR(恒定比特率)方式编码,因此,可以用时间来标示数据。下面我们用时刻k来表示播放 k 秒的流媒体所需要下载的数据。第三,监控模块。在整个流媒体会话过程中,数据发送节点可能退出会话,或者网络发 生拥塞或中断。这些事件的发生会影响数据传输质量,因此我们需要引入 监控模块。监控模块运行在数据接收节点上,对每一个数据发送节点实时 的收集丢包率和数据传输速率信息。当发现某个数据发送节点的丢包率突 然上升或数据传输速率突然下降,则认为这个数据发送节点失效或发生链路断开。这时从备选节点集合中选出一个节点加入活动数据发送节点集合,来代替失效节点。若监控模块发现某个数据发送节点的数据传输速率发生抖动,则重新 启动数据调度模块来对现有活动数据发送集合中的节点重新分配数据块序列。如果发现重新分配序列之后仍不能满足应用需求,那么从备用节点 集合中选择节点加入活动数据发送节点集合。
3、结尾
本文以上内容对P2P流媒体系统的总体设计和核心算法进行了介绍,表达了观点,提出了见解,但本人深知,必须加大学习的力度,紧追时代和科技发展的步伐,只有这样才能在信息技术发达的今天勇立潮头。
【参考文献】
[1]《动态电子商务的WEB服务》李劲等,清华大学出版社
[2]《J2EE构建企业级应用解决方案》陈华军等,人民邮电出版社
[3] 《软件工程》张海藩等,人民邮电出版社
【关键词】:P2P;流媒体;系统设计
中图分类号: S611 文献标识码: A
1、前言
P2P 系统由网络中为数众多的参与结点组成,其数量一般在十万以上,甚至具有百万或百万以上的量级。每个参与结点具有一定的服务能力,单个结点的资源和能力可能非常弱小,譬如仅是一台普通桌面电脑的空闲资 源。P2P 系统设计的关键在于让单个能力弱小但总数巨大的结点群体通过精巧的协作方式,提供强大的聚合服务能力。由于结点数量众多,整个系统的资源总量(如计算能力、存储空间、聚合带宽等)是相当可观的,而且能随着结点不断加入而自我扩展。通过合理的结构和协作算法,P2P 系统能够均衡地利用各个结点的资源,保证每个结点的负载都不超过其有限的服务能力,同时整体达到相当巨大的服务能力。由此可见对其进行研究具有非常重要的意义,本文以下内容将对P2P流媒体系统设计进行分析和探讨,以供参考。
2、P2P流媒体系统设计
P2P 流媒体系统的核心模块是对数据发送节点的动态选择和在多个数据发送节点间的数据分派算法。由于 P2P环境地高度动态性和异构性,为了实现高质量的媒体流,如何选择最优的数据发送节点是一个很重要的问题,也是设计实现流媒体系统最大的挑战之一。在动态环境中维护和选择出满足流媒体播放质量要求的邻居节点的基础上,还要设计合理的算法在多个数据发送节点间优化数据发送的选择, 来获得最小的数据传输延迟。
2.1、P2P流媒体系统总体设计
P2P 流媒体系统的基本目标是在 P2P 底层覆盖网提供的拓扑维护、信息查询等通讯服务的基础上,以接受节点驱动(PUSH)的方式,以网状的拓扑结构,动态选择数据发送节点,并在数据发送结点间合理分派数据来实现的高质量的媒体数据传输。该系统由四个关键功能模块组成:一是底层 P2P 覆盖网络模块。为流媒体应用提供基本的拓扑结构构造 维护,信息路由查询和网络状况探测等功能。二是数据发送节点动态选择模块。根据网络状况和数据传输速率等因 素来动态选择出“活动数据发送节点集合”,从这个集合中的节 点请求媒体数据来获取最优的数据传输速率。三是数据调度模块。在数据发送节点间,根据对方服务能力,数据带 宽等因素来分派每个数据发送节点所发送数据的次序,从而获得 最小的数据接受延迟。四是监控和自调整模块。动态监控每个数据发送节点的数据传输和数 据丢失状况,为节点选择模块和数据分派模块提供必要的统计信息。
2.2、核心算法
P2P核心算法主要包含如下几个方面:第一,数据发送节点选择算法。决定一个数据发送节点S服务能力的主要参数是与数据接受节点R间的端到端带宽。因此,一个简单的数据发送节点算法就是对底层拓扑返回的节点列表按照端到端带宽进行排序,选出前 n 个数据发送节点,使得每个数据发送节点的数据发送带宽之和 ∑ Bu (S j ) ≥ β Bp (R) 。其中,j =1,β ≥ 1 。更为精确的节点选择算法还需要考虑的备选结点到数据接受节点间端到端路径的相关性。因为,这些端到端路径可能共享某些底层网络路径,从而有同时网络涌塞(Congestion)的可能。本文暂不考虑这些情况。第二,数据调度算法。具體来说, 就是给定一个数据请求节点和一个数据发送节点集合,而这些数据发送节 点间的上载带宽各不相同,如何在与每个数据发送节点间建立的数据传输通道间调度数据传输速率和数据块次序来获得最小的数据传输延迟。这个问题的形式化描述如下:给定一个数据接受节点 R 和 n 个可用数 据发送节点,数据发送节点 Si 的发送带宽上限为 Bu (Si ) ,优化目标是获得 使节点 R 可以连续播放的最小数据传输延迟。这个传输延迟定义为节点 R 上媒体流的开始时间与播放时间的差。这个传输延迟的产生是由于存在多 个数据发送管道,而在多个管道中数据块的传输顺序与播放顺序不同。因 此,对于多个数据发送节点的 P2P 流媒体系统来说,数据传输调度算法对 于减少传输延迟来说至关重要。我们定义函数 p(t ) 为播放开始之后时间t秒所播放的数据,函数 d (t) 定义为从流媒体开始之后t秒之后数据接收节点R所接受到的连续数据块。假定数据用CBR(恒定比特率)方式编码,因此,可以用时间来标示数据。下面我们用时刻k来表示播放 k 秒的流媒体所需要下载的数据。第三,监控模块。在整个流媒体会话过程中,数据发送节点可能退出会话,或者网络发 生拥塞或中断。这些事件的发生会影响数据传输质量,因此我们需要引入 监控模块。监控模块运行在数据接收节点上,对每一个数据发送节点实时 的收集丢包率和数据传输速率信息。当发现某个数据发送节点的丢包率突 然上升或数据传输速率突然下降,则认为这个数据发送节点失效或发生链路断开。这时从备选节点集合中选出一个节点加入活动数据发送节点集合,来代替失效节点。若监控模块发现某个数据发送节点的数据传输速率发生抖动,则重新 启动数据调度模块来对现有活动数据发送集合中的节点重新分配数据块序列。如果发现重新分配序列之后仍不能满足应用需求,那么从备用节点 集合中选择节点加入活动数据发送节点集合。
3、结尾
本文以上内容对P2P流媒体系统的总体设计和核心算法进行了介绍,表达了观点,提出了见解,但本人深知,必须加大学习的力度,紧追时代和科技发展的步伐,只有这样才能在信息技术发达的今天勇立潮头。
【参考文献】
[1]《动态电子商务的WEB服务》李劲等,清华大学出版社
[2]《J2EE构建企业级应用解决方案》陈华军等,人民邮电出版社
[3] 《软件工程》张海藩等,人民邮电出版社