P2p播放方法及系统的制作方法

文档序号:7718533阅读:238来源:国知局

专利名称::P2p播放方法及系统的制作方法
技术领域
:本发明涉及P2P网络领域,更具体地,涉及一种P2P播放方法及系统。
背景技术
:传统的视频点播服务是基于Client/Server模式的,由于视频数据量大,对于服务器带宽要求高,因此随着客户数量的增多,服务器带宽资源很快被耗尽,导致系统的扩展性受到了极大的限制。为此,出现了IP组播技术及内容分发网络(CDN),但这两者仍然存在如下缺陷随着用户的增加,CDN的投入不断扩大,服务器群也不断增加,不仅使得资金投入加大了而且对设备的维护量也显著增大了。随后,由于P2P技术的使用,大大节省了运营商对骨干网络的投资,同时也大大节省了影视平台建设对流媒体服务器的投资,并且用户点播的流畅程度也得到了较好的保障。目前市场上的P2P分享软件比较多,通用的P2P分享软件主要有BitTorrent(变态下载)及其分支、eMule(电驴)及其分支。如图1所示,是现有技术中P2P播放系统的结构示意图。该P2P播放系统包括一个Tracker服务器(TrackerServer,TS)11、多个超级服务器(SuperPeer,SP)12、多个缓存服务器(CachePeer,CP)13以及多个NP(NormalPeer)客户端14。NP客户端14,与相应的缓存服务器13相连,用于通过url向Tracker服务器请求媒体数据。Tracker服务器11是P2P播放系统的中枢,与一个或多个超级服务器12相连,在它上面按频道信息归类保存着所有超级服务器12、缓存服务器13以及NP客户端14的连接信息。超级服务器12,与一个或多个包含所请求的频道信息的缓存服务器13相连,用于存放视频源,起视频发布服务器的作用。缓存服务器13,与Tracker服务器11相连,为视频流提供高速缓冲,各个缓存服务器13通过Tracker服务器11提供的地址信息从与其相对应的超级服务器12获得数据源。在一个缓存服务器13从Tracker服务器11获取其他缓存服务器13的地址信息之后,这个缓存服务器13就与最近的或者网络条件最好的缓存服务器13连接以进行数据的交换。需要注意的是缓存服务器13可以与一个或多个NP客户端14相连。对于本领域普通技术人员来说,该本地视频服务器可以是包括超级服务器和缓存服务器两个独立的部件,也可以将超级服务器与缓存服务器集成为一个独立的部件。该P2P播放系统的工作步骤具体如下一个NP客户端获得频道url并进行解析,向Tracker服务器进行注册并获得拥有该频道信息的超级服务器的地址、与该NP客户端相邻的缓存服务器的地址以及正在播放该频道信息的其他缓存服务器和NP客户端的地址;该NP客户端选择若干优质的其他NP客户端,并与所选的若干优质的其他NP客户端、相邻缓存服务器、正在播放该频道信息的其他缓存服务器相连;该NP客户端向相邻缓存服务器请求媒体数据;所述超级服务器与其他缓存服务器向该相邻缓存服务器发送媒体数据;相邻缓存服务器向该NP客户端发送媒体数据,这样该NP客户端就完全融入这个P2P播放系统了。但是,在上述P2P播放系统中,通常由于Tracker服务器处理能力的限制而成为系统的瓶颈,不便于对大量接入用户进行管理。
发明内容本发明要解决的一个技术问题是提供一种P2P播放方法,能够方便地对大量接入用户进行管理。本发明提供了一种P2P播放方法,包括控制中心服务器接收客户端输入的频道信息;控制中心服务器根据存储的TS链表和接收到的频道信息在多个Tracker服务器中为客户端分配Tracker服务器;分配的Tracker服务器从客户端获取频道信息;分配的Tracker服务器根据存储的SP链表和频道信息在多个超级服务器中为客户端分配超级服务器,并将分配的超级服务器的地址返回给客户端;分配的超级服务器与客户端建立连接,向客户端发送片源以进行播放。根据本发明方法的一个实施例,该方法还包括当客户端与分配的Tracker服务器建立或断开连接时,客户端将频道信息和客户端的网络状况发送至分配的Tracker服务器以更新分配的Tracker服务器的TS信息;分配的Tracker服务器向控制中心服务器上报更新后的分配的Tracker服务器的TS信息以更新TS链表;分配的Tracker服务器根据客户端与分配的Tracker服务器之间连接的建立或断开更新存储的频道索引表。根据本发明方法的另一实施例,TS链表包括频道信息的哈希值、多个Tracker服务器的IP地址和多个Tracker服务器的TS信息,控制中心服务器根据存储的TS链表和接收到的频道信息在多个Tracker服务器中为客户端分配Tracker服务器的步骤包括控制中心服务器根据TS链表和接收到的频道信息在多个Tracker服务器中查找拥有频道信息的Tracker服务器;在拥有频道信息的Tracker服务器中,根据TS链表中多个Tracker服务器的TS信息比较拥有频道信息的Tracker服务器的负载,选择负载小的Tracker服务器作为分配的Tracker服务器。根据本发明方法的又一实施例,SP链表包括频道信息的哈希值、多个超级服务器的IP地址和多个超级服务器的SP信息,分配的Tracker服务器根据存储的SP链表和频道信息在多个超级服务器中为客户端分配超级服务器的步骤包括分配的Tracker服务器根据SP链表和频道信息在多个超级服务器中查找拥有频道信息的超级服务器;在拥有频道信息的超级服务器中,根据SP链表中多个超级服务器的SP信息比较拥有频道信息的超级服务器的负载,选择负载小的超级服务器作为分配的超级服务器。根据本发明方法的再一实施例,该方法还包括多个超级服务器分别向与其相连的Tracker服务器定期地上报SP信息。根据本发明方法的再一实施例,该方法还包括分配的Tracker服务器接收来自客户端的资源列表;分配的Tracker服务器向客户端下发其他客户端的资源列表。本发明提供的P2P播放方法,引入了控制中心服务器和多个Tracker服务器,由控制中心服务器为接入用户选择相对空闲的Tracker服务器,再由相对空闲的Tracker服务器选择相对空闲的超级服务器,通过控制中心服务器、所分配的相对空闲的Tracker服务5器和相对空闲的超级服务器对用户的接入进行管理,解决了由用户扩张引起的Tracker服务器的瓶颈问题。本发明要解决的另一技术问题是提供一种P2P播放系统,能够方便地对大量接入用户进行管理。本发明还提供了一种P2P播放系统,该系统包括控制中心服务器、多个Tracker服务器和多个超级服务器,其中,控制中心服务器包括TS选择模块,用于根据存储的TS链表和客户端发送的频道信息在多个Tracker服务器中为客户端分配Tracker服务器;分配的Tracker服务器包括SP选择模块,用于根据存储的SP链表和客户端发送的频道信息在多个超级服务器中为客户端分配超级服务器,并将分配的超级服务器的地址返回给客户端;分配的超级服务器包括片源存储模块,用于在客户端与分配的超级服务器建立连接后向客户端提供片源以进行播放。根据本发明系统的一个实施例,分配的Tracker服务器还包括TS信息更新模块,用于在客户端与分配的Tracker服务器建立或断开连接时,根据接收到的来自客户端的频道信息和网络状况更新分配的Tracker服务器的TS信息;控制中心服务器还包括TS链表更新模块,用于根据TS信息更新模块上报的分配的Tracker服务器的TS信息更新TS链表;分配的Tracker服务器还包括索引表更新模块,用于根据客户端与分配的Tracker服务器之间连接的建立或断开更新存储的频道索引表。根据本发明系统的另一实施例,TS链表包括频道信息的哈希值、多个Tracker服务器的IP地址和多个Tracker服务器的TS信息,TS选择模块包括TS查找单元,用于根据TS链表和接收到的频道信息在多个Tracker服务器中查找拥有频道信息的Tracker服务器;TS确定单元,用于在TS查找单元查找到的拥有频道信息的Tracker服务器中,根据TS链表中多个Tracker服务器的TS信息比较拥有频道信息的Tracker服务器的负载,选择负载小的Tracker服务器作为分配的Tracker服务器。根据本发明系统的又一实施例,SP链表包括频道信息的哈希值、多个超级服务器的IP地址和多个超级服务器的SP信息,SP选择模块包括SP查找单元,用于根据SP链表和接收到的频道信息在多个超级服务器中查找拥有频道信息的超级服务器;SP确定单元,用于在SP查找单元查找到的拥有频道信息的超级服务器中,根据SP链表中多个超级服务器的SP信息比较拥有频道信息的超级服务器的负载,选择负载小的超级服务器作为分配的超级服务器。根据本发明系统的再一实施例,多个超级服务器用于向与其相连的Tracker服务器定期地上报SP信息;分配的Tracker服务器还包括资源列表下发模块和资源列表接收模块,资源列表接收模块用于接收客户端上报的资源列表,资源列表下发模块用于向客户端下发其他客户端的资源列表。本发明提供的P2P播放系统,引入了控制中心服务器和多个Tracker服务器,由控制中心服务器为接入用户选择相对空闲的Tracker服务器,再由相对空闲的Tracker服务器选择相对空闲的超级服务器,通过控制中心服务器、所分配的相对空闲的Tracker服务器和相对空闲的超级服务器对用户的接入进行管理,解决了由用户扩张引起的Tracker服务器的瓶颈问题。此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分。在附图中图1是现有技术中P2P播放系统的结构示意图。图2是本发明系统的一个实施例的结构示意图。图3是本发明系统的另一实施例的结构示意图。图4是本发明系统的又一实施例的结构示意图。图5是本发明系统的再一实施例的结构示意图。图6是本发明方法的一个实施例的流程示意图。图7是本发明哈希树形式的TS链表的示意图。图8是本发明哈希树形式的SP链表的示意图。图9是本发明方法的另一实施例的流程示意图。具体实施例方式下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。本发明的示例性实施例及其说明用于解释本发明,但并不构成对本发明的不当限定。需要指出的是,本发明涉及的客户端、Tracker服务器以及超级服务器不仅具有图1中的相应功能,还可以实现本发明的下述功能。因此,为了不使本发明变得晦涩难懂,以下仅对与现有技术的不同之处进行说明。如图2所示,是本发明系统的一个实施例的结构示意图。该实施例包括控制中心服务器21、多个Tracker服务器22和多个超级服务器23,其中,控制中心服务器21包括TS选择模块211,用于根据存储的TS链表和客户端发送的频道信息在多个Tracker服务器22中为客户端分配Tracker服务器22;分配的Tracker服务器22包括SP选择模块221,用于根据存储的SP链表和客户端发送的频道信息在多个超级服务器23中为客户端分配超级服务器23,并将分配的超级服务器23的地址返回给客户端;分配的超级服务器23包括片源存储模块231,用于在客户端与分配的超级服务器23建立连接后向客户端提供片源以进行播放。例如,频道信息可以包括单位数据块大小(BlockSize)、频道码率(BitRate)、频道名称(ChannelName)、32位资源号(ResourceHash)、默认Tracker服务器的地址、默认超级服务器的地址、数据包长度(DataLength)和数据(Data)等,其中,32位资源号是根据频道名称和文件名产生的,数据是经过加密的关键帧的位置,每个新连接进来的客户端都会从现在播放的最接近的关键帧位置开始播放。该实施例通过控制中心服务器为客户端分配Tracker服务器,由分配的Tracker服务器为客户端分配超级服务器,再由所分配的超级服务器为客户端提供片源,方便了系统对大量接入用户的管理。如图3所示,是本发明系统的另一实施例的结构示意图。与图2中的实施例相比,该实施例中的分配的Tracker服务器31还包括TS信息更新模块311,用于在客户端与分配的Tracker服务器31建立或断开连接时,根据接收到的来自客户端的频道信息和网络状况更新分配的Tracker服务器的TS信息;控制中心服务器32还包括TS链表更新模块321,用于根据TS信息更新模块311上报的分配的Tracker服务器的TS信息更新TS链表;分配的Tracker服务器31还包括索引表更新模块312,用于根据客户端与分配的Tracker服务器之间连接的建立或断开更新存储的频道索引表。该实施例在客户端与分配的Tracker服务器建立或断开连接时,能够及时地更新控制中心服务器中的TS链表,从而使得控制中心服务器能够实时地查找到相对空闲的Tracker服务器。如图4所示,是本发明系统的又一实施例的结构示意图。与图2中的实施例相比,该实施例中的TS链表包括频道信息的哈希值(该哈希值唯一地标识频道信息)、多个Tracker服务器的IP地址和多个Tracker服务器的TS信息,TS选择模块41包括TS查找单元411,用于根据TS链表和接收到的频道信息在多个Tracker服务器中查找拥有频道信息的Tracker服务器;TS确定单元412,用于在TS查找单元411查找到的拥有频道信息的Tracker服务器中,根据TS链表中多个Tracker服务器的TS信息比较拥有频道信息的Tracker服务器的负载,选择负载小的Tracker服务器作为分配的Tracker服务器。例如,TS信息可以是相应Tracker服务器的运行状态和连接信息。每个Tracker服务器在运行过程中都会实时记录自身的运行状态和连接信息,并且在Tracker服务器的负载发生变化时向控制中心服务器报告其TS信息。该TS信息可以包括以下字段运行时间(El即sedTime)、当前登录数(TotalLogin)、消息数(TotalMsg)、活动频道(ActiveChannel)数以及在线用户(OnlineUser)数。需要指出的是,TS信息并不局限于此,根据需要该信息还可以包括其他字段。再例如,TS选择模块41可以通过比较各个Tracker服务器的OnlineUser值来确定相对空闲的Tracker服务器,诸如可以确定具有较低OnlineUser值的Tracker服务器作为相对空闲的Tracker服务器分配给客户端。可选地,如果OnlineUser值相同,还可以进一步比较ActiveChannel值,如果ActiveChannel值也相同,可以再进一步比较TotalMsg值,以此类推,从而可以在多个Tracker服务器中确定相对空闲的Tracker服务器。该实施例通过比较多个Tracker服务器的负载来选择相对空闲的Tracker服务器,从而能够有效地解决单个Tracker服务器不便于对大量用户进行管理的问题。如图5所示,是本发明系统的再一实施例的结构示意图。与图2中的实施例相比,该实施例中的SP链表包括频道信息的哈希值、多个超级服务器的IP地址和多个超级服务器的SP信息,SP选择模块51包括SP查找单元511,用于根据SP链表和接收到的频道信息在多个超级服务器中查找拥有频道信息的超级服务器;SP确定单元512,用于在SP查找单元511查找到的拥有频道信息的超级服务器中,根据SP链表中多个超级服务器的SP信息比较拥有频道信息的超级服务器的负载,选择负载小的超级服务器作为分配的超级服务器。例如,SP信息可以包括总共输入(TotalIncoming)、总共输出(TotalOutgoing)、平均输入(Averagelncoming)、平均输出(AverageOutgoing)、运行时间(ElapsedTime)、当前输入数据(CurrentIncomin)、当前输出数据(CurrentOutgoing)、活动频道(ActiveChannel)数、以及在线用户(OnlineUser)数。需要指出的是,SP信息并不局限于此,根据需要该信息还可以包括其他字段。再例如,SP选择模块51首先根据要访问的频道信息查找拥有该频道信息的超级服务器,然后通过比较这些超级服务器的OnlineUser值来确定相对空闲的超级服务器,诸如可以确定具有较低OnlineUser值的超级服务器作为相对空闲的超级服务器分配给客户端。可选地,如果OnlineUser值相同,还可以进一步比较ActiveChannel值,如果ActiveChannel值也相同,可以再进一步比较CurrentOutgoing值,以此类推,从而可以在多个超级服务器中确定相对空闲的超级服务器。在该实施例中,由所分配的Tracker服务器根据超级服务器的负载大小选择出相对空闲的超级服务器,使得客户端能够从相对空闲的超级服务器获取片源,从而进一步保证了客户端的点播流畅度。在本发明系统的再一实施例中,与图2中的实施例相比,该实施例中的多个超级服务器用于向与其相连的Tracker服务器定期地上报SP信息;分配的Tracker服务器还包括资源列表下发模块和资源列表接收模块,资源列表接收模块用于接收客户端上报的资源列表,资源列表下发模块用于向客户端下发其他客户端的资源列表。在该实施例中,由于客户端向分配的Tracker服务器上报资源列表,使得Tracker服务器能够及时获得各个客户端的网络状况,并且由于Tracker服务器也向客户端下发其他客户端的资源列表,使得该客户端能够获得更优质的其他客户端,从而可以重新与其他客户端建立连接以获得更流畅的点播信息。如图6所示,是本发明方法的一个实施例的流程示意图。该实施例包括以下步骤S602,控制中心服务器接收客户端输入的频道信息,例如,频道信息可以包括单位数据块大小(BlockSize)、频道码率(BitRate)、频道名称(ChannelName)、32位资源号(ResourceHash)、默认Tracker服务器的地址、默认超级服务器的地址、数据包长度(DataLength)和数据(Data)等,其中,32位资源号是根据频道名称和文件名产生的,数据(Data)是经过加密的关键帧的位置,每个新连接进来的客户端都会从现在播放的最接近的关键帧位置开始播放。例如,频道信息可以是BlockSize=16384BitRate=40.000000Cha騰lName=szf39ResourceHash=fb7149b5118986a0f8b4bl60fede452e32TrackServer=122.224.203.47:90SuperPeer=122.224.203.48:50001、DataLength=232数据包长度Data=vidsKP~@〈80>~@~@a~@8〈9b>qWMV3KP~@〈80>~@'@a~@8〈9b>q〈80X9f>X~EV~Q[11;lH~A~@a~@UYZ~@~@可选地,客户端还可以输入用户信息,该用户信息可以包括用户名(UserName)、密码(Passwd)、客户端IP地址以及频道名(Channel)等。例如,用户信息可以是UserName=sirPasswd=123456IP=218.75.79.92Channel=szf39需要指出的是,用户信息和频道信息并不局限于此,还可以包括其他字段,例如,9频道信息还可以包括CSUserID,当该值为0时表示是轮播频道,当该值为1时表示是直播频道。S604,控制中心服务器根据存储的TS链表和接收到的频道信息在多个Tracker服务器中为客户端分配Tracker服务器;其中,在控制中心服务器的数据库中维护着一张以频道信息为索引的哈希树形式的TS链表,该TS链表包括频道信息的哈希值(该哈希值唯一地标识频道信息)、多个Tracker服务器的IP地址和多个Tracker服务器的TS信息。如图7所示,是本发明哈希树形式的TS链表的示意图,在该哈希树中,频道信息为根节点,拥有该频道信息的Tracker服务器为子节点,例如,频道信息PI和频道信息P2为根节点,拥有频道信息PI的Tracker服务器1和Tracker服务器2为根节点PI的子节点,而拥有频道信息P2的Tracker服务器3和Tracker服务器2为根节点P2的子节点。如下述表1所示,在控制中心服务器的数据库中,该TS链表可以存储下述信息<table>tableseeoriginaldocumentpage10</column></row><table>表1在该TS链表中,Cha皿elhash表示相应频道信息的频道哈希值。例如,频道信息PI的频道哈希值是7c907938ea8a470b20e97a2c465c05da,频道信息P2的频道哈希值是fffb75416dd299c5af6fc6aa9aa38e66。而Key则表示相应Tracker服务器的IP地址,例如,Tracker服务器1的IP地址为202.191.115.35,Tracker服务器2的IP地址为202.101.118.110,Tracker服务器3的IP地址为202.101.172.49。TS信息可以是相应Tracker服务器的运行状态和连接信息。每个Tracker服务器在运行过程中都会实时记录自身的运行状态和连接信息,并且在Tracker服务器的负载发生变化时向控制中心服务器报告其TS信息。例如,该TS信息可以包括以下字段运行时间(El即sedTime)、当前登录数(TotalLogin)、消息数(TotalMsg)、活动频道(ActiveChannel)数以及在线用户(OnlineUser)数。需要指出的是,TS信息并不局限于此,根据需要该信息还可以包括其他字段。具体地,控制中心服务器根据存储的TS链表和接收到的频道信息在多个Tracker服务器中为客户端分配Tracker服务器的步骤可以包括控制中心服务器根据TS链表和接收到的频道信息在多个Tracker服务器中查找拥有频道信息的Tracker服务器;在拥有频道信息的Tracker服务器中,根据TS链表中多个Tracker服务器的TS信息比较拥有频道信息的Tracker服务器的负载,选择负载小的Tracker服务器作为分配的Tracker服务器,其中,Tracker服务器的负载是指与该Tracker服务器相连的客户端数。例如,控制中心服务器可以通过比较各个Tracker服务器的OnlineUser值来确定相对空闲的Tracker服务器,诸如可以确定具有较低OnlineUser值的Tracker服务器作为相对空闲的Tracker服务器分配给客户端。可选地,如果OnlineUser值相同,还可以进一步比较ActiveChannel值,如果ActiveChannel值也相同,可以再进一步比较TotalMsg值,以此类推在多个Tracker服务器中确定相对空闲的Tracker服务器。S606,分配的Tracker服务器从客户端获取频道信息。S608,分配的Tracker服务器根据存储的SP链表和频道信息在多个超级服务器中为客户端分配超级服务器,并将分配的超级服务器的地址返回给客户端;与控制中心服务器的数据库中的TS链表类似,在Tracker服务器的数据库中也维护着一张以频道信息为索引的哈希树形式的SP链表,该SP链表包括频道信息的哈希值、多个超级服务器的IP地址和多个超级服务器的SP信息。如图8所示,是本发明哈希树形式的SP链表的示意图。在该哈希树中,频道信息PI和频道信息P2为根节点,拥有频道信息PI的超级服务器1和超级服务器2为根节点PI的子节点,拥有频道信息P2的超级服务器3和超级服务器4为根节点P2的子节点。如下述表2所示,在Tracker服务器的数据库中,该SP链表可以存储下述信息<table>tableseeoriginaldocumentpage11</column></row><table>表2在该SP链表中,Channelhash表示相应频道信息的频道哈希值。例如,频道信息Pl的频道哈希值是7c907938ea8a470b20e97a2c465c05da,频道信息P2的频道哈希值是fffb75416dd299c5af6fc6aa9aa38e66。而Key则表示相应超级服务器的IP地址,例如,超级服务器1的IP地址为60.191.115.30,超级服务器2的IP地址为60.191.115.43,超级服务器3的IP地址为60.191.115.34,超级服务器4的IP地址为60.191.115.40。SP信息是相应超级服务器的运行状态,超级服务器定期向Tracker服务器汇报自己的运行状态。例如,该SP信息可以包括总共输入(Totallncoming)、总共输出(TotalOutgoing)、平均输入(Averagelncoming)、平均输出(AverageOutgoing)、运行时间(ElapsedTime)、当前输入数据(CurrentIncomin)、当前输出数据(CurrentOutgoing)、活云力频道(ActiveChannel)数以及在线用户(OnlineUser)数。需要指出的是,SP信息并不局限于此,根据需要该信息还可以包括其他字段。具体地,分配的Tracker服务器根据存储的SP链表和频道信息在多个超级服务器中为客户端分配超级服务器的步骤可以包括分配的Tracker服务器根据SP链表和频道信息在多个超级服务器中查找拥有频道信息的超级服务器;在拥有频道信息的超级服务器中,根据SP链表中多个超级服务器的SP信息比较拥有频道信息的超级服务器的负载,选择负载小的超级服务器作为分配的超级服务器。例如,Tracker服务器首先根据要访问的频道信息查找拥有该频道信息的超级服务器,然后通过比较这些超级服务器的OnlineUser值来确定相对空闲的超级服务器,诸如可以确定具有较低OnlineUser值的超级服务器作为相对空闲的超级服务器分配给客户端。可选地,如果OnlineUser值相同,还可以进一步比较ActiveChannel值,如果ActiveChannel值也相同,可以再进一步比较CurrentOutgoing值,以此类推在多个超级服务器中确定相对空闲的超级服务器。S610,分配的超级服务器与客户端建立连接,向客户端发送片源以进行播放。后续的工作流程与图1中流程的基本相同,客户端还获取与该客户端相邻的缓存服务器("相邻"是指数据链网络的相邻以避免跨网络取数据)的地址、正在播放该频道信息的其他缓存服务器和客户端的地址;该客户端在播放该频道信息的其他客户端中选择若干优质("优质"是指不频繁加入和退出的、网路环境优异的或频道数据充足的)的客户端,并与所选的客户端、相邻的缓存服务器和正在播放该频道信息的其他缓存服务器相连;该客户端向相邻缓存服务器请求媒体数据;分配的超级服务器与其他缓存服务器向该相邻的缓存服务器发送媒体数据;相邻的缓存服务器向该客户端发送媒体数据,这样该客户端就完全融入P2P播放系统了。需要指出的是,上述缓存服务器与图1中示出的缓存服务器具有相同的功能,在此就不再重复描述。该实施例通过控制中心服务器为客户端分配Tracker服务器,由分配的Tracker服务器为客户端分配超级服务器,再由所分配的超级服务器为客户端提供片源,方便了系统对大量接入用户的管理。如图9所示,是本发明方法的另一实施例的流程示意图。该实施例包括以下步骤S902,控制中心服务器接收客户端输入的频道信息;S904,控制中心服务器根据存储的TS链表和接收到的频道信息在多个Tracker服务器中为客户端分配Tracker服务器;S906,分配的Tracker服务器从客户端获取频道信息,此时表明该分配的Tracker服务器的负载已经发生了变化;S908,此时客户端与分配的Tracker服务器建立连接,客户端将频道信息和客户端的网络状况发送至分配的Tracker服务器以更新分配的Tracker服务器的TS信息,其中,网络状况包括运营商、内外网、带宽、IP及丢包率等;S910,分配的Tracker服务器向控制中心服务器上报更新后的分配的Tracker服务器的TS信息以更新TS链表,这样控制中心服务器可以根据最新的TS链表来分配Tracker服务器;S912,分配的Tracker服务器根据客户端与分配的Tracker服务器之间连接的建立更新存储的频道索引表,即,将该客户端的信息加入到频道索引表中,这样能够为客户端提供最新的更新,在客户端、超级服务器和缓存服务器需要时可以随时向Tracker服务器请求频道索引表,该频道索引表如下述表3所示12<table>tableseeoriginaldocumentpage13</column></row><table>表3与上述表1和表2中的参数类似,在该频道索引表中,Channelhash表示相应频道信息的频道哈希值,而Key则标识相应客户端的IP地址;S914,分配的Tracker服务器根据存储的SP链表和频道信息在多个超级服务器中为客户端分配超级服务器,并将分配的超级服务器的地址返回给客户端;S916,分配的超级服务器与客户端建立连接,向客户端发送片源以进行播放。此外,当客户端与分配的Tracker服务器断开连接时,客户端也将频道信息和客户端的网络状况发送至分配的Tracker服务器以更新分配的Tracker服务器的TS信息;分配的Tracker服务器向控制中心服务器上报更新后的分配的Tracker服务器的TS信息以更新TS链表;分配的Tracker服务器根据客户端与分配的Tracker服务器之间连接的断开更新存储的频道索引表。该实施例在客户端与分配的Tracker服务器建立或断开连接时,能够及时地更新控制中心服务器中的TS链表,从而使得控制中心服务器能够实时地查找到相对空闲的Tracker服务器。在本发明方法的又一实施例中,多个超级服务器分别向与其相连的Tracker服务器定期地上报SP信息。由于网络的不稳定性以及其他客户端的频繁加入与退出,所以可选地,分配的Tracker服务器接收来自客户端的资源列表,该资源列表可以包括片源、进度和时间等;与此同时,分配的Tracker服务器也向该客户端下发其他客户端的资源列表以进行重新连接。可选地,本发明的客户端还可以基于BitTorrent协议,这样的好处在于能够利用BitTorrent成熟的网络体系和下载平衡机制,使得系统的稳定性、适用性和网络利用率都会有比较突出的表现,为客户端提供更优质的服务和保障。本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。1权利要求一种P2P播放方法,其特征在于,所述方法包括控制中心服务器接收客户端输入的频道信息;所述控制中心服务器根据存储的TS链表和接收到的所述频道信息在多个Tracker服务器中为所述客户端分配Tracker服务器;所述分配的Tracker服务器从所述客户端获取所述频道信息;所述分配的Tracker服务器根据存储的SP链表和所述频道信息在多个超级服务器中为所述客户端分配超级服务器,并将所述分配的超级服务器的地址返回给所述客户端;所述分配的超级服务器与所述客户端建立连接,向所述客户端发送片源以进行播放。2.根据权利要求1所述的方法,其特征在于,所述方法还包括当所述客户端与所述分配的Tracker服务器建立或断开连接时,所述客户端将所述频道信息和所述客户端的网络状况发送至所述分配的Tracker服务器以更新所述分配的Tracker服务器的TS信息;所述分配的Tracker服务器向所述控制中心服务器上报更新后的所述分配的Tracker服务器的TS信息以更新所述TS链表;所述分配的Tracker服务器根据所述客户端与所述分配的Tracker服务器之间连接的建立或断开更新存储的频道索引表。3.根据权利要求1所述的方法,其特征在于,所述TS链表包括频道信息的哈希值、所述多个Tracker服务器的IP地址和所述多个Tracker服务器的TS信息,所述控制中心服务器根据存储的TS链表和接收到的所述频道信息在多个Tracker服务器中为所述客户端分配Tracker服务器的步骤包括所述控制中心服务器根据所述TS链表和接收到的所述频道信息在所述多个Tracker服务器中查找拥有所述频道信息的Tracker服务器;在拥有所述频道信息的Tracker服务器中,根据所述TS链表中多个Tracker服务器的TS信息比较拥有所述频道信息的Tracker服务器的负载,选择负载小的Tracker服务器作为所述分配的Tracker服务器。4.根据权利要求1所述的方法,其特征在于,所述SP链表包括频道信息的哈希值、所述多个超级服务器的IP地址和所述多个超级服务器的SP信息,所述分配的Tracker服务器根据存储的SP链表和所述频道信息在多个超级服务器中为所述客户端分配超级服务器的步骤包括所述分配的Tracker服务器根据所述SP链表和所述频道信息在所述多个超级服务器中查找拥有所述频道信息的超级服务器;在拥有所述频道信息的超级服务器中,根据所述SP链表中多个超级服务器的SP信息比较拥有所述频道信息的超级服务器的负载,选择负载小的超级服务器作为所述分配的超级服务器。5.根据权利要求1所述的方法,其特征在于,所述方法还包括所述多个超级服务器分别向与其相连的Tracker服务器定期地上报SP信息。6.根据权利要求1所述的方法,其特征在于,所述方法还包括所述分配的Tracker服务器接收来自所述客户端的资源列表;所述分配的Tracker服务器向所述客户端下发其他客户端的资源列表。7.—种P2P播放系统,其特征在于,所述系统包括控制中心服务器、多个Tracker服务器和多个超级服务器,其中,所述控制中心服务器包括TS选择模块,用于根据存储的TS链表和客户端发送的频道信息在所述多个Tracker服务器中为所述客户端分配Tracker服务器;所述分配的Tracker服务器包括SP选择模块,用于根据存储的SP链表和所述客户端发送的频道信息在所述多个超级服务器中为所述客户端分配超级服务器,并将所述分配的超级服务器的地址返回给所述客户端;所述分配的超级服务器包括片源存储模块,用于在所述客户端与所述分配的超级服务器建立连接后向所述客户端提供片源以进行播放。8.根据权利要求7所述的系统,其特征在于,所述分配的Tracker服务器还包括TS信息更新模块,用于在所述客户端与所述分配的Tracker服务器建立或断开连接时,根据接收到的来自所述客户端的频道信息和网络状况更新所述分配的Tracker服务器的TS信息;所述控制中心服务器还包括TS链表更新模块,用于根据所述TS信息更新模块上报的所述分配的Tracker服务器的TS信息更新所述TS链表;所述分配的Tracker服务器还包括索引表更新模块,用于根据所述客户端与所述分配的Tracker服务器之间连接的建立或断开更新存储的频道索引表。9.根据权利要求7所述的系统,其特征在于,所述TS链表包括频道信息的哈希值、所述多个Tracker服务器的IP地址和所述多个Tracker服务器的TS信息,所述TS选择模块包括TS查找单元,用于根据所述TS链表和接收到的所述频道信息在所述多个Tracker服务器中查找拥有所述频道信息的Tracker服务器;TS确定单元,用于在所述TS查找单元查找到的拥有所述频道信息的Tracker服务器中,根据所述TS链表中所述多个Tracker服务器的TS信息比较拥有所述频道信息的Tracker服务器的负载,选择负载小的Tracker服务器作为所述分配的Tracker服务器。10.根据权利要求7所述的系统,其特征在于,所述SP链表包括频道信息的哈希值、所述多个超级服务器的IP地址和所述多个超级服务器的SP信息,所述SP选择模块包括SP查找单元,用于根据所述SP链表和接收到的所述频道信息在所述多个超级服务器中查找拥有所述频道信息的超级服务器;SP确定单元,用于在所述SP查找单元查找到的拥有所述频道信息的超级服务器中,根据所述SP链表中所述多个超级服务器的SP信息比较拥有所述频道信息的超级服务器的负载,选择负载小的超级服务器作为所述分配的超级服务器。11.根据权利要求7所述的系统,其特征在于,所述多个超级服务器用于向与其相连的Tracker服务器定期地上报SP信息;所述分配的Tracker服务器还包括资源列表下发模块和资源列表接收模块,所述资源列表接收模块用于接收所述客户端上报的资源列表,所述资源列表下发模块用于向所述客户端下发其他客户端的资源列表。全文摘要本发明公开了一种P2P播放方法及系统。其中,该方法包括控制中心服务器接收客户端输入的频道信息;控制中心服务器根据存储的TS链表和接收到的频道信息在多个Tracker服务器中为客户端分配Tracker服务器;分配的Tracker服务器从客户端获取频道信息;分配的Tracker服务器根据存储的SP链表和频道信息在多个超级服务器中为客户端分配超级服务器,并将分配的超级服务器的地址返回给客户端;分配的超级服务器与客户端建立连接,向客户端发送片源以进行播放。本发明通过控制中心服务器、相对空闲的Tracker服务器和相对空闲的超级服务器对用户的接入进行管理,解决了Tracker服务器的瓶颈问题。文档编号H04L29/08GK101714987SQ20091022173公开日2010年5月26日申请日期2009年11月16日优先权日2009年11月16日发明者叶挺群,袁江,邢小良,陈元谱,黄炜申请人:中国电信股份有限公司;浙江省公众信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1