CN114928616A - 对等网络的传输方法和系统 - Google Patents

对等网络的传输方法和系统 Download PDF

Info

Publication number
CN114928616A
CN114928616A CN202110149137.3A CN202110149137A CN114928616A CN 114928616 A CN114928616 A CN 114928616A CN 202110149137 A CN202110149137 A CN 202110149137A CN 114928616 A CN114928616 A CN 114928616A
Authority
CN
China
Prior art keywords
peer
public network
peer node
address
target public
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.)
Pending
Application number
CN202110149137.3A
Other languages
English (en)
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202110149137.3A priority Critical patent/CN114928616A/zh
Priority to EP22748869.9A priority patent/EP4274187A4/en
Priority to PCT/CN2022/072802 priority patent/WO2022166590A1/zh
Priority to US18/274,954 priority patent/US20240146801A1/en
Publication of CN114928616A publication Critical patent/CN114928616A/zh
Pending legal-status Critical Current

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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2567NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • 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/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供了一种对等网络的传输方法,用于所述对等网络中的第一对等节点,所述传输方法包括:从组网服务中心获取第二对等节点的目标公网IP地址和目标公网端口;其中,所述第二对等节点位于所述对等网络中并通过相应的NAT设备访问公网,所述组网服务中心预先收集有所述对等网络中的各个节点的公网IP地址和公网端口;及基于所述目标公网IP地址和所述目标公网端口,与所述第二对等节点建立连接以进行NAT穿透传输。本申请实施例中,当对等节点之间要进行建立连接时,发起连接的第一对等节点可以直接从组网服务中心获取连接对象(如第二对等节点)的公网IP地址和公网端口,以建立穿透NAT的连接,连接效率高。

Description

对等网络的传输方法和系统
技术领域
本申请实施例涉及对等网络的数据传输技术领域,尤其涉及一种对等网络的传输系统以及一种对等网络的传输方法、装置、计算机设备及计算机可读存储介质。
背景技术
对等(P2P,Peer-to-Peer)网络,又称之为对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的组网或网络形式。“Peer”又可以称之为“对等者”、“伙伴”、“对端”等。对等网络一般是指客户端和客户端之间的、分布式的、点到点的直接传输。但是,客户端一般位于NAT设备之后,具体如下:客户端分配有地本地IP地址,当客户端需要访问公网时,则需要通过NAT设备将本地IP地址转换为公网IP地址,即客户端需要通过NAT设备访问公网。这就容易导致以下问题:不同NAT设备之后的两个客户端,如果这二者之间需要建立连接,则需要进行NAT穿透。
但是,通过现有技术在上述二者之间创建可以穿透NAT的通信连接,连接效率低下。
发明内容
本申请实施例的目的是提供一种对等网络的传输系统以及一种对等网络的传输方法、装置、计算机设备及计算机可读存储介质,用于解决以下问题:通过现有技术在上述二者之间创建穿透NAT的通信连接,连接效率低下并且可靠性差。
本申请实施例的一个方面提供了一种对等网络的传输系统,包括:多个对等节点,其中至少部分对等节点通过相应的NAT设备访问公网;STUN服务器,用于向与所述STUN服务器通信的对等节点返回相应的公网IP地址和公网端口;组网服务中心,用于存储所述各个对等节点上报的公网IP地址和公网端口;及还用于:响应于所述多个对等节点中的第一对等节点的请求,将所述多个对等节点中的第二对等节点的目标公网IP地址和目标公网端口提供给所述第一对等节点,以便所述第一对等节点基于所述目标公网IP地址以及所述目标公网端口和所述第二对等节点建立连接,以在所述第一对等节点和所述第二对等节点之间进行NAT穿透传输,其中,所述第二对等节点通过相应的NAT设备访问公网。
可选的,所述第一对等节点,用于:从所述组网服务中心获取所述目标公网IP地址和所述目标公网端口;根据所述目标公网IP地址和所述目标公网端口,创建目标套接字;根据所述目标套接字,启动QUIC客户端;通过所述QUIC客户端,向所述第二对等节点发起QUIC连接,以与所述第二对等节点建立QUIC连接,以在所述第一对等节点和所述第二对等节点之间进行NAT穿透传输。
可选的,所述第二对等节点,用于:创建本地套接字,所述本地套接字包括所述第二对等节点的本地IP地址和本地端口;基于所述本地套接字请求所述STUN服务器,以获取所述目标公网IP地址和所述目标公网端口;将所述目标公网IP地址和所述目标公网端口上报给所述组网服务中心,以通过组网服务中心向所述第一对等节点提供所述目标公网IP地址和所述目标公网端口;启动QUIC服务端并监听所述本地套接字,以监听来自所述第一对等节点的连接请求;及根据所述连接请求建立QUIC连接,以在所述第一对等节点和所述第二对等节点之间进行NAT穿透传输。
本申请实施例的一个方面又提供了一种对等网络的传输方法,用于所述对等网络中的第一对等节点,所述传输方法包括:从组网服务中心获取第二对等节点的目标公网IP地址和目标公网端口;其中,所述第二对等节点位于所述对等网络中并通过相应的NAT设备访问公网,所述组网服务中心预先收集有所述对等网络中的各个节点的公网IP地址和公网端口;及基于所述目标公网IP地址和所述目标公网端口,与所述第二对等节点建立连接以进行NAT穿透传输。
可选的,所述基于所述目标公网IP地址和所述目标公网端口,与所述第二对等节点建立连接以进行NAT穿透传输,包括:根据所述目标公网IP地址和所述目标公网端口,创建目标套接字;根据所述目标套接字,启动QUIC客户端;通过所述QUIC客户端,向所述第二对等节点发起QUIC连接,与所述第二对等节点建立QUIC连接以进行NAT穿透传输。
本申请实施例的一个方面又提供了一种对等网络的传输方法,用于所述对等网络中的被动对等节点中,所述被动对等节点通过相应的NAT设备访问公网,所述传输方法包括:创建所述被动对等节点的本地套接字,所述本地套接字包括本地IP地址和本地端口;基于所述本地套接字请求所述STUN服务器,以获取所述被动对等节点的目标公网IP地址和所述目标公网端口;将所述目标公网IP地址和所述目标公网端口上报给组网服务中心,以通过组网服务中心向所述对等网络中的主动对等节点提供所述目标公网IP地址和所述目标公网端口;监听所述本地套接字,以得到来自所述主动对等节点的连接请求;及根据所述连接请求,与所述被动对等节点和所述主动对等节点之间的连接,以进行NAT穿透传输。
可选的,所述监听所述本地套接字,以得到来自所述主动对等节点的连接请求,包括:启动QUIC服务端并监听所述本地套接字,以监听来自所述主动对等节点的连接请求。
本申请实施例的一个方面又提供了一种对等网络的传输装置,所述装置包括:创建模块,用于创建所述被动对等节点的本地套接字,所述本地套接字包括本地IP地址和本地端口;获取模块,用于基于所述本地套接字请求所述STUN服务器,以获取所述被动对等节点的目标公网IP地址和所述目标公网端口;上报模块,用于将所述目标公网IP地址和所述目标公网端口上报给组网服务中心,以通过组网服务中心向所述对等网络中的主动对等节点提供所述目标公网IP地址和所述目标公网端口;监听模块,用于监听所述本地套接字,以得到来自所述主动对等节点的连接请求;及连接模块,用于根据所述连接请求,与所述被动对等节点和所述主动对等节点之间的连接,以所述在被动对等节点和所述主动对等节点之间进行NAT穿透传输。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现上述对等网络的传输方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行上述对等网络的传输方法的步骤。
在本申请实施例提供的对等网络的传输系统系统以及对等网络的传输方法、装置、计算机设备及计算机可读存储介质中,每个位于NAT设备之后的对等节点都会获取各自的公网IP地址和公网端口,并上报给组网服务中心。当对等节点之间要进行建立连接时,发起连接的对等节点(如,第一对等节点)可以直接从组网服务中心获取连接对象(如第二对等节点)的公网IP地址和公网端口,从而根据连接对象的公网IP地址和公网端口发起连接请求,以建立穿透NAT的连接,连接效率高。
附图说明
图1示意性示出了根据本申请实施例一的对等网络的传输系统的架构示意图;
图2示意性示出了根据本申请实施例一的具体示例的流程示意图;
图3示意性示出了根据本申请实施例一的第一对等节点的操作流程示意图;
图4示意性示出了根据本申请实施例一的第二对等节点的操作流程示意图;
图5示意性示出了根据本申请实施例二的对等网络的传输方法的流程图;
图6为图5中步骤S502的子流程图;
图7示意性示出了根据本申请实施例三的对等网络的传输方法的流程图;
图8为图7中步骤S708的子流程图;
图9示意性示出了根据本申请实施例四的对等网络的传输装置的框图;
图10示意性示出了根据本申请实施例五的对等网络的传输装置的框图;及
图11示意性示出了根据本申请实施例六的适于实现通信方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请中涉及“第一”、“第二”、“第三”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
以下为本申请的术语解释:
P2P(Peer-to-Peer)网络,对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的组网或网络形式。“Peer”在英语里有“对等者”、“伙伴”、“对端”的意义。
NAT(Network Address Translation,网络地址转换),又称网络掩蔽或者IP掩蔽,是网络地址翻译技术,用于将内部的私有IP(private IP)地址转换成公网IP(public IP)地址。
STUN(Simple Traversal of User Datagram Protocol(UDP)Through NetworkAddress Translators(NATs),通过地址转换器的用户数据报协议(UDP)的简单穿越),是一种轻量级协议,其允许应用程序发现NAT的存在和类型以及它们和公共Internet之间的防火墙。它还为应用程序提供了这样一种能力:确定通过NAT分配给它们的公网IP地址和公网端口。
STUN客户端:是生成STUN请求的实体。STUN客户端可以在终端系统(例如用户的PC)上执行,或者可以运行在网络元素(Network Element)中,如,会议服务器。STUN客户端通常嵌入在需要获取公网IP地址和公网端口的应用程序中。
STUN服务器:是接收STUN请求并发送STUN回应的实体。STUN服务器通常连接到公网。
实施例一
图1示意性示出了根据本申请实施例一的对等网络的传输系统的架构示意图。如图1所示,在示例性的实施例中,所述对等网络的传输系统可以包括如下:
(1)多个对等节点2A、2B、…,其中至少部分对等节点通过相应的NAT设备访问公网。
各个对等节点,可以是智能手机、平板电脑、笔记本电脑、个人电脑、虚拟节点等。各个对等节点,分别内置有STUN客户端,STUN客户端用于和STUN服务器通信。
至少部分对等节点通过相应的NAT设备访问公网,即至少部分对等节点位于相应的NAT设备之后。例如:所述多个对等节点中的第一对等节点2A,其位于NAT设备4A之后;所述多个对等节点中的第二对等节点2B,其位于NAT设备4B之后。
需要说明的是,第一对等节点2A,可以为所述多个对等节点中的任意一个对等节点。第二对等节点2B,可以为所述多个对等节点中的任意一个位于NAT设备之后的对等节点。其中,第二对等节点2A和第二对等节点2B为不同的对等节点。
当某个对等节点(如2A或2B)位于NAT设备之后,则这个对等节点配置有本地IP地址(LocalIP)和本地端口(LocalPORT),以使这个对等节点能够在其局域网中被定位。
(2)NAT设备4A、4B、…,用于地址转换。
NAT设备可以是NAT路由器或其他NAT电子设备,用于将位于NAT设备之后的对等节点(如2A或2B)的LocalIP和LocalPORT转化为公网IP地址(PublicIP)和公网端口(PublicPORT),以使对等节点(如2A或2B)可以访问公网(如Internet)。
(3)STUN服务器6,用于向与所述STUN服务器通信的对等节点返回相应的公网IP地址和公网端口。
下面介绍所述相应的公网IP地址和公网端口的获取步骤:
以所述多个对等节点中的第二对等节点2B为例,首先,第二对等节点2B中的STUN客户端访问具有公网IP地址的STUN服务器6;其次,由于在访问过程中,第二对等节点2B中的LocalIP和LocalPORT会被第二NAT设备4B转化为相应的目标公网IP地址和目标公网端口,因此,STUN服务器可以知道该STUN客户端的所述目标公网IP地址和所述目标公网端口,并将上述信息返回给第二对等节点2B。
(4)组网服务中心8,用于存储所述各个对等节点上报的公网IP地址和公网端口;及还用于:响应于所述多个对等节点中的第一对等节点的请求,将所述多个对等节点中的第二对等节点的目标公网IP地址和目标公网端口提供给所述第一对等节点,以便所述第一对等节点基于所述目标公网IP地址以及所述目标公网端口和所述第二对等节点建立连接,以在所述第一对等节点和所述第二对等节点之间进行NAT穿透传输,其中,所述第二对等节点通过相应的NAT设备访问公网。
例如,存储有第二对等节点2B对应的所述目标公网IP地址和所述目标公网端口。
作为示例,当第一对等节点2A主动向第二对等节点2B发起连接时:
步骤一:第一对等节点2A向组网服务中心8发送请求。
步骤二:响应第一对等节点2A的请求,向第一对等节点2A返回第二对等节点2B对应的的公网IP地址和公网端口,即返回所述目标公网IP地址和所述目标公网端口。
步骤三:根据所述目标公网IP地址和所述目标公网端口,第一对等节点2A穿透第二NAT设备4B并向第二对接节点2B发起连接请求,以和第二对等节点2B建立连接。
为了更加清晰明白,下面结合参考图1和2揭示本实施例中的传输系统的工作流程:
S200,第二对等节点2B经由第二NAT设备4B访问STUN服务器6。
S202,STUN服务器6向第二对等节点2B返回目标公网IP地址和目标公网端口。
S204,第二对等节点2B将目标公网IP地址和目标公网端口上报给组网服务中心8。
当其他对等节点主动与第二对等节点2B通信,例如第一对等节点2A:
S206,第一对等节点2A向组网服务中心8询问第二对等节点2B的公网IP地址和公网端口。
S208,组网服务中心8返回第二对等节点2B对应的目标公网IP地址和目标公网端口。
S204,根据所述目标公网IP地址和所述目标公网端口,第一对等节点2A穿透第二NAT设备4B并向第二对等节点2B发起连接请求,以和第二对等节点2B建立连接。
作为示例,如图3所示,当第一对等节点2A需要主动连接第二对等节点4B时,第一对等节点2A可以具体操作如下:步骤S300,从所述组网服务中心8获取所述目标公网IP地址和所述目标公网端口;步骤S302,根据所述目标公网IP地址和所述目标公网端口,创建目标套接字;步骤S304,根据所述目标套接字,启动QUIC客户端;步骤S306,通过所述QUIC客户端,向所述第二对等节点发起QUIC连接,以与所述第二对等节点2B建立QUIC连接,以在所述第一对等节点2A和所述第二对等节点2B之间进行NAT穿透传输。相对现有技术采用UDP(User Datagram Protocol,用户数据报协议)用于对等网络中,本实施例将QUIC(QuickUDP Internet Connection)协议用于两个对等节点之间的通信传输,具有以下优势:可以实现P2P连接的公平性,确保高可靠性;实现基于TLS(Transport Layer Security,传输层安全协议)的内容安全传输;可以实现0RTT(Round-Trip Time,往返时延)的连接建立时间;并具有优秀的连接迁移特性。
作为示例,如图4所示,当第二对等节点2B需要被动接收其他对等节点(如,第一对等节点2A)的连接请求,第二对等节点2B可以具体操作如下:步骤S400,创建本地套接字,所述本地套接字包括所述第二对等节点的本地IP地址和本地端口;步骤S402,基于所述本地套接字请求所述STUN服务器,以获取所述目标公网IP地址和所述目标公网端口;步骤S404,将所述目标公网IP地址和所述目标公网端口上报给所述组网服务中心,以通过组网服务中心向所述第一对等节点提供所述目标公网IP地址和所述目标公网端口;步骤S406,启动QUIC服务端并监听所述本地套接字,以监听来自所述第一对等节点的连接请求;及步骤S408,根据所述连接请求建立QUIC连接,以在所述第一对等节点和所述第二对等节点之间进行NAT穿透传输。本实施例可以高效地接收其他对等节点的主动连接请求,让其它对等节点穿透第二NAT设备并实现与第二对等节点的QUIC连接。另外,本实施例将QUIC协议用于两个对等节点之间的通信传输,具有以下优势:可以实现P2P连接的公平性,确保高可靠性;实现基于TLS的内容安全传输;可以实现0RTT的连接建立时间;并具有优秀的连接迁移特性。
实施例二
本实施例以第一对等节点2A为执行主体进行描述,技术细节及效果可参考实施例一。
图5示意性示出了根据本申请实施例二的对等网络的传输方法的流程图。
如图5所示,该对等网络的传输方法可以包括步骤S500~S502,其中:
步骤S500,从组网服务中心获取第二对等节点的目标公网IP地址和目标公网端口;其中,所述第二对等节点位于所述对等网络中并通过相应的NAT设备访问公网,所述组网服务中心预先收集有所述对等网络中的各个节点的公网IP地址和公网端口。
步骤S502,基于所述目标公网IP地址和所述目标公网端口,与所述第二对等节点建立连接以进行NAT穿透传输。
作为示例,如图6所示,所述步骤S502可以包括步骤S600~S604,其中:步骤S600,根据所述目标公网IP地址和所述目标公网端口,创建目标套接字;步骤S602,根据所述目标套接字,启动QUIC客户端;步骤S604,通过所述QUIC客户端,向所述第二对等节点发起QUIC连接,与所述第二对等节点建立QUIC连接以进行NAT穿透传输。
实施例三
本实施例以被动对等节点(相当于图1中的第二对等节点2B)为执行主体进行描述,技术细节及效果可参考实施例一。
图7示意性示出了根据本申请实施例三的对等网络的传输方法的流程图。
如图7所示,该对等网络的传输方法可以包括步骤S700~S708,其中:
步骤S700,创建所述被动对等节点的本地套接字,所述本地套接字包括本地IP地址和本地端口;
步骤S702,基于所述本地套接字请求所述STUN服务器,以获取所述被动对等节点的目标公网IP地址和所述目标公网端口;
步骤S704,将所述目标公网IP地址和所述目标公网端口上报给组网服务中心,以通过组网服务中心向所述对等网络中的主动对等节点提供所述目标公网IP地址和所述目标公网端口;
步骤S706,监听所述本地套接字,以得到来自所述主动对等节点的连接请求;及
步骤S708,根据所述连接请求,与所述被动对等节点和所述主动对等节点之间的连接,以进行NAT穿透传输。
作为示例,如图8所示,所述步骤S708可以包括步骤S800,其中:步骤S800,启动QUIC服务端并监听所述本地套接字,以监听来自所述主动对等节点的连接请求。
实施例四
图9示意性示出了根据本申请实施例四的对等网络的传输装置的框图,该装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
如图9所示,该对等网络的传输装置900可以包括获取模块910和连接模块920,其中:
获取模块910,用于从组网服务中心获取第二对等节点的目标公网IP地址和目标公网端口;其中,所述第二对等节点位于所述对等网络中并通过相应的NAT设备访问公网,所述组网服务中心预先收集有所述对等网络中的各个节点的公网IP地址和公网端口。
连接模块920,用于基于所述目标公网IP地址和所述目标公网端口,与所述第二对等节点建立连接以进行NAT穿透传输。
作为示例,所述连接模块920还用于:根据所述目标公网IP地址和所述目标公网端口,创建目标套接字;根据所述目标套接字,启动QUIC客户端;通过所述QUIC客户端,向所述第二对等节点发起QUIC连接,与所述第二对等节点建立QUIC连接以进行NAT穿透传输。
实施例五
图10示意性示出了根据本申请实施例五的对等网络的传输装置的框图,该装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
如图10所示,该对等网络的传输装置1000可以包括创建模块1010、获取模块1020、上报模块1030、监听模块1040和连接模块1050,其中:
创建模块1010,用于创建所述被动对等节点的本地套接字,所述本地套接字包括本地IP地址和本地端口;
获取模块1020,用于基于所述本地套接字请求所述STUN服务器,以获取所述被动对等节点的目标公网IP地址和所述目标公网端口;
上报模块1030,用于将所述目标公网IP地址和所述目标公网端口上报给组网服务中心,以通过组网服务中心向所述对等网络中的主动对等节点提供所述目标公网IP地址和所述目标公网端口;
监听模块1040,用于监听所述本地套接字,以得到来自所述主动对等节点的连接请求;及
连接模块1050,用于根据所述连接请求,与所述被动对等节点和所述主动对等节点之间的连接,以所述在被动对等节点和所述主动对等节点之间进行NAT穿透传输。
作为示例,所述监听模块1040还用于:启动QUIC服务端并监听所述本地套接字,以监听来自所述主动对等节点的连接请求。
实施例六
图11示意性示出了根据本申请实施例六的适于实现通信方法的计算机设备11的硬件架构示意图。该计算机设备11适用于实施例一各个对等节点,也可以作为实施例二、三中的执行主体。本实施例中,计算机设备11是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机等。如图11所示,计算机设备11至少包括但不限于:可通过系统总线相互通信链接存储器1110、处理器1120、网络接口1130。其中:
存储器1110至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器1110可以是计算机设备11的内部存储模块,例如该计算机设备11的硬盘或内存。在另一些实施例中,存储器1110也可以是计算机设备11的外部存储设备,例如该计算机设备11上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器1110还可以既包括计算机设备11的内部存储模块也包括其外部存储设备。本实施例中,存储器1110通常用于存储安装于计算机设备11的操作系统和各类应用软件,例如对等网络的传输方法的程序代码等。此外,存储器1110还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器1120在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器1120通常用于控制计算机设备11的总体操作,例如执行与计算机设备11进行数据交互或者通信相关的控制和处理等。本实施例中,处理器1120用于运行存储器1110中存储的程序代码或者处理数据。
网络接口1130可包括无线网络接口或有线网络接口,该网络接口1130通常用于在计算机设备11与其他计算机设备之间建立通信链接。例如,网络接口1130用于通过网络将计算机设备11与外部终端相连,在计算机设备11与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图11仅示出了具有部件1110-1130的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器1110中的通信方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器1120)所执行,以完成本申请。
实施例七
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中对等网络的传输方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中对等网络的传输方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种对等网络的传输系统,其特征在于,包括:
多个对等节点,其中至少部分对等节点通过相应的NAT设备访问公网;
STUN服务器,用于向与所述STUN服务器通信的对等节点返回相应的公网IP地址和公网端口;
组网服务中心,用于存储所述各个对等节点上报的公网IP地址和公网端口;及还用于:响应于所述多个对等节点中的第一对等节点的请求,将所述多个对等节点中的第二对等节点的目标公网IP地址和目标公网端口提供给所述第一对等节点,以便所述第一对等节点基于所述目标公网IP地址以及所述目标公网端口和所述第二对等节点建立连接,以在所述第一对等节点和所述第二对等节点之间进行NAT穿透传输,其中,所述第二对等节点通过相应的NAT设备访问公网。
2.根据权利要求1所述的传输系统,其特征在于,所述第一对等节点,用于:
从所述组网服务中心获取所述目标公网IP地址和所述目标公网端口;
根据所述目标公网IP地址和所述目标公网端口,创建目标套接字;
根据所述目标套接字,启动QUIC客户端;
通过所述QUIC客户端,向所述第二对等节点发起QUIC连接,以与所述第二对等节点建立QUIC连接,以在所述第一对等节点和所述第二对等节点之间进行NAT穿透传输。
3.根据权利要求1所述的传输系统,其特征在于,所述第二对等节点,用于:
创建本地套接字,所述本地套接字包括所述第二对等节点的本地IP地址和本地端口;
基于所述本地套接字请求所述STUN服务器,以获取所述目标公网IP地址和所述目标公网端口;
将所述目标公网IP地址和所述目标公网端口上报给所述组网服务中心,以通过组网服务中心向所述第一对等节点提供所述目标公网IP地址和所述目标公网端口;
启动QUIC服务端并监听所述本地套接字,以监听来自所述第一对等节点的连接请求;及
根据所述连接请求建立QUIC连接,以在所述第一对等节点和所述第二对等节点之间进行NAT穿透传输。
4.一种对等网络的传输方法,用于所述对等网络中的第一对等节点,其特征在于,所述传输方法包括:
从组网服务中心获取第二对等节点的目标公网IP地址和目标公网端口;其中,所述第二对等节点位于所述对等网络中并通过相应的NAT设备访问公网,所述组网服务中心预先收集有所述对等网络中的各个节点的公网IP地址和公网端口;及
基于所述目标公网IP地址和所述目标公网端口,与所述第二对等节点建立连接以进行NAT穿透传输。
5.根据权利要求1所述的对等网络的传输方法,其特征在于,所述基于所述目标公网IP地址和所述目标公网端口,与所述第二对等节点建立连接以进行NAT穿透传输,包括:
根据所述目标公网IP地址和所述目标公网端口,创建目标套接字;
根据所述目标套接字,启动QUIC客户端;
通过所述QUIC客户端,向所述第二对等节点发起QUIC连接,与所述第二对等节点建立QUIC连接以进行NAT穿透传输。
6.一种对等网络的传输方法,用于所述对等网络中的被动对等节点中,所述被动对等节点通过相应的NAT设备访问公网,其特征在于,所述传输方法包括:
创建所述被动对等节点的本地套接字,所述本地套接字包括本地IP地址和本地端口;
基于所述本地套接字请求所述STUN服务器,以获取所述被动对等节点的目标公网IP地址和所述目标公网端口;
将所述目标公网IP地址和所述目标公网端口上报给组网服务中心,以通过组网服务中心向所述对等网络中的主动对等节点提供所述目标公网IP地址和所述目标公网端口;
监听所述本地套接字,以得到来自所述主动对等节点的连接请求;及
根据所述连接请求,与所述被动对等节点和所述主动对等节点之间的连接,以进行NAT穿透传输。
7.根据权利要求1所述的通信方法,其特征在于,所述监听所述本地套接字,以得到来自所述主动对等节点的连接请求,包括:
启动QUIC服务端并监听所述本地套接字,以监听来自所述主动对等节点的连接请求。
8.一种对等网络的传输装置,其特征在于,所述装置包括:
创建模块,用于创建所述被动对等节点的本地套接字,所述本地套接字包括本地IP地址和本地端口;
获取模块,用于基于所述本地套接字请求所述STUN服务器,以获取所述被动对等节点的目标公网IP地址和所述目标公网端口;
上报模块,用于将所述目标公网IP地址和所述目标公网端口上报给组网服务中心,以通过组网服务中心向所述对等网络中的主动对等节点提供所述目标公网IP地址和所述目标公网端口;
监听模块,用于监听所述本地套接字,以得到来自所述主动对等节点的连接请求;及
连接模块,用于根据所述连接请求,与所述被动对等节点和所述主动对等节点之间的连接,以所述在被动对等节点和所述主动对等节点之间进行NAT穿透传输。
9.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求4~7中任一项所述的对等网络的传输方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求4~7中任一项所述的对等网络的传输方法的步骤。
CN202110149137.3A 2021-02-03 2021-02-03 对等网络的传输方法和系统 Pending CN114928616A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202110149137.3A CN114928616A (zh) 2021-02-03 2021-02-03 对等网络的传输方法和系统
EP22748869.9A EP4274187A4 (en) 2021-02-03 2022-01-19 TRANSMISSION METHOD AND SYSTEM FOR A PEER-TO-PEER NETWORK
PCT/CN2022/072802 WO2022166590A1 (zh) 2021-02-03 2022-01-19 对等网络的传输方法和系统
US18/274,954 US20240146801A1 (en) 2021-02-03 2022-01-19 Transmission method and system for peer-to-peer network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110149137.3A CN114928616A (zh) 2021-02-03 2021-02-03 对等网络的传输方法和系统

Publications (1)

Publication Number Publication Date
CN114928616A true CN114928616A (zh) 2022-08-19

Family

ID=82741885

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110149137.3A Pending CN114928616A (zh) 2021-02-03 2021-02-03 对等网络的传输方法和系统

Country Status (4)

Country Link
US (1) US20240146801A1 (zh)
EP (1) EP4274187A4 (zh)
CN (1) CN114928616A (zh)
WO (1) WO2022166590A1 (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1586065A (zh) * 2002-05-13 2005-02-23 美国索尼电脑娱乐公司 利用网络地址转换的对等网络通信
CN101369959A (zh) * 2007-08-14 2009-02-18 中兴通讯股份有限公司 一种支持点对点业务的网络地址转换穿越方法
CN101478493A (zh) * 2009-02-10 2009-07-08 杭州华三通信技术有限公司 一种穿越nat的通信方法及设备
CN105657077A (zh) * 2014-11-13 2016-06-08 中国移动通信集团公司 一种网络地址转换穿越方法和网络地址转换设备
CN106302846A (zh) * 2015-06-12 2017-01-04 华为技术有限公司 一种通信连接建立方法及装置、系统
US20180337886A1 (en) * 2017-05-18 2018-11-22 Filegear Inc. Upgrading to direct connection for servers behind a network address translation device
CN110740300A (zh) * 2019-11-01 2020-01-31 普联技术有限公司 多媒体数据的传输方法、系统、客户端及视频监控设备
CN110999252A (zh) * 2017-06-27 2020-04-10 奥兰治 经由多个路径的quic通信的方法
WO2021009554A1 (en) * 2019-07-18 2021-01-21 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for secured information exchange between intermediate and endpoint nodes in a communications network

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103414799B (zh) * 2013-07-31 2016-12-28 华为技术有限公司 中继地址互通方法和终端及系统
CN109088958B (zh) * 2018-09-19 2022-02-25 腾讯数码(天津)有限公司 数据传输方法及计算机设备
US11171928B2 (en) * 2018-12-06 2021-11-09 ColorTokens, Inc. Local peer to peer direct connection in network address translator (NAT) and overlay networks
CN111800341B (zh) * 2020-07-03 2022-05-31 珠海金山网络游戏科技有限公司 一种跨路由器终端通信方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1586065A (zh) * 2002-05-13 2005-02-23 美国索尼电脑娱乐公司 利用网络地址转换的对等网络通信
CN101369959A (zh) * 2007-08-14 2009-02-18 中兴通讯股份有限公司 一种支持点对点业务的网络地址转换穿越方法
CN101478493A (zh) * 2009-02-10 2009-07-08 杭州华三通信技术有限公司 一种穿越nat的通信方法及设备
CN105657077A (zh) * 2014-11-13 2016-06-08 中国移动通信集团公司 一种网络地址转换穿越方法和网络地址转换设备
CN106302846A (zh) * 2015-06-12 2017-01-04 华为技术有限公司 一种通信连接建立方法及装置、系统
US20180337886A1 (en) * 2017-05-18 2018-11-22 Filegear Inc. Upgrading to direct connection for servers behind a network address translation device
CN110999252A (zh) * 2017-06-27 2020-04-10 奥兰治 经由多个路径的quic通信的方法
WO2021009554A1 (en) * 2019-07-18 2021-01-21 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for secured information exchange between intermediate and endpoint nodes in a communications network
CN110740300A (zh) * 2019-11-01 2020-01-31 普联技术有限公司 多媒体数据的传输方法、系统、客户端及视频监控设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CARRY\': "穿透NAT类型以及STUN、TURN简单介绍", Retrieved from the Internet <URL:https://blog.csdn.net/qq_40741808/article/details/107686105> *
刘胜辉 等: "基于STUN协议的NAT路由器穿越算法设计与实现", 信息化纵横 *

Also Published As

Publication number Publication date
EP4274187A1 (en) 2023-11-08
US20240146801A1 (en) 2024-05-02
EP4274187A4 (en) 2024-05-15
WO2022166590A1 (zh) 2022-08-11

Similar Documents

Publication Publication Date Title
CN101478493B (zh) 一种穿越nat的通信方法及设备
CN113452592B (zh) 混合云架构下的跨云数据访问方法及装置
US9143421B2 (en) Network system capable of implementing stun with the assistance of two network devices and method thereof
CN110830601B (zh) 分布式系统nat穿透方法、装置、设备及存储介质
US9894032B1 (en) Method and apparatus of establishing a connection between devices using cached connection information
EP2817947A1 (en) Method, apparatus, and system for resource sharing
WO2021223454A1 (zh) 投屏方法和系统
CN112073540B (zh) 数据处理方法、装置、相关设备及存储介质
KR20120071576A (ko) 분산 해쉬 테이블 기반의 rtps 디스커버리 방법, 장치 및 시스템
CN114124929A (zh) 跨网络的数据处理方法和装置
CN111585786A (zh) 一种大数据集群免密搭建方法的实现
Kodali An implementation of MQTT using CC3200
CN114928616A (zh) 对等网络的传输方法和系统
CN113542244A (zh) 微服务调用方法、装置、服务器和系统
Chang et al. An efficient service discovery system for dual-stack cloud file service
US20140201262A1 (en) User device, communication server and control method thereof
Cho P2p-based mobile social networks
Maló et al. Self-organised middleware architecture for the internet-of-things
CN107454210B (zh) 通信方法及系统
US20160006685A1 (en) Receiving device, receiving device control method, network system, network system control method, and medium
Roos et al. A contribution to analyzing and enhancing Darknet routing
CN116095080B (zh) 跨云数据互联网络通信方法、装置及系统
WO2021209125A1 (en) Orchestrating execution of a complex computational operation
KR20200081799A (ko) 가상 라우터를 이용한 다중 가상 네트워크 통신 시스템 및 방법
CN113961271B (zh) 一种日志服务启动方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination