CN100433657C - 适用于大规模流媒体直播系统的对等网络成员管理方法 - Google Patents
适用于大规模流媒体直播系统的对等网络成员管理方法 Download PDFInfo
- Publication number
- CN100433657C CN100433657C CNB2006100788528A CN200610078852A CN100433657C CN 100433657 C CN100433657 C CN 100433657C CN B2006100788528 A CNB2006100788528 A CN B2006100788528A CN 200610078852 A CN200610078852 A CN 200610078852A CN 100433657 C CN100433657 C CN 100433657C
- Authority
- CN
- China
- Prior art keywords
- node
- message
- tabulation
- 16bit
- reserved word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明的名称为适用于大规模流媒体直播系统的对等网络成员管理方法,属于网络技术领域:其特征在于所述方法将系统的各个结点分为服务器结点和客户端结点,其中,服务器结点包括:集中点服务器、成员管理服务器和日志服务器:各个结点通过互相之间的消息传递、消息处理以及一些周期性的操作来实现对等网络的成员管理方法,即完成大量结点的命名、组织以及确定结点的加入和离开方式等功能;在本方法里,各个结点之间的消息传递采用了用户数据报协议(UDP)来实现。本发明的实现为大规模网络流媒体直播系统提供了可靠、高效的对等网络成员管理方法。
Description
技术领域
本发明属于网络技术领域。
背景技术
对等网络(Peer-to-Peer,简称P2P)技术是目前新一代互联网技术研究的一个热点,得到国内外学术界和工业界的广泛关注。美国的《财富》杂志更将其称为改变因特网发展的四大新技术之一。
传统的分布式系统的实现主要采取的是客户端-服务器模式,对等网络技术从根本上改变了这一模式。在采用对等网络技术实现的分布式系统里,每个结点即充当客户端又充当服务器,享用其它结点提供的服务同时也为其它结点提供服务。附图1给出了客户端-服务器模式和对等网络模式的基本对比。
对等网络技术具有以下几个方面的显著特点:
(1)非中心化:系统中的资源和服务分散在各个结点上,信息的传递和服务的实现都直接在结点之间进行,可以无需中间环节和服务器的介入,避免了可能存在的瓶颈。非中心化是对等网络技术的基本特点,由此带来了其在可扩展性、健壮性等方面的优势。
(2)可扩展性:在对等网络中,随着用户数的增加,服务的需求增加,但同时系统整体的资源和服务能力也得到扩充,始终能较容易的满足用户的需求,整个体系是全分布的,不存在瓶颈。理论上其可扩展性几乎可以认为是无限的。
(3)健壮性:由于对等网络的服务是分散在各个结点之上的,部分结点或网络遭到破坏对其它部分的影响很小。对等网络通常是以自组织的方式建立起来,允许结点自由的加入和离开,一般能够在部分结点失效时自动恢复,具有耐攻击、高容错的优势。
(4)高性价比:采用对等网络架构可以有效地利用互联网中散布的大量普通结点的计算、存储、网络资源,从而降低成本。
(5)负载均衡:对等网络环境下每个结点既是服务器又是客户端,减少了对传统客户端-服务器结构中服务器计算、存储等能力的要求,由于资源分布在各个结点,更好的实现了整个网络的负载均衡。
表1对等网络四种拓扑结构性能比较
拓扑结构是指分布式系统中各个结点之间的物理或逻辑的互联关系,结点之间的拓扑结构一直是确定系统类型的重要依据。对等网络系统一般要构造一个非集中式的拓扑结构,在构造过程中需要解决系统中所包含的大量结点如何命名、组织以及确定结点的加入和离开方式、出错恢复等问题。根据拓扑结构的关系可以将对等网络分为四种形式:中心化拓扑;全分布式非结构化拓扑;全分布式结构化拓扑和半分布式拓扑。表1给出了这四种拓扑结构的性能比较。
与传统的分布式系统相比,对等网络技术具有无可比拟的优势,具有广阔的应用前景。互联网上各种对等网络应用软件层出不穷,用户数量急剧增加。对等网络技术正不断应用到军事领域、商业领域、政府信息、通讯等领域。根据具体应用不同,可以把对等网络分为以下这些类型:
提供文件和其它内容共享的对等网络,例如Napster、Gnutella、eDonkey、emule、BitTorrent等;
挖掘对等网络对等计算能力和存储共享能力,例如Avaki、Popular Power等;
基于对等网络方式的协同处理与服务共享平台,例如JXTA、Magi、Groove、.NET My Service等;
即时通讯交流,包括ICQ、OICQ、Yahoo Messenger等;
安全的对等网络通讯与信息共享,例如Skype、Crowds、Onion Routing等。
对等网络技术在最近几年获得了如此高速的发展,尤其是其与网络流媒体服务的结合必将会更加促进对等网络技术的发展,也必将带动网络流媒体服务的迅速发展。
对等网络的成员管理方法主要就是为了解决如何构建对等网络的拓扑结构的问题,即解决大量结点如何命名、组织以及确定结点的加入和离开方式、出错恢复等问题。目前,比较成熟的方法主要是Gossip算法,该算法主要解决的是大量客户端结点之间的成员管理问题。
对于大规模网络流媒体直播系统这个特殊的应用,如何实现服务器与客户端之间、客户端与客户端之间或者多个服务器(如果存在)之间的成员管理,如何综合现有的对等网络相关技术,尤其是Gossip算法,实现一个完整、可靠、高效的成员管理方法,是一个关键的技术问题。
发明内容
本发明是为了更好的支持大规模网络流媒体直播系统,总结了现有的对等网络技术,并进行了详细的设计与优化,实现了可靠、高效的对等网络成员管理方法。
本发明提供的适用于大规模流媒体直播系统的对等网络成员管理方法,将系统的各个结点分为服务器结点和客户端结点,其中,服务器结点包括:集中点服务器RPS、成员管理服务器MMS和日志服务器LOG;各个结点通过互相之间的消息传递、消息处理以及一些周期性的操作来实现对等网络的成员管理方法,即完成大量结点的命名、组织以及确定结点的加入和离开方式等功能;各个结点之间的消息传递采用了用户数据报协议UDP,成功的实现了大规模流媒体直播系统的成员管理功能。附图2给出了该方法的系统结构图。系统中的各个结点分别会有以下工作步骤:
集中点服务器RPS工作步骤:
步骤1、RPS初始化,依次会有以下步骤:
步骤1.1、RPS的全局唯一编号为1;
步骤1.2、将32位全局用户编号变量初始化设为0x10000,该变量的变量名为GUID,该变量用于为客户端结点分配全局唯一编号;
步骤1.3、MMS空闲连接数变量初始化设为0,该变量存储MMS服务器的空闲连接数,用于进行代理结点分配的判断,当收到MMS的消息时更新;
步骤1.4、建立一个空的循环列表,名为代理结点列表,表长256,表项为<全局编号、IPv4网络地址、端口、保留字、更新时间>,其中,所述全局编号为32bit,所述IPv4网络地址为32bit,所述端口为16bit,所述保留字为16bit;
步骤1.5、建立一个空的列表,名为结点更新列表,表长100,表项为<全局编号、IPv4网络地址、端口、保留字>;
步骤1.6、建立一个空的列表,名为结点退出列表,表长300,表项为<全局编号>,其中,所述全局编号为32bit;
步骤1.7、RPS进行完前述初始化操作后,开始等待其它结点的各类消息并进行消息处理以及进行一些周期性的操作,见步骤2~8;
步骤2、收到客户端结点的登录服务器消息,进行消息处理,依次会有以下步骤:
步骤2.1、为该客户端结点分配全局唯一编号:
步骤2.1.1、该客户端结点的编号为当前变量GUID的值,将该值填入到登录反馈消息中;
步骤2.1.2、变量GUID加1,如果GUID不在范围0x10000~0xfffeffff里,将其置为0x10000;
步骤2.2、为该客户端结点分配一个代理结点:
步骤2.2.1、如果MMS空闲连接数变量大于0,代理结点为MMS,并将该变量减1,转入步骤2.2.4;
步骤2.2.2、如果代理结点列表为空,代理结点为MMS,转入步骤2.2.4;
步骤2.2.3、从代理结点列表中随机选取一个结点作为代理结点;
步骤2.2.4、将选定的代理结点信息<全局编号、IPv4网络地址、端口、保留字>填入到登录反馈消息中,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤2.3、为发送登录服务器消息的结点返回登录反馈消息:
登录反馈消息的组成:<RPS全局唯一编号、消息类型、保留字、客户端全局唯一编号、代理结点信息>,其中,所述RPS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述客户端全局唯一编号为32bit、所述代理结点信息为96bit;
步骤3、收到客户端结点的重新登录服务器消息,进行消息处理,依次会有以下步骤:
步骤3.1、为该客户端结点分配一个代理结点:
步骤3.1.1、如果MMS空闲连接数变量大于0,代理结点为MMS,并将该变量减1,转入步骤3.1.4;
步骤3.1.2、如果代理结点列表为空,代理结点为MMS,转入步骤3.1.4;
步骤3.1.3、从代理结点列表中随机选取一个结点作为代理结点;
步骤3.1.4、将选定的代理结点信息<全局编号、IPv4网络地址、端口、保留字>填入到重新登录反馈消息中,其中,所述全局编号为32bit,所述IPv4网络地址为32bit,所述端口为16bit,所述保留字为16bit;
步骤3.2、为发送重新登录服务器消息的结点返回重新登录反馈消息:
重新登录反馈消息的组成:<RPS全局唯一编号、消息类型、保留字、代理结点信息>,其中,所述RPS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述代理结点信息为96bit;
步骤4、收到客户端结点的存活消息,进行消息处理,依次会有以下步骤:
步骤4.1、将该客户端结点的结点信息<全局编号、IPv4网络地址、端口、保留字>填入到循环列表代理结点列表的表尾,如果表已满,则覆盖之前的结点信息,将列表该项的更新时间设为RPS的系统时间,精确到秒,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤4.2、将该客户端的结点信息填入到结点更新列表的表尾,如果表已满,则放弃此次信息填入;
步骤4.2.1、填完该客户端的结点信息后,判断结点更新列表是否已满,如果是,执行步骤4.3,否则,不执行步骤4.3;
步骤4.3、发送结点更新消息至日志服务器LOG;
结点更新消息的组成:<RPS全局唯一编号、消息类型、保留字、结点更新列表的长度、结点更新列表>,其中,所述RPS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述结点更新列表的长度为32bit、所述结点更新列表为列表长度×96bit;
步骤5、收到客户端结点的退出消息,进行消息处理,依次会有以下步骤:
步骤5.1、将该客户端结点的全局编号填入到结点退出列表的表尾,如果表已满,放弃此次信息填入;
步骤5.1.1、填完该客户端的编号信息后,判断结点退出列表是否已满,如果是,执行步骤5.2,否则,不执行步骤5.2;
步骤5.2、发送结点退出消息至日志服务器LOG;
结点退出消息的组成:<RPS全局唯一编号、消息类型、保留字、结点退出列表的长度、结点退出列表>,其中,所述RPS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述结点退出列表的长度为32bit、所述结点退出列表为列表长度×32bit;
步骤6、收到成员管理服务器MMS的消息,进行消息处理,会有以下步骤:
步骤6.1、从该消息中获取MMS空闲连接数变量的值,更新该变量;
步骤7、每隔一个设定的周期间隔,该周期间隔为1秒,进行如下步骤的操作:
步骤7.1、如果结点更新列表不空,则执行步骤4.3;
步骤7.2、如果结点退出列表不空,则执行步骤5.2;
步骤8、每隔一个设定的周期间隔,该周期间隔为10秒,进行如下步骤的操作:
步骤8.1、置代理结点列表中更新时间与当前系统时间间隔超过1分钟的表项失效;
日志服务器LOG的工作步骤:
步骤1、LOG初始化,依次会有以下步骤:
步骤1.1、LOG的全局唯一编号为2;
步骤1.2、在数据库中建立一张系统客户端结点的表,表项为<全局编号Key、IPv4网络地址、端口、保留字、更新时间time>;
步骤1.3、LOG进行完前述初始化操作后,开始等待RPS的消息并进行消息处理以及进行一些周期性的操作,即转入步骤2;
步骤2、收到RPS的结点更新消息,进行消息处理,依次会有以下步骤:
步骤2.1、从该消息中获取结点更新列表;
步骤2.2、从数据库的客户端结点表中依次删除结点更新列表的全局编号对应的结点表项;
步骤2.3、将结点更新列表中的结点信息一次性加入到数据库的表中,表项的更新时间设为系统时间;
步骤3、收到RPS的结点退出消息,进行消息处理,依次会有以下步骤:
步骤3.1、从该消息中获取结点退出列表;
步骤3.2、从数据库的客户端结点表中依次删除结点退出列表的全局编号对应的结点表项;
步骤4、每隔一个设定的周期间隔,该周期间隔为30秒,进行如下步骤的操作:
步骤4.1、将数据库的客户端结点表中更新时间与当前系统时间间隔超过5分钟的表项删除;成员管理服务器MMS的工作步骤:
步骤1、MMS初始化,依次会有以下步骤:
步骤1.1、MMS的全局唯一编号为3;
步骤1.2、建立一个空的列表,名为推送结点列表,表长可以自由选定,表长默认为50,表项为<全局编号、IPv4网络地址、端口、保留字、更新时间>,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤1.3、建立一个空的列表,名为备用结点列表,表长可以自由选定,表长默认为100,表项为<全局编号、IPv4网络地址、端口、保留字、更新时间>,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤1.4、MMS进行完前述初始化操作后,开始等待客户端结点的消息并进行消息处理以及进行一些周期性的操作,即转入步骤2;
步骤2、收到第一客户端结点的接入请求消息后,进行消息处理,依次会有以下步骤:
步骤2.1、如果推送结点列表已满,转入步骤2.3;
步骤2.2、将该第一客户端结点的结点信息<全局编号、IPv4网络地址、端口、保留字>加入到推送结点列表中,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit,将相应项的更新时间设为MMS的系统时间,定义该第一客户端结点的类型为推送类型,转入步骤2.6;
步骤2.3、如果备用结点列表已满,转入步骤2.5;
步骤2.4、将该第一客户端结点的结点信息<全局编号、IPv4网络地址、端口、保留字>加入到备用结点列表中,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit,将相应项的更新时间设为MMS的系统时间,定义该第一客户端结点的类型为备用类型,转入步骤2.6;
步骤2.5、定义该第一客户端结点的类型为普通类型;
步骤2.6、返回第一客户端结点接入请求反馈消息;接入请求反馈消息的组成:<MMS全局唯一编号、消息类型、保留字、客户端结点类型、保留字>,其中,所述MMS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述客户端结点类型为16bit、所述保留字为16bit;
步骤2.7、发送接入请求转发消息到推送结点列表的所有结点,其中转发次数设为默认值(可取5):接入请求转发消息的组成:<MMS全局唯一编号、消息类型、保留字、第一客户端结点的结点信息、转发次数>,其中,所述MMS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述第一客户端结点的结点信息为96bit、所述转发次数为32bit;
步骤2.8、如果第一客户端结点的结点类型为备用或者普通,则发送接入请求转发消息到备用结点列表的所有结点,其中转发次数设为默认值(可取5):
接入请求转发消息的组成:<MMS全局唯一编号、消息类型、保留字、第一客户端结点的结点信息、转发次数>,其中,所述MMS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述第一客户端结点的结点信息为96bit、所述转发次数为32bit;
步骤3、收到客户端结点的存活消息,进行消息处理,依次会有以下步骤:
步骤3.1、在推送结点列表中依据全局编号查找是否有该客户端结点的信息;
步骤3.1.1、若有,将推送结点列表中该结点的更新时间设为当前的MMS系统时间,不再执行步骤3的后续步骤;
步骤3.1.2、若没有,则转入步骤3.2;
步骤3.2、在备用结点列表中依据全局编号查找是否有该客户端结点的信息;
步骤3.2.1、若有,将备用结点列表中该结点的更新时间设为当前的MMS系统时间;
步骤3.2.2、若没有,判断备用结点列表是否已满;
步骤3.2.2.1、如果该列表未满,则将该客户端的结点信息<全局编号、IPv4网络地址、端口、保留字>加入到备用结点列表中,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit,将相应项的更新时间设为MMS的系统时间,定义该客户端结点的类型为备用类型,仅执行步骤2.6;
步骤4、收到客户端结点的退出消息,进行消息处理,依次会有以下步骤:
步骤4.1、在推送结点列表和备用结点列表中依据全局编号查找是否有该客户端结点的信息;
步骤4.1.1、如果有,则将该结点的信息从对应列表中删除;
步骤4.1.2、如果没有,则不作处理;
步骤5、每隔一个设定的周期间隔,该周期间隔为2秒钟,进行如下步骤的操作:
步骤5.1、将推送结点列表和备用结点列表中更新时间与当前系统时间间隔超过5秒钟的表项从列表中删除;
步骤5.2、发送消息至RPS服务器:<MMS全局唯一编号、消息类型、保留字、MMS空余连接数>,其中,所述MMS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述MMS空余连接数为32bit;MMS空余连接数=推送结点列表(最大数-当前数)+备用结点列表(最大数-当前数);
客户端结点的工作步骤:
步骤1、客户端初始化,依次会有以下步骤:
步骤1.1、建立一个空的列表,名为数据源结点列表,表长20,表项为<全局编号、IPv4网络地址、端口、保留字、更新时间>,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤1.2、建立一个空的列表,名为数据请求者结点列表,表长80,表项为<全局编号、IPv4网络地址、端口、保留字、更新时间>,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤2、登录服务器,依次会有以下步骤:
步骤2.1、发送登录服务器消息至集中点服务器RPS;
登录服务器消息的组成:<0xffffffff、消息类型、保留字>,其中,所述0xffffffff为32bit,所述消息类型为16bit,所述保留字为16bit;
步骤2.2、按设定的超时间隔,该超时间隔为1秒,启动超时计时器;
步骤2.3、超时时间到,尚未获得登录反馈消息时,若超时次数大于设定次数时,则放弃登录服务器,客户端终止操作,否则重新执行步骤2.1~2.2,其中,所述设定次数为5次;
步骤2.4、若在超时间隔内获得登录反馈消息,得到RPS分配给本结点的全局唯一编号以及代理结点的信息<全局编号、IPv4网络地址、端口、保留字>,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤2.5、根据代理结点的全局编号进行判断,如果是MMS服务器的编号,则转入步骤3;如果是客户端结点的编号,则转入步骤4;
步骤3、通过MMS服务器接入系统,依次会有以下步骤:
步骤3.1、发送接入请求消息至MMS服务器;
接入请求消息的组成:<本结点的全局唯一编号、消息类型、保留字>,其中,所述本结点的全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit;
步骤3.2、按设定的超时间隔,该超时间隔为2秒,启动超时计时器;
步骤3.3、超时时间到,尚未获得接入请求反馈消息时,若超时次数大于设定次数时,则执行步骤5,否则重新执行步骤3.1~3.2,其中,所述设定次数为5次;
步骤3.4、若在超时间隔内获得接入请求反馈消息,从中获得MMS为自己定义的客户端结点类型,开始等待客户端结点的消息并进行消息处理以及进行一些周期性的操作,即转入步骤6;
步骤4、通过客户端代理结点接入系统,依次会有以下步骤:
步骤4.1、由于代理结点是客户端,则本结点的结点类型被定义为普通类型;
步骤4.2、发送接入请求消息至代理结点;
接入请求消息的组成:<本结点的全局唯一编号、消息类型、保留字>,其中,所述本结点的全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit;
步骤4.3、按设定的超时间隔,该超时间隔为3秒,启动超时计时器;
步骤4.4、超时时间到,尚未获得任何接入请求转发反馈消息时,若超时次数大于设定次数时,则执行步骤5,否则重新执行步骤4.2~4.3,其中,所述设定次数为5次;
步骤4.5、若在超时间隔内获得接入请求转发反馈消息,开始等待客户端结点的消息并进行消息处理以及进行一些周期性的操作,即转入步骤6;
步骤5、重新登录服务器,依次会有以下步骤:
步骤5.1、发送重新登录服务器消息至集中点服务器RPS;
重新登录服务器消息的组成:<0xffffffff、消息类型、保留字>,其中,所述0xffffffff为32bit,所述消息类型为16bit,所述保留字为16bit;
步骤5.2、按设定的超时间隔,该超时间隔为1秒,启动超时计时器;
步骤5.3、超时时间到,尚未获得重新登录反馈消息时,若超时次数大于设定次数时,则放弃重新登录服务器,客户端终止操作,否则重新执行步骤5.1~5.2,其中,所述的设定次数为3次;
步骤5.4、若在超时间隔内获得重新登录反馈消息,得到RPS分配给本结点的全局唯一编号以及代理结点的信息<全局编号、IPv4网络地址、端口、保留字>,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤5.5、根据代理结点的全局编号进行判断,如果是MMS服务器的编号,则转入步骤3;如果是客户端结点的编号,则转入步骤4;
步骤6、收到第二客户端结点的接入请求转发反馈消息,进行消息处理,会有以下步骤:
步骤6.1、在数据源结点列表中依据第二客户端结点的全局编号查找是否存在记录;
步骤6.1.1、如果不存在,判断数据源结点列表是否已满;
步骤6.1.1.1、如果没满,则将第二客户端结点的结点信息加入到数据源结点列表中;
步骤6.1.1.2、如果列表已满,放弃步骤6的其它操作;
步骤6.1.2、如果存在,将对应表项的更新时间置为本结点的系统时间;
步骤7、收到第三客户端结点的接入请求消息,进行消息处理,会有以下步骤:
步骤7.1、发送接入请求转发消息到数据源结点列表的所有结点,其中转发次数设为默认值5;
接入请求转发消息的组成:<自己全局唯一编号、消息类型、保留字、第三客户端结点的结点信息、转发次数>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述第三客户端结点的结点信息为96bit、所述转发次数为32bit;
步骤7.2、发送接入请求转发消息到数据请求者结点列表的随机选定的N个结点,其中,N=min(数据请求者结点列表当前结点数,数据源结点列表的最大数减去数据源结点列表的当前结点数),转发次数设为默认值5;
接入请求转发消息的组成:同步骤7.1的消息组成;
步骤8、收到第四客户端结点的接入请求转发消息,进行消息处理,会有以下步骤:
步骤8.1、从消息中获得最初发送接入请求消息的第三客户端结点的信息;
步骤8.2、查找本结点的数据源结点列表和数据请求者结点列表中是否有第三客户端结点的信息;
步骤8.2.1、若没有第三客户端结点的信息,判断本结点的数据请求者结点列表是否已满;
步骤8.2.1.1、若已满,执行步骤8.3;
步骤8.2.1.2、以概率P=1/(1+局部数据请求者视图大小),保留第三客户端结点的信息至
本结点的数据请求者结点列表,如果保留,则执行步骤8.4,不保留,则执行步骤8.3;
步骤8.2.2、若有第三客户端结点的信息,判断该消息中转发次数是否大于0;
步骤8.2.2.1、如果是,则执行步骤8.3;
步骤8.2.2.2、如果不是,则放弃执行步骤8的其它子步骤;
步骤8.3、从本结点的数据源结点列表和数据请求者结点列表中随机选取一个结点,向其发送接入请求转发消息,其中,转发次数为步骤8收到的消息中转发次数减1,不执行步骤8.4;
接入请求转发消息的组成:<自己全局唯一编号、消息类型、保留字、第三客户端结点的结点信息、转发次数>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit,所述第三客户端结点的结点信息为96bit,所述转发次数为32bit;
步骤8.4、将第三客户端结点的结点信息加入到数据请求者结点列表中,发送接入请求转发反馈消息至第三客户端结点;
接入请求转发反馈消息的组成:<本结点的全局唯一编号、消息类型、保留字>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit;
步骤9、收到第五客户端结点的存活消息,进行消息处理,会有以下步骤:
步骤9.1、在本结点的数据源结点列表和数据请求者结点列表中依据全局唯一编号查找第五客户端结点的信息,如果有,则将对应记录的更新时间设为当前的系统时间;
步骤10、收到客户端结点的结点扩充消息,进行消息处理,会有以下步骤:
步骤10.1、从该消息中获取结点信息列表;
步骤10.2、依据这些结点的全局编号在本结点的数据源结点列表和数据请求者结点列表中查找是否存在记录;
步骤10.2.1、如果没有且数据请求者结点列表未满,则将对应的结点信息填入到该列表中;步骤11、每隔一个设定的周期间隔,该周期间隔为2秒钟,进行如下步骤的操作:
步骤11.1、向本结点的中所有结点发送存活消息:<本结点的全局唯一编号、消息类型、保留字>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit;
步骤11.2、从本结点的数据请求者结点列表中随机选取一个第六客户端结点,从本结点的数据源结点列表和数据请求者结点列表中随机的选取m个结点,所述m不大于5,将这些结点信息组成结点扩充消息发送给第六客户端结点;
结点扩充消息的组成:<本结点的全局唯一编号、消息类型、保留字、m个结点信息>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit,所述m个结点信息为m×96bit;
步骤12、每隔一个设定的周期间隔,该周期间隔为1秒钟,进行如下步骤的操作:
步骤12.1、将本结点的数据源结点列表和数据请求者结点列表中更新时间与当前系统时间的间隔超过设定值5秒钟的结点记录从列表中删除;
步骤12.2、当本结点的数据源结点列表未满时,从数据请求者结点列表中随机选取N个结点,将这些结点的信息从数据请求者结点列表中删除,加入到数据源结点列表中,其中N=min(数据请求者结点列表当前结点数,数据源结点列表的最大数减去数据源结点列表的当前结点数);
步骤13、收到其它第七客户端结点的退出消息,进行消息处理,依次会有以下步骤:
步骤13.1、将第七客户端结点从本结点的数据源结点列表和数据请求者结点列表中删除;
步骤13.2、从退出消息中获取替代结点的信息,如果替代结点没有在本结点的数据源结点列表和数据请求者结点列表中,则将替代结点的信息加入到第七客户端结点原来所在的列表中;
步骤14、客户端结点的退出,依次会有以下步骤;
步骤14.1、即将退出系统的结点发送退出消息给本结点的数据源结点列表和数据请求者结点列表中的每个结点,并且在每个退出消息中包括一个自己数据源结点列表中随机选出的结点;
退出消息的组成:<本结点的全局唯一编号、消息类型、保留字、替代结点信息>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit,所述替代结点信息为96bit;
步骤14.2、发送退出消息至MMS服务器;
退出消息的组成:<本结点的全局唯一编号、消息类型、保留字>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit;
步骤14.3、发送退出消息至RPS服务器;
退出消息的组成:<本结点的全局唯一编号、消息类型、保留字>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit。
附图说明
图1给出了传统的客户端-服务器模式(C/S)和本发明所采用的对等网络模式(P2P)两个示意图;
图2给出了本发明的系统结构图;
图3给出了客户端的基本流程图。
Claims (1)
1.适用于大规模流媒体直播系统的对等网络成员管理方法,其特征在于所述方法将系统的各个结点分为服务器结点和客户端结点,其中,服务器结点包括:集中点服务器RPS、成员管理服务器MMS和日志服务器LOG;各个结点通过互相之间的消息传递、消息处理以及一些周期性的操作来实现对等网络的成员管理方法,即完成大量结点的命名、组织以及确定结点的加入和离开方式功能;各个结点之间的消息传递采用了用户数据报协议UDP,系统中的各个结点分别会有以下工作步骤:
集中点服务器RPS工作步骤:
步骤1、RPS初始化,依次会有以下步骤:
步骤1.1、RPS的全局唯一编号为1;
步骤1.2、将32位全局用户编号变量初始化设为0x10000,该变量的变量名为GUID,该变量用于为客户端结点分配全局唯一编号;
步骤1.3、MMS空闲连接数变量初始化设为0,该变量存储MMS服务器的空闲连接数,用于进行代理结点分配的判断,当收到MMS的消息时更新;
步骤1.4、建立一个空的循环列表,名为代理结点列表,表长256,表项为<全局编号、IPv4网络地址、端口、保留字、更新时间>,其中,所述全局编号为32bit,所述IPv4网络地址为32bit,所述端口为16bit,所述保留字为16bit;
步骤1.5、建立一个空的列表,名为结点更新列表,表长100,表项为<全局编号、IPv4网络地址、端口、保留字>;
步骤1.6、建立一个空的列表,名为结点退出列表,表长300,表项为<全局编号>,其中,所述全局编号为32bit;
步骤1.7、RPS进行完前述初始化操作后,开始等待其它结点的各类消息并进行消息处理以及进行一些周期性的操作,见步骤2~8;
步骤2、收到客户端结点的登录服务器消息,进行消息处理,依次会有以下步骤:
步骤2.1、为该客户端结点分配全局唯一编号:
步骤2.1.1、该客户端结点的编号为当前变量GUID的值,将该值填入到登录反馈消息中;
步骤2.1.2、变量GUID加1,如果GUID不在范围0x10000~0xfffeffff里,将其置为0x10000;
步骤2.2、为该客户端结点分配一个代理结点:
步骤2.2.1、如果MMS空闲连接数变量大于0,代理结点为MMS,并将该变量减1,转入步骤2.2.4;
步骤2.2.2、如果代理结点列表为空,代理结点为MMS,转入步骤2.2.4;
步骤2.2.3、从代理结点列表中随机选取一个结点作为代理结点;
步骤2.2.4、将选定的代理结点信息<全局编号、IPv4网络地址、端口、保留字>填入到登录反馈消息中,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤2.3、为发送登录服务器消息的结点返回登录反馈消息:
登录反馈消息的组成:<RPS全局唯一编号、消息类型、保留字、客户端全局唯一编号、代理结点信息>,其中,所述RPS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述客户端全局唯一编号为32bit、所述代理结点信息为96bit;
步骤3、收到客户端结点的重新登录服务器消息,进行消息处理,依次会有以下步骤:
步骤3.1、为该客户端结点分配一个代理结点:
步骤3.1.1、如果MMS空闲连接数变量大于0,代理结点为MMS,并将该变量减1,转入步骤3.1.4;
步骤3.1.2、如果代理结点列表为空,代理结点为MMS,转入步骤3.1.4;
步骤3.1.3、从代理结点列表中随机选取一个结点作为代理结点;
步骤3.1.4、将选定的代理结点信息<全局编号、IPv4网络地址、端口、保留字>填入到重新登录反馈消息中,其中,所述全局编号为32bit,所述IPv4网络地址为32bit,所述端口为16bit,所述保留字为16bit;
步骤3.2、为发送重新登录服务器消息的结点返回重新登录反馈消息:
重新登录反馈消息的组成:<RPS全局唯一编号、消息类型、保留字、代理结点信息>,其中,所述RPS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述代理结点信息为96bit;
步骤4、收到客户端结点的存活消息,进行消息处理,依次会有以下步骤:
步骤4.1、将该客户端结点的结点信息<全局编号、IPv4网络地址、端口、保留字>填入到循环列表代理结点列表的表尾,如果表已满,则覆盖之前的结点信息,将列表该项的更新时间设为RPS的系统时间,精确到秒,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤4.2、将该客户端的结点信息填入到结点更新列表的表尾,如果表已满,则放弃此次信息填入;
步骤4.2.1、填完该客户端的结点信息后,判断结点更新列表是否已满,如果是,执行步骤4.3,否则,不执行步骤4.3;
步骤4.3、发送结点更新消息至日志服务器LOG;
结点更新消息的组成:<RPS全局唯一编号、消息类型、保留字、结点更新列表的长度、结点更新列表>,其中,所述RPS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述结点更新列表的长度为32bit、所述结点更新列表为列表长度×96bit;
步骤5、收到客户端结点的退出消息,进行消息处理,依次会有以下步骤:
步骤5.1、将该客户端结点的全局编号填入到结点退出列表的表尾,如果表已满,放弃此次信息填入;
步骤5.1.1、填完该客户端的编号信息后,判断结点退出列表是否已满,如果是,执行步骤5.2,否则,不执行步骤5.2;
步骤5.2、发送结点退出消息至日志服务器LOG;
结点退出消息的组成:<RPS全局唯一编号、消息类型、保留字、结点退出列表的长度、结点退出列表>,其中,所述RPS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述结点退出列表的长度为32bit、所述结点退出列表为列表长度×32bit;
步骤6、收到成员管理服务器MMS的消息,进行消息处理,会有以下步骤:
步骤6.1、从该消息中获取MMS空闲连接数变量的值,更新该变量;
步骤7、每隔一个设定的周期间隔,该周期间隔为1秒,进行如下步骤的操作:
步骤7.1、如果结点更新列表不空,则执行步骤4.3;
步骤7.2、如果结点退出列表不空,则执行步骤5.2;
步骤8、每隔一个设定的周期间隔,该周期间隔为10秒,进行如下步骤的操作:
步骤8.1、置代理结点列表中更新时间与当前系统时间间隔超过1分钟的表项失效;
日志服务器LOG的工作步骤:
步骤1、LOG初始化,依次会有以下步骤:
步骤1.1、LOG的全局唯一编号为2;
步骤1.2、在数据库中建立一张系统客户端结点的表,表项为<全局编号Key、IPv4网络地址、端口、保留字、更新时间time>;
步骤1.3、LOG进行完前述初始化操作后,开始等待RPS的消息并进行消息处理以及进行一些周期性的操作;
步骤2、收到RPS的结点更新消息,进行消息处理,依次会有以下步骤:
步骤2.1、从该消息中获取结点更新列表;
步骤2.2、从数据库的客户端结点表中依次删除结点更新列表的全局编号对应的结点表项;
步骤2.3、将结点更新列表中的结点信息一次性加入到数据库的表中,表项的更新时间设为系统时间;
步骤3、收到RPS的结点退出消息,进行消息处理,依次会有以下步骤:
步骤3.1、从该消息中获取结点退出列表;
步骤3.2、从数据库的客户端结点表中依次删除结点退出列表的全局编号对应的结点表项;步骤4、每隔一个设定的周期间隔,该周期间隔为30秒,进行如下步骤的操作:
步骤4.1、将数据库的客户端结点表中更新时间与当前系统时间间隔超过5分钟的表项删除;成员管理服务器MMS的工作步骤:
步骤1、MMS初始化,依次会有以下步骤:
步骤1.1、MMS的全局唯一编号为3;
步骤1.2、建立一个空的列表,名为推送结点列表,表长可以自由选定,表长默认为50,表项为<全局编号、IPv4网络地址、端口、保留字、更新时间>,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤1.3、建立一个空的列表,名为备用结点列表,表长可以自由选定,表长默认为100,表项为<全局编号、IPv4网络地址、端口、保留字、更新时间>,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤1.4、MMS进行完前述初始化操作后,开始等待客户端结点的消息并进行消息处理以及进行一些周期性的操作;
步骤2、收到第一客户端结点的接入请求消息后,进行消息处理,依次会有以下步骤:
步骤2.1、如果推送结点列表已满,转入步骤2.3;
步骤2.2、将该第一客户端结点的结点信息<全局编号、IPv4网络地址、端口、保留字>加入到推送结点列表中,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit,将相应项的更新时间设为MMS的系统时间,定义该第一客户端结点的类型为推送类型,转入步骤2.6;
步骤2.3、如果备用结点列表已满,转入步骤2.5;
步骤2.4、将该第一客户端结点的结点信息<全局编号、IPv4网络地址、端口、保留字>加入到备用结点列表中,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit,将相应项的更新时间设为MMS的系统时间,定义该第一客户端结点的类型为备用类型,转入步骤2.6;
步骤2.5、定义该第一客户端结点的类型为普通类型;
步骤2.6、返回第一客户端结点接入请求反馈消息;
接入请求反馈消息的组成:<MMS全局唯一编号、消息类型、保留字、客户端结点类型、保留字>,
其中,所述MMS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述客户端结点类型为16bit、所述保留字为16bit;
步骤2.7、发送接入请求转发消息到推送结点列表的所有结点,其中转发次数设为默认值,该默认值为5:
接入请求转发消息的组成:<MMS全局唯一编号、消息类型、保留字、第一客户端结点的结点信息、转发次数>,其中,所述MMS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述第一客户端结点的结点信息为96bit、所述转发次数为32bit;
步骤2.8、如果第一客户端结点的结点类型为备用或者普通,则发送接入请求转发消息到备用结点列表的所有结点,其中转发次数设为默认值,该默认值为5:
接入请求转发消息的组成:<MMS全局唯一编号、消息类型、保留字、第一客户端结点的结点信息、转发次数>,其中,所述MMS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述第一客户端结点的结点信息为96bit、所述转发次数为32bit;
步骤3、收到客户端结点的存活消息,进行消息处理,依次会有以下步骤:
步骤3.1、在推送结点列表中依据全局编号查找是否有该客户端结点的信息;
步骤3.1.1、若有,将推送结点列表中该结点的更新时间设为当前的MMS系统时间,不再执行步骤3的后续步骤;
步骤3.1.2、若没有,则转入步骤3.2;
步骤3.2、在备用结点列表中依据全局编号查找是否有该客户端结点的信息;
步骤3.2.1、若有,将备用结点列表中该结点的更新时间设为当前的MMS系统时间;
步骤3.2.2、若没有,判断备用结点列表是否已满;
步骤3.2.2.1、如果该列表未满,则将该客户端的结点信息<全局编号、IPv4网络地址、端口、保留字>加入到备用结点列表中,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit,将相应项的更新时间设为MMS的系统时间,定义该客户端结点的类型为备用类型,仅执行步骤2.6;
步骤4、收到客户端结点的退出消息,进行消息处理,依次会有以下步骤:
步骤4.1、在推送结点列表和备用结点列表中依据全局编号查找是否有该客户端结点的信息;
步骤4.1.1、如果有,则将该结点的信息从对应列表中删除;
步骤4.1.2、如果没有,则不作处理;
步骤5、每隔一个设定的周期间隔,该周期间隔为2秒钟,进行如下步骤的操作:
步骤5.1、将推送结点列表和备用结点列表中更新时间与当前系统时间间隔超过5秒钟的表项从列表中删除;
步骤5.2、发送消息至RPS服务器:<MMS全局唯一编号、消息类型、保留字、MMS空余连接数>,其中,所述MMS全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述MMS空余连接数为32bit;MMS空余连接数=推送结点列表的最大数减去推送结点列表的当前数+备用结点列表的最大数减去备用结点列表的当前数;
客户端结点的工作步骤:
步骤1、客户端初始化,依次会有以下步骤:
步骤1.1、建立一个空的列表,名为数据源结点列表,表长20,表项为<全局编号、IPv4网络地址、端口、保留字、更新时间>,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤1.2、建立一个空的列表,名为数据请求者结点列表,表长80,表项为<全局编号、IPv4网络地址、端口、保留字、更新时间>,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤2、登录服务器,依次会有以下步骤:
步骤2.1、发送登录服务器消息至集中点服务器RPS;
登录服务器消息的组成:<0xffffffff、消息类型、保留字>,其中,所述0xffffffff为32bit,所述消息类型为16bit,所述保留字为16bit;
步骤2.2、按设定的超时间隔,该超时间隔为1秒,启动超时计时器;
步骤2.3、超时时间到,尚未获得登录反馈消息时,若超时次数大于设定次数时,则放弃登录服务器,客户端终止操作,否则重新执行步骤2.1~2.2,其中,所述设定次数为5次;
步骤2.4、若在超时间隔内获得登录反馈消息,得到RPS分配给本结点的全局唯一编号以及代理结点的信息<全局编号、IPv4网络地址、端口、保留字>,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤2.5、根据代理结点的全局编号进行判断,如果是MMS服务器的编号,则转入步骤3;如果是客户端结点的编号,则转入步骤4;
步骤3、通过MMS服务器接入系统,依次会有以下步骤:
步骤3.1、发送接入请求消息至MMS服务器;
接入请求消息的组成:<本结点的全局唯一编号、消息类型、保留字>,其中,所述本结点的全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit;
步骤3.2、按设定的超时间隔,该超时间隔为2秒,启动超时计时器;
步骤3.3、超时时间到,尚未获得接入请求反馈消息时,若超时次数大于设定次数时,则执行步骤5,否则重新执行步骤3.1~3.2,其中,所述设定次数为5次;
步骤3.4、若在超时间隔内获得接入请求反馈消息,从中获得MMS为自己定义的客户端结点类型,开始等待客户端结点的消息并进行消息处理以及进行一些周期性的操作,即转入步骤6;
步骤4、通过客户端代理结点接入系统,依次会有以下步骤:
步骤4.1、由于代理结点是客户端,则本结点的结点类型被定义为普通类型;
步骤4.2、发送接入请求消息至代理结点;
接入请求消息的组成:<本结点的全局唯一编号、消息类型、保留字>,其中,所述本结点的全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit;
步骤4.3、按设定的超时间隔,该超时间隔为3秒,启动超时计时器;
步骤4.4、超时时间到,尚未获得任何接入请求转发反馈消息时,若超时次数大于设定次数时,则执行步骤5,否则重新执行步骤4.2~4.3,其中,所述设定次数为5次;
步骤4.5、若在超时间隔内获得接入请求转发反馈消息,开始等待客户端结点的消息并进行消息处理以及进行一些周期性的操作,即转入步骤6;
步骤5、重新登录服务器,依次会有以下步骤:
步骤5.1、发送重新登录服务器消息至集中点服务器RPS;
重新登录服务器消息的组成:<0xffffffff、消息类型、保留字>,其中,所述0xffffffff为32bit,所述消息类型为16bit,所述保留字为16bit;
步骤5.2、按设定的超时间隔,该超时间隔为1秒,启动超时计时器;
步骤5.3、超时时间到,尚未获得重新登录反馈消息时,若超时次数大于设定次数时,则放弃重新登录服务器,客户端终止操作,否则重新执行步骤5.1~5.2,其中,所述的设定次数为3次;
步骤5.4、若在超时间隔内获得重新登录反馈消息,得到RPS分配给本结点的全局唯一编号以及代理结点的信息<全局编号、IPv4网络地址、端口、保留字>,其中,所述全局编号为32bit、所述IPv4网络地址为32bit、所述端口为16bit、所述保留字为16bit;
步骤5.5、根据代理结点的全局编号进行判断,如果是MMS服务器的编号,则转入步骤3;如果是客户端结点的编号,则转入步骤4;
步骤6、收到第二客户端结点的接入请求转发反馈消息,进行消息处理,会有以下步骤:
步骤6.1、在数据源结点列表中依据第二客户端结点的全局编号查找是否存在记录;
步骤6.1.1、如果不存在,判断数据源结点列表是否已满;
步骤6.1.1.1、如果没满,则将第二客户端结点的结点信息加入到数据源结点列表中;
步骤6.1.1.2、如果列表已满,放弃步骤6的其它操作;
步骤6.1.2、如果存在,将对应表项的更新时间置为本结点的系统时间;
步骤7、收到第三客户端结点的接入请求消息,进行消息处理,会有以下步骤:
步骤7.1、发送接入请求转发消息到数据源结点列表的所有结点,其中转发次数设为默认值5;接入请求转发消息的组成:<自己全局唯一编号、消息类型、保留字、第三客户端结点的结点信息、转发次数>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit、所述第三客户端结点的结点信息为96bit、所述转发次数为32bit;
步骤7.2、发送接入请求转发消息到数据请求者结点列表的随机选定的N个结点,其中,N=min(数据请求者结点列表当前结点数,数据源结点列表的最大数减去-数据源结点列表的当前结点数),转发次数设为默认值5;
接入请求转发消息的组成:同步骤7.1的消息组成;
步骤8、收到第四客户端结点的接入请求转发消息,进行消息处理,会有以下步骤:
步骤8.1、从消息中获得最初发送接入请求消息的第三客户端结点的信息;
步骤8.2、查找本结点的数据源结点列表和数据请求者结点列表中是否有第三客户端结点的信息;
步骤8.2.1、若没有第三客户端结点的信息,判断本结点的数据请求者结点列表是否已满;
步骤8.2.1.1、若已满,执行步骤8.3;
步骤8.2.1.2、以概率P=1/(1+局部数据请求者视图大小),保留第三客户端结点的信息至本结点的数据请求者结点列表,如果保留,则执行步骤8.4,不保留,则执行步骤8.3;
步骤8.2.2、若有第三客户端结点的信息,判断该消息中转发次数是否大于0;
步骤8.2.2.1、如果是,则执行步骤8.3;
步骤8.2.2.2、如果不是,则放弃执行步骤8的其它子步骤;
步骤8.3、从本结点的数据源结点列表和数据请求者结点列表中随机选取一个结点,向其发送接入请求转发消息,其中,转发次数为步骤8收到的消息中转发次数减1,不执行步骤8.4;
接入请求转发消息的组成:<自己全局唯一编号、消息类型、保留字、第三客户端结点的结点信息、转发次数>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit,所述第三客户端结点的结点信息为96bit,所述转发次数为32bit;
步骤8.4、将第三客户端结点的结点信息加入到数据请求者结点列表中,发送接入请求转发反馈消息至第三客户端结点;
接入请求转发反馈消息的组成:<本结点的全局唯一编号、消息类型、保留字>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit;
步骤9、收到第五客户端结点的存活消息,进行消息处理,会有以下步骤:
步骤9.1、在本结点的数据源结点列表和数据请求者结点列表中依据全局唯一编号查找第五客户端结点的信息,如果有,则将对应记录的更新时间设为当前的系统时间;
步骤10、收到客户端结点的结点扩充消息,进行消息处理,会有以下步骤:
步骤10.1、从该消息中获取结点信息列表;
步骤10.2、依据这些结点的全局编号在本结点的数据源结点列表和数据请求者结点列表中查找是否存在记录;
步骤10.2.1、如果没有且数据请求者结点列表未满,则将对应的结点信息填入到该列表中;
步骤11、每隔一个设定的周期间隔,该周期间隔为2秒钟,进行如下步骤的操作:
步骤11.1、向本结点的中所有结点发送存活消息:<本结点的全局唯一编号、消息类型、保留字>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit;
步骤11.2、从本结点的数据请求者结点列表中随机选取一个第六客户端结点,从本结点的数据源结点列表和数据请求者结点列表中随机的选取m个结点,所述m不大于5,将这些结点信息组成结点扩充消息发送给第六客户端结点;
结点扩充消息的组成:<本结点的全局唯一编号、消息类型、保留字、m个结点信息>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit,所述m个结点信息为m×96bit;
步骤12、每隔一个设定的周期间隔,该周期间隔为1秒钟,进行如下步骤的操作:
步骤12.1、将本结点的数据源结点列表和数据请求者结点列表中更新时间与当前系统时间的间隔超过设定值5秒钟的结点记录从列表中删除;
步骤12.2、当本结点的数据源结点列表未满时,从数据请求者结点列表中随机选取N个结点,将这些结点的信息从数据请求者结点列表中删除,加入到数据源结点列表中,其中N=min(数据请求者结点列表当前结点数,数据源结点列表的最大数减去数据源结点列表的当前结点数);
步骤13、收到其它第七客户端结点的退出消息,进行消息处理,依次会有以下步骤:
步骤13.1、将第七客户端结点从本结点的数据源结点列表和数据请求者结点列表中删除;
步骤13.2、从退出消息中获取替代结点的信息,如果替代结点没有在本结点的数据源结点列表和数据请求者结点列表中,则将替代结点的信息加入到第七客户端结点原来所在的列表中;
步骤14、客户端结点的退出,依次会有以下步骤;
步骤14.1、即将退出系统的结点发送退出消息给本结点的数据源结点列表和数据请求者结点列表中的每个结点,并且在每个退出消息中包括一个自己数据源结点列表中随机选出的结点;
退出消息的组成:<本结点的全局唯一编号、消息类型、保留字、替代结点信息>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit,所述替代结点信息为96bit;
步骤14.2、发送退出消息至MMS服务器;
退出消息的组成:<本结点的全局唯一编号、消息类型、保留字>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit;
步骤14.3、发送退出消息至RPS服务器;
退出消息的组成:<本结点的全局唯一编号、消息类型、保留字>,其中,所述全局唯一编号为32bit、所述消息类型为16bit、所述保留字为16bit。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100788528A CN100433657C (zh) | 2006-05-11 | 2006-05-11 | 适用于大规模流媒体直播系统的对等网络成员管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100788528A CN100433657C (zh) | 2006-05-11 | 2006-05-11 | 适用于大规模流媒体直播系统的对等网络成员管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1881900A CN1881900A (zh) | 2006-12-20 |
CN100433657C true CN100433657C (zh) | 2008-11-12 |
Family
ID=37519889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100788528A Active CN100433657C (zh) | 2006-05-11 | 2006-05-11 | 适用于大规模流媒体直播系统的对等网络成员管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100433657C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603749B (zh) * | 2017-01-06 | 2017-11-21 | 浙江中都信息技术有限公司 | 一种动态ip到主机映射的高效方法 |
CN108494853B (zh) * | 2018-03-22 | 2021-01-05 | 广州视源电子科技股份有限公司 | 一种海量设备状态自维护方法及其装置和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1398924A2 (en) * | 2002-09-11 | 2004-03-17 | Microsoft Corporation | System and method for creating improved overlay networks with an efficient distributed data structure |
CN1514578A (zh) * | 2002-12-02 | 2004-07-21 | 对等内容广播传输机制 | |
CN1535036A (zh) * | 2003-04-01 | 2004-10-06 | �ʼҷ����ֵ��ӹɷ�����˾ | 在无线通信网络中用于点到点通信管理的方法及系统 |
WO2005125235A2 (en) * | 2004-06-10 | 2005-12-29 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
CN1756213A (zh) * | 2004-09-29 | 2006-04-05 | 腾讯科技(深圳)有限公司 | P2p及udp、tcp类型和多策略的p2p连接建立方法 |
-
2006
- 2006-05-11 CN CNB2006100788528A patent/CN100433657C/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1398924A2 (en) * | 2002-09-11 | 2004-03-17 | Microsoft Corporation | System and method for creating improved overlay networks with an efficient distributed data structure |
CN1514578A (zh) * | 2002-12-02 | 2004-07-21 | 对等内容广播传输机制 | |
CN1535036A (zh) * | 2003-04-01 | 2004-10-06 | �ʼҷ����ֵ��ӹɷ�����˾ | 在无线通信网络中用于点到点通信管理的方法及系统 |
WO2005125235A2 (en) * | 2004-06-10 | 2005-12-29 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
CN1756213A (zh) * | 2004-09-29 | 2006-04-05 | 腾讯科技(深圳)有限公司 | P2p及udp、tcp类型和多策略的p2p连接建立方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1881900A (zh) | 2006-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Meshkova et al. | A survey on resource discovery mechanisms, peer-to-peer and service discovery frameworks | |
EP1703701B1 (en) | APIs to build peer to peer messaging applications | |
US7953785B2 (en) | Content synchronization in a file sharing environment | |
US20060212582A1 (en) | Architecture for building a peer to peer messaging platform | |
CN1937553B (zh) | 基于流媒体数据帧的对等网络数据调度方法 | |
CN100433657C (zh) | 适用于大规模流媒体直播系统的对等网络成员管理方法 | |
CN1972289A (zh) | 对等网络中节点搭便车行为抑制方法 | |
CN101494664B (zh) | 基于jxta的p2p推式网络存储方法 | |
Vyzovitis et al. | Gossipsub: A secure pubsub protocol for unstructured, decentralised p2p overlays | |
Liu et al. | From client-server to p2p networking | |
Kelényi et al. | Peer-to-peer file sharing for mobile devices | |
Liu et al. | A cache-based search algorithm in unstructured P2P networks | |
Benevenuto et al. | Quantitative evaluation of unstructured peer-to-peer architectures | |
Théodoloz | DHT-based Routing and Discovery in JXTA | |
Amoretti et al. | Performance evaluation of advanced routing algorithms for unstructured peer-to-peer networks | |
Auvinen et al. | Chedar: Peer-to-peer middleware | |
Idreos et al. | P2P-DIET: A Query and Notification Service Based on Mobile Agents for Rapid Implementation of P2P Applications | |
Schäffner | Data Management in Distributed Systems | |
Bejan et al. | Self-optimizing DHTs using request profiling | |
Gong et al. | BulkTree: An overlay network architecture for live media streaming | |
Yuan et al. | A scalable search algorithm on unstructured p2p networks | |
Hong et al. | ISI: Integration of search and incentive strategy in p2p systems | |
Darlagiannis et al. | Sampling cluster endurance for peer-to-peer based content distribution networks | |
Xiong et al. | An efficient search algorithm without memory for peer-to-peer cloud computing networks | |
Hua et al. | A P2P architecture for supporting group communication in CSCW systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20070105 Address after: Beijing City, Haidian District Tayuan autumn Lang Park No. eight building 2 layer Applicant after: Lanxun Network Science-Technology Co., Ltd., Beijing Address before: D, block 9, 3rd Street, Beijing, Haidian District, 807 Applicant before: Beijing Livesky Technologies Co., Ltd. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |