CN101282302B - 数据中转方法、系统、客户端及服务器 - Google Patents
数据中转方法、系统、客户端及服务器 Download PDFInfo
- Publication number
- CN101282302B CN101282302B CN2008101110075A CN200810111007A CN101282302B CN 101282302 B CN101282302 B CN 101282302B CN 2008101110075 A CN2008101110075 A CN 2008101110075A CN 200810111007 A CN200810111007 A CN 200810111007A CN 101282302 B CN101282302 B CN 101282302B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- super node
- data relay
- super
- 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
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据中转方法、系统、P2P客户端及P2P服务器,没有公网IP的P2P客户端判断节点自身的网络类型,若符合预设的增补超级节点的确定条件,则作为增补超级节点登录P2P服务器;P2P服务器接收节点的数据中转请求,根据预设的规则,从超级节点和增补超级节点中选择出数据中转节点;若选择增补超级节点作为数据中转节点,则该增补超级节点与请求中转数据的节点间建立数据回传通道并通过该数据回传通道进行数据中转。该方法、系统、P2P客户端及P2P服务器扩展了可用于数据中转的节点的选择范围,从而提高了P2P系统的传输性能。
Description
技术领域
本发明涉及互联网技术领域,特别涉及数据中转方法、系统、客户端及服务器。
背景技术
P2P是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源如处理能力、存储能力、网络连接能力、打印机等,这些共享资源需要由网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源,如服务和内容的提供者(Server),又是资源,如服务和内容的获取者(Client),数据传输通过节点进行,不需要很多的中央服务器。
目前的互联网遵循英特网协议(IP,Internet Protocol),每个节点分配一个IP地址,节点之间通过访问对方的IP地址进行数据传输。IP地址分为公网地址和私网地址两大类。
由于公网IP地址是有限且唯一的,且出于安全性的考虑,很多的用户会使用私有网络(简称私网)的IP地址或者通过防火墙与互联网连接。在使用私网IP地址时需要用网络地址转换(NAT,Network Address Translation)技术来实现,该技术允许一个整体机构以一个公用网络IP(Internet Protocol)地址出现在互联网上。顾名思义,它是一种把内部私网IP地址翻译成公网IP地址的技术。而防火墙和NAT有一个共同的特点,私网中的节点可以向公网中的节点发送数据,而公网中的数据包无法直接进入私网内或者防火墙内的节点,即只能发送数据不能接收数据。这虽然保证了私网内节点的安全性和私密性,但是也很大程度上阻碍了P2P节点之间的互联互通。
为了解决上述节点的互联互通的问题,需要使用到用户数据报协议简单穿越网络地址转换器(STUN,Simple Traversal of UDP Through NATs)技术,在STUN协议中,将NAT可分为完全圆锥形(Full Cone)、IP限制圆锥形(IP Restricted Cone)、端口限制圆锥形(Port Restricted Cone)和对称(Symmetric)4种类型。
以上4种NAT中,前3种NAT统称为圆锥形NAT(Cone NAT),由于圆锥形NAT会为该节点在NAT上映射一个固定的数据回传端口,因此,只要知道了NAT上的数据回传端口和NAT类型,就可以穿越NAT直接将数据包发送给私网内的节点了,而对称NAT则由于回传端口会根据不同的连接目标而变化,虽然可以利用端口猜测等方法找到数据回传端口,但是成功概率极低,因此一般无法与采用该类型的NAT的私网内的节点直接通信。
另外,简单防火墙一般不进行IP地址和端口的转换,只是会阻止任何未知的向内的数据包,因此,对于简单防火墙来说,可以参考与圆锥形NAT同样的方法与简单防火墙后的节点进行直接通信。
私网内节点或者防火墙后的节点可以通过公网上的STUN服务器来检测自己的NAT类型或者是否为简单防火墙,并得到回传数据的端口信息等,利用这些信息,就可以完成圆锥形NAT或简单防火墙的穿越,如公网节点一样收发数据了。
在P2P系统中,不仅要解决私网内节点的数据传输问题,也要解决数据传输速度的问题,一般为了优化P2P系统的数据传输,P2P客户端会分析节点的硬件资源,让有较大带宽的高速计算机担任超级节点,超级节点可以利用其本身的高带宽优势为其它节点中转数据,提高P2P系统的数据传输性能。成为超级节点的一个必要条件是其它节点能够给超级节点发送数据包,因此现有的P2P系统一般会选择具有公网IP并且没有使用防火墙的节点作为超级节点。
图1为现有P2P系统的结构图,如图1所示,该系统包括P2P服务器、节点1、节点2和超级节点群,之间通过互联网相连。
P2P服务器用于对系统内的节点的数据传输进行控制,超级节点群中包括多个超级节点,任意两节点之间可以通过直连进行数据传输,也可以从超级节点群中选择一个或多个超级节点作为节点之间的数据中转节点,进行数据中转,当然,如果没有超级节点可用,还可以通过专门设立的中转服务器进行数据中转。
图2为现有P2P系统利用超级节点中转数据的流程图,当节点1通过超级节点中转数据到节点2之前,首先要经过登录过程,节点1、节点2和超级节点需要登录到P2P服务器上,并报告自身网络类型,使P2P服务器可以掌握所有的P2P资源和连接情况。这里的网络类型是指该节点所处的网络状态,如公网、简单防火墙、完全圆锥形NAT、IP限制圆锥形NAT、端口限制圆锥形NAT或对称NAT等等,节点登录P2P服务器并没有顺序要求,图中节点的登录顺序仅为示意,实际上节点登录P2P服务器的过程是随机发生的,任何情况都有可能。当然,现有情况下,只有那些拥有公网IP地址的节点可以作为超级节点登录。在登录过程之后,登录在P2P服务器上的节点就可以使用登录在P2P服务器上的超级节点进行数据中转了,具体使用超级节点进行数据中转的流程包括如下步骤:
步骤201,节点1向P2P服务器发送请求超级节点的消息,请求进行数据中转。这里请求进行数据中转的节点1可以是一个普通的节点,也可以是一个超级节点,请求数据中转的节点并不要求一定是普通的节点。
步骤202,P2P服务器将从超级节点群中选择的超级节点的IP和端口信息发送给节点1。P2P服务器接到节点1的请求后将从所有登录的超级节点中选择一个或多个作为数据中转节点,并将它们的IP地址和端口等信息通知节点1,使节点1可以直接与超级节点进行通信。
步骤203,节点1向超级节点发送预定超级节点消息,通知超级节点需要它为节点1和节点2之间的数据传输进行数据中转。
步骤204,超级节点返回预定超级节点响应,确认接受预定。一般情况下,超级节点被规定为只能为一组节点进行数据中转,如节点1和节点2, 这主要是出于对节点的硬件性能的考虑,如果超级节点返回了响应,那么它将不再接受别的节点的预定请求,当然,也不排除一个超级节点可以为多组节点进行数据中转的情况。
步骤205,节点1向P2P服务器发送通知,通知节点2连接超级节点。这个通知中包含超级节点的IP地址和端口等信息,使得节点2可以知道如何连接超级节点。
步骤206,P2P服务器通知节点2连接超级节点。
步骤207,节点2向超级节点发送请求消息,请求使用超级节点。
步骤208,超级节点返回响应消息,确认可以使用超级节点。
步骤209,节点2通知超级节点自己已经准备好,可以进行数据中转。
步骤210,超级节点通知P2P服务器节点2已经准备好,可以进行数据中转。
步骤211,P2P服务器通知节点1,节点2已经准备好,可以进行数据中转。
步骤212,节点1请求超级节点转发数据给节点2。
步骤213,超级节点将节点1需要转发的数据向节点2转发。
步骤214,节点2请求超级节点转发数据给节点1。
步骤215,超级节点将节点2需要转发的数据向节点1转发。
步骤203~215是数据中转执行过程,该过程的前提是节点1和节点2可以连接到超级节点,因此现有技术中,只有那些具有公网IP并且没有使用防火墙的节点可以作为超级节点登录到P2P服务器,而使用NAT方式或通过防火墙接入互联网的节点,即使拥有很强大的硬件资源和传输带宽,但是由于NAT或防火墙的存在,使得该节点无法被其它的节点直接的访问到,因此无法作为超级节点登录。随着互联网的发展,P2P用户的快速增加,拥有公网IP地址的节点所占的比例会越来越小,大量的私网内的节点需要超级节点进行中转,因此超级节点的中转负担将越来越大,有限的中转资源被越来越多的用户分享,造成超级节点不够用,节点之间无法中转数据或中转 数据的速度降低的情况,降低了P2P系统的数据传输性能,另外过大的中转负担也会影响超级节点的正常运行,影响超级节点的用户对P2P数据共享的使用体验。
发明内容
本发明实施例提供一种数据中转方法,可以使更多的节点用于数据中转,从而提高P2P系统的传输性能。
本发明实施例提供一种数据中转系统,可以使更多的节点用于数据中转,从而提高P2P系统的传输性能。
本发明实施例提供一种P2P服务器,可以使更多的节点用于数据中转,从而提高P2P系统的传输性能。
本发明实施例提供一种P2P客户端,可以使更多的节点用于数据中转,从而提高P2P系统的传输性能。
为达到上述目的,本发明的技术方案具体是这样实现的:
一种数据中转方法,该方法包括:
没有公网IP的点对点P2P客户端判断节点自身的网络类型,若符合预设的增补超级节点的确定条件,则作为增补超级节点登录P2P服务器;
P2P服务器接收节点的数据中转请求,根据预设的规则,从超级节点和增补超级节点中选择出数据中转节点;
若选择增补超级节点作为数据中转节点,该增补超级节点与请求中转数据的节点间建立数据回转通道并通过该数据回传通道进行数据中转。
一种数据中转系统,该系统包括:
没有公网IP的P2P客户端,用于判断节点自身的网络类型,若符合预设的增补超级节点的确定条件,则作为增补超级节点登录P2P服务器;当所述P2P客户端作为增补超级节点登录P2P服务器,且被所述P2P服务器选为数据中转节点时,与请求中转数据的节点间建立数据回传通道,并通过该数据回传通道为请求中转数据的节点进行数据中转;
P2P服务器,用于接受所述P2P客户端作为增补超级节点登录,并接收节点的数据中转请求,根据预设的规则,从超级节点和增补超级节点中选择出数据中转节点。
一种P2P服务器,该P2P服务器包括:
节点登录模块,用于接受没有公网IP且自身的网络类型符合预设条件的P2P客户端作为增补超级节点登录;
中转节点选择模块,用于接收节点的数据中转请求,根据预设的规则,从超级节点和增补超级节点中选择出数据中转节点,并向选择作为数据中转节点的增补超级节点通知请求中转数据的节点的连接信息。
一种P2P客户端,该客户端包括:
网络类型判断模块,用于判断没有公网IP的P2P客户端所处节点的网络类型;
登录模块,用于在所述网络类型判断模块判断所述节点的网络类型符合预设的增补超级节点的确定条件时,将所述节点作为增补超级节点登录P2P服务器;
在所述增补超级节点被P2P服务器选择为数据中转节点时,还包括数据中转模块,用于建立与请求中转数据的节点间建立数据回传通道,并通过该数据回传通道进行数据中转。
由上述的技术方案可见,本发明的这种数据中转方法、系统、P2P客户端及P2P服务器,通过将符合预设的增补超级节点的确定条件的节点,作为增补超级节点登录P2P服务器,并在P2P服务器接收到节点的数据中转请求时,根据预设的规则,从超级节点和增补超级节点中选择出数据中转节点;并在选择增补超级节点作为数据中转节点时,通过增补超级节点为请求中转数据的节点进行数据中转,因此扩展了可用于数据中转的节点的选择范围,从而提高了P2P系统的传输性能。
附图说明
图1为现有P2P系统的结构图;
图2为现有P2P系统利用超级节点中转数据的流程图;
图3为本发明实施例的数据中转方法流程图;
图4为本发明实施例的数据中转系统使用增补超级节点进行数据中转的具体流程图;
图5为本发明实施例的数据中转系统结构图;
图6为本发明实施例的P2P客户端结构图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明实施例主要是利用STUN技术,使需要数据中转的节点可以向一部分没有公网IP的节点发送数据包,从而使这部分没有公网IP的节点可以作为增补超级节点用于数据中转,在超级节点不够的情况下,可以使用增补超级节点实现与超级节点相同的数据中转功能,扩展了可用于数据中转的节点的选择范围,从而提高P2P系统的传输性能。
图3为本发明实施例的数据中转方法流程图,如图3所示,该流程包括:
步骤301,P2P客户端判断节点自身的网络类型,若符合预设的增补超级节点的确定条件,则作为增补超级节点登录P2P服务器。
这里的增补超级节点是指非公网IP的超级节点但是也可以作为超级节点使用的节点,根据STUN协议的规定,除公网以外,理论上,网络类型为完全圆锥形NAT、IP限制圆锥形NAT、端口限制圆锥形NAT或者简单防火墙的节点都是可以发送UDP数据包的,因此只要是以上所列的网络类型,都可以作为超级节点使用,也就是说,增补超级节的确定点条件可以为:网络类型为完全圆锥形NAT、IP限制圆锥形NAT、端口限制圆锥形NAT或者简单防火墙中任意一种网络类型。当然,跟据实际的需要,也可以只允许 某一个或某几个网络类型的节点作为增补超级节点,比如只允许完全圆锥形NAT的节点作为增补超级节点,或只允许完全圆锥形NAT和端口限制圆锥形NAT的节点作为增补超级节点等等。
另外,P2P客户端判断节点自身的网络类型可以通过与公网上的STUN服务器交换数据包进行测试,具体测试方法不是本发明的讨论内容,这里就不详述了。
步骤302,P2P服务器接收节点的数据中转请求,根据预设的规则,从超级节点和增补超级节点中选择出数据中转节点。
预设的规则可以是将有公网IP的超级节点作为优先的选择对象,判断是否有超级节点可以作为数据中转节点,若没有超级节点可以作为数据中转节点,则选择增补超级节点作为数据中转节点。当然如果增补超级节点的带宽、硬件性能等其他指标很好,也可以在有超级节点的情况下直接选择增补超级节点作为数据中转节点,具体规则可以根据实际需要设定。
步骤303,若选择增补超级节点作为数据中转节点,则通过增补超级节点为请求中转数据的节点进行数据中转。
使用增补超级节点进行数据中转的过程与普通的超级节点是相似的,只不过,在进行具体数据中转前,由于增补超级节点受到NAT或简单防火墙的阻隔,不能直接将数据包发送给增补超级节点,因此增补超级节点要首先向需要数据中转的两个节点发送UDP数据包,从而预先建立与所述两个节点之间的数据回传通道,而后,请求数据中转的两个节点通过与增补超级节点之间建立的数据回传通道将需要中转的数据发送给增补超级节点,这一发送过程同时也建立了数据回传的通道,增补超级节点将两个节点发送的需要中转的数据分别向对方进行转发。
下面举个具体的例子,图4为本发明实施例的数据中转系统使用增补超级节点进行数据中转的具体流程图,如图4所示,在数据中转之前,节点1、节点2和增补超级节点需要登录P2P服务器,当然,各节点登录P2P服务器的先后顺序并不是一定的,图中顺序仅为示意。
节点1使用增补超级节点进行中转的具体流程包括:
步骤401,节点1向P2P服务器请求与节点2进行数据中转。
步骤402,P2P服务器选择一个增补超级节点为数据中转节点,并向增补超级节点发送节点1和节点2的连接信息,这里的连接信息包括节点1和节点2的IP地址和端口信息等。
步骤403,增补超级节点收到通知后,根据节点1和节点2的IP地址和端口信息,分别向节点1和节点2发送一个UDP数据包,此时由于NAT或者防火墙阻隔,节点1和节点2将收不到这个UDP数据包,但是通过这个发送过程,增补超级节点在自己的NAT或者防火墙上创建了二个合法的会话,即建立了与节点1和节点2的数据回传通道,以后来自节点1和节点2的数据包就可以被增补超级节点收到了。当然,图中是先向节点2发送,后向节点1发送,但实际上可以同时发送,也可以先发给节点1后发给节点2。发送UDP数据包可以是一个也可以是多个,可以根据实际需要而定。
步骤404,增补超级节点通知P2P服务器已经作好中转准备,可以进行数据中转。
步骤405,P2P服务器将增补超级节点连接信息发送给节点1。这里连接信息包括超级节点的IP地址和端口信息等。
步骤406~418是节点1与节点2通过增补超级节点进行数据中转的具体执行过程,该过程与采用超级节点进行数据中转的过程相同,这里不再赘述。
以上实施例中,节点的IP地址和端口在NAT存在时是指NAT上映射的IP地址和端口,不是节点实际的IP地址和端口。
以上介绍了本发明实施例的数据中转方法,下面将具体介绍本发明实施例的数据中转系统,图5为本发明实施例的数据中转系统结构图,其特征在于,该系统包括:P2P客户端501和P2P服务器502。
P2P客户端501用于判断节点自身的网络类型,若符合预设的增补超级节点的确定条件,则作为增补超级节点登录P2P服务器502;当作为增补超级节点登录P2P服务器502,且被P2P服务器502选为数据中转节点时,为请求中 转数据的节点进行数据中转。
P2P服务器502用于接受P2P客户端501作为增补超级节点登录,并接收节点的数据中转请求,根据预设的规则,从超级节点和增补超级节点中选择出数据中转节点;
其中P2P服务器502判断是否有普通超级节点可以作为数据中转节点,若没有普通超级节点可以作为数据中转节点,则选择增补超级节点作为数据中转节点。
较佳地,当P2P客户端501作为增补超级节点被所述P2P服务器502选为数据中转节点时,用于向需要数据中转的两个节点发送UDP数据包,打开与所述两个节点之间的数据回传通道,需要数据中转的两个节点通过与作为增补超级节点的P2P客户端501之间建立的数据回传通道将需要中转的数据发送给客户端501,作为增补超级节点的P2P客户端501将所述两个节点发送的需要中转的数据进行转发。
其中,P2P服务器501包括:节点登录模块503和中转节点选择模块504。
节点登录模块503用于接受P2P客户端501作为增补超级节点登录。
中转节点选择模块504用于接收节点的数据中转请求,选择增补超级节点作为数据中转节点。
所述中转节点选择模块504,判断是否有普通超级节点可以作为数据中转节点,若没有普通超级节点可以作为数据中转节点,则选择增补超级节点作为数据中转节点。
图6为本发明实施例的P2P客户端结构图,如图6所示,该P2P客户端601运行于节点中,包括:网络类型判断模块602和登录模块603。
网络类型判断模块602用于判断节点的网络类型。
登录模块603用于在所述网络类型判断模块判断节点的网络类型符合预设的增补超级节点的确定条件时,则将节点作为增补超级节点登录P2P服务器。
登录模块603具体用于在网络类型判断模块判断节点的网络类型为完全圆锥形NAT、IP限制圆锥形NAT、端口限制圆锥形NAT或者简单防火墙时,将 节点作为增补超级节点登录P2P服务器。
该P2P客户端601还可以包括数据中转模块604,用于在所述登录模块将节点作为增补超级节点登录P2P服务器后,若该节点被选择为数据中转节点,则向请求中转数据的两个节点发送UDP数据包,建立与所述两个节点之间的数据回传通道,并利用所述数据回传通道接收所述两个节点发送的需要中转的数据,并转发出去。
由上述的实施例可见,本发明的这种数据中转方法、系统、P2P客户端及P2P服务器,通过将符合预设的增补超级节点的确定条件的节点,作为增补超级节点登录P2P服务器,并在P2P服务器接收到节点的数据中转请求时,根据预设的规则,从超级节点和增补超级节点中选择出数据中转节点;并在选择增补超级节点作为数据中转节点时,通过增补超级节点为请求中转数据的节点进行数据中转,因此扩展了可用于数据中转的节点的选择范围,从而提高了P2P系统的传输性能。
所应理解的是,以上所述仅为本发明的较佳实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据中转方法,其特征在于,该方法包括:
点对点P2P客户端判断节点自身的网络类型,若符合预设的增补超级节点的确定条件,则作为增补超级节点登录P2P服务器;
P2P服务器接收节点的数据中转请求,根据预设的规则,从超级节点和增补超级节点中选择出数据中转节点;
若选择增补超级节点作为数据中转节点,该增补超级节点与请求中转数据的节点间建立数据回转通道并通过该数据回传通道进行数据中转;
所述增补超级节点的确定条件为:网络类型为完全圆锥形NAT、IP限制圆锥形NAT、端口限制圆锥形NAT或者简单防火墙中任意一种网络类型。
2.如权利要求1所述的数据中转方法,其特征在于,所述预设的增补超级节点的确定条件为:网络类型为完全圆锥形网络地址转换NAT、因特网协议IP限制圆锥形NAT、端口限制圆锥形NAT或者简单防火墙。
3.如权利要求1或2所述的数据中转方法,其特征在于,所述根据预设规则,从超级节点和增补超级节点中选择出数据中转节点,包括:
判断是否有超级节点可以作为数据中转节点,若没有超级节点可以作为数据中转节点,则选择增补超级节点作为数据中转节点。
4.如权利要求1或2所述的数据中转方法,其特征在于,所述建立数据回传通道并通过该数据回传通道进行数据中转,包括:
所述的该增补超级节点向请求中转数据的两个节点发送用户数据报协议UDP数据包,建立与所述两个节点之间的数据回传通道;
所述的两个节点通过所述数据回传通道将需要中转的数据发送给该增补超级节点,该增补超级节点对所述两个节点发送的需要中转的数据进行转发。
5.一种数据中转系统,其特征在于,该系统包括:
P2P客户端,用于判断节点自身的网络类型,若符合预设的增补超级节点的确定条件,则作为增补超级节点登录P2P服务器;当所述P2P客户端作为增补超级节点登录P2P服务器,且被所述P2P服务器选为数据中转节点时,与请求中转数据的节点间建立数据回传通道,并通过该数据回传通道为请求中转数据的节点进行数据中转;
P2P服务器,用于接受所述P2P客户端作为增补超级节点登录,并接收节点的数据中转请求,根据预设的规则,从超级节点和增补超级节点中选择出数据中转节点;
所述增补超级节点的确定条件为:网络类型为完全圆锥形NAT、IP限制圆锥形NAT、端口限制圆锥形NAT或者简单防火墙中任意一种网络类型;
其中,所述P2P服务器包括:
节点登录模块,用于接受没有公网IP且自身的网络类型符合预设条件的P2P客户端作为增补超级节点登录;
中转节点选择模块,用于接收节点的数据中转请求,根据预设的规则,从超级节点和增补超级节点中选择出数据中转节点,并向选择作为数据中转节点的增补超级节点通知请求中转数据的节点的连接信息;
所述P2P客户端包括:
网络类型判断模块,用于判断P2P客户端所处节点的网络类型;
登录模块,用于在所述网络类型判断模块判断所述节点的网络类型符合预设的增补超级节点的确定条件时,将所述节点作为增补超级节点登录P2P服务器;
在所述增补超级节点被P2P服务器选择为数据中转节点时,还包括数据中转模块,用于建立与请求中转数据的节点间建立数据回传通道,并通过该数据回传通道进行数据中转。
6.如权利要求5所述的数据中转系统,其特征在于,所述P2P客户端判断自身网络类型为完全圆锥形NAT、IP限制圆锥形NAT、端口限制圆锥形NAT或者简单防火墙时,将节点作为增补超级节点登录P2P服务器。
7.如权利要求5或6所述的数据中转系统,其特征在于,所述P2P服务器判断是否有超级节点可以作为数据中转节点,若没有超级节点可以作为数据中转节点,则选择增补超级节点作为数据中转节点。
8.如权利要求5或6所述的数据中转系统,其特征在于,所述P2P客户端作为增补超级节点被所述P2P服务器选为数据中转节点时,向请求中转数据的两个节点发送UDP数据包,打开与所述两个节点之间的数据回传通道;
两个节点通过所述数据回传通道将需要中转的数据发送给增补超级节点,增补超级节点对所述两个节点发送的需要中转的数据进行转发。
9.一种P2P服务器,其特征在于,该P2P服务器包括:
节点登录模块,用于接受自身的网络类型符合预设条件的P2P客户端作为增补超级节点登录;
中转节点选择模块,用于接收节点的数据中转请求,根据预设的规则,从超级节点和增补超级节点中选择出数据中转节点,并向选择作为数据中转节点的增补超级节点通知请求中转数据的节点的连接信息;
所述增补超级节点的确定条件为:网络类型为完全圆锥形NAT、IP限制圆锥形NAT、端口限制圆锥形NAT或者简单防火墙中任意一种网络类型。
10.如权利要求9所述的P2P服务器,其特征在于,所述中转节点选择模块,判断是否有普通超级节点可以作为数据中转节点,若没有普通超级节点可以作为数据中转节点,则选择增补超级节点作为数据中转节点。
11.一种P2P客户端,其特征在于,该客户端包括:
网络类型判断模块,用于判断P2P客户端所处节点的网络类型;
登录模块,用于在所述网络类型判断模块判断所述节点的网络类型符合预设的增补超级节点的确定条件时,将所述节点作为增补超级节点登录P2P服务器;
在所述增补超级节点被P2P服务器选择为数据中转节点时,还包括数据中转模块,用于建立与请求中转数据的节点间建立数据回传通道,并通过该数据回传通道进行数据中转;
所述增补超级节点的确定条件为:网络类型为完全圆锥形NAT、IP限制圆锥形NAT、端口限制圆锥形NAT或者简单防火墙中任意一种网络类型。
12.如权利要求11所述的P2P客户端,其特征在于,所述登录模块,用于在网络类型判断模块判断节点的网络类型为完全圆锥形NAT、IP限制圆锥形NAT、端口限制圆锥形NAT或者简单防火墙时,将所述节点作为增补超级节点登录P2P服务器。
13.如权利要求11或12所述的P2P客户端,其特征在于,所述客户端的数据中转模块,用于向请求中转数据的两个节点发送UDP数据包,建立与所述两个节点之间的数据回传通道,并利用所述数据回传通道接收所述两个节点发送的需要中转的数据,并进行转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101110075A CN101282302B (zh) | 2008-05-29 | 2008-05-29 | 数据中转方法、系统、客户端及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101110075A CN101282302B (zh) | 2008-05-29 | 2008-05-29 | 数据中转方法、系统、客户端及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101282302A CN101282302A (zh) | 2008-10-08 |
CN101282302B true CN101282302B (zh) | 2012-05-02 |
Family
ID=40014585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101110075A Active CN101282302B (zh) | 2008-05-29 | 2008-05-29 | 数据中转方法、系统、客户端及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101282302B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101674330A (zh) * | 2009-10-09 | 2010-03-17 | 中兴通讯股份有限公司 | 业务交互方法及装置 |
CN103312752B (zh) * | 2012-03-13 | 2016-07-06 | 中国联合网络通信集团有限公司 | 点对点网络信息分发方法、下载节点、索引服务器及系统 |
CN104518959B (zh) * | 2013-09-30 | 2018-03-20 | 张永杰 | 一种设备间通信的方法及装置 |
CN105791432A (zh) * | 2016-04-26 | 2016-07-20 | 深圳市汇海威视科技有限公司 | 一种p2p通信方法和p2p通信系统 |
CN110266828A (zh) * | 2019-06-11 | 2019-09-20 | 华为技术有限公司 | 一种建立端到端网络连接的方法、装置及网络系统 |
CN112367388B (zh) * | 2020-10-30 | 2024-05-24 | 北京北信源软件股份有限公司 | 服务器与客户端并发通信的方法及装置 |
CN113301170B (zh) * | 2021-07-27 | 2021-10-19 | 湖南三湘银行股份有限公司 | 基于通信节点的数据处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842064A (zh) * | 2005-03-29 | 2006-10-04 | 腾讯科技(深圳)有限公司 | 一种即时通信中数据传输的方法及系统 |
CN101047580A (zh) * | 2006-03-28 | 2007-10-03 | 腾讯科技(深圳)有限公司 | 创建点对点数据通道的方法 |
CN101150427A (zh) * | 2006-09-20 | 2008-03-26 | 腾讯科技(深圳)有限公司 | 一种确定归属超级节点的实现方法与系统 |
-
2008
- 2008-05-29 CN CN2008101110075A patent/CN101282302B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842064A (zh) * | 2005-03-29 | 2006-10-04 | 腾讯科技(深圳)有限公司 | 一种即时通信中数据传输的方法及系统 |
CN101047580A (zh) * | 2006-03-28 | 2007-10-03 | 腾讯科技(深圳)有限公司 | 创建点对点数据通道的方法 |
CN101150427A (zh) * | 2006-09-20 | 2008-03-26 | 腾讯科技(深圳)有限公司 | 一种确定归属超级节点的实现方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101282302A (zh) | 2008-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101282302B (zh) | 数据中转方法、系统、客户端及服务器 | |
CN101557388B (zh) | 一种基于UPnP和STUN技术相结合的NAT穿越方法 | |
US9003042B2 (en) | P2P file transmission system and method | |
US7558249B2 (en) | Communication terminal, and communication method | |
TWI408936B (zh) | 網路穿透方法及網路通訊系統 | |
CN100521606C (zh) | 在两个用户代理之间建立对等连接的方法 | |
CN100521663C (zh) | 点对点通信中穿越网络地址转换的方法 | |
US20140052870A1 (en) | Nat traversal for media conferencing | |
US20130254415A1 (en) | Routing requests over a network | |
TWI599201B (zh) | 網路系統及建立資料連線的方法 | |
US20200389519A1 (en) | Computer-implemented system and method for propagation and communication of data in a network such as a blockchain network | |
CN101248647A (zh) | 用于本地对等通信量的方法和系统 | |
CN111435922B (zh) | 一种带宽共享方法 | |
CN101321128B (zh) | 通信设备、通信网络系统和通信方法 | |
Wolinsky et al. | Addressing the P2P bootstrap problem for small overlay networks | |
CN103618801A (zh) | 一种p2p资源共享的方法、设备及系统 | |
US20110087775A1 (en) | Peer-to-peer control device and transmission overlay management method | |
CN101834775A (zh) | 媒体流传输方法、系统及用户终端 | |
CN100488201C (zh) | 一种基于路由的链路备份方法 | |
CN113542244B (zh) | 微服务调用方法、装置、服务器和系统 | |
CN103414800A (zh) | 一种nat穿越中分布式中继服务器的分配和选择方法及系统 | |
CN109639565B (zh) | 一种去中心化的即时通信多服务节点互联互通系统 | |
Bloebaum et al. | CoNSIS: Demonstration of SOA interoperability in heterogeneous tactical networks | |
CN104756462A (zh) | 用于在限制性防火墙后进行tcp turn操作的方法和系统 | |
US20190141009A1 (en) | Session moderator for turn-pattern tcp-packet relay with websocket instantiation |
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 |