一种p2p流媒体信息发布的方法

文档序号:7655476阅读:205来源:国知局
专利名称:一种p2p流媒体信息发布的方法
技术领域
本发明涉及计算机网络流媒体技术领域,更具体地,本发明涉及一 种P2P流媒体信息发布方法。
背景技术
近年来,随着互联网的迅猛发展和普及,多媒体新闻发布、在线直 播、网络广告、电子商务、视频点播、远程教育、远程医疗、网络电台、 实时视频会议等各种互联网信息服务的广泛应用,对传统的播放方式提 出了新的挑战。流媒体技术可以使数据边传送边播放,节省下载时间和 空间,更由于流媒体数据流的连续性、实时性和时序性,使得流媒体技 术可以广泛应用于各种互联网信息服务中,从而丰富传统互联网内容的 表现形式,赋予宽带应用更多的娱乐性和互动性,因此,流媒体技术必 将成为未来宽带网络业务的主流技术。
传统的流媒体系统主要采用客户端/服务器(C/S)模式,用户以单 播的方式与服务器建立连接,由于流媒体业务高带宽、高服务质量(QoS) 保障的需求,随着用户数目的增多,服务器软、硬件资源将很快被消耗 殆尽,从而导致系统的扩展性极差。
现有技术中解决该问题的一种方法是采用对等网络(P2P)技术。在
P2P网络中,每个节点的地位都是对等的,既是资源提供者,也是资源获 取者。P2P网络不需要部署昂贵的网络基础设施,通过充分利用网络节点 提供的资源来减轻服务器的负担,在可扩展性、容错性、资源利用率等 方面都具有巨大的优势。
与传统的客户/服务器模型相比,P2P技术具有无可比拟的优势。但 是,P2P技术存在着一个严重的缺陷QoS无法得到保障。由于P2P网络 天生具有的高度动态性,每个节点都可能随时终止服务,甚至退出系统, 从而导致其它节点无法从这些节点获得数据;另外,随着网络规模的增 加,节点间的跳数也逐渐增加,使得数据需要经过多跳才能到达接收者, 而由于P2P网络中逻辑相邻的节点可能在地理位置上相隔甚远,使得时 延控制相当困难。
另一种方法是在采用内容分发网络(CDN )。 CDN的核心思想是通过在 网络边缘部署一系列的緩存服务器,将内容服务从原来的单一中心结构 变为分布式结构,并采用智能化策略将用户需要访问的内容从中心分发 到距离用户最近、服务质量最好的緩存服务器上,同时通过后台服务自 动地将用户调度到相应的节点,为用户提供更好的服务,从而将广域传 输转为就近访问甚至本地传输。采用CDN,不但有效提高了用户访问内容 的性能和服务质量,而且有效减轻了中心设备和骨干网络的压力。但CDN 网络造价昂贵、实施复杂的缺点制约了其发展。同时,CDN也存在其它一 些缺陷U)尽管将服务能力和服务内容在网络上进行了分布,但是CDN 本质上仍然是一种C/S模式,系统的扩展必须以服务器的不断部署为基 础,这个特点导致CDN的运营成本非常高,即随着服务能力需求的增加,
需要不断的部署新的服务器;(2 ) CDN技术在高峰时期对突发流量的适应 性、容错性等方面仍然存在一定缺陷;(3)用户仅仅通过部署在网络边 缘的緩存服务器获得数据,而无法利用其他用户的资源以获得数据。
第三种方法是采用网际协议(IP)组播技术,IP组播技术是一种允 许一个组播源发送单一数据包到多台主机的传输技术,主要借助互联网 上支持组播的网络设备的复制分发功能实现。因此,IP组播能够显著减 轻服务器的负载,节省网络带宽和资源,提高数据传输的效率,减少骨 干网出现拥塞的可能,同时提高服务的质量。但是,IP组播存在一些缺 陷(1) IP组播要求路由器必须保存每个组播组的信息,不但违背了路 由器的最初i殳计原则一一 "无状态",而且4吏得网络层变得复杂和不易扩 展;(2) IP组播工作于网络层,是一个"尽力而为"的服务,在单播中 得到很好解决的拥塞控制、流控制、可靠性、安全性等问题,在IP组播 中却;f艮难得到较好的解决。
由于以上三种解决方法不同程度地存在一些严重问题,现有技术仍 然不能很好的同时克服流媒体数据发布系统中资源消耗大、扩展性差和 服务质量不能保证的缺陷。

发明内容
为克服现有流媒体数据发布系统中资源消耗大、扩展性差和服务质 量不能保证的缺陷,本发明提出一种结合IP组播技术的P2P流媒体信息 发布的方法,包括以下步骤
步骤IO)、系统初始化,用户节点确定自己的所在网络区域,优选地,
用户节点将最优索引服务器的所在区域确定为自己的所在网络区域,所
述最优是指与用户节点网络距离最近;
步骤20)、用户节点加入结合IP组播的P2P网络,建立连接以获取 流媒体数据;
步骤30)、用户节点退出结合IP组播的P2P网络。 所述步骤20)还包括步骤用户节点加入所在区域的P2P网络,当 用户节点属于某个组播岛时,判断用户节点所在的组播岛内是否存在相 应的IP组播组;当用户节点所在的组播岛内存在相应的IP组播组,用 户节点通过IP组播或者邻居节点接收流媒体数据;当用户节点所在的组 播岛内不存在相应的IP组播组,所述用户节点与邻居节点建立连接,向 邻居节点请求流媒体数据,并且用户节点作为组播源在所在的组播岛内 创建IP组播组。
所述步骤20)还包括步骤当用户节点所在的组播岛内存在相应的 IP组播组,用户节点加入組播组,通过IP组播接收流媒体数据,如果用 户节点通过IP组播得到的流媒体数据无法满足QoS要求,则所述用户节 点与邻居节点建立连接,向邻居节点请求流媒体数据。
所述步骤30)还包括步骤当用户节点退出结合IP组播的P2P网络 时,首先退出P2P网络;判断所述用户节点是否是某个组播组的组播源, 如果是组播源,查看其所在的组播组内是否存在其它的用户节点,如果 不存在其它的用户节点,则删除其所在组播组的信息,用户节点退出组 播组;如果存在其它的用户节点,则从中随机选取一个节点作为所在组 播岛的组播源,用户节点退出组播组;如果用户节点不是组播源,用户
节点退出组播组。
通过本发明的应用,采用结合IP组播的P2P系统进行流媒体信息的 发布,能够更加充分利用用户节点的资源(带宽、处理能力),提高系统 的可扩展性与可用性,有效地解决了采用P2P技术的流媒体系统中由于 节点的高度动态性而无法保障QoS的缺陷,同时有效地解决了基于IP组 播的流媒体系统中IP组播岛间无法接收流媒体服务的缺陷。


图1为采用P2P技术的流媒体信息发布系统的架构; 图2是结合IP组播的P2P流媒体系统的架构。 图3是节点加入结合IP组播的P2P流媒体系统的流程图。 图4是节点离开结合IP组播的P2P流媒体系统的流程图。 图5为结合IP组播的P2P流媒体系统的一具体应用场景。
具体实施例方式
在现有P2P网络中,每个节点的地位都是对等的,既是资源提供者,
也是资源获取者。P2P网络不需要部署昂贵的网络;i^设施,而是通过充
分利用网络节点提供的资源来减轻服务器的负担,在可扩展性、容错性、
资源利用率等方面都具有巨大的优势。网络中的资源*在所有节点上,
信息的传输直接在节点之间进行,无需中间环节和服务器的介入,避免 了可能单点故障的性能瓶颈。在P2P网络中,随着用户的加入,系统整
体资源和服务能力也在同步扩充,始终能够较容易地满足用户的需要,
其可扩展性在理论上几乎可以认为是无限的。P2P技术可以有效地利用互 联网中散布在大量普通节点上的资源,将计算任务或存储资料分布到各 个结点上,利用其中闲置的计算能力或存储空间,达到高性能计算和海 量存储的目的。通过利用网络中的大量空闲资源,可以用更低的成本提 供更高的计算和存储能力;与传统的客户服务器模型相比,P2P技术具有 无可比拟的优势和更为广阔的前景。
采用P2P技术的流媒体信息发布系统的具体架构如图1所示。在控 制中心部署管理服务器、频道服务器、配置服务器及若干数据源服务器; 每个区域中部署单个索引服务器及若干数据中转服务器,这些服务器与 区域内的用户节点一起构成了区域的P2P网络;用户节点通过运行于终 端(计算机,机顶盒,手机等)的客户端软件加入系统接受服务。图中 实线箭头表示系统中的控制流,虚线箭头表示系统中的数据流。
采用P2P技术的流媒体信息发布系统中,各月良务器的功能如下所述 管理服务器负责对索引服务器、数据源服务器、数据中转服务器的人工 管理及动态配置;频道服务器周期性地从数据库中读取所有数据源服务 器的信息,生成包含所有频道信息的可扩展标记语言(XML)文件,并以 超文本传输协议(HTTP)的方式响应用户的请求而发送该XML文件;配 置服务器周期性地从数据库中读取所有索引服务器的信息,生成包含所 有索引服务器信息的XML文件,并以HTTP的方式响应用户的请求而发送 该XML文件;每个数据源服务器对应一个频道,流化视频文件,生成能 够在网络上传输的流媒体数据包,并传至数据中转服务器;索引服务器 作为所在区域的P2P网络的中心目录服务器保存了该区域中P2P网络中
所有节点的信息;数据中转服务器对应一个频道,从该频道对应的数据 源服务器接收流媒体数据,并作为所在区域的P2P网络中的一个节点响
应区域中的其它节点的请求而发送流媒体数据;客户端软件向用户节点 提供用户界面(UI),用户节点与其它节点进行交互以获取流媒体数据。
采用P2P技术的流媒体信息发布系统中,用户请求流媒体数据实现 方式如下所述
用户节点加入系统之前,首先进行初始化连接频道服务器获取频 道列表,连接配置服务器获取索引服务器列表,并从索引服务器列表中 选择最优(网络距离最近)的索引服务器,从而将该索引服务器的所在 区域确定为自己的所在区域。
当用户节点加入系统时,首先向索引服务器发送加入请求。收到加 入请求后,索引服务器将节点信息加入数据库中,并通过智能选择程序, 选择与该用户节点网络距离最近的节点列表(可能为用户节点或者数据
中转服务器)作为其邻居节点;收到索引服务器的响应后,用户节点与 邻居节点列表中的节点建立连接,并向其请求流媒体数据。
当用户节点退出时,向所在区域的索引服务器发送离开请求。收到 离开请求后,索引服务器从数据库删除该节点的信息,完成用户在采用 P2P技术的流媒体信息发布系统中请求流媒体数据的过程。
可以看出,由于P2P网络天生具有的高度动态性,每个节点都可能 随时终止服务,甚至退出系统,从而导致其它节点无法从这些节点获得 数据;另外,随着网络规模的增加,节点间的跳数也逐渐增加,使得数 据需要经过多跳才能到达接收者,而由于P2P网络中逻辑相邻的节点可
能在地理位置上相隔甚远,使得时延控制相当困难。单纯的使用P2P技 术进行流媒体信息的发布难以保证其QoS。但由于P2P网络应用的广泛性 和前述的诸多优点,所以考虑在P2P网络中结合其他技术进行流媒体信 息的发布,弥补单纯的使用P2P技术存在的缺陷。
IP组播技术是一种允许一个组播源发送单一数据包到多台主机的传 输技术,主要借助互联网上支持组播的网络设备的复制分发功能实现。 首先,在转发组播数据之前,网络设备通过组播相关协议生成组播转发 树,即数据从组播源主机到接收者的传输路径;然后,组播源将数据包 发送到特定组播组,数据包就可以沿组播转发树到达组播组的各个成员, 而只有组播组的成员才能接收到该数据包。組播的基本原则是组播源只 发送一份数据,属于该组播组的主机接收相同数据的拷贝,因此,IP组 播能够显著减轻服务器的负载,节省网络带宽和资源,提高数据传输的 效率,减少骨干网出现拥塞的可能,同时提高服务的质量。
但由于IP组播的复杂性、不易扩展性的缺陷,IP组播并没有在互联 网上得到广泛的应用,只是在局域范围内得到使用,这些局域范围称为 组播岛。所有相邻的支持组播的路由器和它们所在的子网构成一个组播 岛,而组播岛之间的路由器都不支持IP组播,在一个组播岛内可能不存 在组播组,也可能同时存在多个組播组。这样,互联网被划分为若干个 组播岛与其它不支持IP组播的网络部分。
由于上述两种^支术的互补性,可以选择将IP组播技术与P2P网络相 结合进行流媒体数据的发布。IP组播是属于网络层的技术,通过因特网 中的路由和交换设备沿着物理链路复制和转发数据包;P2P是属于应用层
的技术,在应用层建立一个叠加在网络层上的逻辑覆盖网,并沿着覆盖 网中的逻辑链路进行复制和转发数据包。两者属于不同网络层的技术,
互相之间不存在冲突与干扰,本发明选择将IP组播与P2P技术结合起来, 流媒体数据封装在P2P网络中的IP数据报中,穿过"组播岛"之间的路由 和交换设备,在"组播岛"之间传递流媒体数据,从而构建统一的流媒体 信息发布系统,弥补单个技术的缺陷,即在P2P网络中应用IP组播技术, 在IP组播岛内利用组播减轻服务器与骨干网的负载并保障QoS,而整个 网络作为P2P网络,将多个互相孤立的IP组播岛作为P2P节点连接起来, 可以解决IP组播岛间无法利用組播技术交换数据的问题;另外由于P2P 技术工作于应用层,可以利用传输层提供拥塞控制、流控制、可靠性控 制等功能,解决了组播技术应用中产生的拥塞控制、流控制、可靠性不 能保证等问题,形成一种更加完善的应用模式和一种有效的流媒体信息 发布方法。
结合IP组播的P2P流媒体系统由控制中心及若干个区域(国家、省 份、城市或者小区)组成。如图2所示,IP组播岛存在于现有网络之中, 通过索引服务器的信息记录,与现有P2P网络建立连接。索引服务器作 为所在区域的P2P网络的中心目录服务器保存了该区域中P2P网络中所 有节点的信息,同时也保存了所在区域内所有组播组的信息;客户端软 件向用户节点提供用户界面(UI),用户节点通过结合IP组播的P2P网 络获取流媒体数据。
节点加入结合IP组播的P2P流媒体系统的流程如图3所示。用户节 点加入系统之前,需先进行初始化用户节点连接频道服务器获取频道
列表,用户节点连接配置服务器获取索引服务器列表,并从索引服务器 列表中选择最优(网络距离最近)的索引服务器,从而将该索引服务器 的所在区域确定为自己的所在区域。
当用户节点加入系统时,首先加入所在区域的P2P网络用户节点 向索引服务器发送加入请求并告知索引服务器自己是否属于某个组播岛 的信息,如果用户节点属于某个组播岛,告知信息还包括所在组播岛的 编号。索引服务器收到用户节点发出的加入请求后,将用户节点信息加 入数据库中,并通过智能选择程序,选择与该用户节点网络距离最近的 节点列表(可能为用户节点或者数据中转服务器)作为其邻居节点;然 后,索引服务器才艮据新加入的用户节点是否属于某个组播岛做出相应处 理
*如果该用户节点不属于任何组播岛,则无法通过IP组播获得流媒 体数据。于是,索引服务器将邻居节点列表返回给用户节点。收到索引 服务器的响应后,用户节点与邻居节点列表中的节点建立连接,并向其 请求流媒体数据;
*如果该用户节点属于某个组播岛,索引服务器根据该用户节点所在 的组播岛编号查看该组播岛内是否存在相应的IP组播组
1)如果存在,索引服务器将组播地址和邻居节点列表返回给用户 节点,并在数据库中记录用户节点与该组播组的对应关系。用户节点收 到索引服务器的响应后,加入组播组,并通过IP组播接收流媒体数据; 如果用户节点通过IP组播得到的流媒体数据无法满足QoS要求,则与邻 居节点列表中的节点建立连接,并向其请求流媒体数据;
2) 如果不存在,索引服务器将邻居节点列表返回给用户节点,并 命令该用户节点作为组播源在其所在的组播岛内创建IP组播组;用户节 点收到索引服务器的响应后,与邻居节点列表中的节点建立连接,并向 其请求流媒体数据;同时,用户节点在所在的组播島内创建IP組播组, 并将组播地址告诉索引服务器,索引服务器在数据库中记录该组播组的 信息(包括组播地址、组播源等信息),从而使该组播岛内后加入的用户 节点可以通过组播接收流媒体数据;
用户节点离开结合IP组播的P2P流媒体系统的流程如图4所示。当 用户节点退出时,首先退出P2P网络。用户节点向所在区域的索引服务 器发送离开请求,索引服务器收到用户节点发送的离开请求后,从数据 库删除该用户节点的信息。之后查找数据库,查看该用户节点是否是某 个组播组的组播源,如果是组播源,索引服务器查看其所在的组播组内 是否存在其它的用户节点,如果不存在其它的用户节点,则从数据库中 删除其所在组播组的信息;如果存在其它的用户节点,则从中随机选取 一个用户节点,并命令随机选取的用户节点替代离开的用户节点作为所 在组播岛的组播源。当从P2P网络退出后,用户节点判断自己是否在组 播组内,如果是在组播组内,则用户节点退出组播组,此时,用户节点 离开结合IP组播的P2P流媒体系统。
下面通过一个例子,对本发明提供的结合IP组播的P2P流媒体信 息发布方法步骤流程作进一步阐述。
例子
如图5所示,本发明提供的方法的一个具体应用场景在本场景中
具有下列设备位于控制中心的管理服务器、频道服务器、配置服务器、 数据源服务器1和数据源服务器2;位于区域l的索引服务器l、数据中 转服务器l;位于区域2的索引服务器2,数据中转服务器2。
假设此时用户节点C启动客户端软件,希望收看频道l。下面描述用 户节点初始化、加入(注册)、接收流媒体数据以及退出的过程步骤
(1) 、用户节点C通it^l户端软件连接频道服务器,获取频道列表;
(2) 、用户节点C通过客户端软件连接配置服务器,获取索引服务 器列表;
(3) 、用户节点C通it^户端软件探测与各个索引服务器之间的网 络距离,选择网络距离最小的索引服务器1所在的区域1为自己的所在 区域;
(4) 、用户节点C加入P2P网络用户节点C向索引服务器1发送 加入请求并告知自己属于的组播岛编号。索引服务器1收到请求后,将 用户节点C的信息加入数据库中,然后通过智能选择模块选择正在收看 频道1的用户节点A、 B作为用户节点C的邻居节点,并且判断用户节点 C所在的组播岛内不存在频道l的组播组,则将包含A、 B的邻居节点列 表返回给客户端软件,并命令用户节点C作为组播源在其所在的组播岛 内创建组播组;
(5) 、用户节点C收到响应后,与用户节点A、 B建立连接,并向用 户节点A、 B请求流媒体数据;同时按照索引服务器的命令,在所在的組 播岛内创建频道1的IP组播组3;
(6) 用户节点C将IP组播组3的地址告诉索引服务器,索引服务
器在数据库中记录该IP组播组3的信息(包括组播地址,组播源等);
(7)、当用户节点C退出时,首先退出P2P网络用户节点C向索 引服务器l发送离开请求,索引服务器1收到离开请求后,从数据库中 删除用户节点C的信息,并判断出用户节点C是IP组播组3的组播源, 而且用户节点C所在的IP组播组3内不存在其它的用户节点,于是从数 据库中删除组播组3的信息。退出P2P网络后,用户节点C从IP组播组 3退出。
综上所述,采用结合IP组播的P2P系统进行流媒体信息的发布,与 单独采用IP组播或者P2P技术相比,能够更加充分利用用户节点的资源 (带宽、处理能力),减轻流媒体服务器与骨干网的负载,提高系统的可 扩展性与可用性,降低系统的实施和运营成本;有效地解决了釆用P2P 技术的流媒体系统中由于节点的高度动态性而无法保障QoS的缺陷;有 效地解决了基于IP组播的流媒体系统中由于节点处于IP组播岛而无法 通过IP组播接收流媒体服务的缺陷。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非对 其限制,并且在应用上可以延伸到其他的修改、变化、应用和实施例, 同时认为所有这样的修改、变化、应用、实施例都在本发明的精神和范 围内。
权利要求
1、一种P2P流媒体信息发布的方法,其特征是结合IP组播技术进行流媒体信息发布,包括以下步骤步骤10)、系统初始化,用户节点确定自己的所在网络区域;步骤20)、用户节点加入结合IP组播的P2P网络,建立连接以获取流媒体数据;步骤30)、用户节点退出结合IP组播的P2P网络。
2、 权利要求l的方法,其中步骤IO)中,优选地,用户节点将最优 索引服务器的所在区域确定为自己的所在网络区域,所述最优是指与用 户节点网络距离最近。
3、 权利要求l的方法,其中步骤20)还包括以下步骤 步骤210)、用户节点加入所在区域的P2P网络;步骤220 )、当用户节点属于某个组播岛时,判断用户节点所在的组 播岛内是否存在相应的IP组播组;步骤230 )、如果用户节点所在的组播岛内存在相应的IP組播组,用 户节点通过IP组播或者邻居节点接收流媒体数据;步骤240 )、如果用户节点所在的组播岛内不存在相应的IP组播组, 所述用户节点与邻居节点建立连接,向邻居节点请求流媒体数据,并且 用户节点作为组播源在所在的组播岛内创建IP组播组。
4、 权利要求1的方法,其中步骤30)还包括以下步骤步骤310)、当用户节点退出结合IP组播的P2P网络时,首先退出P2P网络;步骤320 )、判断所述用户节点是否是某个组播组的组播源,如果是 组播源,查看其所在的组播组内是否存在其它的用户节点,如果不存在 其它的用户节点,则删除其所在组播组的信息,用户节点退出组播组; 如果存在其它的用户节点,则从中随机选取一个节点作为所在组播岛的 组播源,用户节点退出组播组;步骤330 )、如果用户节点不是组播源,用户节点退出组播组。 5、权利要求3的方法,其中步骤230 )还包括以下步骤,用户节点 加入组播组,通过IP组播接收流媒体数据,如果用户节点通过IP组播 得到的流媒体数据无法满足QoS要求,则所述用户节点与邻居节点建立 连接,向邻居节点请求流媒体数据。
全文摘要
本发明涉及计算机网络流媒体技术领域,是一种在P2P网络中结合IP组播技术进行流媒体数据发布的方法。用户节点加入P2P网络,当用户节点属于某个组播岛时,判断组播岛内是否存在组播组,确认存在后加入组播组中,通过IP组播技术在P2P网络中进行流媒体数据的发布,有效地解决了基于IP组播的流媒体系统中组播岛间无法接收流媒体服务的缺陷和基于P2P技术的流媒体系统中由于节点的高度动态性而无法保障QoS的缺陷。
文档编号H04L12/28GK101355468SQ200710119388
公开日2009年1月28日 申请日期2007年7月23日 优先权日2007年7月23日
发明者浩 任, 冯侦探, 波 刘, 王劲林, 苏少炜, 鲁逸峰 申请人:中国科学院声学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1