著录项信息
专利名称 | 基于分布式网络的直播方法和装置 |
申请号 | CN200910199347.2 | 申请日期 | 2009-11-25 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2011-05-25 | 公开/公告号 | CN102075338A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/18 | IPC分类号 | H;0;4;L;1;2;/;1;8查看分类表>
|
申请人 | 突触计算机系统(上海)有限公司 | 申请人地址 | 上海市张江高科园区碧波路690号5号楼501-1室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 突触计算机系统(上海)有限公司 | 当前权利人 | 突触计算机系统(上海)有限公司 |
发明人 | 王闻宇,朱巍,姚欣 |
代理机构 | 北京市金杜律师事务所 | 代理人 | 罗朋 |
摘要
本发明旨在提供一种基于分布式网络的直播方法和装置。该直播方法主要包括以下步骤:跟踪服务器接收来自与本跟踪服务器相连的节目源的状态上报信息,根据状态上报信息生成节目源状态信息,发送节目源状态信息至信息同步装置,信息同步装置分别接收来自跟踪服务器的节目源状态信息,基于来自多个跟踪服务器的节目源状态信息生成节目源的状态回应信息,状态回应信息用于指示节目源的当前状态,向多个跟踪服务器分别发送节目源的状态回应信息,跟踪服务器接收来自信息同步装置的节目源的状态回应信息,基于状态回应信息更新节目列表。通过使用本发明的直播方法和装置,可以有效地解决跟踪服务器与节目源连接出现异常而导致用户设备无法正常接收直播数据块的情况,并且可以对网络中的直播源进行有效保护,降低直播源被网络攻击的可能性。
1.一种用于分布式网络的跟踪服务器中的直播方法,其中,节目源与多个跟踪服务器分别相连,信息同步装置与所述多个跟踪服务器分别相连,该方法包括以下步骤:
a.接收来自与本跟踪服务器相连的节目源的状态上报信息;
b.根据所述状态上报信息生成节目源状态信息,发送所述节目源状态信息至信息同步装置;
c.接收来自所述信息同步装置的所述节目源的状态回应信息,基于所述状态回应信息更新节目列表,其中所述节目源的状态回应信息是所述信息同步装置基于所述多个跟踪服务器的节目源状态信息生成的;
其中,所述状态上报信息包括所述节目源当前播放数据块分片的序列标记信息,其中,所述序列标记信息为所述节目源的播放缓冲区的最小数据块分片序列号和最大数据块分片序列号;
其中,所述步骤b包括以下步骤:
b1.判断所述序列标记信息是否大于备份序列标记信息;
b2.如果所述序列标记信息滞后于所述备份序列标记信息,则所述节目源状态信息为正常播放,将所述序列标记信息作为更新后的所述备份序列标记信息;如果所述序列标记信息没有滞后于所述备份序列标记信息,则所述节目源状态信息为停止播放。
2.根据权利要求1所述的直播方法,其特征在于,所述步骤b包括以下步骤:
-发送所述序列标记信息至所述信息同步装置。
3.根据权利要求1所述的直播方法,其特征在于,所述状态回应信息包括正常播放或停止播放,所述步骤c包括:
-如果所述状态回应信息为停止播放,则将所述节目源从所述节目表中删除。
4.根据权利要求1所述的直播方法,其特征在于,所述步骤a还包括:
-接收来自所述节目源的请求注册信息。
5.根据权利要求4所述的直播方法,其特征在于,所述步骤b还包括:
-通知所述信息同步装置所述节目源请求注册;
所述步骤c还包括:
-接收来自所述信息同步装置的所述节目源的状态回应信息,如果所述状态回应信息为允许注册,则将所述节目源加入所述节目列表中。
6.根据权利要求1所述的直播方法,其特征在于,所述跟踪服务器包括主跟踪服务器和代理跟踪服务器。
7.根据权利要求6所述的直播方法,其特征在于,所述主跟踪服务器包括UDP跟踪服务器,所述代理跟踪服务器包括TCP跟踪服务器。
8.一种用于分布式网络的信息同步装置中的直播方法,其中,节目源与多个跟踪服务器分别相连,所述信息同步装置与所述多个跟踪服务器分别相连,该方法包括以下步骤:
A.分别接收来自所述多个跟踪服务器的节目源状态信息;
B.基于来自所述多个跟踪服务器的所述节目源状态信息生成所述节目源的状态回应信息,所述状态回应信息用于指示所述节目源的当前状态;
C.向所述多个跟踪服务器分别发送所述节目源的所述状态回应信息;
其中,所述节目源状态信息包括所述节目源播放数据块分片的序列标记,其中,所述序列标记信息为所述节目源的播放缓冲区的最小数据块分片序列号和最大数据块分片序列号;
其中,所述步骤B包括:
B11.判断所述序列标记信息的最大值是否大于备份序列标记信息;
B12.如果所述序列标记信息的最大值超前于所述备份序列标记信息,则所述状态回应信息指示所述节目源正常播放,并将所述序列标记信息作为更新后的备份序列标记信息;
反之,则所述状态回应信息指示所述节目源停止播放。
9.根据权利要求8所述的直播方法,其特征在于,所述步骤B包括:
-如果指示所述节目源与跟踪服务器相连的所述节目源状态信息个数多于指示所述节目源与跟踪服务器不相连的判断信息个数,则所述状态回应信息为正常播放;反之,所述状态回应信息为停止播放。
10.根据权利要求8所述的直播方法,其特征在于,所述节目源状态信息为特定节目源的请求注册信息,
所述步骤B还包括以下步骤:
-基于来自多个跟踪服务器的所述请求注册信息生成所述节目源的状态回应信息,所述状态回应信息用于指示跟踪服务器允许所述节目源进行注册。
11.一种用于分布式网络的跟踪服务器中的第一直播装置,其中,节目源与多个跟踪服务器分别相连,信息同步装置与所述多个跟踪服务器分别相连,所述第一直播装置包括第一状态接收装置、第一状态发送装置和接收处理装置,
所述第一状态接收装置,用于接收来自与本跟踪服务器相连的节目源的状态上报信息;
所述第一状态发送装置,用于根据所述状态上报信息生成节目源状态信息,发送所述节目源状态信息至所述信息同步装置;
所述接收处理装置,用于接收来自所述信息同步装置的所述节目源的状态回应信息,基于所述状态回应信息更新节目列表,其中所述节目源的状态回应信息是所述信息同步装置基于所述多个跟踪服务器的节目源状态信息生成的;
其中,所述状态上报信息包括所述节目源当前播放数据块分片的序列标记信息,其中,所述序列标记信息为所述节目源的播放缓冲区的最小数据块分片序列号和最大数据块分片序列号;
其中,所述第一状态发送装置包括第一判断装置,
所述第一判断装置,用于判断所述序列标记信息是否大于备份序列标记信息;
如果所述序列标记信息滞后于所述备份序列标记信息,则所述节目源状态信息为正常播放,将所述序列标记信息作为更新后的所述备份序列标记信息;如果所述序列标记信息没有滞后于所述备份序列标记信息,则所述节目源状态信息为停止播放。
12.根据权利要求11所述的第一直播装置,其特征在于,所述第一状态发送装置还用于发送所述序列标记信息至所述信息同步装置。
13.根据权利要求11所述的第一直播装置,其特征在于,所述直播装置还包括删除装置,所述状态回应信息包括正常播放或停止播放,如果所 述状态回应信息为停止播放,则所述删除装置将所述节目源从所述节目表中删除。
14.根据权利要求11所述的第一直播装置,其特征在于,所述第一状态接收装置还用于接收来自所述节目源的请求注册信息。
15.根据权利要求14所述的第一直播装置,其特征在于,所述第一状态发送装置还用于通知所述信息同步装置所述节目源请求注册;所述接收处理装置还包括注册装置,如果所述状态回应信息为允许注册,则所述注册装置将所述节目源加入所述节目列表中。
16.根据权利要求11所述的第一直播装置,其特征在于,所述跟踪服务器包括主跟踪服务器和代理跟踪服务器。
17.根据权利要求16所述的第一直播装置,其特征在于,所述主跟踪服务器包括UDP跟踪服务器,所述代理跟踪服务器包括TCP跟踪服务器。
18.一种用于分布式网络信息同步装置中的第二直播装置,其中,节目源与多个跟踪服务器分别相连,所述信息同步装置与所述多个跟踪服务器分别相连,所述第二直播装置包括第二状态接收装置、回应信息生成装置和第二状态发送装置,
所述第二状态接收装置,用于分别接收来自所述多个跟踪服务器的节目源状态信息;
所述回应信息生成装置,用于基于来自所述多个跟踪服务器的所述节目源状态信息生成所述节目源的状态回应信息,所述状态回应信息用于指示所述节目源的当前状态;
第二状态发送装置,用于向所述多个跟踪服务器分别发送所述节目源的所述状态回应信息;
其中,所述节目源状态信息包括所述节目源播放数据块分片的序列标记,所述序列标记信息为所述节目源的播放缓冲区的最小数据块分片序列号和最大数据块分片序列号;
其中,所述回应信息生成装置还包括第二判断装置:
所述第二判断装置,用于判断所述序列标记信息的最大值是否大于备份序列标记信息;
如果所述序列标记信息的最大值超前于所述备份序列标记信息,则所 述状态回应信息指示所述节目源正常播放,并将所述序列标记信息作为更新后的备份序列标记信息;反之,则所述状态回应信息指示所述节目源停止播放。
19.根据权利要求18所述的第二直播装置,其特征在于,如果指示所述节目源与跟踪服务器相连的所述节目源状态信息个数多于指示所述节目源与跟踪服务器不相连的判断信息个数,则所述状态回应信息为正常播放;反之,所述状态回应信息为停止播放。
20.根据权利要求19所述的第二直播装置,其特征在于,所述节目源状态信息为特定节目源的请求注册信息,
所述回应信息生成装置还用于基于来自多个跟踪服务器的所述请求注册信息生成所述节目源的状态回应信息,所述状态回应信息用于指示跟踪服务器允许所述节目源进行注册。
基于分布式网络的直播方法和装置\n技术领域\n[0001] 本发明涉及基于分布式网络的直播方法和装置,尤其涉及基于点对点协议的流媒体直播方法和装置。\n背景技术\n[0002] 随着Internet的迅猛发展和普及,基于流媒体的视频技术已经得到越来越广泛的应用。其应用主要集中于视频点播、远程教育、视频会议、数字图书馆等领域。但流媒体的传输对带宽、延迟和包的丢失率等服务质量相关参数都有十分严格的要求,但是随着用户人数的增多,传统的客户机/中央服务器(Client/Server,简称C/S)的模式使中央服务器负载过重,使得服务质量难以保障。\n[0003] 包括点对点协议(P2P,即Peer-to-Peer)的系统具有负载均衡、自适应、自组织和容错力强等优点。在基于点对点协议的网络拓扑结构中,所有用户设备(例如,个人电脑)的角色、行为、责任和义务都是完全平等的。这种网络拓扑结构的用户设备,可以跳过中央服务器直接在用户设备和用户设备之间交换数据。每个用户设备既是服务器又是客户端,在向一个其它用户设备下载数据的同时也可以向另一个其它用户设备传输数据。因此,网络中的用户设备越多,数据传输的速度就越快,网络的带宽效率和可靠性都得到了大幅的提升。\n[0004] 现有的基于点对点网络的媒体播放主要集中于视频点播。而随着网络在生活中的比重增加,对于网络直播的需求也逐步上升。网络直播相对于传统直播来说,可以让大众有更好的主动操作性,更好的和更自由的选择空间。例如目前流行的球赛直播、体育直播等,因为赛事多,直播的提供方也多,将这些信号集中在互联网上发布,观众就可以很方便选择自己所需要观看的直播节目。\n[0005] 而目前对于如何构建有效稳定,传输效率高的播放平台,尚无成熟可行的方案。\n发明内容\n[0006] 为了解决现有技术存在的上述问题,实现网络直播,特提出本发明。\n[0007] 本发明的第一方面提供了一种用于基于分布式网络跟踪服务器中的直播方法,该方法包括:接收来自与本跟踪服务器相连的节目源的状态上报信息;根据所述状态上报信息生成节目源状态信息,发送所述节目源状态信息至信息同步装置;接收来自所述信息同步装置的所述节目源的状态回应信息,基于所述状态回应信息更新节目列表。\n[0008] 本发明的第二方面提供了一种用于分布式网络的信息同步装置中的直播方法,该方法包括:分别接收来自跟踪服务器的节目源状态信息;基于来自多个跟踪服务器的所述节目源状态信息生成所述节目源的状态回应信息,所述状态回应信息用于指示所述节目源的当前状态;向所述多个跟踪服务器分别发送所述节目源的所述状态回应信息。\n[0009] 本发明的第三方面提供了一种用于基于分布式网络跟踪服务器中的第一直播装置,其特征在于,所述第一直播装置包括第一状态接收装置、第一状态发送装置和接收处理装置:第一状态接收装置,用于接收来自与本跟踪服务器相连的节目源的状态上报信息;\n第一状态发送装置,用于根据所述状态上报信息生成节目源状态信息,发送所述节目源状态信息至信息同步装置;接收处理装置,用于接收来自所述信息同步装置的所述节目源的状态回应信息,基于所述状态回应信息更新节目列表。\n[0010] 本发明的第四方面提供了一种用于分布式网络信息同步装置中的第二直播装置,其特征在于,第二直播装置包括第二状态接收装置、回应信息生成装置和第二状态发送装置:第二状态接收装置,用于分别接收来自跟踪服务器的节目源状态信息;回应信息生成装置,用于基于来自多个跟踪服务器的所述节目源状态信息生成所述节目源的状态回应信息,所述状态回应信息用于指示所述节目源的当前状态;第二状态发送装置,用于向所述多个跟踪服务器分别发送所述节目源的所述状态回应信息。\n[0011] 采用本发明提供的技术方案搭建数据块传输平台,可以很好的在分布式网络中实现流媒体直播。并且,本发明的技术方案中节目源在分布式网络中与服务器的信息交互时所使用的协议和用户设备与服务器信息交互时所使用的协议相同。这种协议设定方法很好的保护了下载源,使之不容易被黑客发现攻击。此外,信息同步装置的设置也有效解决了因为跟踪服务器与节目源连接故障而导致与该跟踪服务器相连的用户设备无法正常收看直播节目的问题。\n附图说明\n[0012] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:\n[0013] 图1为根据本发明的一个具体实施方式的基于点对点(P2P)协议的网络结构示意图;\n[0014] 图2为根据本发明的一个具体实施方式的直播方法的方法流程图;\n[0015] 图3为根据本发明的一个具体实施方式的直播方法的方法流程图;\n[0016] 图4为根据本发明的一个具体实施方式的数据块分片结构示意图;\n[0017] 图5为根据本发明的一个具体实施方式的用于跟踪服务器中的直播装置的框图;\n[0018] 图6为根据本发明的一个具体实施方式的用于信息同步装置中的直播装置的框图;\n具体实施方式\n[0019] 以下结合本发明的第一方面和第二方面的实施例,从方法的角度对本发明的技术方案进行详细描述。\n[0020] 图1为根据本发明的一个具体实施方式的基于点对点(P2P)协议的网络结构示意图。图1中示例的P2P网络,包括一个信息同步装置、多个跟踪服务器、一个节目源,以及多个用户设备。\n[0021] 本领域技术人员可以理解,不同于视频点播,网络直播,以视频直播为例,应当存在且仅存在一个节目源,该节目源用于提供直播节目的源数据块。节目源与网络中的部分用户设备相连,可以向这些相连的用户设备发送其对应节目的数据块。节目源与每个跟踪服务器分别相连,可随时进行信息交互。信息同步装置分别与每个跟踪服务器相连,可以随时进行信息交互。每个跟踪服务器与网络中的多个用户设备相连。跟踪服务器保存与其相连的各个用户设备所保存的数据块的情况。每个用户设备可以通过与自身相连的跟踪服务器获取当前网络中特定数据块(即直播节目)对应的存储资源情况(即保存该数据块的用户设备),再向该存储资源发出请求获取数据块。其具体操作步骤将在下文中进行具体描述。\n[0022] 本文中提到的数块可以是文件或者文件的分片,具体的,文件可以使流媒体文件,例如ASF、RM、MKV格式的文件。\n[0023] 图2为根据本发明的一个具体实施方式的直播方法的方法流程图。以下参照图2并结合图1对在基于点对点协议的网络中的直播方法进行详细地说明。需要注意的是,本发明的直播方法的使用范围并不限于P2P网络,其同样适用于P2SP网络等其它分布式网络。\n[0024] 在步骤S1中,跟踪服务器接收来自相连的节目源的状态上报信息。具体而言,当节目源进入P2P网络时,需要向各个跟踪服务器注册,从而创建对应该节目源的子网络;当节目源在网络中注册成功后,需要定期向各个跟踪服务器上报自身的状态,例如,节目源周期性或非周期性向各个跟踪服务器分别发送KeepAlive消息,以通知服务器节目源处于正常工作状态。当节目源退出网络时,也应当向跟踪服务器发送信息,例如发送SourceExit信息,以通知跟踪服务器该节目源正常退线。跟踪服务器通过接收来自节目源的状态上报信息,可以获知该节目源是否正常工作。可选的,节目源也可以通过其它方式告知跟踪服务器自身的状态,例如,可以向跟踪服务器发送节目源当前播放数据块分片的序列标记信息。\n具体的,序列标记信息可以是节目源当前播放缓冲区的最小数据块分片序列号和最大数据块分片序列号。如果将整个直播节目的数据块划分成多个数据块分片的话,对于每个时间点,直播节目源只能缓冲播放一定量的数据块分片。对整个节目的文件分片通过序列号的形式进行标记,假设,节目源向跟踪服务器1上报状态时,缓冲区中包含第1001片分片至第\n1005片分片,则将数据块序列号(1001,1005)上报给跟踪服务器1。\n[0025] 在步骤S2中,跟踪服务器1根据状态上报信息生成节目源状态信息,并发送节目源状态信息至信息同步装置。可以直接将状态上报信息中的最小数据块分片序列号和最大数据块分片序列号上报给信息同步装置。举例来说,跟踪服务器1将接收到的最小数据块分片序列号1001和最大数据块分片序列号1005作为节目源状态信息发送给信息同步装置。具体的,同步服务装置和跟踪服务器之间的信息交互可以采用定期发送的形式,也可以采用后台编辑操作的人共触发形式。\n[0026] 在步骤S3中,信息同步装置分别接收来自跟踪服务器1、跟踪服务器2、跟踪服务器3的节目源状态信息。假设,接收到跟踪服务器1的最小数据块分片序列号和最大数据块分片序列号分别是(1001,1005);接收到跟踪服务器2的最小数据块分片序列号和最大数据块分片序列号分别是(1002,1006);接收到跟踪服务器3的最小数据块分片序列号和最大数据块分片序列号分别是(1001,1005)。本领域技术人员应当理解,如果节目源同时向所有跟踪服务器发送节目源状态信息,则理论上所有跟踪服务器向信息同步装置上报的节目源状态信息应当相同。但节目源也可以采取异步的方式向各个跟踪服务器上报节目源状态信息,在这种情况下信息同步装置接收到的来自不同跟踪服务器的节目源状态信息则可能不同。\n[0027] 在步骤S4中,信息同步装置基于来自多个跟踪服务器的节目源状态信息生成节目源的状态回应信息,状态回应信息用于指示节目源的当前状态,可以为正常播放或停止播放。具体的,信息同步装置首先将来自多个跟踪服务器的节目源状态信息与备份序列标记信息作比较。备份序列信息可以从上一个生成周期的节目源状态信息中获取。优选的,可以将上一个周期中序列号最大的节目源状态信息作为下一个周期作为比较基准的备份序列信息。假设,在上一个生成周期中收到的节目源状态信息非分别为(980,985)、(980,\n985)、(983,985),则可以将(983,985)作为当前周期的备份序列标记信息。将当前周期收到的节目源状态信息(1001,1005)、(1002,1006)、(1001,1005),分别与备份序列标记信息(983,985)进行比较,则可以得出跟踪服务器1,跟踪服务器2、和跟踪服务器3在当前周期中都得到了该节目源的正常播放信号,因此该节目源的状态回应信息为正常播放。\n[0028] 本领域技术人员可以理解,对于直播系统而言,检测直播源是否正常工作的一个关键在于所播放数据块分片的时间序列号是否更新,如果数据块分片序列号进行更新,则播放正常;反之,则说明停止播放或连接出错。假设出现节目源与某个跟踪服务器,例如跟踪服务器1的连接出错,则跟踪服务器1无法得到的更新的节目源状态信息。如果在当前周期,跟踪服务器1上报的节目源状态信息为(980,985),则认为节目源相对跟踪服务器1的状态为停止播放。如果在此情况下,节目源相对于其它跟踪服务器的状态均为正常播放,则可以由此推断是跟踪服务器1与节目源的连接出错,而节目源本身仍正常播放,因此状态回应信息应为正常播放。如果节目源相对于其它跟踪服务器的状态均为停止播放,则由此推断节目播放停止或节目源本身出现故障,则状态回应信息指示节目源停止播放。可选的,根据不同实施方式,也可以认为只要所有跟踪服务器的序列标记信息中最大的一个大于备份序列标记信息,则认为节目源正常播放。本领域技术人员可以理解,如果节目源停止播放,则所有跟踪服务器都不可能上报给信息同步装置大于备份序列标记信息的序列标记信息。优选的,如果节目源状态为正常播放,则将序列标记信息的最大值作为备份序列信号标记。如本例中将(1002,1006)作为备份序列信号标记。\n[0029] 在步骤S5中,信息同步装置向跟踪服务器1、跟踪服务器2和跟踪服务器3分别发送步骤S4中生成的状态回应信息。\n[0030] 在步骤S6中,跟踪服务器根据接收到的来自信息同步装置的节目源的状态回应信息,并基于状态回应信息更新节目列表。优选的,如果状态回应信息指示该节目源停止播放,则将该节目源从网络的可下载列表中删除。对于视频直播网络,可下载列表可以是用户设备见到的节目单。如果状态回应信息指示该节目源为正常播放,则不对可下载列表进行改动。至此,完成了对各个跟踪服务器上关于直播源状态的同步。\n[0031] 可选的,上文中的实施例还具有一个变化例。以下参照图3结合图1对该变化例进行具体描述。\n[0032] 步骤S1与上文中的步骤S1相同,此处不再赘述。\n[0033] 步骤S2包括两个子步骤S21和S22。其中,状态上报信息包括所述节目源当前播放数据块分片的序列标记信息。最优的,包括最小数据块分片序列号和最大数据块分片序列号。在步骤S21中,跟踪服务器判断序列标记信息是否大于备份序列标记信息。在步骤S22中根据步骤S2的判断结果生成节目源状态信息。如果序列标记信息滞后于备份序列标记信息,则节目源状态信息为正常播放,将序列标记信息作为更新后的备份序列标记信息;\n如果序列标记信息没有滞后于备份序列标记信息,则节目源状态信息为停止播放。本领域技术人员可以了解,本实施例与上一实施例的区别在于,本实施例由跟踪服务器直接判断自身与节目源的连接状态,直接将判断得到的连接状态结果作为节目源状态信息,之后发送给信息同步服务器;而上一实施例将节目源的状态信息发送给信息同步装置,由信息同步装置集中判断节目源的状态。换而言之,本实施例上报给信息同步装置的节目源状态信息可以直接包括正常播放或停止播放的状态。\n[0034] 在步骤S3’中,信息同步装置分别接收来自跟踪服务器的节目源信息。\n[0035] 在步骤S4’中,信息同步装置基于来自多个跟踪服务器的节目源状态信息生成节目源的状态回应信息。如果所述节目源与跟踪服务器相连的节目源状态信息个数多于指示节目源与跟踪服务器不相连的判断信息个数,则状态回应信息为正常播放;反之,状态回应信息为停止播放。举例来说,如果来自跟踪服务器1的节目源状态信息指示节目源停止播放,而来自跟踪服务器2和3的节目源状态信息指示节目源正常播放。则状态回应信息指示节目源正常播放。\n[0036] 本实施例中的步骤S5和步骤S6与上一实施例中的对应步骤相同,此处不再赘述。\n[0037] 此外,本发明还具有一个针对新的节目源请求加入网络的实施例。在步骤S1”中,跟踪服务器接收节目源的请求注册信息,并在步骤S2”中通知信息同步装置有新的节目源注册。信息同步装置在步骤S3”中接收到新的节目源请求注册的信息后,通过步骤S4”进行判断,生成指示跟踪服务器允许该节目源进行注册的状态回应信息。接着,在步骤S5”中,信息同步装置将状态回应信息发送给各个跟踪服务器。每个跟踪服务器在步骤S6”中接收状态回应信息,将新的节目源加入自身的下载列表。通过使用本实施例的技术方案,节目源只需要在一个跟踪服务器进行注册就能够将其信息加入所有跟踪服务器的节目列表。\n[0038] 针对上文中任一实施例,每个跟踪服务器可以包括主跟踪服务器和代理跟踪服务器。当主跟踪服务器所使用的协议被屏蔽而导致网络中的用户设备无法与主跟踪服务器进行信息交互时,系统可以自动更改网关,将用户设备与代理跟踪服务器相连以获取信息。优选的,主跟踪服务器可以是采用UDP(user datagram protocal)协议的服务器,代理服务器可以为采用TCP协议的服务器。更优选的,代理服务器可以指代理来自请求用户设备的查询请求(list),该查询请求用于查询特定频道有哪些用户设备正在接收直播数据块。\n[0039] 优选的,数据块可以采取二级分片的模式。图4为根据本发明的一个具体实施方式的数据块分片结构示意图。以下结合图4对该分片模式进行描述。\n[0040] 首先,按照流媒体数据块的特征进行一级分片。首先,将该流媒体数据块的完整的头部作为一个头部分片,接着根据预定大小将其余流媒体数据块的数据部分分为多个一级分片。例如,头部分片大小为5k,其它一级分片按每个6.6k大小进行划分。继而,将每个一级分片分为多个二级分片。优选的,每个二级分片大小为1.3k。本领域技术人员理解,根据UDP协议,网络上传送的最大数据包大小(MTU)为1.4k。选择1.3k作为二级分片的理想值可以提高网络传输的效率。基于这种分片规则,头部分片可以被分为3个1.3k和一个1.1k的二级分片。每个普通一级分片也可以被分为5个1.3k的二级分片和1个0.1k的二级分片。本领域技术人员可以理解,这种二级分片模式的优点在于,流媒体数据块的播放、校验可以以一级分片为单位进行,而数据块的传输则以二级分片为单位进行,这样可以在满足数据块传输正确率的同时提高数据快传输的速度。优选的,本发明技术方案中所提及的数据块分片可以是二级分片。\n[0041] 以下结合本发明的第三方面和第四方面的实施例,从装置的角度对本发明的技术方案进行详细描述。\n[0042] 图1为根据本发明的一个具体实施方式的基于点对点(P2P)协议的网络结构示意图。图1中示例的P2P网络,包括一个信息同步装置、多个跟踪服务器、一个节目源,以及多个用户设备。\n[0043] 本领域技术人员可以理解,不同于视频点播,网络直播,以视频直播为例,应当存在且仅存在一个节目源,该节目源用于提供直播节目的源数据块。节目源与网络中的部分用户设备相连,可以向这些相连的用户设备发送其对应节目的数据块。节目源与每个跟踪服务器分别相连,可随时进行信息交互。信息同步装置分别与每个跟踪服务器相连,可以随时进行信息交互。每个跟踪服务器与网络中的多个用户设备相连。跟踪服务器保存与其相连的各个用户设备所保存的数据块的情况。每个用户设备可以通过与自身相连的跟踪服务器获取当前网络中特定数据块(即直播节目)对应的存储资源情况(即保存该数据块的用户设备),再向该存储资源发出请求获取数据块。其具体操作将在下文中进行具体描述。\n[0044] 本文中提到的数块可以是文件或者文件的分片,具体的,文件可以使流媒体文件,例如ASF、RM、MKV格式的文件。\n[0045] 图5为根据本发明的一个具体实施方式的第一直播装置的框图。第一直播装置包括第一状态接收装置、第一状态发送装置和接收处理装置。图6为根据本发明的一个具体实施方式的第二直播装置的框图。第二直播装置包括第二状态接收装置、回应信息生成装置和第二状态发送装置。以下参照图5和图6并结合图1对第一直播装置和第二直播装置进行详细地说明。需要注意的是,本发明的直播装置的使用范围并不限于P2P网络,其同样适用于P2SP网络等其它分布式网络。\n[0046] 跟踪服务器通过第一状态接收装置10接收来自相连的节目源的状态上报信息。\n具体而言,当节目源进入P2P网络时,需要向各个跟踪服务器注册,从而创建对应该节目源的子网络;当节目源在网络中注册成功后,需要定期向各个跟踪服务器上报自身的状态,例如,节目源周期性或非周期性向各个跟踪服务器分别发送KeepAlive消息,以通知服务器节目源处于正常工作状态。当节目源退出网络时,也应当向跟踪服务器发送信息,例如发送SourceExit信息,以通知跟踪服务器该节目源正常退线。跟踪服务器通过接收来自节目源的状态上报信息,可以获知该节目源是否正常工作。可选的,节目源也可以通过其它方式告知跟踪服务器自身的状态,例如,可以向跟踪服务器发送节目源当前播放数据块分片的序列标记信息。具体的,序列标记信息可以是节目源当前播放缓冲区的最小数据块分片序列号和最大数据块分片序列号。如果将整个直播节目的数据块划分成多个数据块分片的话,对于每个时间点,直播节目源只能缓冲播放一定量的数据块分片。对整个节目的文件分片通过序列号的形式进行标记,假设,节目源向跟踪服务器1上报状态时,缓冲区中包含第\n1001片分片至第1005片分片,则将数据块序列号(1001,1005)上报给跟踪服务器1。\n[0047] 第一状态发送装置11根据状态上报信息生成节目源状态信息,并发送节目源状态信息至信息同步装置。可以直接将状态上报信息中的最小数据块分片序列号和最大数据块分片序列号上报给信息同步装置。举例来说,跟踪服务器1将接收到的最小数据块分片序列号1001和最大数据块分片序列号1005作为节目源状态信息发送给信息同步装置。具体的,同步服务装置和跟踪服务器之间的信息交互可以采用定期发送的形式,也可以采用后台编辑操作的人共触发形式。\n[0048] 信息同步装置通过第二状态接收装置20分别接收来自跟踪服务器1、跟踪服务器\n2、跟踪服务器3的节目源状态信息。假设,接收到跟踪服务器1的最小数据块分片序列号和最大数据块分片序列号分别是(1001,1005);接收到跟踪服务器2的最小数据块分片序列号和最大数据块分片序列号分别是(1002,1006);接收到跟踪服务器3的最小数据块分片序列号和最大数据块分片序列号分别是(1001,1005)。本领域技术人员应当理解,如果节目源同时向所有跟踪服务器发送节目源状态信息,则理论上所有跟踪服务器向信息同步装置上报的节目源状态信息应当相同。但节目源也可以采取异步的方式向各个跟踪服务器上报节目源状态信息,在这种情况下信息同步装置接收到的来自不同跟踪服务器的节目源状态信息则可能不同。\n[0049] 回应信息生成装置21基于来自多个跟踪服务器的节目源状态信息生成节目源的状态回应信息,状态回应信息用于指示节目源的当前状态,可以为正常播放或停止播放。具体的,信息同步装置首先将来自多个跟踪服务器的节目源状态信息与备份序列标记信息作比较。备份序列信息可以从上一个生成周期的节目源状态信息中获取。优选的,可以将上一个周期中序列号最大的节目源状态信息作为下一个周期作为比较基准的备份序列信息。\n假设,在上一个生成周期中收到的节目源状态信息非分别为(980,985)、(980,985)、(983,\n985),则可以将(983,985)作为当前周期的备份序列标记信息。将当前周期收到的节目源状态信息(1001,1005)、(1002,1006)、(1001,1005),分别与备份序列标记信息(983,985)进行比较,则可以得出跟踪服务器1,跟踪服务器2、和跟踪服务器3在当前周期中都得到了该节目源的正常播放信号,因此该节目源的状态回应信息为正常播放。\n[0050] 本领域技术人员可以理解,对于直播系统而言,检测直播源是否正常工作的一个关键在于所播放数据块分片的时间序列号是否更新,如果数据块分片序列号进行更新,则播放正常;反之,则说明停止播放或连接出错。假设出现节目源与某个跟踪服务器,例如跟踪服务器1的连接出错,则跟踪服务器1无法得到的更新的节目源状态信息。如果在当前周期,跟踪服务器1上报的节目源状态信息为(980,985),则认为节目源相对跟踪服务器1的状态为停止播放。如果在此情况下,节目源相对于其它跟踪服务器的状态均为正常播放,则可以由此推断是跟踪服务器1与节目源的连接出错,而节目源本身仍正常播放,因此状态回应信息应为正常播放。如果节目源相对于其它跟踪服务器的状态均为停止播放,则由此推断节目播放停止或节目源本身出现故障,则状态回应信息指示节目源停止播放。可选的,根据不同实施方式,也可以认为只要所有跟踪服务器的序列标记信息中最大的一个大于备份序列标记信息,则认为节目源正常播放。本领域技术人员可以理解,如果节目源停止播放,则所有跟踪服务器都不可能上报给信息同步装置大于备份序列标记信息的序列标记信息。优选的,如果节目源状态为正常播放,则将序列标记信息的最大值作为备份序列信号标记。如本例中将(1002,1006)作为备份序列信号标记。\n[0051] 信息同步装置通过第二状态发送装置22向跟踪服务器1、跟踪服务器2和跟踪服务器3分别发送回应信息生成装置21中生成的状态回应信息。\n[0052] 跟踪服务器通过接收处理装置12根据接收到的来自信息同步装置的节目源的状态回应信息,并基于状态回应信息更新节目列表。优选的,如果状态回应信息指示该节目源停止播放,则将该节目源从网络的可下载列表中删除。对于视频直播网络,可下载列表可以是用户设备见到的节目单。如果状态回应信息指示该节目源为正常播放,则不对可下载列表进行改动。至此,完成了对各个跟踪服务器上关于直播源状态的同步。\n[0053] 可选的,上文中的实施例还具有一个变化例。以下对该变化例进行具体描述。\n[0054] 第一状态接收装置10’与上文中的第一状态接收装置10相同,此处不再赘述。\n[0055] 第一状态发送装置11’还包括第一判断装置110。状态上报信息包括所述节目源当前播放数据块分片的序列标记信息。最优的,包括最小数据块分片序列号和最大数据块分片序列号。第一判断装置110判断序列标记信息是否大于备份序列标记信息。第一状态发送装置11’根据判断结果生成节目源状态信息。如果序列标记信息滞后于备份序列标记信息,则节目源状态信息为正常播放,将序列标记信息作为更新后的备份序列标记信息;如果序列标记信息没有滞后于备份序列标记信息,则节目源状态信息为停止播放。本领域技术人员可以了解,本实施例与上一实施例的区别在于,本实施例由跟踪服务器直接判断自身与节目源的连接状态,直接将判断得到的连接状态结果作为节目源状态信息,之后发送给信息同步服务器;而上一实施例将节目源的状态信息发送给信息同步装置,由信息同步装置集中判断节目源的状态。换而言之,本实施例上报给信息同步装置的节目源状态信息可以直接包括正常播放或停止播放的状态。\n[0056] 第二状态接收装置20’分别接收来自跟踪服务器的节目源信息。\n[0057] 回应信息生成装置21’基于来自多个跟踪服务器的节目源状态信息生成节目源的状态回应信息。如果所述节目源与跟踪服务器相连的节目源状态信息个数多于指示节目源与跟踪服务器不相连的判断信息个数,则状态回应信息为正常播放;反之,状态回应信息为停止播放。举例来说,如果来自跟踪服务器1的节目源状态信息指示节目源停止播放,而来自跟踪服务器2和3的节目源状态信息指示节目源正常播放。则状态回应信息指示节目源正常播放。\n[0058] 本实施例中的第二信息发送装置22’和接收处理装置12’与上一实施例中的对应装置相同,此处不再赘述。\n[0059] 此外,本发明还具有一个针对新的节目源请求加入网络的实施例。其中,第一状态接收装置10”还包括注册装置101。第一状态接收装置10”接收节目源的请求注册信息,并通过第一状态发送装置11”通知信息同步装置有新的节目源注册。信息同步装置通过第二状态接收装置20”中接收到新的节目源请求注册的信息后,通过回应信息生成装置21”进行判断,生成指示跟踪服务器允许该节目源进行注册的状态回应信息。接着,在第二状态发送装置”将状态回应信息发送给各个跟踪服务器。每个跟踪服务器通过接收处理装置12”接收状态回应信息,注册装置101将新的节目源加入该跟踪服务器的下载列表。通过使用本实施例的技术方案,节目源只需要在一个跟踪服务器进行注册就能够将其信息加入所有跟踪服务器的节目列表。\n[0060] 针对上文中任一实施例,每个跟踪服务器可以包括主跟踪服务器和代理跟踪服务器。当主跟踪服务器所使用的协议被屏蔽而导致网络中的用户设备无法与主跟踪服务器进行信息交互时,系统可以自动更改网关,将用户设备与代理跟踪服务器相连以获取信息。优选的,主跟踪服务器可以是采用UDP(user datagram protocal)协议的服务器,代理服务器可以为采用TCP协议的服务器。更优选的,代理服务器可以指代理来自请求用户设备的查询请求(list),该查询请求用于查询特定频道有哪些用户设备正在接收直播数据块。\n[0061] 优选的,数据块可以采取二级分片的模式。图4为根据本发明的一个具体实施方式的数据块分片结构示意图。以下结合图4对该分片模式进行描述。\n[0062] 首先,按照流媒体数据块的特征进行一级分片。首先,将该流媒体数据块的完整的头部作为一个头部分片,接着根据预定大小将其余流媒体数据块的数据部分分为多个一级分片。例如,头部分片大小为5k,其它一级分片按每个6.6k大小进行划分。继而,将每个一级分片分为多个二级分片。优选的,每个二级分片大小为1.3k。本领域技术人员理解,根据UDP协议,网络上传送的最大数据包大小(MTU)为1.4k。选择1.3k作为二级分片的理想值可以提高网络传输的效率。基于这种分片规则,头部分片可以被分为3个1.3k和一个1.1k的二级分片。每个普通一级分片也可以被分为5个1.3k的二级分片和1个0.1k的二级分片。本领域技术人员可以理解,这种二级分片模式的优点在于,流媒体数据块的播放、校验可以以一级分片为单位进行,而数据块的传输则以二级分片为单位进行,这样可以在满足数据块传输正确率的同时提高数据快传输的速度。优选的,本发明技术方案中所提及的数据块分片可以是二级分片。\n[0063] 以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在所附权利要求的范围内做出各种变形或修改。
法律信息
- 2022-11-04
未缴年费专利权终止
IPC(主分类): H04L 12/18
专利号: ZL 200910199347.2
申请日: 2009.11.25
授权公告日: 2015.05.13
- 2015-05-13
- 2011-07-13
实质审查的生效
IPC(主分类): H04L 12/18
专利申请号: 200910199347.2
申请日: 2009.11.25
- 2011-05-25
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-09-02
|
2008-02-29
| | |
2
| |
2007-06-20
|
2005-12-15
| | |
3
| |
2007-11-07
|
2006-09-20
| | |
4
| |
2008-08-20
|
2008-03-21
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |