CN100505662C - 创建点对点数据通道的方法 - Google Patents
创建点对点数据通道的方法 Download PDFInfo
- Publication number
- CN100505662C CN100505662C CN 200610066522 CN200610066522A CN100505662C CN 100505662 C CN100505662 C CN 100505662C CN 200610066522 CN200610066522 CN 200610066522 CN 200610066522 A CN200610066522 A CN 200610066522A CN 100505662 C CN100505662 C CN 100505662C
- Authority
- CN
- China
- Prior art keywords
- node
- packet
- data channel
- section point
- network information
- 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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种创建点对点数据通道的方法,其特征在于,该方法包括以下步骤:第一节点第一中转节点的网络信息;第一节点获取第二节点和第二节点的超级节点的网络信息;第一节点同时向第二节点和第一中转节点发送数据包,并将第一中转节点的网络信息发送给第二节点的超级节点;第一节点根据从第二节点和第一中转节点收到的数据包创建数据通道。从上述方案中可以看出,由于在本发明中同时尝试创建直连数据通道和中转数据通道,减少了整个创建数据通道流程的时间,可以适用于各种实时性要求较高的场合。
Description
技术领域
本发明涉及计算机网络技术领域,特别是一种创建点对点数据通道的方法。
背景技术
点对点(Peer-to-Peer,P2P)网络是一种分布式网络,P2P网络中的节点(Peer)既是资源的提供者也是资源的享受者,所有节点的资源都在该网络里面共享。最典型的是P2P下载,在P2P下载中某个节点在从别的节点下载文件的同时,它所共享的文件也被别的节点所下载。
P2P网络根据其拓扑结构可以分为4种形式:中心化拓扑结构、全分布式非结构化拓扑结构、全分布式结构化拓扑结构和半分布式拓扑结构。下面介绍与本发明相关的半分布式拓扑。
参见图1,在半分布式拓扑结构中,一些在处理、存储、带宽等方面性能较高的节点被选作超级节点(SuperPeer),在各个超级节点下挂着一定数量的普通节点,超级节点还存储着系统中其他部分节点的信息,超级节点负责处理或转发它底下所挂Peer的请求。半分布式拓扑结构也是一个层次式结构,超级节点之间构成一个高速转发层,而超级节点和所负责的普通节点构成若干层次。
为了实现多种应用,需要在相应的Peer之间创建数据通道。图2所示的是现有技术中在两个Peer之间创建数据通道的过程。参照图2,在该P2P网络中,PeerA的超级节点为SuperPeerA,PeerB的超级节点为SuperPeerB,图2中还给出了服务器和PeerC,其中服务器中保存有各节点的超级节点信息和中转节点信息,PeerC为PeerA的中转节点。
如图2所示,现有技术中创建PeerA到PeerB的数据通道的过程包括如下步骤:
步骤101,PeerA向SuperPeerA发送查找PeerB的请求。
步骤102,SuperPeerA将该查找请求转发给Server。
步骤103,Server根据该查找请求将PeerB及其超级节点SuperPeerB的网络信息返回给SuperPeerA。
步骤104,SuperPeerA将Server返回的结果返回给PeerA。
步骤105,PeerA收到PeerB和SuperPeerB的网络信息之后,根据PeerB的网络信息向PeerB发送数据包,尝试跟PeerB创建直连数据通道。如果PeerB收到PeerA的数据包,会给PeerA发送数据包,以确定可以创建直连数据通道。
PeerA如果在预定的时间内收到PeerB返回的数据包,则表示直连成功,即创建通道成功,结束流程;如果在预定时间内未收到PeerB返回的数据包,则表示直连失败,执行步骤106。
步骤106,PeerA向SuperPeerA发送获取中转Peer请求。
步骤107,SuperPeerA将该请求转发给Server。
步骤108,Server根据该请求将中转PeerC的网络信息返回给SuperPeerA。
步骤109,SuperPeerA将Server返回的结果返回给PeerA。
步骤110,PeerA收到中转PeerC的网络信息后,根据PeerC的网络信息向PeerC发送数据包,尝试连接PeerC,同时将PeerC的网络信息发送给PeerB的超级节点SuperPeerB。
步骤111,SuperPeerB将PeerC的网络信息转发给PeerB。
步骤112,PeerB收到PeerC的网络信息之后,根据PeerC的网络信息向PeerC发送数据包,尝试连接PeerC。如果PeerC收到PeerA和PeerB的数据包后,会给PeerA和PeerB发送数据包,以确定通过PeerC可以创建中转数据通道。
最后;PeerA如果在预定时间内收到了PeerC发送来的数据包,则表示PeerA和PeerB可以通过PeerC建立中转数据通道,即PeerA和PeerB之间的数据通道创建成功;否则,表明PeerA和PeerB通过PeerC创建中转数据通道失败,即PeerA和PeerB之间创建数据通道失败。
在上面的流程中,步骤101至步骤104为查找网络信息环节,步骤105为创建直连数据通道环节,步骤106至步骤109为获取中转Peer环节,步骤110至步骤112为创建中转数据通道环节。
从现有技术可以看出,上述各个环节是串行的,如果每个环节需要10秒,则整个创建数据通道的过程需要花费40秒。这对于实时性要求较高的场合是不适用的,即使在一些实时性要求不高的场合中可以使用,但是也浪费了时间。
发明内容
有鉴于此,本发明提出了一种创建P2P数据通道的方法,用以缩短创建数据通道的时间。
根据上述目的,本发明提供了一种创建P2P数据通道的方法,该方法包括以下步骤:
根据上述目的,本发明提供了一种创建P2P数据通道的方法,该方法包括以下步骤:A.第一节点通过第一节点的超级节点到服务器获取至少一个中转节点的网络信息,所述至少一个中转节点包括第一中转节点;B.第一节点通过第一节点的超级节点向服务器发送查找第二节点的请求,服务器根据该查找第二节点的请求,将第二节点和第二节点的超级节点的网络信息通过第一节点的超级节点返回至第一节点;C.根据步骤A和B中获取的网络信息,第一节点同时向第二节点和第一中转节点发送数据包,并将第一中转节点的网络信息发送给第二节点的超级节点;D.第一节点判断在预定时间内是否收到第二节点和/或第一中转节点的数据包,如果收到来自第二节点和第一中转节点中至少一个的数据包,则根据所收到的数据包创建数据通道。
步骤B进一步包括:B1.第一节点发送查找第二节点的请求给第一节点的超级节点,第一节点的超级节点将该查找请求转发给服务器;B2.服务器返回第二节点和第二节点的超级节点的网络信息给第一节点的超级节点,第一节点的超级节点将所述网络信息返回给第一节点。
步骤A进一步包括A1.第一节点发送获取第一中转节点的请求给第一节点的超级节点,第一节点的超级节点将该获取请求转发给服务器;A2.服务器返回第一中转节点的网络信息给第一节点的超级节点,第一节点的超级节点将所述网络信息返回给第一节点。
步骤C之后进一步包括:如果第二节点接收到第一节点的数据包,则向第一节点发送数据包。
步骤C之后进一步包括:第二节点的超级节点将第一中转节点的网络信息转发给第二节点,第二节点根据第一中转节点的网络信息向第一中转节点发送数据包;如果第一中转节点接收到第一节点和第二节点的数据包,则分别向第一节点和第二节点发送数据包。
步骤D中所述根据所收到的数据包创建数据通道的步骤包括:如果收到来自第二节点的数据包和来自第一中转节点的数据包,则确定其中一个数据包对应的数据通道为最终创建的数据通道而删除另一个数据通道;如果只收到来自第二节点和第一中转节点其中一个的数据包,则确定所收到的数据包对应的数据通道为最终创建的数据通道。
步骤D中所述确定其中一个数据包对应的数据通道为最终创建的数据通道而删除另一个数据通道的步骤为:确定来自第二节点的数据包对应的直连数据通道为最终创建的数据通道,删除经过第一中转节点的中转数据通道。
步骤D进一步包括:如果没有收到来自第二节点或第一中转节点的数据包,则创建数据通道失败。
从上述方案中可以看出,由于在本发明中同时尝试创建直连数据通道和中转数据通道,即创建直连数据通道和中转数据通道是并行的,这样可以减少整个流程的时间。并且在直连数据通道和中转数据通道都成功创建的情况下,删除多余通道是在创建通道成功之后进行的,也不占用创建通道时间。进一步,本发明还在创建通道之前进行预取中转Peer的环节,也不占用创建时间。假设查找网络信息环节、创建直连数据通道环节、创建中转数据通道环节以及获取中转Peer环节分别需要10秒,则根据本发明的方案,整个流程只需要20秒,与现有技术的40秒相比,大大缩短了创建通道的时间,从而可以适用于各种实时性要求较高的场合。
附图说明
图1为P2P网络半分布式拓扑结构的示意图。
图2为现有技术中创建数据通道的流程示意图。
图3为本发明第一实施例的流程示意图。
图4为本发明第二实施例的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下举实施例对本发明进一步详细说明。
本发明与现有技术的不同在于,本发明将获取中转Peer等在创建数据通道之前预先完成,并且在创建数据通道过程中同时尝试创建直连数据通道和中转数据通道,如果两者都成功创建则选择其中的一种为最后创建的数据通道,如果一种成功则将其作为成功创建的数据通道。这样大大缩短了在创建P2P数据通道中所花费的时间。
图3为本发明第一实施例的流程示意图。参见图3,本发明第一实施例中的网络结构与现有技术相同,在该网络中,包括Server、PeerA和PeerA的超级节点SuperPeerA、PeerB和PeerB的超级节点SuperPeerB以及PeerA的中转PeerC。Server中保存有各节点的超级节点信息和中转节点信息。
参照图3,本发明第一实施例包括以下步骤:
在创建数据通道之前,PeerA预先通过SuperPeerA从Server获取中转Peer。过程如下:PeerA向SuperPeerA发送获取中转Peer请求;SuperPeerA将该请求转发给Server;Server根据该获取请求将中转PeerC的网络信息返回给SuperPeerA;SuperPeerA将Server返回的结果返回给PeerA。优选地,PeerA可以在空闲的时候获取中转Peer,或者可以定期地获取中转Peer。当然,还可以通过其它方法预先在PeerA中保存中转Peer的网络信息。
在创建PeerA和PeerB的数据通道的过程中执行以下步骤:
步骤201,PeerA向SuperPeerA发送查找PeerB的请求。
步骤202,SuperPeerA将该查找请求转发给Server。
步骤203,Server根据该查找请求将PeerB及其超级节点SuperPeerB的网络信息返回给SuperPeerA。
步骤204,SuperPeerA将Server返回的结果返回给PeerA。
步骤205,PeerA收到PeerB和SuperPeerB的网络信息之后,根据PeerB的网络信息向PeerB发送数据包,尝试跟PeerB创建直连数据通道。如果PeerB收到PeerA的数据包,会给PeerA发送数据包,以确定可以创建直连数据通道。
与此同时,PeerA根据预先获取的中转PeerC的网络信息向PeerC发送数据包,尝试连接PeerC。PeerA同时还将PeerC的网络信息发送给PeerB的超级节点SuperPeerB。
步骤206,SuperPeerB将PeerC的网络信息转发给PeerB。
步骤207,PeerB收到PeerC的网络信息之后,根据PeerC的网络信息向PeerC发送数据包,尝试连接PeerC。如果PeerC收到PeerA和PeerB的数据包后,会给PeerA和PeerB发送数据包,以确定可以通过PeerC创建中转数据通道。
最后,PeerA判断在预定时间内是否收到PeerB和/或PeerC返回的数据包,如果在预定的时间内收到PeerB返回的数据包而没有收到PeerC返回的数据包,则表示可以创建直连数据通道而不可以创建中转数据通道,以直连数据通道作为最后成功创建的数据通道;如果在预定的时间内收到PeerC返回的数据包而没有收到PeerB返回的数据包,则表示可以创建中转数据通道而不可以创建直连数据通道,以中转数据通道作为最后成功创建的数据通道;如果在预定的时间内收到PeerB返回的数据包也收到PeerC返回的数据包,则表示可以创建直连数据通道并且也可以创建中转数据通道,PeerA可以选择其中任意一个作为最后成功创建的数据通道,并删除多余的数据通道,优选选择直连数据通道而删除中转数据通道;如果在预定的时间内既没有收到PeerB返回的数据包也没有收到PeerC发送来的数据包,则表示创建直连数据通道失败并且创建中转数据通道也失败,即没有成功创建PeerA与PeerB的数据通道。
在创建任意两个节点之间的数据通道时都可以使用本发明的方法,例如在创建PeerA与中转PeerC之间的数据通道或者创建PeerB与中转PeerC之间的数据通道时也可以使用本发明的方法。
在本发明的第二实施例中,进一步通过参照图4描述创建PeerB与中转PeerC之间数据通道的流程来阐述本发明的方法。图4与图3相比,进一步给出了PeerC的超级节点SuperPeerC以及PeerB的中转节点PeerD。
如图4所示,本发明的第二实施例包括:
在创建数据通道之前,PeerB预先通过SuperPeerB从Server获取中转Peer。过程如下:PeerB向SuperPeerB发送获取中转Peer请求;SuperPeerB将该请求转发给Server;Server根据该获取请求将中转PeerD的网络信息返回给SuperPeerB;SuperPeerB将Server返回的结果返回给PeerB。优选地,PeerB可以在空闲的时候获取中转Peer,或者可以定期地获取中转Peer。当然,还可以通过其它方法预先在PeerB中保存中转Peer的网络信息。
在创建PeerB和PeerC的数据通道的过程中执行以下步骤:
步骤301,PeerB向SuperPeerB发送查找PeerC的请求。
步骤302,SuperPeerB将该查找请求转发给Server。
步骤303,Server根据该查找请求将PeerC及其超级节点SuperPeerC的网络信息返回给SuperPeerB。
步骤304,SuperPeerB将Server返回的结果返回给PeerB。
步骤305,PeerB收到PeerC和SuperPeerC的网络信息之后,根据PeerC的网络信息向PeerC发送数据包,尝试跟PeerC创建直连数据通道。如果PeerC收到PeerB的数据包,会给PeerB发送数据包,以确定可以创建直连数据通道。
与此同时,PeerB根据预先获取的中转PeerD的网络信息向PeerD发送数据包,尝试连接PeerD。PeerB同时还将PeerD的网络信息发送给PeerC的超级节点SuperPeerC。
步骤306,SuperPeerC将PeerD的网络信息转发给PeerC。
步骤307,PeerC收到PeerD的网络信息之后,根据PeerD的网络信息向PeerD发送数据包,尝试连接PeerD。如果PeerD收到PeerB和PeerC的数据包后,会给PeerB和PeerC发送数据包,以确定可以通过PeerD创建中转数据通道。
最后,PeerB判断在预定时间内是否收到PeerC和/或PeerD返回的数据包,PeerB如果在预定的时间内收到PeerC返回的数据包而没有收到PeerD返回的数据包,则表示可以创建直连数据通道而不可以创建中转数据通道,以直连数据通道作为最后成功创建的数据通道;如果在预定的时间内收到PeerD返回的数据包而没有收到PeerC返回的数据包,则表示可以创建中转数据通道而不可以创建直连数据通道,以中转数据通道作为最后成功创建的数据通道;如果在预定的时间内收到PeerC返回的数据包也收到PeerD返回的数据包,则表示可以创建直连数据通道并且也可以创建中转数据通道,PeerB可以选择其中任意一个作为最后成功创建的数据通道,并删除多余的数据通道,优选选择直连数据通道而删除中转数据通道;如果在预定的时间内既没有收到PeerC返回的数据包也没有收到PeerD发送来的数据包,则表示创建直连数据通道失败并且创建中转数据通道也失败,即没有成功创建PeerB与PeerC的数据通道。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1、一种创建点对点P2P数据通道的方法,其特征在于,该方法包括以下步骤:
A.第一节点通过第一节点的超级节点到服务器获取至少一个中转节点的网络信息,所述至少一个中转节点包括第一中转节点;
B.第一节点通过第一节点的超级节点向服务器发送查找第二节点的请求,服务器根据该查找第二节点的请求,将第二节点和第二节点的超级节点的网络信息通过第一节点的超级节点返回至第一节点;
C.根据步骤A和B中获取的网络信息,第一节点同时向第二节点和第一中转节点发送数据包,并将第一中转节点的网络信息发送给第二节点的超级节点;
D.第一节点判断在预定时间内是否收到第二节点和/或第一中转节点的数据包,如果收到来自第二节点和第一中转节点中至少一个的数据包,则根据所收到的数据包创建数据通道。
2、根据权利要求1所述的方法,其特征在于,步骤B进一步包括:
B1.第一节点发送查找第二节点的请求给第一节点的超级节点,第一节点的超级节点将该查找请求转发给服务器;
B2.服务器返回第二节点和第二节点的超级节点的网络信息给第一节点的超级节点,第一节点的超级节点将所述网络信息返回给第一节点。
3、根据权利要求1所述的方法,其特征在于,步骤A进一步包括:
A1.第一节点发送获取第一中转节点的请求给第一节点的超级节点,第一节点的超级节点将该获取请求转发给服务器;
A2.服务器返回第一中转节点的网络信息给第一节点的超级节点,第一节点的超级节点将所述网络信息返回给第一节点。
4、根据权利要求1所述的方法,其特征在于,步骤C之后进一步包括:
如果第二节点接收到第一节点的数据包,则向第一节点发送数据包。
5、根据权利要求1或4所述的方法,其特征在于,步骤C之后进一步包括:
第二节点的超级节点将第一中转节点的网络信息转发给第二节点,第二节点根据第一中转节点的网络信息向第一中转节点发送数据包;
如果第一中转节点接收到第一节点和第二节点的数据包,则分别向第一节点和第二节点发送数据包。
6、根据权利要求1所述的方法,其特征在于,步骤D中所述根据所收到的数据包创建数据通道的步骤包括:
如果收到来自第二节点的数据包和来自第一中转节点的数据包,则确定其中一个数据包对应的数据通道为最终创建的数据通道而删除另一个数据通道;如果只收到来自第二节点和第一中转节点其中一个的数据包,则确定所收到的数据包对应的数据通道为最终创建的数据通道。
7、根据权利要求6所述的方法,其特征在于,步骤D中所述确定其中一个数据包对应的数据通道为最终创建的数据通道而删除另一个数据通道的步骤为:确定来自第二节点的数据包对应的直连数据通道为最终创建的数据通道,删除经过第一中转节点的中转数据通道。
8、根据权利要求1、6或7所述的方法,其特征在于,步骤D进一步包括:
如果没有收到来自第二节点或第一中转节点的数据包,则创建数据通道失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610066522 CN100505662C (zh) | 2006-03-28 | 2006-03-28 | 创建点对点数据通道的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610066522 CN100505662C (zh) | 2006-03-28 | 2006-03-28 | 创建点对点数据通道的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101047580A CN101047580A (zh) | 2007-10-03 |
CN100505662C true CN100505662C (zh) | 2009-06-24 |
Family
ID=38771826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610066522 Active CN100505662C (zh) | 2006-03-28 | 2006-03-28 | 创建点对点数据通道的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100505662C (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515944B (zh) * | 2008-02-22 | 2013-08-28 | 华为技术有限公司 | 一种p2p业务接入方法、系统和装置 |
CN101252518B (zh) * | 2008-03-18 | 2010-08-18 | 腾讯科技(深圳)有限公司 | 对等网络中选择中转节点的方法及系统 |
CN101282302B (zh) * | 2008-05-29 | 2012-05-02 | 腾讯科技(深圳)有限公司 | 数据中转方法、系统、客户端及服务器 |
CN103929378B (zh) * | 2013-01-15 | 2018-01-05 | 腾讯科技(深圳)有限公司 | 跨域数据传输的通信链路分配及跨域数据传输方法和系统 |
CN104518983B (zh) * | 2013-09-30 | 2018-08-03 | 张永杰 | 一种多设备间的通信方法及装置 |
CN103812947B (zh) * | 2014-02-28 | 2017-03-15 | 深圳市创梦天地科技有限公司 | 数据交互系统及方法 |
CN105897476B (zh) * | 2016-04-11 | 2019-02-26 | 四川九洲电器集团有限责任公司 | 一种创建传输通道的方法及装置 |
CN117560357A (zh) * | 2022-08-03 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 多媒体资源的传输方法、装置、电子设备及存储介质 |
-
2006
- 2006-03-28 CN CN 200610066522 patent/CN100505662C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101047580A (zh) | 2007-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100505662C (zh) | 创建点对点数据通道的方法 | |
JP4317522B2 (ja) | ピアツーピア環境におけるネットワーク・トラフィック制御 | |
CN102333029B (zh) | 一种服务器集群系统中的路由方法 | |
CN103475566A (zh) | 一种实时消息交换平台及分布式集群组建方法 | |
JP6624619B2 (ja) | リソースサブスクリプション方法、リソースサブスクリプション装置、及びリソースサブスクリプションシステム | |
CN103457999A (zh) | 一种基于ndn网络架构的p2p文件传输方法 | |
CN102891872B (zh) | 一种对等网络中数据存储和查询的方法及系统 | |
CN109525678B (zh) | 区块链网络系统以及相应的节点设备发现方法 | |
CN111352716B (zh) | 一种基于大数据的任务请求方法、装置、系统及存储介质 | |
CN108881066A (zh) | 一种路由请求的方法、接入服务器以及存储设备 | |
CN108494826A (zh) | 一种分布式云存储方法及系统 | |
EP1719325B1 (en) | Method for optimally utilizing a peer to peer network | |
JP5253414B2 (ja) | コンテンツを公表するための方法及びシステム、コンテンツを検索するための方法及びシステム | |
US7680950B1 (en) | Efficient search for storage objects in a network | |
CN111800516B (zh) | 一种基于p2p的物联网设备管理方法及装置 | |
CN111211991B (zh) | 一种资产处理方法、系统及终端设备 | |
CN109120556A (zh) | 一种云主机访问对象存储服务器的方法及系统 | |
JP2006227763A (ja) | データ共有システム、データ共有方法及びプログラム | |
CN110855627B (zh) | 应用部署方法、装置、设备及介质 | |
US10904327B2 (en) | Method, electronic device and computer program product for searching for node | |
US8392549B2 (en) | Apparatus and method for registering node and searching for floating internet protocol address using distributed network | |
JP2011118593A (ja) | データ転送サーバ、データ転送システム、データ転送方法およびプログラム | |
CN106657333B (zh) | 一种基于云服务模式的集中式目录数据交换系统及方法 | |
CN101040506B (zh) | 用于初始化对等数据网的方法 | |
CN107404438A (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 |