一种点到点网络系统及重叠网间节点的互通方法

文档序号:7650084阅读:244来源:国知局
专利名称:一种点到点网络系统及重叠网间节点的互通方法
技术领域
本发明涉及一种点到点网络系统、一种代理服务节点以及一种点到点重叠网间节点的互通方法,属于网络通信领域。
背景技术
点到点会话初始协议(Peer-to-Peer Session Initiation Protocol,以下简称P2PSIP)是由IETF正在制定的一套新的通信协议,它是对会话初始化协议(Session Initiation Protocol,以下简称SIP)的一种扩展,其基本思想是引入点到点(Peer to Peer,以下简称P2P)的特性,抛弃传统SIP通信系统依赖中心服务器进行用户注册、认证、路由、查找的客户端/服务器(Client/Server,以下简称C/S)架构设计,点到点通过P2P重叠网实现分布式用户注册和路由定位查找功能(即用户的“contact”等信息分布存储在重叠网节点上),构成P2P重叠网的节点(Peer)是所有参与通信的具有一定处理能力的终端节点(如用户计算机),这种架构降低了运营部署维护成本以及用户通信成本,提高了系统的可扩展性和鲁棒性。
随着未来网络的发展与应用,可能出现很多独立的点到点重叠网,这些重叠网可能是基于具体业务、网络拓扑、地理位置或共同兴趣而构建的。彼此独立的点到点重叠网可能需要互连,其中最基本的需求是用户定位信息的查找,即一个点到点重叠网中的用户希望定位到另一个重叠网中的用户并发起呼叫请求。除此以外,重叠网中的通信端点还会向系统提供自身的其他资源和服务能力(服务能力也可以视作为一种资源),例如,网络地址翻译(network address translation,以下简称NAT)穿越服务、媒体中继服务、网关、业务服务如流媒体服务等,每个重叠网都提供了大量的资源,鉴于P2P网络的共享原则,共享的对象也可能不仅局限于本地P2P重叠网,还应开放共享给使用点到点协议的其他重叠网,即构成一定意义上的资源叠加网络。综上所述,实现重叠网之间的互连是点到点需要研究解决的重要课题之一。
现有的点到点技术,实现重叠网之间的互通的方法,基本思想是,每个点到点重叠网(称为本地重叠网,Local Overlay)中都有一个称为P2P代理(P2P Proxy)的节点,P2P代理节点是一种SIP代理服务器,负责在各本地重叠间路由转发消息。所有本地重叠网中的P2P代理节点组建更高一层的重叠网(全局重叠网,Global Overlay),每个P2P代理运行两个点到点协议栈(假定各重叠网底层P2P算法不同),一个是加入本地点到点重叠网的协议栈,另一个是加入全局点到点重叠网的协议栈。
本地重叠网还会维护一个P2P的候选代理列表,列表中的成员处于未激活状态,列表中的成员作为候选P2P代理(P2P Proxy Candidates)。候选P2P代理节点周期性地发送“HELLO”探测消息给P2P代理节点以检测其是否正常工作,当发现P2P代理失效时,候选代理列表中的某个节点将自动激活,并加入全局重叠网,注册成为正式的P2P代理。若P2P代理主动离开,它负责甄选一个候选代理节点作为P2P代理节点。
由于在现有的点到点重叠网间节点互通的技术中,本地重叠网中只有一个代理服务节点,而P2P网络动态(有大量的节点随时可能接入网络)以及资源共享的特性使得代理服务节点需要处理的请求任务繁重。而本地重叠网络中,在单一的P2P的代理服务节点的负载过重的情况下,其他的代理节点却只是作为候选后备,因此,现有技术没有充分利用网络中所有的代理服务资源来均衡代理服务节点的负载。

发明内容
本发明实施例的目的是解决上述点到点重叠网间节点互通技术中P2P的代理服务节点负载过重的缺陷。
为实现上述目的,本发明的实施例提供了一种点到点网络的结构,包括多个本地重叠网,每个本地重叠网包括多个的代理服务节点;还包括全局重叠网,由所有本地重叠网的代理服务节点构成;所述代理服务节点用于响应请求节点的请求,查询本地重叠网或全局重叠网,将被请求节点地址信息,或,所选择的被请求方代理服务节点地址信息返回给请求节点。
为实现上述目的,本发明的实施例提供了一种代理服务节点,其特征在于,包括请求响应模块,代理选择模块,信息发送模块;请求响应模块,用于接收点到点网络系统中请求节点的查询请求,将所述查询请求发送至代理选择模块;代理选择模块,用于根据所述查询请求确定被请求节点地址信息,或,选择一个被请求方代理服务节点;信息发送模块,用于将所述被请求节点地址信息或所述代理服务节点地址信息返回给请求节点。
为实现上述目的,本发明的实施例提供了一种点到点重叠网间节点的互通方法,包括以下步骤步骤1、请求节点获取本地重叠网中的代理服务节点列表;步骤2、请求节点在所述代理服务节点列表中选择一个代理服务节点发送查询请求;步骤3、请求节点收到查询请求响应后,向请求方代理服务节点选择的被请求方代理服务节点发送呼叫请求消息;步骤4、请求节点根据被请求方代理服务节点返回的被请求节点地址信息建立通信。
因此,本发明的实施例具有以下优点本发明的实施例采用了在本地重叠网中设置多个P2P代理服务器节点的方法,减轻了代理服务节点的负载提高了代理服务节点的响应速度,同时也提高了P2P服务节点资源的利用效率。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。


