一种实时流媒体多点传输的方法和设备的利记博彩app

文档序号:7690772阅读:72来源:国知局
专利名称:一种实时流媒体多点传输的方法和设备的利记博彩app
技术领域
本发明涉及互联网数据传输技术,特别是指一种基于对等网络互联(P2P, PeertoPeer)模式的实时流媒体多点传输方法和设备。
技术背景随着宽带的普及和通信网络技术的迅速发展,网络多媒体服务得到 广阔应用。但是流^^体的大量出现,对服务器端网络的带宽和性能提出 了更高要求,例如, 一个比特率为300kbps的^L频节目,如果同时有 1000人访问,那么月良务器端网络带宽必须达到300Mbps以上,如果此 时要支持更多的用户数据就是难上加难了 。由于流媒体对流量带宽的资 源需求很大,解决服务器端流量带宽瓶颈成为促进流媒体应用发展的重 要问题。对等网络互联(P2P, Peer to Peer)技术改变了传统的互联网运 行模式,它突破了传统的客户端/服务器模式,强调节点之间的"对等 性",每个节点兼有服务器和客户端的两种身份,在利用其他节点的资 源的同时也为其他节点提供服务。各节点主机既是服务器又是客户机, 相互共享资源,可以节约带宽,整个系统的服务能力随着用户数量的增 加而增加,数据传输是P2P技术中最主要的内容。但在现有技术中数据传输的方法较为复杂,造成传输的速度较慢, 如何提供一种有效简便的数据传输方法,是P2P流媒体技术中一个亟待 解决的问题。发明内容有鉴于此,本发明提出一种简单的实时流媒体多点传输的方法和 设备,提高流媒体传输速度。基于上述目的本发明提供的一种实时流媒体多点传输的方法,利用服务器将节点分为一个以上的组,每组组成一棵二叉树;将待传输的节目内容数据分割以分配给各个组,服务器分别向各棵二叉树的根节点传输各组数据。该方法将待传输的节目内容数据分割以分配给各个组的步骤包括将待传输的节目内容按照固定大小或者数据包分成多个数据块,分配给各组《该方法所述服务器分别向各个二叉树的根节点传输各组数据包括数据块i*8+k对应传给组k, i=0,l,2,3,......k-0,l,…n-l,其中n为组数。该方法所述每个新加入的节点每次都分配到节点数目最少的组。该方法在服务器端保存有频道列表和节点列表;频道列表中包含服 务器拥有的频道ID,每个频道对应n个节点列表;节点列表中包含连 接每个频道的节点信息。该方法所述节点信息包括每组内的节点数、该组的组号、 一个组 内的所有节点的节点ID、父节点ID、子节点ID、组号。该方法还包括节点加入的步骤新节点发起与服务器的链接请求, 服务器分配给他一个节点号ID返回频道列表,节点选择频道,服务器 搜索该频道的节点列表,从中选择连接的节点最少的一组,把该节点 ID登记在该组的节点列表中,填入组号,从该组的节点中选择一个权 值最小的节点作为新节点的父节点,在节点列表中修改相应的项,从另 外各组中每组选择一个权值最小的节点,把所选节点的节点信息发给该 新节点,新节点分别和这些点连接,确定连接上后,从这些节点接收各 个组的数据。该方法所述节点接收数据过程中还包括节点定时判断网络状况是 否符合要求,如果不符合要求,则连接服务器,找新节点进行连接;如 果符合要求则继续从各节点接收数据,保存在本地。该方法所述权值是子节点数目以及该节点和服务器的距离的加权值 该方法所述服务器和所有节点以心跳方式保持联系,节点每间隔一段时间向服务器发送一个表示我存在的消息,如果服务器连续预定次数 都未接收该节点发的消息,则判定该节点已经退出。该方法在节点退出后,其父节点删除该节点的信息,服务器中节点 列表内该父节点内该节点信息也删除,该节点下面的子节点及子节点的 子节点全部都从根节点开始一层层向上寻找新的父节点,^f务改其节点信息和服务器上的相关信息;如果该节点正在给另一节点传输数据,则服 务器向该另 一节点另外选择一个节点向该另 一节点传输数据。该方法还包括节点播放实现过程每个节点开内存存放数据,收到 的数据块放入相对应的内存地址中,存满后,放入播放器播放,然后把 已播放的数据清空;如果放入播放器的时候发现某块数据没有接收到, 直接向服务器发请求,索取该块数据。该方法所述组数等于预设的线程数,如果连接到服务器的节点数小 于预设的线程数,每个节点都和服务器连接;如果连接到服务器的节点 数大于,节点开所有线程。该方法所述组数为8。本发明还提供了一种实现实时流媒体多点传输的设备,其被配置成 用于实现如上所述的方法。从上面所述可以看出,使用本发明实时流媒体多点传输的方法和 设备可以同时从n个点传输数据,大大提高了网络传输速度,解决 了单点传输的缺点,当有一个提供数据的节点退出时,系统自动寻找 新的节点来传输数据,这时,只有n分之一的数据需要从新的节点 来传输,其余n-l/n的数据仍然从原来的节点传输,没有产生变化, 大大减少了数据变化的情况,使播放中断的概率大大降低,增加了播 放的稳定性,同时本方法实现简单,既避免了各个节点的单点故障问 题,同时具有高效的传输效率,能够保证传输过程中的完整性,并且 能够适应各种网络环境。


图1为本发明实施例节点分组拓朴结构示意图;图2为本发明实施例节点加入步骤的流程示意图; 图3为本发明实施例数据多点传输过程中节点对网络状况的判断处 理流程示意图;图4为本发明实施例节点播放实现过程的流程示意图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例 性实施例。本发明为了解决上述问题提供了 一种基于P2P模式的实时流媒体多 点传输方法。利用服务器将节点分为一个以上的组,每组组成一棵二叉 树;将待传输的节目内容数据分割以分配给各个组,服务器分别向各棵 二叉树的根节点传输各组数据。进一步还可将节目内容分块,服务器分 别向各个树的根节点传输各组数据,在服务器端保存有频道列表和节点 列表,节点之间相互传输数据。从而使得播放中断的概率大大降低,增 加了播放的稳定性。参见图1所示,本实施例首先利用服务器将节点分为8个组,组成 8棵二叉树,每个新加入的节点每次都分配到节点数目最少的组,节目 内容按照固定大小或者数据包分块,每个节目数据块分配唯一一个序列 号,这样,服务器分别向各个树的^L节点传输各组数据,即数据块O, 8, 16.......对应传给组0;数据块l, 9, 17,……对应传给组l;数据块2, 10, 18,……对应传给组2;数据块3, 11, 19,……对应传给组3;数据块4, 12, 20,……对应传给组4;数据块5, 13, 21,……对应传给组5;数据块6, 14, 22,……对应传给组6;数据块7, 15, 23,……对应传给组7;数据块i*8+k……对应传给组k,本实施例中i=0,l,2,3,......;k=0,l,.."7。7根据上述方法,具体实现数据传输的步骤如下 预先在服务器端保存有频道列表和节点列表。其中,频道列表,表示服务器拥有的频道ID,每个频道对应8个 节点列表,每个节点列表对应一个节点组;节点列表,每个连接某频道的节点信息都保存在节点列表中,节点 信息包括(节点上面储存的信息)(1) 每组内的节点数;(2) 该组的组号;(3) —个组内的所有节点,每个节点有下列项节点ID,父节点 ID,子节点ID,组号。其中组号表示该节点在哪个组中,节点有8张节点列表,第o张节点列l故第o组的节点,针对第o张节点列4ic起一个连接,要求传输第0组的数据,对方开始传输该组数据,其他节点 列表依此类推。参见图2所示,节点加入的步骤包括步骤201,新节点A打开流媒体多点传输的应用程序,发起与服务 器的链接请求。其中,流媒体多点传输的应用程序设置在客户端,该程 序自动发起与服务器的链接请求。步骤202,服务器分配给该节点A —个节点号ID返回频道列表。步骤203,节点A选择某个频道发送给服务器。步骤204,服务器搜索该频道的节点列表,从中选择连接的节点最 少的一组,把该节点ID登记在该组的节点列表中,填入组号,从该组 的节点中选择一个节点B,其权值最小,B即是节点A的父节点,在节 点列表中修改相应的项;其中A是节点B的子节点。步骤205,节点A与节点B建立链接。步骤206,节点A返回服务器"已连接"的信息和节点B的組号。 步骤207,服务器从另外7组中每组选择一个节点(该组中权值最小的节点), 一共七个节点C、 D、 E、 F、 G、 H、 I,把节点B、 C、D、 E、 F、 G、 H、 I的节点信息发给节点A。步骤208,节点A分别和这些点连接,确定连接上,从这些节点接收8个组的数据。上述的权值是个计算值,是子节点数目以及该节点和服务器的距 离一一跳数的加权值。参见图3所示,步骤301 ~302,此时节点A与8个节点连接,节 点A定时判断网络状况是否符合要求,比如是否保持与各节点的连接, 如果不符合要求,比如某节点断开,则执行步骤303,连接服务器,找 新节点进行连接。如果符合要求则执行步骤304从8个节点传输数据, 保存在本地数据表中。在实际操作中会出现节点退出的情况,分为正常退出和非正常退 出正常退出即为某个节点停止观看节目,退出系统;非正常退出是因 为网络状况不好而退出。判别节点是否退出的方法如下服务器和所有节点以心跳方式保持联系,节点每10秒给服务器发 送一个消息"我存在",告诉服务器,该节点存在,如果连续3次都接 收不到节点A发的消息,则认为该节点已经退出。节点退出后相关节点修改信息,进行数据多点传输的步骤如下节点A退出,其父节点B保存的信息修改,删除该子节点的信 息,服务器中节点列表内该父节点B中子节点信息A也删除,节点A 下面的子节点及子节点的子节点全部都从根节点开始一层层向上重新找 新的父节点,(服务器的节点列表中删除节点B的包含子节点A的信 息,对于节点A的所有子节点,由服务器分配给他们一个新的父节点) 修改其节点信息和服务器上的相关信息,如果节点A正在给节点C传 输数据,则服务器向节点C另外选择一个节点D,由节点D向节点C 传输数据。参见图4所示,本发明实施例的节点播放实现过程如下 步骤401,每个节点开辟一定内存区域作为数据表存放数据,设可 以存放1024块数据,开8个连接接收数据;先验证一下数据表中是否 有flog-0的数据块,如果有进入步骤402,否则,返回步骤401。步骤402,从其他节点接收数据,存放在数据表中,具体为将收到 的数据块号码和1024取模,按照余数放入相对应的内存地址中。步骤403~404,判断是否能够收到需要播放的数据,如果能i^A步 骤405,否则直接向服务器发请求,从服务器获取数据放入数据表。 步骤405~406,把数据表中的数据放入播放緩存,播放。 本发明优选实施例中,上述步骤在播放过程中循环执行,数据表存 满后,放入播放播放緩存播放,然后把数据表中已播放的数据清空,返 回步骤401。在特殊情况下,节点加入时有可能是少于8个节点连到服务器,则每个节点都和服务器连接;单个线程则直接从服务器取得全部数据;从第九个节点开始,节点开8个线程,从前面的8个节点分别获得数据。 其中所述线程数与组数对应,即一个线程对应一个组,所述节点第一个 线程对应于第一组节点,第二个线程对应于第二组节点,其余依次类 推。根据本发明上述实施例,可以同时从8个点传输数据,大大提高了 网络传输速度,解决了单点传输的缺点。当有一个提供数据的节点退出 时,系统自动寻找新的节点来传输数据,这时,只有八分之一的数据需 要从新的节点来传输,其余八分之七的数据仍然从原来的节点传输,没 有产生变化,大大减少了数据变化的情况,使播放中断的概率大大降 低,增加了播放的稳定性。同时本发明方法实现简单,既避免了各个节 点的单点故障问题,同时具有高效的传输效率,能够保证传输过程中的 完整性,并且能够适应各种网络环境。以上实施例中以将节点划分为8组为例,本领域技术人员很容易理 解,节点分组个数n也可以取其他任意大于1的整数。基于上迷方法,本发明还提供了 一种实现实时流媒体多点传输的设 备,该设备可以以上述服务器的形式存在,具有上述服务器的功能,将 节点分为一个以上的组,每组组成一棵二叉树;将待传输的节目内容数 据分割以分配给各个组,并分别向各棵二叉树的根节点传输各组数据。本发明的描述是为了示例和说明起见而给出的,而并不是无遗漏的 或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技 术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适 于特定用途的带有各种修改的各种实施例。
权利要求
1. 一种实时流媒体多点传输的方法,其特征在于,利用服务器将节点分为一个以上的组,每组组成一棵二叉树;将待传输的节目内容数据分割以分配给各个组,服务器分别向各棵二叉树的根节点传输各组数据。
2. 根据权利要求1所述的方法,其特征在于,将待传输的节目内容 数据分割以分配给各个组的步骤包括将待传输的节目内容按照固定大 小或者数据包分成多个数据块,分配给各组。
3. 根据权利要求2所述的方法,其特征在于,所述服务器分别向各 个二叉树的根节点传输各组数据包括数据块i*8+k对应传给组k, i=0,l,2,3,......k-0,l,…n-l,其中n为组数。
4. 根据权利要求l所述的方法,其特征在于,所述每个新加入的节 点每次都分配到节点数目最少的组。
5. 根据权利要求1至4任意一项所述的方法,其特征在于,在服务器端保存有频道列表和节点列表;频道列表中包含服务器拥有的频道 ID,每个频道对应n个节点列表;节点列表中包含连接每个频道的节点信息。
6. 根据权利要求5所述的方法,其特征在于,所述节点信息包括 每组内的节点数、该组的组号、 一个组内的所有节点的节点ID、父节 点ID、子节点ID、组号。
7. 根据权利要求6所述的方法,其特征在于,该方法还包括节点加 入的步骤新节点发起与服务器的链接请求,服务器分配给他一个节点 号ID返回频道列表,节点选择频道,服务器搜索该频道的节点列表, 从中选择连接的节点最少的一组,把该节点ID登记在该组的节点列表 中,填入组号,从该组的节点中选择一个权值最小的节点作为新节点的 父节点,在节点列表中修改相应的項,从另外各组中每组选择一个权值最小的节点,把所选节点的节点信息发给该新节点,新节点分别和这些 点连接,确定连接上后,从这些节点接收各个组的数据。
8. 根据权利要求7所述的方法,其特征在于,所述节点接收数据过 程中还包括节点定时判断网络状况是否符合要求,如果不符合要求, 则连接服务器,找新节点进行连接;如果符合要求则继续从各节点接收 数据,保存在本地。
9. 根据权利要求7所述的方法,其特征在于,所述权值是子节点数 目以及该节点和服务器的距离的加权值。
10. 才Mt权利要求1所述的方法,其特征在于,所述服务器和所有 节点以心跳方式保持联系,节点每间隔一段时间向服务器发送一个表示 我存在的消息,如果服务器连续预定次数都未接收该节点发的消息,则 判定该节点已经退出。
11. 根据权利要求10所述的方法,其特征在于,节点退出后,其父 节点删除该节点的信息,服务器中节点列表内该父节点内该节点信息也 删除,该节点下面的子节点及子节点的子节点全部都从根节点开始一层 层向上寻找新的父节点,修改其节点信息和服务器上的相关信息;如果 该节点正在给另一节点传输数据,则服务器向该另一节点另外选择一个 节点向该另 一节点传输数据。
12. 根据权利要求1所述的方法,其特征在于,该方法还包括节点 播放实现过程每个节点开内存存放数据,收到的数据块放入相对应的 内存地址中,存满后,放入播放器播放,然后把已播放的数据清空;如 果放入播放器的时候发现某块数据没有接收到,直接向服务器发请求, 索取该块数据。
13. 根据权利要求1所述的方法,其特征在于,所述组数等于预设 的线程数,如果连接到服务器的节点数小于预设的线程数,每个节点都 和服务器连接;如果连接到服务器的节点数大于,节点开所有线程。
14. 根据权利要求1至4、 10至13任意一项所述的方法,其特征在 于,所述组数为8。
15. —种实现实时流媒体多点传输的设备,其特征在于,其被配置 成用于实现如权利要求1-14所述的方法。
全文摘要
本发明公开一种实时流媒体多点传输的方法和设备,利用服务器将节点分为一个以上的组,每组组成一棵二叉树;将待传输的节目内容数据分割以分配给各个组,服务器分别向各棵二叉树的根节点传输各组数据。本发明方法使节点之间相互传输数据,使播放中断的概率大大降低,增加了播放的稳定性,同时本方法实现简单,既避免了各个节点的单点故障问题,同时具有高效的传输效率,能够保证传输过程中的完整性,并且能够适应各种网络环境。
文档编号H04L12/18GK101262360SQ200810089658
公开日2008年9月10日 申请日期2008年4月11日 优先权日2008年4月11日
发明者叶挺群, 宋革联, 杨晓波, 胡伟中, 江 袁, 邢小良, 郑金荣, 金朝晖, 炜 黄, 轩 龚 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1