CN100527685C - 一种确定归属超级节点的实现方法与系统 - Google Patents
一种确定归属超级节点的实现方法与系统 Download PDFInfo
- Publication number
- CN100527685C CN100527685C CNB2006101522358A CN200610152235A CN100527685C CN 100527685 C CN100527685 C CN 100527685C CN B2006101522358 A CNB2006101522358 A CN B2006101522358A CN 200610152235 A CN200610152235 A CN 200610152235A CN 100527685 C CN100527685 C CN 100527685C
- Authority
- CN
- China
- Prior art keywords
- node
- super
- home
- super nodes
- nodes
- 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)
Abstract
本发明公开了一种确定归属超级节点的实现方法,应用于P2P网络,包括:至少设置三台临近度检测服务器;网络中超级节点和普通节点获取自身与每一个临近度检测服务器的临近度信息,并上报给网络中的中心服务器;当普通节点登录时,中心服务器根据临近度信息,选择出与该普通节点网络距离较近的一个或多个超级节点作为备选归属超级节点,由该普通节点确定出自身的归属超级节点。本发明还公开了一种相应的实现系统。采用本发明使普通节点可以获取距离自己网络距离最近的超级节点,以便更好的维持与超级节点的状态信息。当需要超级节点中转数据时,可以获取与通信的两个节点距离都比较小的超级节点,从而实现高效率的网络数据传输。
Description
技术领域
本发明涉及P2P网络,尤其涉及网络中普通节点确定其归属节点的一种实现方法与系统。
背景技术
P2P网络是由中心服务器、超级节点和普通节点组成的主要提供底层通信功能的网络。其中,中心服务器主要负责网络中超级节点和普通节点的登录请求和管理,并负责超级节点的状态信息;超级节点(Super Peer,SP)一般拥有较高的计算能力、较好的网络线路;普通节点(peer)计算能力及网络条件一般。SP与中心服务器间维护状态信息;peer和SP之间维护状态信息,因此,每一个peer都有其归属的SP,从而便于在P2P网络中和自己的归属SP之间维持状态信息。
临近度是P2P网络中用来衡量任意两个网络节点之间的临近程度的一个参数,具体衡量标准一般用两个节点之间的往返时间值(Round Trip Time,RTT)来表示。RTT越小,临近度越好。
现有技术中,确定两个节点之间的临近度信息,通过建立全球互联网坐标系统来实现。这个系统根据全球分布的许多个采样点,采集全球主要地区一些网络的临近度信息,然后形成一个全球的坐标系统,利用这个坐标系统,可以很容易的获取两个节点间的距离(临近程度)。
现有技术中为peer选择归属SP主要实现方法有如下三种:
方法一:完全随机选择归属SP。
完全随机方法就是根据中心服务器内部记录的在线的SP信息,随机挑选一些SP返回给需要的peer。
采用完全随机方法选择SP时没有任何优化,完本不考虑被选的SP与当前请求的peer的网络距离,对于系统的效率是最没有保障的一种实现方式。
方法二:根据ID临近原则选择SP。
该方法中,根据请求服务的peer的标识ID(这个ID是其在P2P网络中的唯一标识),查找一些在线的SP,并且这些SP的ID满足与此peer的ID临近原则。
采取ID临近原则,需要在中心服务器端根据peer和SP的ID进行筛选,但如果两者的ID之间的临近程度不能反映二者间的网络临近度,这个筛选也没有意义。而目前最好的实现是通过一定规则生成peer和SP的ID,让两者的ID反映两者间物理距离,而这对于真实的网络临近程度不能保证。
方法三:根据IP临近原则选择SP。
该方法中,根据请求服务的peer的IP寻找那些IP临近的在线SP,从原理上来讲,IP临近的节点,在物理空间上也会比较接近,基本上可以实现物理距离的保证,但由于现实网络中,一段IP可能由不同的运营商管理,而运营商之间可能由于种种原因不能提供高效率的网络临近度,使得此方法在具体实现上可能存在障碍。
发明内容
本发明提供一种确定归属SP的实现方法与系统,用以解决现有技术中存在的不能根据真实网络节点之间的网络距离来选择和确定网络效率较高的归属SP的问题。
当网络中的两个普通节点之间不能正常直接通信时,本发明还提供一种通信中转节点选择方法,以便实现高效率的中转通信。
本发明提供的一种确定归属超级节点的实现方法,应用于P2P网络,包括:在网络的不同位置空间至少设置三台临近度检测服务器;当网络中超级节点登录时,执行下列步骤:
获取自身与每一个临近度检测服务器的临近度信息,并上报给网络中的中心服务器;
所述中心服务器保存并更新当前在线的全部超级节点的所述临近度信息;
当网络中普通节点登录时,执行下列步骤:
获取自身与每一个临近度检测服务器的临近度信息,并上报给所述中心服务器;
所述中心服务器根据普通节点上报的临近度信息和保存的当前在线的全部超级节点的临近度信息,选择出与该普通节点网络距离较近的一个或多个超级节点作为备选归属超级节点,并将备选归属超级节点标识信息返回给所述普通节点;
所述普通节点根据返回的备选归属超级节点标识,确定其中一个备选归属超级节点为自身的归属超级节点。
根据本发明的上述方法,所述确定其中一个备选归属超级节点为自身的归属超级节点,包括:
所述普通节点根据返回的备选归属超级节点标识,逐一登录对应的备选归属超级节点,并将第一个登录成功的备选归属超级节点作为自身的归属超级节点。
根据本发明的上述方法,如果所述普通节点不能成功登录任何一个备选归属超级节点,则将自身作为超级节点,并向所述中心服务器上报其身份的变化。
根据本发明的上述方法,当两个已登录到其归属超级节点的普通节点不能直接通信时,执行如下步骤:
通信发起方节点向其归属超级节点发起中转通信请求,携带通信接收方节点标识信息;
通信发起方节点的归属超级节点通过所述中心服务器获取通信接收方节点的归属超级节点信息,并与通信接收方节点的归属超级节点交互,获取通信接收方节点的临近度信息,再携带通信发起方节点和通信接收方节点的临近度信息向所述中心服务器发起提供中转节点请求;
所述中心服务器选择出与通信发起方节点和通信接收方节点的网络距离都较近的一个或多个超级节点作为备选中转节点,并将作为备选中转节点的超级节点标识返回给所述通信发起方节点的归属超级节点;由该通信发起方节点的归属超级节点转发给所述通信发起方节点;
所述通信发起方节点根据返回的超级节点标识,逐一向对应的超级节点发起中转通信请求,当有一个超级节点返回可以提供中转通信的响应时,将该超级节点作为中转节点,并通过该超级节点中转,实现与通信接收方的数据传输。
所述获取自身与每一个临近度检测服务器的临近度信息,并上报给网络中的中心服务器;具体包括:
向所述临近度检测服务器发送临近度探测数据包;
所述临近度检测服务器收到所述临近度探测数据包后,将所述临近度探测数据包原样返回;
记录所述临近度探测数据包的往返时间RTT,将所述RTT值作为所述临近度信息上报给网络的中心服务器;或者
向所述临近度检测服务器发送ping包,获取ping值,所将所述ping值作为所述临近度信息上报给网络的中心服务器。
根据本发明的上述方法,具体包括:
所述中心服务器接收到RTT值或ping值后,将所述RTT值或ping值作为上报所述RTT值或ping值的超级节点或普通节点的相对空间位置坐标;
当某一个普通节点发起登录请求时,所述中心服务器根据当前在线的全部超级节点的相对空间位置坐标和当前发起登录请求的普通节点的相对空间位置坐标,分别计算出当前在线的全部超级节点与该发起登录请求的普通节点之间的网络距离;选择出距离值较小的一个或多个超级节点作为备选归属超级节点,并将选择出的备选归属超级节点标识信息返回给所述普通节点。
根据本发明的上述方法,当所述中心服务器收到超级节点发起的提供中转节点请求后,执行下列步骤:
所述中心服务器分别计算出当前在线的全部超级节点与通信发起方节点之间的网络距离;选择出距离值较小的一个或多个超级节点,组成第一节点集合;
所述中心服务器分别计算出当前在线的全部超级节点与通信接收方节点之间的网络距离;选择出距离值较小的一个或多个超级节点,组成第二节点集合;
选择出所述第一节点集合和第二节点集合中距离值相同或接近的一个或多个超级节点作为备选中转节点,并将作为备选中转节点的对应超级节点标识信息返回给发起中转节点请求的超级节点。
根据本发明的上述方法,还包括:
所述中心服务器将每一个相对空间位置坐标线性化为一维坐标;
当某一个普通节点发起登录请求时,所述中心服务器根据当前在线的全部超级节点的一维坐标和当前发起登录请求的普通节点的一维坐标,选择出一维坐标值接近的一个或多个超级节点作为备选归属超级节点,并将备选归属超级节点标识信息返回给所述普通节点。
根据本发明的上述方法,还包括:
所述中心服务器根据一维坐标值的大小按顺序分成若干个区段,并分别记录一维坐标值位于各区段的超级节点信息;
所述中心服务器根据当前发起登录请求的普通节点的一维坐标值,直接选择出对应区段的超级节点或/和相邻区段的超级节点作为备选归属超级节点,并将备选归属超级节点标识信息返回给所述普通节点。
根据本发明的上述方法,当所述中心服务器收到超级节点发起的请求提供中转节点请求后,执行下列步骤:
所述中心服务器根据通信发起方节点的一维坐标值,直接选择出对应区段的超级节点或/和相邻区段的超级节点,组成第三节点集合;
所述中心服务器根据通信接收方节点的一维坐标值,直接选择出对应区段的超级节点或/和相邻区段的超级节点,组成第四节点集合;
选择出所述第三节点集合和第四节点集合中一维坐标值相同或接近的一个或多个超级节点作为备选中转节点,并将作为备选中转节点的对应超级节点标识信息返回给发起中转节点请求的超级节点。
本发明提供一种确定归属超级节点的实现系统,包括P2P网络,网络的每一个超级节点和普通节点包括有临近度确定模块;还包括:设置在网络的不同位置空间的至少三台临近度检测服务器;
当网络中的超级节点和普通节点登录网络时,该节点中的所述临近度确定模块与每一个临近度检测服务器交互,确定自身与每一个临近度检测服务器的临近度信息;
所述普通节点还包括归属超级节点确定模块,P2P网络中的中心服务器包括归属超级节点选择模块;
所述归属超级节点确定模块,用于当普通节点向所述中心服务器发起登录请求时,从所述临近度确定模块中获取所述临近度信息并上报给所述中心服务器;并接收所述中心服务器返回的备选归属超级节点标识,确定其中一个备选归属超级节点为自身的归属超级节点;
所述归属超级节点选择模块,用于当所述中心服务器收到普通节点发起的登录请求后,根据当前发起登录请求的普通节点上报的临近度信息和当前在线的全部超级节点的临近度信息,选择出与该普通节点网络距离较近的一个或多个超级节点作为其备选归属超级节点,并将备选归属超级节点标识返回给该普通节点。
所述普通节点还包括第一中转通信模块,所述超级节点中还包括第二中转通信模块,所述中心服务器还包括中转节点选择模块;
所述普通节点中的第一中转通信模块向该普通节点对应的归属超级节点发起第一中转通信请求,携带通信接收方节点标识信息;并接收其归属超级节点返回的作为备选中转节点的对应超级节点标识;逐一向对应的超级节点发起第二中转通信请求,当有一个超级节点返回可以提供中转通信的响应时,将该超级节点作为中转节点,并通过该中转节点实现与通信接收方节点的数据传输;
所述归属超级节点中的第二中转通信模块接收到第一中转通信请求后,通过所述中心服务器获取通信接收方节点的归属超级节点信息,并与通信接收方节点的归属超级节点交互,获取通信接收方节点的临近度信息,再携带通信发起方节点和通信接收方节点的临近度信息向所述中心服务器发起提供中转节点请求,接收所述中心服务器返回的作为备选中转节点的对应超级节点标识并转发给所述第一中转通信模块;
所述中转节点选择模块,用于当中心服务器接收到提供中转节点请求后,选择出与通信发起方节点和通信接收方节点的网络距离都较近的一个或多个超级节点作为备选中转节点,并将作为备选中转节点的对应超级节点标识返回给发起提供中转节点请求的超级节点中的第二中转通信模块。
本发明有益效果如下:
(1)在本发明方法中,预先在网络的不同位置空间至少设置三台临近度检测服务器;当网络中SP登录时,获取自身与每一个临近度检测服务器的临近度信息,并上报给网络中的中心服务器;这样,中心服务器中就存储了当前在线的全部SP的临近度信息;当网络中peer登录时,同样获取自身与每一个临近度检测服务器的临近度信息,并上报给中心服务器;中心服务器根据peer上报的临近度信息和保存的当前在线的全部SP的临近度信息,选择出与该peer网络距离较近的一个或多个SP作为备选归属SP,并将备选归属SP标识信息返回给peer;peer再根据返回的备选归属SP标识,确定其中一个备选归属SP为自身的归属SP。因此,采用本发明上述选择出的归属SP,与当前发起登录请求的peer网络距离最近(或比较接近),从而使得peer可以更好地维持与归属SP的状态信息。
(2)根据本发明的上述方法,当两个已登录到其归属SP的peer不能直接通信时,本发明采用由通信发起方节点的归属SP向中心服务器发起提供中转节点请求,并携带通信发起方和通信接收方节点的临近度信息;中心服务器接收到提供中转节点请求后,选择出与通信发起方节点和通信接收方节点的网络距离都较近的一个或多个SP作为备选中转节点,并将作为备选中转节点的SP标识返回给通信发起方节点的归属SP,由归属SP转发给通信发起方,并最终确定出一个可以提供中转的SP作为中转节点。使peer在需要SP中转数据时,获取到距离两个需要通信的peer的网络距离都比较小的SP,从而实现高效率的网络数据传输。
附图说明
图1为本发明方法中SP发起登录流程图;
图2为本发明方法中peer确定其归属SP的流程图;
图3为本发明方法中两个peer之间中转通信流程图;
图4为本发明系统结构示意图。
具体实施方式
在本发明方法中,预先在网络的不同位置空间至少设置三台临近度检测服务器;当网络中SP登录时,其登录流程图如图1所示,包括:
步骤S101、SP获取自身与每一个临近度检测服务器的临近度信息。
具体的临近度信息获取方法,例如:
方法一:SP向每一个临近度检测服务器发送临近度探测数据包;临近度检测服务器收到临近度探测数据包后,将该临近度探测数据包原样返回给发送该临近度探测数据包的SP;SP记录临近度探测数据包的往返时间值(RTT),将获取的RTT值作为其与临近度检测服务器的临近度信息;
方法二:SP向临近度检测服务器发送ping包,临近度检测服务器收到ping包后给SP发送响应的因特网控制报文协议(Internet Control Message Protocol,ICMP)回应包;SP根据这个回应包确定ping包的到过时间即ping值,将获取的ping值作为其与临近度检测服务器的临近度信息。
步骤S102、SP向中心服务器发起登录请求,上报自身与每一个临近度检测服务器的临近度信息,如RTT值或ping值。
步骤S103、中心服务器允许SP登录,保存并更新当前在线的全部SP的临近度信息。
当网络中的peer发起登录请求时,需要为peer确定其归属SP,具体流程如图2所示,包括:
步骤S201、peer获取自身与每一个临近度检测服务器的临近度信息。
具体方法与图1中SP获取自身与每一个临近度检测服务器的临近度信息相同,不重述。
步骤S202、peer向中心服务器发起登录请求,上报自身与每一个临近度检测服务器的临近度信息,如RTT值或ping值。
步骤S203、中心服务器根据peer上报的临近度信息和保存的当前在线的全部SP的临近度信息,选择出与该peer网络距离较近的一个或多个SP作为备选归属SP,并将备选归属SP标识信息返回给当前发起登录请求的peer。
在该步骤S203中,如何选择出与该peer网络距离较近的一个或多个SP,具体方法为:
方法一:中心服务器接收到超级节点/普通节点上报的RTT值/ping值后,将RTT值/ping值作为超级节点/普通节点的相对空间位置坐标;当某一个普通节点发起登录请求时,中心服务器根据当前在线的全部超级节点的相对空间位置坐标和当前发起登录请求的普通节点的相对空间位置坐标,分别计算出当前在线的全部超级节点与该发起登录请求的普通节点之间的网络距离;选择出距离值较小的一个或多个超级节点作为备选归属超级节点,并将选择出的备选归属超级节点标识信息返回给当前发起登录请求的普通节点。
下面对利用RTT值/ping值作为超级节点/普通节点的相对空间位置坐标来进行节点间网络距离的计算,给出原理说明:
假设网络中共设置了三个临近度检测服务器,组成一个三维坐标系统,这三个临近度检测服务器的空间位置坐标分别为(0,0,p),(0,p,0),(p,0,0)。假设一个超级节点SPA到这三个临近度检测服务器的RTT分别为(a1,a2,a3);另一个超级节点SP B的RTT也可以同样表示:(b1,b2,b3)。假设RTT值就代表这个坐标系中的距离。假设SP A在三维坐标系中的坐标为(A1,A2,A3),SP B在三维坐标系中的坐标为(B1,B2,B3)。当中心服务器收到SP A和SP B上报的RTT值(也可以是ping值,以RTT为例)后,可以通过如下等式计算出其相对空间坐标:
A1 2+A2 2+(p-A3)2=a1 2; 式(1)
A1 2+(p-A2)2+A3 2=a2 2; 式(2)
(p-A1)2+A2 2+A3 2=a3 2; 式(3)
B1 2+B2 2+(p-B3)2=b1 2; 式(4)
B1 2+(p-B2)2+B3 2=b2 2; 式(5)
(p-B1)2+B2 2+B3 2=b3 2; 式(6)
由式(1)、(2)、(3)可知,由于a1,a2,a3为已知,只要p值已知,就可以求出SPA的相对空间位置坐标(A1,A2,A3);
同理,由式(4)、(5)、(6)可知,由于b1,b2,b3为已知,只要p值已知,就可以求出SP B的相对空间位置坐标(B1,B2,B3);
当确定出SP A、SP B的相对空间位置坐标后,很简单地就可以求取两节点之间的网络距离;
LAB=f(x)=sqrt((A1-B1)2+(A2-B2)2+(A3-B3)2) 式(7)
在经过化简与计算后,式(7)的距离函数f(x)与式(8)距离函数具有相同的单调性。
f(y)=(a1-b1)2+(a2-b2)2+(a3-b3)2 式(8)
通过上述式(1)到式(8)可知,在不考虑绝对值的情况下,可以使用两个节点对应的RTT值来计算它们之间的相对距离,从而获得与当前发起登录请求的peer具有较小距离的一个或多个SP(该些SP与该peer有较好的临近度)。
在该方法一中,需要计算出网络中每一个当前在线的SP与当前发起登录请求的peer之间的网络距离,从中选择距离值最小(或较小)的SP。当网络中当前在线的SP数量较多时,计算量会较大,为此,本发明还提供如下的方法二。
方法二:方法二在方法一的基础上,将三维(以三维为例,可以是多维)坐标线性化。具体方法如下:
假设某节点三维坐标为(X1,X2,X3),则令其按照式(9)的函数变成对应的一维坐标:
f(x)=X1*c2+X2*c1+X3*c0 式(9)
其中c表示进制常量,可以取任意数字,但根据应用通常取2、4、10即可。经过线性化后,所有节点对应的三维坐标都排列在了一条直线上,只要各节点的空间位置坐标不同,原则上线性化后对应的直线坐标就不同。
具体应用时,可以使用RTT值(或ping值)替代各节点真实的三维坐标数值。
当RTT过大时(例如RTT大于1000ms),可以将其边缘化,将大于1000ms的RTT都取值1000,这样,可以保证f(x)不会超过无符号整数的范围。
中心服务器在选择归属SP时,就可以在一维直线坐标上根据各SP对应的一维坐标与当前发起登录请求的peer的一维坐标的相近程度来确定,选择一维坐标邻近的SP。
具体确定方法包括:
中心服务器根据一维坐标值的大小按顺序分成若干个区段,并分别记录一维坐标值位于各区段的SP信息;中心服务器根据当前发起登录请求的peer的一维坐标值,直接选择出对应区段的SP或/和相邻区段的SP作为备选归属SP,并向peer返回对应的备选归属SP标识。
步骤S204、peer根据返回的备选归属SP标识,确定其中一个备选归属SP为自身的归属SP,并登录到归属SP。
在步骤S204中,确定归属SP时,peer根据返回的备选归属SP标识,逐一登录对应的备选归属SP,并将第一个登录成功的备选归属SP作为自身的归属SP;当peer登录其归属SP时候,会上报一些信息,包括但不限于该peer自己的临近度检测结果信息等。
如果peer不能成功登录任何一个备选归属SP,则将自身变为一个SP,并向中心服务器上报其身份的变化。
当两个已登录到其归属SP的普通节点不能直接通信时,本发明在需要通信的两个peer之间选择一个距离两个peer都较近的一个SP作为中转节点,实现两个peer之间的通信,其具体信令流程图如图3所示(假设Peer B1要与Peer A1进行通信),包括如下步骤:
1、Peer B1向其所在的SP(即SP B)发起第一中转通信请求,告知其要进行通信的PeerA1的ID;
2、SP B接收到Peer B1的请求后,向中心服务器请求Peer A1所在的SP,即SP A的网络信息,以便和SP A进行通信;
3、SP B接收到中心服务器返回的数据;
4、SP B向SP A询问Peer A1的临近度信息及其网络地址信息;
5、SP A收到SP B的查询信息后,向其返回Peer A1的临近度信息与其网络地址信息;
6、SP B接收到Peer A1的信息后,向中心服务器发起提供中转节点请求,携带Peer B1和Peer A1的临近度信息;
7、中心服务器接收到此请求后,在其内部保存的所有在线SP中,寻找出一些距离Peer B1与Peer A1都比较接近的SP返回给SP B;
8、SP B收到结果后,转发给Peer B1;
9、Peer B1逐一将返回的SP作为其自身与Peer A1间通信的中转节点,发起第二中转通信请求;
10、任意一个SP在接收到第二中转通信请求后,尝试与Peer A1建立连接;
11、连接成功后,Peer A1返回响应消息;
12、该SP响应可以提供中转给Peer B1;
13、Peer B1通过该SP中转与Peer A1之间进行数据传输。
在上述步骤7中,中心服务器收到提供中转节点请求后,进行如下处理:
处理方式一:
1)中心服务器分别计算出当前在线的全部SP与通信发起方节点(Peer B1)之间的网络距离,具体计算方法同上所述,不重复;
2)选择出与通信发起方节点距离值较小的一个或多个SP,组成第一节点集合;
3)中心服务器分别计算出当前在线的全部SP与通信接收方节点(Peer A1)之间的网络距离;
4)选择出与通信接收方距离值较小的一个或多个SP,组成第二节点集合;
5)选择出第一节点集合和第二节点集合中距离值相同或接近的一个或多个SP作为备选中转节点,并将作为备选中转节点的对应SP标识信息返回给通信发起方节点。
处理方式二:
1)中心服务器中存储有由各节点的三维或多维坐标通过线性化获得的对应一维坐标,并根据一维坐标值的大小按顺序分成若干个区段,并分别记录一维坐标值位于各区段的SP信息;当中心服务器收到提供中转节点请求后,根据通信发起方节点的一维坐标值直接选择出对应区段的超级节点或/和相邻区段的超级节点,组成第三节点集合;
2)中心服务器根据通信接收方节点的一维坐标值,直接选择出对应区段的超级节点或/和相邻区段的超级节点,组成第四节点集合;
3)选择出第三节点集合和第四节点集合中一维坐标值相同或接近的一个或多个超级节点作为备选中转节点,并将作为备选中转节点的对应超级节点标识信息返回给通信发起方节点。
根据本发明的上述方法,本发明提供一种确定归属SP的实现系统,如图4所示,包括P2P网络,其中,网络的每一个超级节点10和普通节点20包括有临近度确定模块100;还包括:设置在网络的不同位置空间的至少三台临近度检测服务器30;
当网络中的超级节点和普通节点登录网络时,该节点中的所述临近度确定模块100与每一个临近度检测服务器30交互,确定自身与每一个临近度检测服务器30的临近度信息;
每一个普通节点20还包括归属超级节点确定模块200,P2P网络中的中心服务器40包括归属超级节点选择模块400;
当普通节点20向中心服务器40发起登录请求时,归属超级节点确定模块200从临近度确定模块100中获取临近度信息并上报给中心服务器40;中心服务器40收到普通节点20发起的携带临近度信息登录请求后,由其归属超级节点选择模块400根据当前发起登录请求的普通节点20上报的临近度信息和当前在线的全部超级节点10的临近度信息,选择出与该普通节点20网络距离较近的一个或多个超级节点10作为其备选归属超级节点,并将备选归属超级节点标识返回给该普通节点20。该普通节点20根据返回的备选归属超级节点标识,确定其中一个备选归属超级节点10为自身的归属超级节点。
普通节点还包括第一中转通信模块201,超级节点中还包括第二中转通信模块101,中心服务器还包括中转节点选择模块401;
普通节点20中的第一中转通信模块201向该普通节点对应的归属超级节点10发起第一中转通信请求,携带通信接收方节点标识信息;
归属超级节点10中的第二中转通信模块101接收到第一中转通信请求后,通过中心服务器40获取通信接收方节点的归属超级节点信息,并与通信接收方节点的归属超级节点交互,获取通信接收方节点的临近度信息,再携带通信发起方节点和通信接收方节点的临近度信息向中心服务器40发起提供中转节点请求;
中心服务器40接收到提供中转节点请求后,由中转节点选择模块401选择出与通信发起方节点和通信接收方节点的网络距离都较近的一个或多个超级节点作为备选中转节点,并将作为备选中转节点的对应超级节点标识返回给发起提供中转节点请求的超级节点中的第二中转通信模块101;
第二中转通信模块101接收中心服务器40返回的作为备选中转节点的对应超级节点标识,并转发给第一中转通信模块201;
第一中转通信模块201接收其归属超级节点返回的作为备选中转节点的对应超级节点标识;逐一向对应的超级节点发起第二中转通信请求,当有一个超级节点返回可以提供中转通信的响应时,将该超级节点作为中转节点,并通过该中转节点实现与通信接收方节点的数据传输。
综上所述,在本发明方法中,通过预先在网络的不同位置空间至少设置三台临近度检测服务器;当网络中SP登录时,获取自身与每一个临近度检测服务器的临近度信息,并上报给网络中的中心服务器;这样,中心服务器中就存储了当前在线的全部SP的临近度信息;当网络中peer登录时,同样获取自身与每一个临近度检测服务器的临近度信息,并上报给中心服务器;中心服务器根据peer上报的临近度信息和保存的当前在线的全部SP的临近度信息,选择出与该peer网络距离较近的一个或多个SP作为备选归属SP,并将备选归属SP标识信息返回给peer;peer再根据返回的备选归属SP标识,确定其中一个备选归属SP为自身的归属SP。因此,采用本发明上述选择出的归属SP,与当前发起登录请求的peer网络距离最近(或比较接近),从而使得peer可以更好地维持与归属SP的状态信息。
根据本发明的上述方法,当两个已登录到其归属SP的peer不能直接通信时,本发明采用由通信发起方节点的归属SP向中心服务器发起提供中转节点请求,并携带通信发起方和通信接收方节点的临近度信息;中心服务器接收到提供中转节点请求后,选择出与通信发起方节点和通信接收方节点的网络距离都较近的一个或多个SP作为备选中转节点,并将作为备选中转节点的SP标识返回给通信发起方节点的归属SP,由归属SP转发给通信发起方,并最终确定出一个可以提供中转的SP作为中转节点。使peer在需要SP中转数据时,获取到距离两个需要通信的peer的网络距离都比较小的SP,从而实现高效率的网络数据传输。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1、一种确定归属超级节点的实现方法,应用于P2P网络,其特征在于,包括:在网络的不同位置空间至少设置三台临近度检测服务器;当网络中超级节点登录时,执行下列步骤:
获取自身与每一个临近度检测服务器的临近度信息,并上报给网络中的中心服务器;
所述中心服务器保存并更新当前在线的全部超级节点的所述临近度信息;
当网络中普通节点登录时,执行下列步骤:
获取自身与每一个临近度检测服务器的临近度信息,并上报给所述中心服务器;
所述中心服务器根据普通节点上报的临近度信息和保存的当前在线的全部超级节点的临近度信息,选择出与该普通节点网络距离较近的一个或多个超级节点作为备选归属超级节点,并将备选归属超级节点标识信息返回给所述普通节点;
所述普通节点根据返回的备选归属超级节点标识,确定其中一个备选归属超级节点为自身的归属超级节点。
2、如权利要求1所述的方法,其特征在于,所述确定其中一个备选归属超级节点为自身的归属超级节点,包括:
所述普通节点根据返回的备选归属超级节点标识,逐一登录对应的备选归属超级节点,并将第一个登录成功的备选归属超级节点作为自身的归属超级节点。
3、如权利要求2所述的方法,其特征在于,如果所述普通节点不能成功登录任何一个备选归属超级节点,则将自身作为超级节点,并向所述中心服务器上报其身份的变化。
4、如权利要求2所述的方法,其特征在于,当两个已登录到其归属超级节点的普通节点不能直接通信时,执行如下步骤:
通信发起方节点向其归属超级节点发起中转通信请求,携带通信接收方节点标识信息;
通信发起方节点的归属超级节点通过所述中心服务器获取通信接收方节点的归属超级节点信息,并与通信接收方节点的归属超级节点交互,获取通信接收方节点的临近度信息,再携带通信发起方节点和通信接收方节点的临近度信息向所述中心服务器发起提供中转节点请求;
所述中心服务器选择出与通信发起方节点和通信接收方节点的网络距离都较近的一个或多个超级节点作为备选中转节点,并将作为备选中转节点的超级节点标识返回给所述通信发起方节点的归属超级节点;由该通信发起方节点的归属超级节点转发给所述通信发起方节点;
所述通信发起方节点根据返回的超级节点标识,逐一向对应的超级节点发起中转通信请求,当有一个超级节点返回可以提供中转通信的响应时,将该超级节点作为中转节点,并通过该超级节点中转,实现与通信接收方的数据传输。
5、如权利要求1-4任意权项所述的方法,其特征在于,所述获取自身与每一个临近度检测服务器的临近度信息,并上报给网络中的中心服务器,具体包括:
向所述临近度检测服务器发送临近度探测数据包;
所述临近度检测服务器收到所述临近度探测数据包后,将所述临近度探测数据包原样返回;
记录所述临近度探测数据包的往返时间RTT,将所述RTT值作为所述临近度信息上报给网络的中心服务器;或者
向所述临近度检测服务器发送ping包,获取ping值,将所述ping值作为所述临近度信息上报给网络的中心服务器。
6、如权利要求5所述的方法,其特征在于,具体包括:
所述中心服务器接收到RTT值或ping值后,将所述RTT值或ping值作为上报所述RTT值或ping值的超级节点或普通节点的相对空间位置坐标;
当某一个普通节点发起登录请求时,所述中心服务器根据当前在线的全部超级节点的相对空间位置坐标和当前发起登录请求的普通节点的相对空间位置坐标,分别计算出当前在线的全部超级节点与该发起登录请求的普通节点之间的网络距离;选择出距离值较小的一个或多个超级节点作为备选归属超级节点,并将选择出的备选归属超级节点标识信息返回给所述普通节点。
7、如权利要求6所述的方法,其特征在于,当所述中心服务器收到超级节点发起的提供中转节点请求后,执行下列步骤:
所述中心服务器分别计算出当前在线的全部超级节点与通信发起方节点之间的网络距离;选择出距离值较小的一个或多个超级节点,组成第一节点集合;
所述中心服务器分别计算出当前在线的全部超级节点与通信接收方节点之间的网络距离;选择出距离值较小的一个或多个超级节点,组成第二节点集合;
选择出所述第一节点集合和第二节点集合中距离值相同或接近的一个或多个超级节点作为备选中转节点,并将作为备选中转节点的对应超级节点标识信息返回给发起中转节点请求的超级节点。
8、如权利要求6所述的方法,其特征在于,还包括:
所述中心服务器将每一个相对空间位置坐标线性化为一维坐标;
当某一个普通节点发起登录请求时,所述中心服务器根据当前在线的全部超级节点的一维坐标和当前发起登录请求的普通节点的一维坐标,选择出一维坐标值接近的一个或多个超级节点作为备选归属超级节点,并将备选归属超级节点标识信息返回给所述普通节点。
9、如权利要求8所述的方法,其特征在于,还包括:
所述中心服务器根据一维坐标值的大小按顺序分成若干个区段,并分别记录一维坐标值位于各区段的超级节点信息;
所述中心服务器根据当前发起登录请求的普通节点的一维坐标值,直接选择出对应区段的超级节点或/和相邻区段的超级节点作为备选归属超级节点,并将备选归属超级节点标识信息返回给所述普通节点。
10、如权利要求9所述的方法,其特征在于,当所述中心服务器收到超级节点发起的请求提供中转节点请求后,执行下列步骤:
所述中心服务器根据通信发起方节点的一维坐标值,直接选择出对应区段的超级节点或/和相邻区段的超级节点,组成第三节点集合;
所述中心服务器根据通信接收方节点的一维坐标值,直接选择出对应区段的超级节点或/和相邻区段的超级节点,组成第四节点集合;
选择出所述第三节点集合和第四节点集合中一维坐标值相同或接近的一个或多个超级节点作为备选中转节点,并将作为备选中转节点的对应超级节点标识信息返回给发起中转节点请求的超级节点。
11、一种确定归属超级节点的实现系统,包括P2P网络,其特征在于,网络的每一个超级节点和普通节点包括有临近度确定模块;还包括:设置在网络的不同位置空间的至少三台临近度检测服务器;
当网络中的超级节点和普通节点登录网络时,该节点中的所述临近度确定模块与每一个临近度检测服务器交互,确定自身与每一个临近度检测服务器的临近度信息;
所述普通节点还包括归属超级节点确定模块,P2P网络中的中心服务器包括归属超级节点选择模块;
所述归属超级节点确定模块,用于当普通节点向所述中心服务器发起登录请求时,从所述临近度确定模块中获取所述临近度信息并上报给所述中心服务器;并接收所述中心服务器返回的备选归属超级节点标识,确定其中一个备选归属超级节点为自身的归属超级节点;
所述归属超级节点选择模块,用于当所述中心服务器收到普通节点发起的登录请求后,根据当前发起登录请求的普通节点上报的临近度信息和当前在线的全部超级节点的临近度信息,选择出与该普通节点网络距离较近的一个或多个超级节点作为其备选归属超级节点,并将备选归属超级节点标识返回给该普通节点。
12、如权利要求11所述的系统,其特征在于,所述普通节点还包括第一中转通信模块,所述超级节点中还包括第二中转通信模块,所述中心服务器还包括中转节点选择模块;
所述普通节点中的第一中转通信模块向该普通节点对应的归属超级节点发起第一中转通信请求,携带通信接收方节点标识信息;并接收其归属超级节点返回的作为备选中转节点的对应超级节点标识;逐一向对应的超级节点发起第二中转通信请求,当有一个超级节点返回可以提供中转通信的响应时,将该超级节点作为中转节点,并通过该中转节点实现与通信接收方节点的数据传输;
所述归属超级节点中的第二中转通信模块接收到第一中转通信请求后,通过所述中心服务器获取通信接收方节点的归属超级节点信息,并与通信接收方节点的归属超级节点交互,获取通信接收方节点的临近度信息,再携带通信发起方节点和通信接收方节点的临近度信息向所述中心服务器发起提供中转节点请求,接收所述中心服务器返回的作为备选中转节点的对应超级节点标识并转发给所述第一中转通信模块;
所述中转节点选择模块,用于当中心服务器接收到提供中转节点请求后,选择出与通信发起方节点和通信接收方节点的网络距离都较近的一个或多个超级节点作为备选中转节点,并将作为备选中转节点的对应超级节点标识返回给发起提供中转节点请求的超级节点中的第二中转通信模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101522358A CN100527685C (zh) | 2006-09-20 | 2006-09-20 | 一种确定归属超级节点的实现方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101522358A CN100527685C (zh) | 2006-09-20 | 2006-09-20 | 一种确定归属超级节点的实现方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101150427A CN101150427A (zh) | 2008-03-26 |
CN100527685C true CN100527685C (zh) | 2009-08-12 |
Family
ID=39250779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101522358A Active CN100527685C (zh) | 2006-09-20 | 2006-09-20 | 一种确定归属超级节点的实现方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100527685C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101282302B (zh) * | 2008-05-29 | 2012-05-02 | 腾讯科技(深圳)有限公司 | 数据中转方法、系统、客户端及服务器 |
CN101437031B (zh) * | 2008-12-03 | 2012-08-15 | 腾讯科技(深圳)有限公司 | 计算机网络数据的传输处理方法与系统 |
CN101895958A (zh) * | 2010-03-30 | 2010-11-24 | 华为终端有限公司 | 一种移动网络中自组建路由的方法及装置 |
CN102014115B (zh) * | 2010-07-09 | 2013-07-10 | 北京哈工大计算机网络与信息安全技术研究中心 | 网关节点匿名化的方法、设备和系统 |
CN103051359B (zh) * | 2011-10-17 | 2015-02-04 | 杭州讯能科技有限公司 | 从节点绑定主节点的方法及台区区分方法 |
CN103701846B (zh) * | 2013-09-18 | 2016-09-28 | 南京邮电大学 | 基于节点临近度估计的对等网络资源搜索优化方法 |
CN108322487A (zh) * | 2017-01-16 | 2018-07-24 | 深圳市优朋普乐传媒发展有限公司 | p2p网络中节点选择方法及装置与节点更新方法及装置 |
-
2006
- 2006-09-20 CN CNB2006101522358A patent/CN100527685C/zh active Active
Non-Patent Citations (2)
Title |
---|
P2P网络模型下发现机制的研究和实现. 贾瑞新,刘永军,赵晓颖.北京工业大学学报,第31卷第6期. 2005 * |
Peer-to-Peer网络模型研究. 李祖鹏,黄道颖,庄雷,黄建华.计算机工程,第30卷第12期. 2004 * |
Also Published As
Publication number | Publication date |
---|---|
CN101150427A (zh) | 2008-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100527685C (zh) | 一种确定归属超级节点的实现方法与系统 | |
CN111654402B (zh) | 网络拓扑创建方法、装置、设备及存储介质 | |
CN105245632B (zh) | 一种sdn网络中不同网段主机间通信方法 | |
CN111447290A (zh) | 区块链网络中的通信方法、业务数据传输方法 | |
CN103166990B (zh) | P2p对等连接建立方法及系统 | |
CN103220670A (zh) | 一种设备切换方法、m2m平台和网络系统 | |
CN110198226A (zh) | 一种负载均衡集群中访问请求处理方法、系统和可读介质 | |
CN105704034A (zh) | 接入网络的方法和中央服务器 | |
CN109040337A (zh) | 一种信息查询方法、边缘服务器及信息查询系统 | |
CN102025595A (zh) | 流量优化方法及系统 | |
CN102075359A (zh) | 一种基于网络坐标的服务器部署方法及装置 | |
CN103780714A (zh) | 一种dns服务器的探测方法及装置 | |
CN103546559B (zh) | 数据分发方法和装置 | |
CN104144223B (zh) | 一种数据获取方法及装置 | |
Hoßfeld et al. | Supporting vertical handover by using a pastry peer-to-peer overlay network | |
CN103987098B (zh) | Ipv4网络与ipv6网络间的切换方法和系统 | |
CN104734869A (zh) | 基于动态探测的智能dns域名系统及方法 | |
CN105872093A (zh) | Cdn加速方法和系统 | |
US7948917B2 (en) | Routing internet communications using network coordinates | |
CN102123161B (zh) | 一种分布式移动性管理的方法及分布式移动性管理系统 | |
CN101267356B (zh) | 测量Overlay节点间网络性能的方法、装置和系统 | |
CN102970702A (zh) | 一种基于Zigbee协议的无线传感器网络结构维护方法及系统 | |
CN102006268A (zh) | 主备接口切换方法、设备及系统 | |
CN104468138A (zh) | 一种多媒体会议的实现方法 | |
CN109788075B (zh) | 专网网络系统、数据的获取方法及边缘服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |