CN100479415C - 一种实现数据通讯的系统及其方法 - Google Patents

一种实现数据通讯的系统及其方法 Download PDF

Info

Publication number
CN100479415C
CN100479415C CNB2005100749482A CN200510074948A CN100479415C CN 100479415 C CN100479415 C CN 100479415C CN B2005100749482 A CNB2005100749482 A CN B2005100749482A CN 200510074948 A CN200510074948 A CN 200510074948A CN 100479415 C CN100479415 C CN 100479415C
Authority
CN
China
Prior art keywords
communication node
node
super
super node
communication
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
Application number
CNB2005100749482A
Other languages
English (en)
Other versions
CN1878118A (zh
Inventor
朱冶
张宝和
吴波
伍海君
方斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CNB2005100749482A priority Critical patent/CN100479415C/zh
Priority to CA2611146A priority patent/CA2611146C/en
Priority to EP06722080.6A priority patent/EP1890424B1/en
Priority to PCT/CN2006/000428 priority patent/WO2006131037A1/zh
Priority to ES06722080.6T priority patent/ES2550431T3/es
Publication of CN1878118A publication Critical patent/CN1878118A/zh
Priority to US11/951,787 priority patent/US7720978B2/en
Application granted granted Critical
Publication of CN100479415C publication Critical patent/CN100479415C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1093Some peer nodes performing special functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment

Abstract

本发明公开了一种实现数据通讯的系统及方法,将系统中的部分通讯节点确定为超级节点,各个超级节点根据各自的路由表进行消息转发以实现:在通讯节点登录系统时,通过各个超级节点之间的消息转发,将该登录系统通讯节点的网络信息保存到与登录系统的通讯节点在逻辑上最临近的超级节点中;以及,在源通讯节点查询目的通讯节点时,通过超级节点层中的各个超级节点之间的消息转发,将目的通讯节点的网络信息由与该目的通讯节点在逻辑上最临近的超级节点返回给源通讯节点。源通讯节点利用获得的目的通讯节点的网络信息,建立与目的通讯节点的连接,利用该连接实现数据通讯。

Description

一种实现数据通讯的系统及其方法
技术领域
本发明涉及数据通讯技术领域,尤其涉及一种采用点对点(P2P)技术实现多方数据通讯的系统及其方法。
背景技术
当前,随着数据通讯技术的不断发展,已经能够实现多个通讯方之间的多方数据通讯。例如,可以在多个通讯方之间进行音视频数据的传输,从而实现这些通讯方之间的影音交互。
在现有技术中,对于各个通讯方例如端口号和IP地址的网络信息采用统一管理方式,采用一个网络信息管理服务器统一保存和管理各个通讯方的网络信息,在数据通讯过程中,各个通讯方从网络信息管理服务器获得对方的网络信息,以根据该网络信息与对方建立数据连接,实现和对方的数据通讯。
采用如上方式,虽然能够实现数据通讯,但是,由于采用网络信息管理服务器对各个通讯方的网络信息进行统一管理,因此,一旦该服务器发生故障,则会导致大量通讯方无法获得对方的网络信息,无法建立和目的通讯方的数据连接,从而使得数据通讯在很大范围内不能得以实现。
另外,在现有技术中,一部分数据通讯是通过中转服务器中转数据得以实现。采用中转服务器转发数据,虽然能够实现数据通讯,但是,具有如下缺点:
由于在数据通讯过程中,数据需要通过中转服务器进行中转,而所中转的数据通常又都是例如音频、视频等数据量较大的数据,因此,需要中转服务器具有较大的带宽,从而增加了中转服务器的实现成本,另外,由于中转服务器自身带宽毕竟有限,采用中转服务器只能支持有限数量通讯方之间的数据中转,如果通讯方数量较多,则需投入大量的中转服务器,从而进一步增加了数据通讯的实现成本。此外,如果中转服务器在数据通讯过程中发生故障,则会导致通过该中转服务器转发所进行的多方数据通讯中断,从而导致一定范围内的数据通讯瘫痪。
发明内容
有鉴于此,本发明的主要目的在于提供一种实现数据通讯的系统及其方法,无须对各个通讯方的网络信息采用统一管理的方式,从而避免由于该统一管理方式所带来的由于网络信息管理服务器发生故障而使得数据通讯在较大范围内无法实现的问题,另外,本发明的目的还在于在数据通讯过程中不采用中转服务器转发数据,从而避免由此带来的成本增加、容易导致通讯瘫痪的问题。
为实现上述目的,本发明提供了一种实现数据通讯的系统,该系统包括各个通讯节点,通讯节点之间根据网络信息建立连接并利用该连接实现数据通讯,该系统包括超级节点层,该超级节点层中包括至少两个超级节点,其中:
所述通讯节点登录与之物理上最临近的超级节点并发起查询目的通讯节点的请求,各超级节点利用各自所保存的路由信息,将登录的通讯节点的网络信息依次转发并记录到与登录的通讯节点逻辑上最接近的超级节点中;各个超级节点用于保存与之逻辑上最临近的通讯节点的网络信息,还用于根据各自所保存的路由信息和所接收到的查询目的通讯节点的请求进行超级节点之间的消息转发,直至将该查询目的通讯节点的请求转发到与目的通讯节点逻辑上最接近的超级节点,所述与目的通讯节点逻辑上最接近的超级节点将其保存的目的通讯节点的网络信息发送给源通讯节点。
其中,所述超级节点为所述通讯节点中的部分通讯节点。
其中,所述超级节点是网络类型为公网类型或者混合网络地址转换类型的通讯节点。
其中,所述超级节点为:
带宽和在线时长大于等于设定的带宽和在线时长的通讯节点。
其中,该系统进一步包括中央服务器,用于收集各个超级节点的网络信息,并指导各个超级节点更新自身的路由表。
本发明还提供了一种实现数据通讯的方法,该方法包括:
步骤A:源通讯节点登录预先建立的与其物理上最临近的超级节点,各超级节点利用各自所保存的路由信息,将登录的通讯节点的网络信息依次转发并记录到与登录的通讯节点逻辑上最接近的超级节点中;所述源通讯节点向所登录的超级节点发送查询目的通讯节点的请求,自该超级节点开始,各超级节点之间利用各自所保存的路由信息,依次转发该查询请求,直至将该查询请求转发到与目的通讯节点逻辑上最接近的超级节点,所述与目的通讯节点逻辑上最接近的超级节点将其保存的目的通讯节点的网络信息返回给源通讯节点;
步骤B:源通讯节点利用得到的目的通讯节点的网络信息,建立与目的通讯节点之间的连接,通过该连接传输数据,实现数据通讯。
其中,步骤A中的源通讯节点登录预先建立的与其物理上最临近的超级节点包括:
步骤a:将系统中的部分通讯节点确定为超级节点;其中,每个超级节点中保存有与之连接的通讯节点或超级节点的路由信息;
步骤b:通讯节点登录与之物理上最临近的超级节点,自该超级节点开始,各个超级节点之间利用各自所保存的路由信息,依次转发登录的通讯节点的网络信息,直至将登录的通讯节点的网络信息转发并记录到与登录的通讯节点逻辑上最接近的超级节点中。
其中,步骤a中所述将系统中的部分通讯节点确定为超级节点包括:
步骤a1:依次读取网络中各个通讯节点的信息;
步骤a2:根据读取的当前通讯节点的信息,判断当前通讯节点的网络类型是否为公网或混合网络地址转换,如果是,则继续执行步骤a3,否则,确定当前通讯节点不是超级节点,然后返回步骤a1,继续对其它通讯节点进行判断;
步骤a3:判断当前通讯节点的带宽及在线时长是否大于等于预先设定的带宽及在线时长,如果是,则确定当前通讯节点为超级节点,否则,确定当前通讯节点不是超级节点,然后返回步骤a1,继续对其它通讯节点进行判断。
其中,所述与通讯节点物理上最临近的超级节点称为该通讯节点的物理超级节点,将所述与通讯节点逻辑上最临近的超级节点称为该通讯节点的逻辑超级节点,步骤b包括:
步骤b1:通讯节点登录系统后,登录到该通讯节点的物理超级节点上,并将其网络信息发送到该物理超级节点上;
步骤b2:该物理超级节点根据该登录通讯节点网络信息中的ID号码,查找得到其保存的各个ID号码中与该ID号码最接近的ID号码,并将登录通讯节点的网络信息转发到该最接近的ID号码所对应的超级节点,网络信息转发到的超级节点重复上述转发过程,直至将所述网络信息转发至所述通讯节点的逻辑超级节点上并保存。
其中,所述与通讯节点物理上最临近的超级节点称为该通讯节点的物理超级节点,将所述与通讯节点逻辑上最临近的超级节点称为该通讯节点的逻辑超级节点,步骤A包括:
步骤A1:源通讯节点向该源通讯节点的物理超级节点发送查询请求,其中,该查询请求中包括目的通讯节点的ID号码;
步骤A2:所述物理超级节点在本地查找是否保存有目的通讯节点的网络信息,如果存在,则直接将该网络信息返回给源通讯节点,并结束本流程,否则,该物理超级节点根据目的通讯节点的ID号码,在该物理超级节点所保存的各个ID号码中查找与该ID号码最接近的ID号码,然后,将查询请求转发到该最接近的ID号码所对应的超级节点,查询请求转发到的超级节点重复上述转发过程,直至将查询请求转发到所述目的通讯节点的逻辑超级节点;
步骤A3:所述目的通讯节点的逻辑超级节点将其保存的目的通讯节点的网络信息返回给源通讯节点。
其中,步骤B所述源通讯节点建立与目的通讯节点之间的连接包括:
源通讯节点根据获取得到的目的通讯节点的网络信息中的内网IP地址和端口号,直接向目的通讯节点的内网IP地址和端口号发送连接请求,建立源通讯节点和目的通讯节点之间的连接。
其中,步骤A之前,该方法进一步包括:
对所述通讯节点进行简单穿越方式测试,获取通讯节点的外网IP地址和端口号,将该外网IP地址和端口号添加到该通讯节点的网络信息中;
步骤B所述源通讯节点建立与目的通讯节点之间的连接包括:
源通讯节点根据获取得到的目的通讯节点的网络信息中的外网IP地址和端口号,直接向目的通讯节点的外网IP地址和端口号发送连接请求,建立源通讯节点和目的通讯节点之间的连接。
其中,步骤A之前,该方法进一步包括:
对所述通讯节点进行简单穿越方式测试,获取通讯节点的外网IP地址、端口号、和网络类型,将该外网IP地址、端口号、和网络类型添加到该通讯节点的网络信息中;
步骤B所述源通讯节点建立与目的通讯节点之间的连接包括:
源通讯节点根据自身的网络类型以及目的通讯节点的网络类型判断采用何种方式进行连接:
如果一方是公网另一方是混合网络地址转换类型,则混合网络地址转换类型一方让另一方主动连接过来;如果双方既不是公网也不是混合网络地址转换类型,则源通讯节点发送穿越请求给目的通讯节点的物理超级节点,该物理超级节点将该请求分别转发给源通讯节点和目的通讯节点,源通讯节点和目的通讯节点接收到请求后,分别向对方的外网IP地址和端口号发送UDP穿越的数据包,以实现源通讯节点和目的通讯节点之间建立连接。
其中,步骤B所述源通讯节点建立与目的通讯节点之间的连接包括:
同时采用内网直连、外网直连、以及通过UDP穿越的方式建立连接,如果任何一种方式建立连接成功,则停止采用其余方式建立连接。
其中,如果所述三种方式均不能建立连接,该方法进一步包括:
源通讯节点发送查找中转种子的请求到其所连接的超级节点上,超级节点通过中央服务器或者其它超级节点获取能够进行数据转发的通讯节点的信息,然后将该信息返回给源通讯节点,源通讯节点根据该信息建立中转通道,与目的通讯节点建立连接。
其中,源通讯节点建立中转通道包括:
建立多条中转通道,其中的一条通道作为主通道,其余通道作为备份通道;
如果进行数据通讯的主通道断开连接,则立即将数据通讯切换到其余备份通道。
其中,该方法进一步包括对各个超级节点中的路由信息进行更新。
其中,所述对路由信息进行更新包括:
超级节点定期向中央服务器发送路由表更新请求,中央服务器返回最新的路由表给该超级节点。
其中,所述对路由信息进行更新包括:
各个超级节点之间相互交换路由信息以不断更新各自的路由表。
可见,采用本发明,将各个通讯方的网络信息分散在与各自逻辑上最接近的超级节点中进行保存,从而实现对于各个通讯方网络信息的分散管理。在此情况下,即使保存有网络信息的某个超级节点发生故障,则也只会影响到与该超级节点逻辑上最接近的通讯节点的数据通讯,不会造成数量较多的通讯方无法实现建立数据连接,从而提高了数据通讯实现的可靠性。另外,在本发明中,数据不再经过中转服务器转发,从而避免了由于采用中转服务器转发多个通讯方的数据而带来的成本增加、容易导致大范围数据瘫痪的问题。
附图说明
图1为本发明所提供的系统的示意图。
图2为实现本发明的流程图。
图3为实现本发明步骤201的流程图。
图4为实现本发明步骤202的流程图。
图5为实现本发明步骤203的流程图。
具体实施方式
本发明为一种实现数据通讯的系统及其方法,将通讯系统中的部分通讯节点(peer)确定为超级节点(super peer),各个超级节点组成超级节点层;在通讯节点登录系统时:每个通讯节点登录与其物理上最临近的超级节点,该物理上最临近的超级节点通过超级节点之间的转发,将该通讯节点的网络信息登记到与该通讯节点的ID最临近的超级节点中;在源通讯节点需要向目的通讯节点发送数据时:源通讯节点向与其物理上最临近的超级节点发送查询请求,该物理上最临近的超级节点通过超级节点之间的转发,首先在本地进行查找,如果查找不到目的通讯节点的网络信息,则将该查询请求发送至与目的通讯节点的ID最临近的超级节点上,该与目的通讯节点的ID最临近的超级节点将目的通讯节点的网络信息返回给源通讯节点,以使得源通讯节点能够根据该网络信息建立与目的通讯节点之间的网络连接,从而实现数据通讯。
下面结合附图对本发明进行详细描述。
参见图1,本发明所提供的系统包括:
各个用于进行数据通讯的通讯节点,其中,包括超级节点层,该层中的各个超级节点组成图1所示的超级节点层,超级节点层中的各个超级节点用于进行消息的转发以实现:
在通讯节点登录系统时,通过超级节点层中的各个超级节点之间的消息转发,将该登录系统通讯节点的网络信息保存到与登录系统的通讯节点在逻辑上最临近的超级节点中;
以及,在源通讯节点查询目的通讯节点时,通过超级节点层中的各个超级节点之间的消息转发,将目的通讯节点的网络信息由与该目的通讯节点在逻辑上最临近的超级节点返回给源通讯节点。
其中,在该系统中,各个超级节点具有如下属性:
1、为了保证进行数据传输的通讯节点都能够登录到超级节点上,因此,超级节点的网络类型必须为公网类型或者混合网络地址转换(Full Cone)类型;
2、为了提高整个网络的效率,超级节点的带宽和在线时长需要大于等于预先设定的带宽和在线时长;其中,预先设定的在线时长可以根据实际情况进行改变,在网络形成初期,该预先设定的在线时长较小,而在网络形成较长时间后,该预先设定的在线时长相应地也应设定为较大的值。
其中,每个超级节点都分别具有一张路由表,在该路由表中保存着与该超级节点连接的其它超级节点的ID和网络信息,所述的网络信息包括:网络类型、内外网IP地址和端口号,利用该路由表,超级节点层中的各个超级节点能够根据登录系统的通讯节点或者目的通讯节点的ID号,在路由表中查找该超级节点范围内与所述通讯节点在ID号上最接近的超级节点,然后,路由到该超级节点上,该超级节点再利用其上的路由表进行如上所述的查找及路由,直至路由到与所述通讯节点在ID号上最接近的超级节点上。
参见图1,本发明所提供的系统还可以包括中央Server,该中央Server包括一个或一个以上的服务器,用于收集各个超级节点的网络信息,并指导各个超级节点更新自身的路由表;本发明所提供的系统也可不具有该Server层,并不影响本发明的实现。
下面结合附图,对本发明所提供的方法进行详细介绍。
参见图2,本发明所提供的方法包括:
步骤201:将系统中的部分通讯节点确定为超级节点;其中,每个超级节点中保存有与之连接的通讯节点或超级节点的路由信息;
步骤202:通讯节点登录与之物理上最临近的超级节点,自该超级节点开始,各个超级节点之间利用各自所保存的路由信息,依次转发登录的通讯节点的网络信息,直至将登录的通讯节点的网络信息转发并记录到与登录的通讯节点逻辑上最接近的超级节点中;
步骤203:源通讯节点向与其物理上最临近的超级节点发送查询目的通讯节点的请求,自该超级节点开始,各个超级节点之间利用各自所保存的路由信息,依次转发该查询请求,直至将该查询请求转发到与目的通讯节点逻辑上最接近的超级节点中,该超级节点将其保存的目的通讯节点的网络信息返回给源通讯节点;
步骤204:源通讯节点利用得到的目的通讯节点的网络信息,建立与目的通讯节点之间的连接,通过该连接传输数据,实现数据通讯。
下面结合具体实例,对以上步骤的具体实现进行详细介绍。其中,在该实例中,采用ID号作为各个通讯节点或超级节点的路由信息,所述与通讯节点逻辑上最接近的超级节点为ID号与该通讯节点最接近的超级节点;并且,为了描述方便,将所述与通讯节点物理上最临近的超级节点称为该通讯节点的物理超级节点(PSP),将所述与通讯节点逻辑上最临近的超级节点称为该通讯节点的逻辑超级节点(LSP)。
(一)步骤201的具体实现:
参见图3,在本发明实施例中,通过以下步骤实现步骤201:
步骤301:依次读取网络中各个通讯节点的信息;
步骤302:根据读取的当前通讯节点的信息,判断当前通讯节点的网络类型是否为公网或Full Cone,如果是,则继续执行步骤303,否则,确定当前通讯节点不是超级节点,然后返回步骤301,继续对其它通讯节点进行判断;
步骤303:判断当前通讯节点的带宽及在线时长是否大于等于预先设定的带宽及在线时长,如果是,则确定当前通讯节点为超级节点,然后返回步骤301,继续对其它通讯节点进行判断;否则,确定当前通讯节点不是超级节点,然后返回步骤301,继续对其它通讯节点进行判断;其中,在本步骤中,预先设定的在线时长可以根据网络运行情况改变:在网络形成初期,该预先设定的在线时长较小,在网络运行一段时间之后,该预先设定的在线时长较长。
(二)步骤202的具体实现:
参见图4,在本发明实施例中,实现步骤202需要以下步骤:
步骤401:通讯节点登录系统后,通过向该登录通讯节点的PSP发送Pub消息登录到该通讯节点的PSP上,并将该登录通讯节点的网络信息发送到该PSP上;
步骤402:所述的PSP根据该登录通讯节点网络信息中的ID号码,首先在该PSP本地查找是否保存有目的通讯节点的网络信息,如果存在,则直接将该网络信息返回给源通讯节点,并结束本流程,否则,在该PSP所保存的各个ID号码中查找与该ID号码最接近的ID号码,然后,通过转发Pub消息,将登录通讯节点的网络信息路由到该最接近的ID号码所对应的超级节点;
步骤403:当前路由到的超级节点在其所保存的各个ID号码中,查找得到与登录通讯节点最接近的ID号码,然后,通过转发Pub消息,将登录通讯节点的网络信息路由到该最接近的ID号码所对应的超级节点上;
步骤404:当前路由到的超级节点判断其保存的ID号码中是否还有更接近登录通讯节点的ID号码的ID号码,如果是,则返回步骤403,直至查找得到网络的所有通讯节点的ID号码中与登录通讯节点的ID号码最接近的ID号码,然后执行步骤405,否则,直接执行步骤405;
步骤405:当前路由到的超级节点作为登录通讯节点的LSP保存登录通讯节点的网络信息。
(三)步骤203的具体实现:
参见图5,实现步骤203需要以下步骤:
步骤501:源通讯节点向该源通讯节点的PSP发送查询请求,其中,该查询请求中包括目的通讯节点的ID号码;
步骤502:源通讯节点的PSP根据目的通讯节点的ID号码,在该PSP所保存的各个ID号码中查找与该ID号码最接近的ID号码,然后,将查询请求路由到该最接近的ID号码所对应的超级节点;
步骤503:当前路由到的超级节点在其所保存的各个ID号码中,查找得到与目的通讯节点最接近的ID号码,然后,将查询请求路由到该最接近的ID号码所对应的超级节点上;
步骤504:当前路由到的超级节点判断其保存的ID号码中是否还有更接近目的通讯节点的ID号码的ID号码,如果是,则返回步骤503,直至查找得到网络的所有通讯节点的ID号码中与目的通讯节点的ID号码最接近的ID号码,然后执行步骤505,否则,直接执行步骤505;
步骤505:当前路由到的超级节点作为目的通讯节点的LSP,将其所保存的目的通讯节点的网络信息返回给源通讯节点。
(四)步骤204的具体实现:
在本发明实施例中,可以采用如下方式建立源通讯节点与目的通讯节点之间的连接:
1、通过内网直连建立连接:
源通讯节点根据获取得到的目的通讯节点的网络信息中的内网IP地址和端口号,直接向目的通讯节点的内网IP地址和端口号发送连接请求,从而建立源通讯节点和目的通讯节点之间的连接;其中,所述连接请求可以通过TCP和UDP两种形式进行发送,可以根据具体应用选择其中的一种来发送连接请求:对于音视频数据通讯,通常设置为优先采用用户数据报协议(UDP)方式发送连接请求,对于一些传输可靠性要求较高的应用,则优先采用传输控制协议(TCP)方式发送连接请求。在具体应用中,如果优先采用TCP发送连接请求,则在采用TCP方式无法建立连接的情况下,还可进一步尝试采用UDP方式尝试建立连接,同理,如果优先采用UDP方式发送连接请求而无法建立连接时,同样可以进一步采用TCP方式尝试建立连接。
2、通过外网直连建立连接:
采用此种方式建立连接,需要在通讯节点登录系统前,进行UDP对网络地址转换(NAT)的简单穿越方式(Stun)测试,以获取该通讯节点的外网IP地址和端口号,该登录通讯节点将获取得到的外网IP地址和端口号添加到其网络信息中;在此情况下,源通讯节点所获取的目的通讯节点的网络信息中包括有该目的通讯节点的外网IP地址和端口号,源通讯节点直接向目的通讯节点的外网IP地址和端口号发送连接请求,从而建立源通讯节点和目的通讯节点之间的连接,具体实现过程与上述通过内网直连方式建立连接的过程类似,在此不再赘述;
3、通过UDP穿越方式建立连接:
采用此种方式建立连接,需要在通讯节点登录系统前,进行Stun测试,以获取该通讯节点的外网IP地址、端口号、和网络类型;在此情况下,源通讯节点所获取的目的通讯节点的网络信息中包括有该目的通讯节点的外网IP地址、端口号、和网络类型,源通讯节点根据自身的网络类型以及目的通讯节点的网络类型判断采用何种方式进行连接:
如果一方是公网另一方是FullCone,则FullCone一方可以让另一方主动连接过来;如果双方既不是公网也不是FullCone,则源通讯节点发送穿越请求给目的通讯节点的PSP,目的通讯节点的PSP将该请求分别转发给源通讯节点和目的通讯节点,源通讯节点和目的通讯节点接收到请求后,分别向对方的外网IP地址和端口号发送UDP穿越的数据包,以实现源通讯节点和目的通讯节点之间建立连接。
在实际应用中,上述三种连接方式同时进行,如果任何一种方式建立成功,则停止采用其余的连接方式建立连接,如果三种连接方式均不能建立连接,则源通讯节点发送查找中转种子的请求到其所连接的超级节点上,超级节点通过中央Server或者其它超级节点获取能够进行数据转发的通讯节点的信息,然后将该信息返回给源通讯节点,源通讯节点根据该信息建立中转通道,与目的通讯节点建立连接;其中,如果有多个通讯节点能够进行数据转发,则源通讯节点可以根据这些通讯节点的信息建立多条中转通道,其中的一条通道作为主通道,其余通道作为备份通道,如果主通道断开连接则立即切换到其余备份通道,从而减少由于第三方通讯节点退出而引起的双方通讯失败的问题。
在实际应用中,由于系统中的各个通讯节点会出现退出系统以及登录系统的变化,因此,需要对各个超级节点中的路由表进行更新,在本发明实施例中,可以采用以下两种方式进行路由表更新:
1、在有中央Server的情况下,各个超级节点与中央Server保持连接,中央Server保存有所有超级节点的信息,超级节点定期向中央Server发送路由表更新请求,中央Server返回最新的路由表给该超级节点;
2、在没有中央Server的情况下,各个超级节点之间相互交换路由信息,从而不断更新各自的路由表。
采用本发明提供的系统和方法,能够实现多方通讯,其具体应用主要有两种方式:
(1)会议模式,主席对各个参会人员的语音处理后中转给其他参会人员,以实现多人语音,在其他人需要加入会议时,首先查找主席,然后通过上面的方式和主席建立连接,将自己的数据发送给主席,主席进行处理后转发给其他人,主席可以对不同人的语音进行混音,然后将混音后的数据发送给其他人。
(2)点对点模式,每两点间建立数据通道,如多人视频:
用户采用本发明提供的方法直接和所有需要进行数据通讯的用户建立,然后利用该连接发送应用数据。如多人的视频会议,A希望看到B和C的视频,A分别和B、C建立数据通道,以实现多人视频通讯。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (19)

1、一种实现数据通讯的系统,该系统包括各个通讯节点,通讯节点之间根据网络信息建立连接并利用该连接实现数据通讯,其特征在于,该系统包括超级节点层,该超级节点层中包括至少两个超级节点,其中:
所述通讯节点登录与之物理上最临近的超级节点并发起查询目的通讯节点的请求,各超级节点利用各自所保存的路由信息,将登录的通讯节点的网络信息依次转发并记录到与登录的通讯节点逻辑上最接近的超级节点中;各个超级节点用于保存与之逻辑上最临近的通讯节点的网络信息,还用于根据各自所保存的路由信息和所接收到的查询目的通讯节点的请求进行超级节点之间的消息转发,直至将该查询目的通讯节点的请求转发到与目的通讯节点逻辑上最接近的超级节点,所述与目的通讯节点逻辑上最接近的超级节点将其保存的目的通讯节点的网络信息发送给源通讯节点。
2、根据权利要求1所述的系统,其特征在于,所述超级节点为所述通讯节点中的部分通讯节点。
3、根据权利要求1或2所述的系统,其特征在于,所述超级节点是网络类型为公网类型或者混合网络地址转换类型的通讯节点。
4、根据权利要求1或2所述的系统,其特征在于,所述超级节点为:
带宽和在线时长大于等于设定的带宽和在线时长的通讯节点。
5、根据权利要求1所述的系统,其特征在于,该系统进一步包括中央服务器,用于收集各个超级节点的网络信息,并指导各个超级节点更新自身的路由表。
6、一种实现数据通讯的方法,其特征在于,该方法包括:
步骤A:源通讯节点登录预先建立的与其物理上最临近的超级节点,各超级节点利用各自所保存的路由信息,将登录的通讯节点的网络信息依次转发并记录到与登录的通讯节点逻辑上最接近的超级节点中;所述源通讯节点向所登录的超级节点发送查询目的通讯节点的请求,自该超级节点开始,各超级节点之间利用各自所保存的路由信息,依次转发该查询请求,直至将该查询请求转发到与目的通讯节点逻辑上最接近的超级节点,所述与目的通讯节点逻辑上最接近的超级节点将其保存的目的通讯节点的网络信息返回给源通讯节点;
步骤B:源通讯节点利用得到的目的通讯节点的网络信息,建立与目的通讯节点之间的连接,通过该连接传输数据,实现数据通讯。
7、根据权利要求6所述的方法,其特征在于,步骤A中的源通讯节点登录预先建立的与其物理上最临近的超级节点包括:
步骤a:将系统中的部分通讯节点确定为超级节点;其中,每个超级节点中保存有与之连接的通讯节点或超级节点的路由信息;
步骤b:通讯节点登录与之物理上最临近的超级节点,自该超级节点开始,各个超级节点之间利用各自所保存的路由信息,依次转发登录的通讯节点的网络信息,直至将登录的通讯节点的网络信息转发并记录到与登录的通讯节点逻辑上最接近的超级节点中。
8、根据权利要求7所述的方法,其特征在于,步骤a中所述将系统中的部分通讯节点确定为超级节点包括:
步骤a1:依次读取网络中各个通讯节点的信息;
步骤a2:根据读取的当前通讯节点的信息,判断当前通讯节点的网络类型是否为公网或混合网络地址转换,如果是,则继续执行步骤a3,否则,确定当前通讯节点不是超级节点,然后返回步骤a1,继续对其它通讯节点进行判断;
步骤a3:判断当前通讯节点的带宽及在线时长是否大于等于预先设定的带宽及在线时长,如果是,则确定当前通讯节点为超级节点,否则,确定当前通讯节点不是超级节点,然后返回步骤a1,继续对其它通讯节点进行判断。
9、根据权利要求7所述的方法,其特征在于,所述与通讯节点物理上最临近的超级节点称为该通讯节点的物理超级节点,将所述与通讯节点逻辑上最临近的超级节点称为该通讯节点的逻辑超级节点,步骤b包括:
步骤b1:通讯节点登录系统后,登录到该通讯节点的物理超级节点上,并将其网络信息发送到该物理超级节点上;
步骤b2:该物理超级节点根据该登录通讯节点网络信息中的ID号码,查找得到其保存的各个ID号码中与该ID号码最接近的ID号码,并将登录通讯节点的网络信息转发到该最接近的ID号码所对应的超级节点,网络信息转发到的超级节点重复上述转发过程,直至将所述网络信息转发至所述通讯节点的逻辑超级节点上并保存。
10、根据权利要求6所述的方法,其特征在于,所述与通讯节点物理上最临近的超级节点称为该通讯节点的物理超级节点,将所述与通讯节点逻辑上最临近的超级节点称为该通讯节点的逻辑超级节点,步骤A包括:
步骤A1:源通讯节点向该源通讯节点的物理超级节点发送查询请求,其中,该查询请求中包括目的通讯节点的ID号码;
步骤A2:所述物理超级节点在本地查找是否保存有目的通讯节点的网络信息,如果存在,则直接将该网络信息返回给源通讯节点,并结束本流程,否则,该物理超级节点根据目的通讯节点的ID号码,在该物理超级节点所保存的各个ID号码中查找与该ID号码最接近的ID号码,然后,将查询请求转发到该最接近的ID号码所对应的超级节点,查询请求转发到的超级节点重复上述转发过程,直至将查询请求转发到所述目的通讯节点的逻辑超级节点;
步骤A3:所述目的通讯节点的逻辑超级节点将其保存的目的通讯节点的网络信息返回给源通讯节点。
11、根据权利要求6所述的方法,其特征在于,步骤B所述源通讯节点建立与目的通讯节点之间的连接包括:
源通讯节点根据获取得到的目的通讯节点的网络信息中的内网IP地址和端口号,直接向目的通讯节点的内网IP地址和端口号发送连接请求,建立源通讯节点和目的通讯节点之间的连接。
12、根据权利要求6所述的方法,其特征在于,步骤A之前,该方法进一步包括:
对所述通讯节点进行简单穿越方式测试,获取通讯节点的外网IP地址和端口号,将该外网IP地址和端口号添加到该通讯节点的网络信息中;
步骤B所述源通讯节点建立与目的通讯节点之间的连接包括:
源通讯节点根据获取得到的目的通讯节点的网络信息中的外网IP地址和端口号,直接向目的通讯节点的外网IP地址和端口号发送连接请求,建立源通讯节点和目的通讯节点之间的连接。
13、根据权利要求6所述的方法,其特征在于,步骤A之前,该方法进一步包括:
对所述通讯节点进行简单穿越方式测试,获取通讯节点的外网IP地址、端口号、和网络类型,将该外网IP地址、端口号、和网络类型添加到该通讯节点的网络信息中;
步骤B所述源通讯节点建立与目的通讯节点之间的连接包括:
源通讯节点根据自身的网络类型以及目的通讯节点的网络类型判断采用何种方式进行连接:
如果一方是公网另一方是混合网络地址转换类型,则混合网络地址转换类型一方让另一方主动连接过来;如果双方既不是公网也不是混合网络地址转换类型,则源通讯节点发送穿越请求给目的通讯节点的物理超级节点,该物理超级节点将该请求分别转发给源通讯节点和目的通讯节点,源通讯节点和目的通讯节点接收到请求后,分别向对方的外网IP地址和端口号发送UDP穿越的数据包,以实现源通讯节点和目的通讯节点之间建立连接。
14、根据权利要求6所述的方法,其特征在于,步骤B所述源通讯节点建立与目的通讯节点之间的连接包括:
同时采用内网直连、外网直连、以及通过UDP穿越的方式建立连接,如果任何一种方式建立连接成功,则停止采用其余方式建立连接。
15、根据权利要求14所述的方法,其特征在于,如果所述三种方式均不能建立连接,该方法进一步包括:
源通讯节点发送查找中转种子的请求到其所连接的超级节点上,超级节点通过中央服务器或者其它超级节点获取能够进行数据转发的通讯节点的信息,然后将该信息返回给源通讯节点,源通讯节点根据该信息建立中转通道,与目的通讯节点建立连接。
16、根据权利要求15所述的方法,其特征在于,源通讯节点建立中转通道包括:
建立多条中转通道,其中的一条通道作为主通道,其余通道作为备份通道;
如果进行数据通讯的主通道断开连接,则立即将数据通讯切换到其余备份通道。
17、根据权利要求6所述的方法,其特征在于,该方法进一步包括对各个超级节点中的路由信息进行更新。
18、根据权利要求17所述的方法,其特征在于,所述对路由信息进行更新包括:
超级节点定期向中央服务器发送路由表更新请求,中央服务器返回最新的路由表给该超级节点。
19、根据权利要求17所述的方法,其特征在于,所述对路由信息进行更新包括:
各个超级节点之间相互交换路由信息以不断更新各自的路由表。
CNB2005100749482A 2005-06-06 2005-06-06 一种实现数据通讯的系统及其方法 Active CN100479415C (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CNB2005100749482A CN100479415C (zh) 2005-06-06 2005-06-06 一种实现数据通讯的系统及其方法
CA2611146A CA2611146C (en) 2005-06-06 2006-03-20 Method for data communication and system thereof
EP06722080.6A EP1890424B1 (en) 2005-06-06 2006-03-20 System and method for data communication
PCT/CN2006/000428 WO2006131037A1 (fr) 2005-06-06 2006-03-20 Systeme et procede de communication de donnees
ES06722080.6T ES2550431T3 (es) 2005-06-06 2006-03-20 Sistema y procedimiento de comunicación de datos
US11/951,787 US7720978B2 (en) 2005-06-06 2007-12-06 Method for data communication and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100749482A CN100479415C (zh) 2005-06-06 2005-06-06 一种实现数据通讯的系统及其方法

Publications (2)

Publication Number Publication Date
CN1878118A CN1878118A (zh) 2006-12-13
CN100479415C true CN100479415C (zh) 2009-04-15

Family

ID=37498106

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100749482A Active CN100479415C (zh) 2005-06-06 2005-06-06 一种实现数据通讯的系统及其方法

Country Status (6)

Country Link
US (1) US7720978B2 (zh)
EP (1) EP1890424B1 (zh)
CN (1) CN100479415C (zh)
CA (1) CA2611146C (zh)
ES (1) ES2550431T3 (zh)
WO (1) WO2006131037A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102123100B (zh) * 2008-02-05 2013-06-12 华为技术有限公司 一种维护路由信息的方法及装置
CN101505263B (zh) * 2008-02-05 2011-10-26 华为技术有限公司 一种选择超级维护节点的方法及装置
CN101478619B (zh) * 2009-01-05 2011-11-23 腾讯科技(深圳)有限公司 实现多路语音混音的方法、系统及节点设备
CN101772096B (zh) * 2009-01-07 2014-06-04 华为技术有限公司 一种信息获取方法、设备和系统
US9083762B2 (en) * 2010-05-28 2015-07-14 Greg Saunders System and method for providing hybrid on demand services to a work unit
US8611540B2 (en) * 2010-06-23 2013-12-17 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
CN102742225A (zh) * 2011-03-30 2012-10-17 青岛海信传媒网络技术有限公司 P2p网络中的通信方法、网络节点及网络超级节点
CN103368764B (zh) * 2012-04-10 2018-05-04 中兴通讯股份有限公司 一种虚拟网络的实现方法及网络管理系统
US9444564B2 (en) 2012-05-10 2016-09-13 Qualcomm Incorporated Selectively directing media feeds to a set of target user equipments
US9277013B2 (en) * 2012-05-10 2016-03-01 Qualcomm Incorporated Storing local session data at a user equipment and selectively transmitting group session data to group session targets based on dynamic playback relevance information
JP5880526B2 (ja) * 2013-11-28 2016-03-09 オンキヨー&パイオニアテクノロジー株式会社 情報共有システム
CN109936603B (zh) * 2017-12-18 2022-07-01 本无链科技(深圳)有限公司 一种基于http非直联网络通信方法
CN110192382B (zh) * 2018-06-07 2021-08-31 关迟 一种网络通信方法、对等体及系统
CN109981794B (zh) * 2019-04-09 2021-08-17 广州蚁比特区块链科技有限公司 基于区块链节点网络的处理方法、装置及电子设备
CN110365771A (zh) * 2019-07-16 2019-10-22 深圳市网心科技有限公司 一种数据获取方法、装置、系统和计算机可读存储介质
CN112492053B (zh) * 2019-08-20 2023-04-07 本无链科技(深圳)有限公司 一种用于p2p网络的跨网穿透方法及系统
CN112565796A (zh) * 2019-09-25 2021-03-26 北京硬核聚视科技有限公司 一种视频内容去中心化存取方法和系统
CN111491126A (zh) * 2020-04-10 2020-08-04 贵州新致普惠信息技术有限公司 提高多人联机视频语音稳定性的方法、系统以及设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0606396B1 (en) * 1991-10-01 2002-06-12 Norand Corporation A radio frequency local area network
FR2707778B1 (fr) * 1993-07-15 1995-08-18 Bull Sa NÓoeud de processeurs.
US6691173B2 (en) * 1999-07-06 2004-02-10 Widcomm, Inc. Distributed management of an extended network containing short-range wireless links
US6980537B1 (en) * 1999-11-12 2005-12-27 Itt Manufacturing Enterprises, Inc. Method and apparatus for communication network cluster formation and transmission of node link status messages with reduced protocol overhead traffic
GB9928936D0 (en) * 1999-12-07 2000-02-02 Pathfinder Tech Resources Ltd Domestic communication and entertainment system
JP3726613B2 (ja) * 2000-02-04 2005-12-14 コニカミノルタビジネステクノロジーズ株式会社 情報機器システム、情報機器管理装置、情報機器管理方法および情報機器管理プログラムを記録したコンピュータ読取可能な記録媒体
US6798777B1 (en) * 2000-04-17 2004-09-28 Juniper Networks, Inc. Filtering and route lookup in a switching device
US6745157B1 (en) * 2000-06-02 2004-06-01 Mitsubishi Electric Research Laboratories, Inc Super-node normalized belief propagation for probabilistic systems
US7403980B2 (en) * 2000-11-08 2008-07-22 Sri International Methods and apparatus for scalable, distributed management of virtual private networks
GB0028474D0 (en) * 2000-11-22 2001-01-10 Raekanet Ltd Improved computer network architecture and associated method and system
JP2002198900A (ja) * 2000-12-27 2002-07-12 Fujitsu Ltd 下り送信電力制御方法、移動通信システム、基地局、移動局、交換局側装置
US6950855B2 (en) * 2002-01-18 2005-09-27 International Business Machines Corporation Master node selection in clustered node configurations
US7571251B2 (en) * 2002-05-06 2009-08-04 Sandvine Incorporated Ulc Path optimizer for peer to peer networks
US7289520B2 (en) * 2002-11-20 2007-10-30 Hewlett-Packard Development Company, L.P. Method, apparatus, and system for expressway routing among peers
US20040196841A1 (en) * 2003-04-04 2004-10-07 Tudor Alexander L. Assisted port monitoring with distributed filtering
AU2003903967A0 (en) * 2003-07-30 2003-08-14 Canon Kabushiki Kaisha Distributed data caching in hybrid peer-to-peer systems
US7443803B2 (en) * 2004-03-23 2008-10-28 Fujitsu Limited Estimating and managing network traffic
US20070198675A1 (en) * 2004-10-25 2007-08-23 International Business Machines Corporation Method, system and program product for deploying and allocating an autonomic sensor network ecosystem
US7461130B1 (en) * 2004-11-24 2008-12-02 Sun Microsystems, Inc. Method and apparatus for self-organizing node groups on a network
DE102005008590B3 (de) * 2005-02-24 2006-03-23 Siemens Ag Verfahren zum Aufnehmen einer VoIP-Kommunikation mittels einer Peer-to-Peer-Datenbank
US20060293053A1 (en) * 2005-06-27 2006-12-28 Zanaty Farouk M Silent wireless communication system and method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Peer-to-Peer 网络模型研究. 李祖鹏,黄道颖,庄雷,黄建华.计算机工程,第30卷第12期. 2004
Peer-to-Peer 网络模型研究. 李祖鹏,黄道颖,庄雷,黄建华.计算机工程,第30卷第12期. 2004 *

Also Published As

Publication number Publication date
EP1890424A4 (en) 2011-02-02
CA2611146C (en) 2011-05-10
CN1878118A (zh) 2006-12-13
EP1890424B1 (en) 2015-09-09
CA2611146A1 (en) 2006-12-14
ES2550431T3 (es) 2015-11-06
US20090119406A1 (en) 2009-05-07
EP1890424A1 (en) 2008-02-20
US7720978B2 (en) 2010-05-18
WO2006131037A1 (fr) 2006-12-14

Similar Documents

Publication Publication Date Title
CN100479415C (zh) 一种实现数据通讯的系统及其方法
US8116235B2 (en) Peer-to-peer aided live video sharing system
US10484335B2 (en) Secure remote computer network
US20100085916A1 (en) Systems and Methods for Hybrid Wired and Wireless Universal Access Networks
US20100085948A1 (en) Apparatuses for Hybrid Wired and Wireless Universal Access Networks
US20030174648A1 (en) Content delivery network by-pass system
CN107810627A (zh) 媒体会话
CN104980355B (zh) 一种sdn环境下的源端可控组播数据传输系统
JP2005508121A (ja) データ伝送プロセスおよびシステム
CN101151604A (zh) 消息发布/订购系统中的设置和管理
CN104509073A (zh) 在软件定义的网络中发现ip多播组成员
CN101945038A (zh) 用于创建过渡性最优流路径的系统和方法
CN103747083B (zh) 一种基于ccn的内容推送方法
JP2023508061A (ja) アカウントアクセス方法及びその装置、記憶媒体、並びに電子機器
US20140019549A1 (en) Control System for Conferencing Applications in Named-Data Networks
US10771402B2 (en) Link aggregated fibre channel over ethernet system
CN101094391A (zh) 多种视频交换路由方式的瘦资源视频绑定策略方法
CN108293076A (zh) 网络端点间的媒体会话
WO2022253087A1 (zh) 一种数据传输方法、节点、网络管理器及系统
US20200322418A1 (en) Secure remote computer network
CN108306986A (zh) 多类型媒体数据网络地址转换穿越方法、终端及系统
CN102111608B (zh) 一种视频监控系统的通信方法及其设备
CN101674297A (zh) 分布式业务网络、核心服务设备及协议报文处理方法
US10938591B2 (en) Multicast system
CN102474422B (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
TR01 Transfer of patent right

Effective date of registration: 20190807

Address after: 518057 Nanshan District science and technology zone, Guangdong, Zhejiang Province, science and technology in the Tencent Building on the 1st floor of the 35 layer

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.

TR01 Transfer of patent right