图1A为本发明网络系统实施例结构图;图1B为本发明网络系统实施例中本地重叠网的结构图;图2为本发明点到点重叠网间节点的互通方法的实施例流程图;图3为本发明点到点重叠网间节点的互通方法中负载信息优化流程图。
具体实施例方式
本发明的网络系统实施例,如图1A所示,包括,多个本地重叠网(LocalOverlay)。如图1B所示,每个本地重叠网包括多个的代理服务节点(在图1A与图1B中,代理服务节点用黑色的节点表示,在图1B中,非代理服务节点用白色节点表示)。还包括全局重叠网(Gobal Overlay),全局重叠网由所有本地重叠网的代理服务节点构成。上述P2P代理服务节可以采用本发明代理服务节点实施例中的方式实现。也就是说,代理服务节点用于响应请求节点的请求,查询本地重叠网或全局重叠网,将被请求节点地址信息,或,所选择的被请求方代理服务节点地址信息返回给请求节点。
由于在本实施例中,本地重叠网中包括一个以上的代理服务节点,分摊了现有技术中一个代理服务节点的负荷,因此,本实施例解决了点到点重叠网间节点互通技术中P2P的代理服务节点负载过重的缺陷。
另外,与本发明代理服务节点实施例相同,在本实施例中,代理服务节点除了需要包括现有技术中已有的功能模块外,还可以包括负载信息计算模块,用于统计当前处理事务数量,计算负载信息;负载信息发布模块,用于将负载信息发布至该代理服务节点所在的本地重叠网以及全局重叠网。
在本实施例中,负载信息通过负载因子表示,负载因子根据以下公式计算负载因子=当前处理事务数量/能处理的最大事务数量。
因此,请求节点可以根据负载信息选择负载相对较轻的代理服务节点提供服务,以实现本网络系统实施例中各代理服务节点的负载均衡。相应的,本网络系统实施例的各节点中还包括服务选择模块,用于根据点到点网络系统中的负载信息,选择负载最轻的代理服务节点提供代理服务。
在本实施例中,由于采用了在本地重叠网中设置多个P2P代理服务器节点的技术方案,因此,减轻了代理服务节点的负载,提高了代理服务节点的响应速度,同时也提高了P2P服务节点资源的利用效率。并且,由于代理服务节点可以通过负载信息计算模块计算负载因子,并通过负载信息发布模块将负载因子发布到本地重叠网和全局重叠网中。在选择代理服务节点提供代理服务时,可以参照负载信息,选择负载较小的选择代理服务节点,以进一步均衡各代理服务节点的负载。
本发明的代理服务节点实施例,包括请求响应模块,代理选择模块,信息发送模块。请求响应模块用于接收点到点网络系统中请求节点的查询请求,将所述查询请求发送至代理选择模块。代理选择模块,用于根据所述查询请求确定被请求节点地址信息,或,选择一个被请求方代理服务节点。信息发送模块,用于将所述被请求节点地址信息或所述代理服务节点地址信息返回给请求节点。
由于在本实施例中代理服务节点增加了选择被请求方代理服务节点的功能,对于处于一个点到点网络中的代理服务节点而言,可以有选择的挑选被请求方代理服务节点为请求节点提供服务。因此,相对现有技术中固定的请求某个代理服务节点提供代理服务的而言,本实施例,减轻了代理服务节点的负荷。
在本实施例中,代理服务节点还可以包括负载信息计算模块,用于统计当前处理事务数量,计算负载信息;负载信息发布模块,用于将负载信息发布至该代理服务节点所在的本地重叠网以及全局重叠网。
相应的,在本实施例中,代理服务节点还可以包括服务选择模块,用于根据点到点网络系统中的负载信息,选择负载最轻的代理服务节点提供代理服务。
因此,在代理服务节点选择提供代理服务的被请求方代理服务节点时,可以参照负载信息,选择负载较小的被请求方代理服务节点,以进一步均衡各被请求方代理服务节点的负载。
本发明的点到点重叠网间节点的互通方法的实施例,如图2所示,包括以下步骤步骤1、请求节点获取本地重叠网中的代理服务节点列表;步骤2、请求节点在所述代理服务节点列表中选择一个代理服务节点发送查询请求;步骤3、请求节点收到查询请求响应后,向请求方代理服务节点选择的被请求方代理服务节点发送呼叫请求消息;步骤4、请求节点根据被请求方代理服务节点返回的被请求节点地址信息建立通信。
在本实施例中,本地重叠网中的代理服务节点列表提供所有代理服务节点的地址信息(该地址信息可以为IP信息等),请求方可以通过查询请求,如通过发送分布式散列表查询请求,得到该列表中各代理服务节点的地址信息。请求节点在多个本地重叠网中的代理服务节点中选取一个节点做为请求方代理服务节点,提供代理服务。该请求方代理服务节点在全局重叠网中查询被请求节点所在的本地重叠网的代理服务节点列表,并从中选取一个做为被请求方代理服务节点,并将其地址信息返回给请求节点。请求节点与该被请求方代理服务节点联系,获得被请求节点的地址信息,接着请求节点与被请求节点按照正常的会话建立流程建立通信、实现资源共享或实现网络服务(可以包括NAT穿越服务、媒体中继服务、业务服务如流媒体服务等)。
上述方法适用于不同本地重叠网之间的节点,对于同处于同一个重叠网中的节点来说,请求节点可以直接通过发送分布式散列表查询请求,获得被请求节点的地址信息即可建立连接,不需要经过代理服务节点,减少不必要了代理服务节点的负载。
因此,在本实施例中,步骤1之前包括请求节点根据被请求节点标识符判断被请求节点是否在同一个本地重叠网络中,是,请求节点直接向被请求节点发送会话请求,否则执行步骤1。
在本实施例中,采用分布式散列表(Distributed Hash Table,以下简称DHT)算法构建底层P2P重叠网,作为本实施例中结构化P2P路由算法。一个本地重叠网所包括的所有代理服务节点使用相同的公共标示符名称进行注册。在本实施例中,代理服务节点使用相同公共的通用资源标志符(UniformResource Identifier,以下简称″URI″)名称进行注册。例如,如图1B所示,本地重叠网P2P.org.Pastry中所有的代理服务节点使用公共URI名称“proxyP2P.org.Pastry”进行注册(在本实施例中,各代理服务节点的注册和更新时间是彼此独立的)。客户节点需要查找代理节点时,也通过该公共URI名称作为健值在DHT中搜索所有已注册过的代理服务节点的位置和负载等信息。
为了便于理解,可以按如下的方式简单地描述本实施例P2P服务节点的注册和更新过程本地重叠网“P2P.org.Pastry”中的节点P1,P2,P3,相继注册声明成为该重叠网的代理服务节点,每个节点将反映自己位置信息的(URI,IP)健-值对(key-value pair)存储进DHT系统,并定期刷新。请求节点通过URI作为健值查询DHT即可取得三个代理节点的地址信息,选择其一作为代理服务节点。
因此,步骤1可以具体为请求节点以本地重叠网中的代理服务节点的公用标示符名称的散列值为查询参数,发送分布式散列表查询请求;请求节点根据收到的应答消息获取本地重叠网中的代理服务节点列表。
为进一步均衡各代理服务节点的负载,请求节点在选择代理服务节点时,应选择负载最低的代理服务节点提供代理服务。
步骤2包括请求节点在所述代理服务节点列表中选择一个负载最低的代理服务节点,向其发送查询请求。
同样的,当请求方代理服务节点为请求方选择被请求方代理服务节点时,也应该选择被请求节点所处的本地重叠网络中的P2P代理节点列表中负载最低的代理服务节点提供代理服务,因此步骤2与步骤3之间还包括所述请求方代理服务节点接收到请求节点的查询请求后,根据查询请求查找被请求节点所处的本地重叠网络中的P2P代理节点列表;所述请求方代理服务节点在该列表中选择一个负载最低的代理服务节点为被请求方代理服务节点;所述请求方代理服务节点向发起节点返回该被请求方代理服务节点的地址信息。
在本实施例中,由于采用分布式散列表算法构建底层P2P重叠网,因此,步骤3和步骤4之间还包括所述被请求方代理服务节点收到请求节点查询请求消息后,在其所处的本地重叠网络中启动分布式散列表查询,将查询到的被请求节点地址信息返回给所述请求节点。
下面,以一个点到点重叠网间节点的呼叫会话建立流程为例说明本实施例,如图1A所示,假定本地重叠网“P2P.org.Pastry”中的节点Bob(sipBob@P2P.org.Pastry)欲向另一个本地重叠网“pku.edu.kademlia”中的节点Alice(sipAlice@pku.edu.kademlia)发起呼叫请求,在发送正式的呼叫请求前,节点Bob必须首先取得节点Alice的连接(contact)地址信息,该信息是通过使用SIP注册(SIP REGISTER)消息实现的,代理服务节点工作在重定向模式下,基本消息交互流程包括以下过程即,请求节点Bob首先通过被请求节点Alice的URI确认与Alice不在同一点到点重叠网中,节点Bob的用户代理(User Agent,以下简称UA)通过与其绑定的节点发送DHT查询请求消息,查询本地重叠网“P2P.org.Pastry”中的代理服务节点列表(包含一系列SIP消息,查询的关键字为以“proxyP2P.org.Pastry”为输入的哈希值);查询结果通过SIP 200应答消息返回,该消息的连接(contact)字段包含了该重叠网当前时刻已注册提供代理服务的所有节点的列表;根据返回的查询结果选取负载值最小的代理服务节点(Proxy P1);接下来完成以下过程节点Bob发送注册(REGISTER)查询请求至Proxy P1,Proxy P1通过SIP消息请求行中的“request-URI(sipAlice@pku.edu.kademlia)”消息确定节点Alice是重叠网“pku.edu.kademlia”的用户,Proxy P1通过在全局重叠网中查询目的重叠网已注册的P2P代理节点列表;取得该代理列表后,选择重叠网“pku.edu.kademlia”中负载值最小代理服务节点(ProxyP2),并通过SIP 302重定向消息返回给节点Bob;接下来节点Bob发送注册(REGISTER)请求消息至Proxy P2,Proxy P2接收到消息后,在本地重叠网“pku.edu.kademlia”中启动DHT查询,得到用户Alice的地址信息,并通过SIP 200消息返回给Bob;最后,节点Bob和节点Alice按正常SIP请求(SIP INVITE)会话流程直接建立通信。
可以看出,在上述点到点重叠网间节点的互通方法的实施例中,为均衡各代理服务节点之间的任务负载,呼叫对于代理服务节点的选择可以基于各代理服务节点的负载情况,以避免对代理服务节点选择的盲目性,实现代理服务节点的负载均衡,提高了代理服务节点的响应速度,同时也提高了P2P服务节点及其他资源的利用效率。
显然,为实现上述功能,各P2P代理服务需要定期或者不定期的发布其负载信息,供重叠网中的其它节点掌握其资源负载情况,以作为未来请求节点选取的依据。
代理服务节点可以通过以下方法发布负载信息在本实施例中,使用代理服务节点的SIP事务数量来体现其负载状态,代理服务节点每收到新的请求消息,都会为之生成一个用户代理服务器(UserAgent Server,以下简称UAS)事务,并调用DHT查询例程(具体的DHT查询也由对应的一个SIP用户代理客户端(User Agent Client,以下简称UAC)事务来完成),最后通过该事务返回DHT查询的结果。尽管SIP事务数量不能够精确地等同于负载,但还是可以较好地体现节点的负载状况的,也是易获得的。
本实施例采用负载因子来衡量代理服务节点的负载情况。某代理服务节点负载因子的值越高则说明该代理服务节点负载越重,代理服务节点定期计算其负载因子,并发布在网络中。因此,代理服务节点负载信息发布包括以下步骤统计当前处理事务数量;根据以下公式计算负载因子负载因子=当前处理事务数量/能处理的最大事务数量;将所述负载因子发布至其所处的重叠网中。
其中,当前处理事务数量(Current-Transactions)为代理服务节点上报时刻的事务数量,它可以通过SIP协议栈提供的应用编程接口(Application Programming Interface,简称API)获得。能处理的最大事务数量(Load-High)为代理服务节点的能够处理的最大事务数量,考虑到重叠网中节点的异构性和差异性,不同的服务节点Load-High会有所不同,所以代理服务节点的最大事务数量的计算应综合参考节点的多种资源,如CPU处理能力、网络带宽等,即最大事务数量等于一个输入为CPU处理能力、网络带宽以及其他参数的函数的输出值。
本实施例采用分布式散列表算法构建底层P2P重叠网,因此,需要代理服务节点定期注册更新。为提高网络效率,在本实施例中,代理服务节点在注册更新的同时同步发布其负载信息。
其中,负载信息可以通过一个新连接(Contact)参数如负载因子(Load-factor)来承载,负载信息上报是通过代理节点注册和定期更新(Refresh)过程来实现的。需要强调的是即使不发布负载信息,该注册更新流程也是必需的,负载发布可以看作是一个顺带的过程。因此,本实施例对于现有的技术来说,并不形成额外更多网络通信压力。
本实施例中采用的代理服务节点在注册更新代理服务节点列表的同时同步发布其负载信息的步骤包括代理服务节点通过P2P路由算法定位注册列表存储节点,向所述注册列表存储节点发送注册请求以及负载因子;注册列表存储节点判断所述代理服务节点的散列健值的对应信息是否由自己负责存储,是,进行存储,否则,在路由列表中查找存储负责节点信息并将该信息发送至所述代理服务节点;代理服务节点根据所述存储负责节点信息,发送注册请求以及所述负载因子到所述存储负责节点;存储负责节点接受注册请求,保存代理服务节点的散列健值以及所述负载因子。
本实施例采用上述步骤,即可实现注册更新与负载信息发布的同步。
代理服务节点需要同步在本地重叠网和全局重叠网进行注册更新以及负载信息发布。除了代理服务节点的重叠(overlay)参数和/或DHT参数不一样外(overlay参数用以描述重叠网的标识,DHT参数用以描述重叠网使用的P2P算法),在本地重叠网和全局重叠网进行注册更新以及负载信息发布过程是相似的。
另外,代理服务节点的散列健值按如下步骤计算以代理服务节点所在本地重叠网中代理服务节点公用标识符名称作为代理服务节点的标识符名称;对代理服务节点的标识符名称进行散列计算,结果做为代理服务节点的散列健值。
例如,图1B中,某节点Peer5为本地重叠网“P2P.org.Pastry”中的代理服务节点(或者,该节点由自身或系统因素触发,希望成为代理服务节点),则该节点将(proxyP2P.org.Pastry,sip5@10.0.0.5)健-值对存储进分布式散列表系统,其中“proxyP2P.org.Pastry”为重叠网“P2P.org.Pastry”中代理节点的公共URI名称,“sip5@10.0.0.5”为Peer 5节点的地址信息。该代理服务节点(sip5@10.0.0.5)在进行注册更新的同时,也相应的将负载因子作为散列健值(proxyP2P.org.Pastry,sip5@10.0.0.5)对应的信息存储进分布式散列表系统中。
Peer 5一开始并不知道该健-值对应该存储在哪个确切的节点上,它需通过P2P路由算法(Pastry)逐步定位到具体的责任节点,即本实施例中,Peer5根据P2P算法中定义的路由表先发送注册请求给“P2P.org.Pastry”中的某节点Peer 10,Peer 10根据Hash(proxyP2P.org.Pastry)值判断该散列健值对应的信息并不由自己负责存储,Peer 10在自己的路由表中查出散列空间中最接近Hash(proxyP2P.org.Pastry)值的节点是另一节点Peer 3,Peer 10返回重定向消息告知Peer 5请求应发送至Peer 3,注册更新请求最终将会到达责任节点Peer 3。详细的消息如下由Peer 5到Peer 10的“REGISTER”消息
“REGISTER sip10.0.0.10 SIP/2.0ToproxyP2P.org.Pastry;resource ID=11FromproxyP2P.org.Pastry;resourceID=11Contact<sip5@10.0.0.5>;load-facor=0.4Expires120DHT-Peer ID<sip5@10.0.0.5;user=peer>;algorithm=sha1;dht=PastryIter1.0;overlay=P2P.org.Pastry;expires=1200RequiredhtSupporteddht”由Peer 10到Peer 5的“SIP 302”消息“SIP/2.0 302 Moved TemporarilyToproxyP2P.org.Pastry;resource ID=11FromproxyP2P.org.Pastry;resource ID=11Contact<sip3@10.0.0.3;user=peer>
DHT-Peer ID<sip10@10.0.0.10;user=peer>;algorithm=sha1;dht=PastryIter1.0;overlay=P2P.org.Pastry;expires=800DHT-Link<sip5@10.0.0.5;user=peer>;link=P1;expires=1200DHT-Link<sip3@10.0.0.3;user=peer>;link=S1;expires=412RequiredhtSupporteddht”由Peer 5到Peer 10的“ACK”消息“ACK sip10.0.0.10 SIP/2.0ToproxyP2P.org.Pastry;resource ID=11FromproxyP2P.org.Pastry;resource ID=11DHT-Peer ID<sip10@10.0.0.10;user=peer>;algorithm=sha1;dht=PastryIter1.0;overlay=P2P.org.Pastry;expires=1200DHT-Link<sip5@10.0.0.5;user=peer>;link=P1;expires=1200DHT-Link<sip3@10.0.0.3;user=peer>;link=S1;expires=412RequiredhtSupporteddht“由Peer 5到Peer 3的“REGISTER”消息REGISTER sip10.0.0.3 SIP/2.0ToproxyP2P.org.Pastry;resource ID=11FromproxyP2P.org.Pastry;resource ID=11Contact<sip5@10.0.0.5>;load-facor=0.4Expires120
DHT-PeerID<sip5@10.0.0.5;user=peer>;algorithm=sha1;dht=PastryIter1.0;overlay=P2P.org.Pastry;expires=1200RequiredhtSupporteddht”由Peer 3到Peer 5的“SIP 200 OK”消息“SIP/2.0 200 OKToproxyP2P.org.Pastry;resource ID=11FromproxyP2P.org.Pastry;resource ID=11Contact<sip5@10.0.0.5>;load-facor=0.4Expires120DHT-Peer ID<sip3@10.0.0.3;user=peer>;algorithm=sha1;dht=PastryIter1.0;overlay=P2P.org.Pastry;expires=600DHT-Link<sip10@10.0.0.10;user=peer>;link=P1;expires=405DHT-Link<sip5@10.0.0.5;user=peer>;link=S1;expires=1200DHT-Link<sip10@10.0.0.10;user=peer>;link=S2;expires=405RequiredhtSupporteddht”当需要代理服务时,请求节点将会通过DHT查询取得指定重叠网中的代理服务节点列表,其基本流程同的Peer 5的注册更新流程类似,只不过初始“REGISTER”消息中没有“contact”头字段,Peer 3将在最终的应答消息通过“contact”字段返回公共服务URI(本例中为proxyP2P.org.Pastry)对应的所有代理服务节点。例如重叠网“P2P.org.Pastry”中一个DHT代理查询请求的最终应答消息如下“SIP/2.0 200 OKTo<proxyP2P.org.Pastry;resource ID=11>
From<sip3@10.0.0.3;user=peer>
Contact<sip5@10.0.0.5>;expires=100;load-facor=0.4Contact<sip123@10.0.0.123>;expires=60;load-facor=1Contact<sip76@10.0.0.76>;expires=110;load-facor=0.6DHT-PeerID<sip14@10.0.0.14;user=peer>;algorithm=sha1;dht=PastryIter1.0;verlay=P2P.org.Pastry;expires=600RequiredhtSupporteddht”“contact”头字段中包含了各代理服务节点的详细信息,包括其地址信息、时间信息、负载信息。“expires”参数表明该注册信息剩余的到期时间,“load-facor”参数为各代理服务节点前一次注册更新时上报的负载信息。请求节点(或代理服务节点)选择负载最轻的代理服务节点,在本实施例中就是代理服务节点“<sip5@10.0.0.5>”;其中expries=100;load-facor=0.4,作为消息路由的下一跳节点。
本实施例利用代理服务节点周期性注册更新的特性发布负载信息。易得知,请求节点查询得到的负载信息是非实时的,不能完全反映呼叫请求时刻的实际负载状态。针对该问题,在本代理服务节点负载信息发布方法的实施例中,如图3所示,还可以包括以下步骤来进行优化步骤a、代理服务节点根据收到的查询请求更新当前处理事务数量;步骤b、判断当前处理事务数量是否达到上限阀值或下限阀值,是,则执行步骤c,否则,执行步骤e;步骤c、判断当前处理事务数量是否达到上限阀制,是,则将负载因子设定为最大因子值,否则,将负载因子设定为最小因子值;步骤d、将所述负载因子发布至其所处的重叠网中;步骤e、处理查询请求或呼叫请求消息,更新当前处理事务数量。
其中在本实施例中,上限阀值取该代理服务节点能处理的最大事务数量(Load-High),类似于“Load-High”上限值,本方案再定义一个下限阙值(Load-Low),“Load-Low”也用代理服务节点的事务数量来表示,其作用是作为参考依据。“Load-Low”可以取“Load-High”的一个百分比,如本实施例中取“Load-Low=Load-High×40%”。
也就是说,代理服务节点在处理分派的新请求前,先检查当前的实际事务数量,若超过“Load-High”,则将负载因子设定为最大因子值。比如,本实施例中,负载因子的取值范围为(0,1],也就是说最大因子值为1。,若小于“Load-Low”,则令将负载因子设定为最小因子值,比如本实施例中取0.4,并立即发送新的注册更新请求以及负载信息,随后再进行请求的处理。
在本发明点到点重叠网间节点的互通方法的实施例中,采用了在本地重叠网中设置多个P2P代理服务器节点选择一个节点提供代理服务的技术方案,相对现有技术中请求单一代理服务节点提供代理服务的方案而言,减轻了各代理服务节点的负载,提高了代理服务节点的响应速度,同时也提高了P2P服务节点资源的利用效率。并且,在本实施例中,对代理服务节点负载因子进行计算以及发布。因此,在选择代理服务节点提供代理服务时,可以参照负载因子,选择负载较小的选择代理服务节点,以进一步均衡各代理服务节点的负载。另外,本实施例还提供了负载因子的优化方法,使得负载因子能够实时的体现代理服务节点的负载信息。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
1.一种点到点网络系统,包括多个本地重叠网,其特征在于每个本地重叠网包括多个的代理服务节点;还包括全局重叠网,由所有本地重叠网的代理服务节点构成;所述代理服务节点用于响应请求节点的请求,查询本地重叠网或全局重叠网,将被请求节点地址信息,或,所选择的被请求方代理服务节点地址信息返回给请求节点。
2.根据权利要求1所述的点到点网络系统,其特征在于,代理服务节点中还包括负载信息计算模块,用于统计当前处理事务数量,计算负载信息;负载信息发布模块,用于将负载信息发布至该代理服务节点所在的本地重叠网以及全局重叠网。
3.根据权利要求2所述的点到点网络系统,其特征在于,重叠网中的节点中还包括服务选择模块,用于根据点到点网络系统中的负载信息,选择负载最轻的代理服务节点提供代理服务。
4.一种代理服务节点,其特征在于,包括请求响应模块,代理选择模块,信息发送模块;请求响应模块,用于接收点到点网络系统中请求节点的查询请求,将所述查询请求发送至代理选择模块;代理选择模块,用于根据所述查询请求确定被请求节点地址信息,或,选择一个被请求方代理服务节点;信息发送模块,用于将所述被请求节点地址信息或所述代理服务节点地址信息返回给请求节点。
5.根据权利要求4所述的代理服务节点,其特征在于,还包括负载信息计算模块,用于统计当前处理事务数量,计算负载信息;负载信息发布模块,用于将负载信息发布至该代理服务节点所在的本地重叠网以及全局重叠网。
6.根据权利要求5所述的一种代理服务节点,其特征在于,还包括服务选择模块,用于根据点到点网络系统中的负载信息,选择负载最轻的代理服务节点提供代理服务。
7.一种点到点重叠网间节点的互通方法,其特征在于,包括如下步骤步骤1、请求节点获取本地重叠网中的代理服务节点列表;步骤2、请求节点在所述代理服务节点列表中选择一个代理服务节点发送查询请求;步骤3、请求节点收到查询请求响应后,向请求方代理服务节点选择的被请求方代理服务节点发送呼叫请求消息;步骤4、请求节点根据被请求方代理服务节点返回的被请求节点地址信息建立通信。
8.根据权利要求7所述的点到点重叠网间节点的互通方法,其特征在于,步骤1之前包括请求节点根据被请求节点标识符判断被请求节点是否在同一个本地重叠网络中,是,则请求节点直接向被请求节点发送会话请求,否则执行步骤1。
9.根据权利要求7所述的点到点重叠网间节点的互通方法,其特征在于,步骤1包括请求节点以本地重叠网中的代理服务节点的公用标示符名称的散列值为查询参数,发送分布式散列表查询请求;请求节点根据收到的应答消息获取本地重叠网中的代理服务节点列表。
10.根据权利要求7所述的点到点重叠网间节点的互通方法,其特征在于,步骤2包括请求节点在所述代理服务节点列表中选择一个负载最低的代理服务节点,向其发送查询请求。
11.根据权利要求7所述的点到点重叠网间节点的互通方法,其特征在于,步骤2与步骤3之间还包括所述请求方代理服务节点接收到请求节点的查询请求后,根据查询请求查找被请求节点所处的本地重叠网络中的P2P代理节点列表;所述请求方代理服务节点在该列表中选择一个负载最低的代理服务节点为被请求方代理服务节点;所述请求方代理服务节点向发起节点返回该被请求方代理服务节点的地址信息。
12.根据权利要求7所述的点到点重叠网间节点的互通方法,其特征在于,步骤3和步骤4之间还包括所述被请求方代理服务节点收到请求节点呼叫请求消息后,在其所处的本地重叠网络中启动分布式散列表查询,将查询到的被请求节点地址信息返回给所述请求节点。
13.根据权利要求10或11所述的点到点重叠网间节点的互通方法,其特征在于,代理服务节点通过以下步骤发布其负载信息统计当前处理事务数量;根据以下公式计算负载因子负载因子=当前处理事务数量/能处理的最大事务数量;将所述负载因子发布至其所处的重叠网中。
14.根据权利要求13所述的点到点重叠网间节点的互通方法,其特征在于,代理服务节点在注册更新的同时同步发布其负载信息。
15.根据权利要求13所述的点到点重叠网间节点的互通方法,其特征在于,还包括以下步骤步骤a、代理服务节点根据收到的查询请求更新当前处理事务数量;步骤b、判断当前处理事务数量是否达到上限阀值或下限阀值,是,则执行步骤c,否则,执行步骤e;步骤c、判断当前处理事务数量是否达到上限阀值,是,则将负载因子设定为最大因子值,否则,将负载因子设定为最小因子值;步骤d、将所述负载因子发布至其所处的重叠网中;步骤e、处理查询请求或呼叫请求消息,更新当前处理事务数量。
16.根据权利要求14所述的点到点重叠网间节点的互通方法,其特征在于,代理服务节点在注册更新的同时同步发布其负载信息的步骤包括代理服务节点通过P2P路由算法定位注册列表存储节点,向所述注册列表存储节点发送注册请求以及负载因子;注册列表存储节点判断所述代理服务节点的散列健值的对应信息是否由自己负责存储,是,进行存储,否则,在路由列表中查找存储负责节点信息并将该信息发送至所述代理服务节点;代理服务节点根据所述存储负责节点信息,发送注册请求以及所述负载因子到所述存储负责节点;存储负责节点接受注册请求,保存代理服务节点的散列健值以及所述负载因子。
17.根据权利要求16所述的点到点重叠网间节点的互通方法,其特征在于,代理服务节点的散列健值按如下步骤计算以代理服务节点所在本地重叠网中代理服务节点公用标识符名称作为代理服务节点的标识符名称;对代理服务节点的标识符名称散列计算,结果做为代理服务节点的散列健值。
全文摘要
本发明涉及一种点到点网络的系统,包括多个本地重叠网,每个本地重叠网包括多个的代理服务节点。还包括全局重叠网,由所有本地重叠网的代理服务节点构成。代理服务节点用于响应请求节点的请求,查询本地重叠网或全局重叠网,将被请求节点地址信息,或,所选择的被请求方代理服务节点地址信息返回给请求节点。本发明还涉及一种用于上述网络系统的代理服务节点,以及一种基于上述系统的点到点重叠网间节点的互通方法。本发明减轻了代理服务节点的负载,可以避免请求节点对代理服务节点选择的盲目性,实现代理服务节点的负载均衡。
文档编号H04L12/28GK101039247SQ20071008648
公开日2007年9月19日 申请日期2007年3月13日 优先权日2007年3月13日
发明者严哲峰, 魏家好 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1