CN112805977A - 公用互联网上的应用传输控制协议隧道 - Google Patents
公用互联网上的应用传输控制协议隧道 Download PDFInfo
- Publication number
- CN112805977A CN112805977A CN201980052860.0A CN201980052860A CN112805977A CN 112805977 A CN112805977 A CN 112805977A CN 201980052860 A CN201980052860 A CN 201980052860A CN 112805977 A CN112805977 A CN 112805977A
- Authority
- CN
- China
- Prior art keywords
- application
- server
- source
- tcp
- destination
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/029—Firewall traversal, e.g. tunnelling or, creating pinholes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
静态配置的安全隧道使用用户数据报协议(UDP)通道在服务器之间转发应用程序级传输控制协议(“TCP”)应用程序数据。在服务器集群上运行的应用程序可以通过单独面向UDP数据报的通信信道使用安全的TCP连接转发,通过公用互联网与该集群中另一台服务器上的其他应用程序进行通信。
Description
相关申请
本申请涉及并要求享有于2019年8月6日提交的美国非临时专利申请第16/532,677号,于2019年8月6日提交的16/532,727和2019年8月6日提交的16/532,764的优先权,以及2018年8月7日提交的美国临时专利申请62/715,361、2018年8月7日提交的62/715,367、2018年8月9日提交的62/716,562、2018年8月10日提交的62/717,194和2018年8月27日提交的62/723,373出于所有目的,通过引用将其全部内容并入本文,如同在此完整阐述。
背景技术
发明的领域
总体上,本发明的实施例涉及传输控制协议(“TCP”)连接转发,并且更具体地涉及在服务器之间转发应用级TCP连接。
相关背景
服务器集群是一组松散或紧密连接的计算机,它们可以一起工作,以至于在许多方面可以将它们视为单个系统。集群的组件通常通过局域网(LAN)相互连接,每个节点都运行自己的操作系统实例。通常部署集群是为了相对于单台计算机提高性能和可用性,而通常比具有类似速度或可用性的单台计算机更具成本效益。而且由于大多数集群都在LAN内运行,因此它们可以自由通信,从而避免了公用互联网交互所带来的安全隐患。图1a描绘了驻留在源服务器105上的客户端应用程序和驻留在同一LAN内的目的地服务器上的服务器应用程序115之间的典型连接。
出于两个原因,传统的集群软件打算部署在控制良好的LAN上。首先,如上所述,供应商认为局域网上的软件是安全的,或者至少比通过公共互联网直接访问其软件或服务更安全。其次,传统集群软件运行所需的各个第4层(TCP和UDP)通信信道是多种多样的,并且在LAN内部更易于管理。例如,下面是用于Microsoft Windows Server故障转移集群(WSFC)的网络端口的列表
这些不同的标准需要专用的互连通道才能启用服务器集群操作。为了安全并为了在服务器之间提供不受限制的第3层网络路径以支持所需的第4层通信信道的各种集合,厂商主要使用专用的虚拟专用网络140(或称为VPN),如图1b和1c所示,通过公共互联网跨多个LAN建立跨集群。
VPN是安全的隧道,通信和数据可以通过该隧道在两点之间安全地传输。回想一下,互联网(Internet)是一个分组交换网络,这意味着发送方和接收方之间没有单一的,不间断的连接。相反,在发送信息时,它将信息分解成小包,并同时通过许多不同的路径发送到同一位置,然后在接收端进行重组。这与诸如电话系统的电路交换网络相反,该电路交换网络在进行呼叫和电路交换之后,将网络的一部分划分出来以进行单个直接连接。
在因特网上传输的每一个数据包都携带着信息,以便将数据包定向到它的位置以及如何使用它。例如,一些包可以使用超文本传输协议(HTTP)来形成网站,而其他包可以使用因特网消息访问协议(IMAP)来访问电子邮件。当然,每个数据包都需要知道它被发送到什么地址以及发送者是谁。传输控制协议(TCP)和互联网协议(IP)是用于分解和重组数据包的最常见的协议集。
TCP/IP模型分为四层,解决了将数据分解成数据包、通过Internet发送数据包并在目的地重新组装数据包的问题。这些层包括应用层、传输层、internet层和网络访问层。网络访问层负责将二进制数据转换成网络信号。这包括计算机或调制解调器上的网卡,用于将计算机友好的数据转换为网络友好的信号。internet层提供逻辑寻址、路径确定和转发。
应用层包括控制与应用程序的交互、数据翻译、编码、对话控制以及系统间的通信协调的各种协议。有许多应用协议,其中一些更常见的是HTTP、IMAP、文件传输协议(FTP)、简单邮件传输协议(SMTP)、域名服务(DNS)等。
传输层负责数据的端到端传输,并在主机之间建立逻辑连接。这一层中两个可用的协议是TCP和用户数据报协议(UDP)。TCP是一种面向连接的可靠协议,它使用窗口控制有序的数据流和数据段的传输,UDP只是简单地传输数据,而不需要额外开销,从而提供更快的数据传输,尽管可靠性较低。
在VPN中,消息的每个数据包都经过加密,然后封装在正常的TCP IP数据包中以进行传输。这些常规IP数据包包括隧道另一端的目的地址,该另一端封装的数据包被传送。因此,当数据包在Internet中移动时,封装的数据包的真实地址不能被读取,只有隧道地址可被访问。
在接收端,计算机或路由器会剥离外部IP数据包并解码内部数据包。基于该信息,内部数据包被传递到目的地。此过程需要4层通信信道来影响数据的安全传送,而这些层是有代价的。VPN协议本质上是传输协议和加密标准的组合。
在如图1c所示的使用传统软件虚拟专用网的系统中,客户端主机150和服务器主机155可以直接通过第二层或第三层网络链路彼此寻址。软件VPN通常使用专门的网络设备驱动程序将其自身建立为主机网络堆栈中网络流量的路由,并充当点对点网络链接。
回到图1b和1c中所示的描述,在建立VPN通信链路的情况下,每一方(源服务器105和目的服务器120)具有其自己的IP地址,并且如果VPN是第2层,则可能具有链路级地址。例如,在Linux平台上,VPN通常使用PPP、L2TP或TUN/TAP内核设备驱动程序之一。
如图1c所示的软件VPN通常具有软件应用程序162组件,该软件应用程序162组件将其自身连接到设备驱动器160,建立到客户端110或服务器应用程序115的第4层通信信道,并且封装第2层/第3层通信量并与主机的远程侧交换。大多数VPN应用程序使用TCP、用户数据报协议(“UDP”)或通用路由封装(“GRE”)作为传输协议来封装第2层/第3层流量。然后,由VPN建立的网络路由允许客户端应用程序110使用服务器应用程序在其上运行的主机的地址直接连接到服务器应用程序115。根据VPN配置网络寻址的方式,用于连接到主机的IP地址可能与该主机的LAN地址或公共互联网地址不同。
一旦建立了VPN通道,不仅驻留在源服务器105上的客户端应用程序110可以与驻留在目的服务器120上的服务器应用程序115安全地进行交互,而且链接到主机堆栈的任何其他资源都可以通过VPN访问。建立的VPN将打开并解锁所连接服务器内的所有资源。可以将一个家庭(目的服务器)作为类比,将访客(客户应用程序)敲门拜访特定房间中的朋友(服务器应用程序)。一旦打开门(VPN建立了访客可以访问朋友的权限),访客就可以自由访问房屋的其余部分,并且可以与房屋中可能存在的任何其他人进行交互。缺乏其他安全措施,客户端应用程序110可以查看和访问驻留在目的服务器120上的主机数据170,并且在目的地服务器120上运行的任何其他应用程序可以与客户端应用程序110和与原始服务器105相关联的数据进行交互。因此,VPN在两个服务器之间打开了多个通信信道。这种开放访问需要实施附加的和成本较高的安全协议,以防止意外泄露或恶意企图检索未经授权的信息。
尽管VPN在受限的应用中具有通用性,但仍需要将第4层通信信道的数量减少到每对服务器一个。需要通过在服务器之间转发应用程序级别的TCP连接,在不受信任的公用互联网上使用TCP协议在客户端应用程序和服务器应用程序之间建立安全的通信隧道。这样的改进将允许在公共互联网上直接进行应用程序之间的通信,而无需使用VPN或专用网络,并且无需任何特殊配置即可支持遍历NAT路由器。这种直接的服务器到服务器通信对于促进分布式(公用互联网)服务器集群体系结构至关重要。通过本发明的一个或多个实施例解决了现有技术的这些和其他缺陷。
本发明的附加优点和新颖特征将在下面的描述中部分地阐述,并且在阅读以下说明后对于本领域技术人员将部分地变得显而易见,或者可以通过实施本发明而了解。本发明的优点可以通过所附权利要求中特别指出的手段,组合,组成和方法来实现和获得。
发明内容
用于在公用互联网上的应用程序之间进行安全通信的系统和相应方法,包括在驻留在源服务器上的客户端应用程序与驻留在源网关上的源隧道网关应用程序之间建立源直接第4层终端控制协议(TCP)网络路由。在此过程中,使用适用于TCP传输的格式将客户机应用程序数据传输到源隧道网关应用程序。
此后,在驻留在源网关上的源隧道网关应用程序和驻留在目的网关上的目的隧道网关应用程序之间建立单个私有且安全的单独用户数据报协议(UDP)面向数据报的通信信道。在源隧道网关应用程序处,客户端应用程序数据打包为适用于UDP传输的格式,并通过专用和安全的UDP面向数据报的通信信道,使用UDP从源隧道网关应用程序转发到目的隧道网关应用程序。
到达目的隧道网关应用程序后,客户端应用程序数据被重新打包为适用于TCP传输的格式。在驻留在目标网关上的目的隧道网关应用程序和驻留在目的服务器上的服务器应用程序之间建立目标直接第4层网络TCP路由,从而使用TCP将现在重新打包为TCP格式的客户端应用程序数据传输到服务器应用程序。
本发明的另一特征是源隧道网关应用程序包括被配置为接受应用程序连接的一个或多个监听TCP套接字。源隧道网关应用程序接受的每个连接构成一个单独的通信会话,从而在特定的源隧道网关应用程序和特定的客户端应用程序之间形成单独的TCP连接。响应于侦听TCP套接字开始接受新连接,驻留在源隧道网关应用程序上的管道路由器和连接状态机,向目的隧道网关应用程序发送信令,以启动到服务器应用程序的新出站TCP连接。为了确保安全,管道路由器和连接状态机使用数据报传输层安全(DTLS)协议封装消息。
一旦与服务器应用程序建立了新的出站TCP连接,就可以通过专用且安全的单个UDP面向数据报的通信信道,在源服务器上的客户端应用程序与目的服务器上的服务器应用程序之间传输客户端应用程序数据。
本发明的另一个特征是客户端应用程序的访问限于服务器应用程序,而服务器应用程序的访问限于客户端应用程序。尽管通信信道狭窄,但是源隧道网关应用程序和目的隧道网关应用程序仍可以管理客户端应用程序和服务器应用程序之间的一个或多个隧道连接。
可以将上述方法和特征作为机器可执行代码作为指令存储在非暂时性机器可读存储介质上,这些指令在由至少一台机器执行时,使机器在源服务器上的客户端应用程序与源网关上的源隧道网关应用程序之间建立源直接第4层终端控制协议(TCP)网络路由,从而使用适用于TCP传输的格式将客户端应用程序数据传输到源隧道网关应用程序。该代码还可以在驻留在源网关上的源隧道网关应用程序和驻留在目的网关上的目的隧道网关应用程序之间建立专用且安全的单独用户数据报协议(UDP)面向数据报的通信信道。
在源隧道网关应用程序处,附加指令包将客户端应用程序数据打包成适用于UDP传输的格式,并使得机器,通过专用且安全的单独的UDP面向数据报的通信信道,使用UDP从源隧道网关应用程序到目的隧道网关应用程序转发客户端应用程序数据。
执行该代码的机器此后可以在目的隧道网关应用程序中将客户端应用程序数据重新打包为适用于TCP传输的格式,使用在目标网关上的网关应用程序和目标服务器上的服务器应用程序之间建立的目标直接第4层网络TCP路由,传输到服务器应用程序。
根据本发明的用于传输控制协议隧道的计算机系统包括能够执行体现为软件的指令的机器,并且多个软件部分被配置为执行上述步骤。
本发明和以下详细描述中描述的特征和优点并非全部。鉴于附图,说明书和权利要求书,许多其他特征和优点对于相关领域的普通技术人员将是显而易见的。此外,应该注意的是,说明书中使用的语言主要是出于可读性和指导性目的而选择的,并且可能不是为了勾勒或限制本发明的主题而选择的;对权利要求的参考对于确定这种发明主题是必要的。
附图的简要说明
通过参考结合附图对一个或多个实施例的以下描述,本发明的上述和其他特征和目的以及实现它们的方式将变得更加明显,并且本发明本身将被最好地理解,其中:
图1a和图1b是高级网络连接图,示出了相关领域的技术人员已知的用于将客户端应用程序连接到服务器应用程序的典型配置;
图1c是如相关领域的技术人员所公知的,客户端应用程序与服务器应用程序之间的虚拟专用网连接的逻辑描述;
图2a和2b描绘了根据本发明的一个或多个实施例的用于在公共互联网上进行终端控制协议隧道传输的两种备选网络通信配置;
图3是根据本发明的一个实施例的在分布式计算资源上的多个节点之间使用安全UDP信道的终端控制协议隧道传输的逻辑描述;
图4a-4d是分布式服务器集群的系统架构图,其示出了根据本发明的一个实施例的各种组件、引擎和模块,这些组件、引擎和模块用于提供终端控制协议隧道以及经由安全UDP信道转发客户端应用程序数据。
图5是根据本发明一个实施例的用于经由安全UDP信道的终端控制协议隧道传输和客户端应用程序数据转发的过程的网络流程图。
图6是根据本发明的一个实施例的用于终端控制协议隧道传输和转发客户端应用程序数据的方法的流程图;以及
图7a和7b是根据本发明的一个实施例的用于终端控制协议隧道传输和经由安全UDP信道转发客户端应用程序数据的高级网络通信配置。
这些附图仅出于说明的目的描绘了本发明的实施例。本领域技术人员将从下面的讨论中容易地认识到,在不脱离本文描述的本发明原理的情况下,可以采用本文所示的结构和方法的替代实施例。
发明内容
在下文中以示例的方式描述了用于静态配置安全隧道的系统和相应方法。本发明使用用户数据报协议信道在服务器之间转发应用级传输控制协议应用数据。根据本发明的一个实施例,作为服务器集群的一部分的服务器,通过单独面向UDP数据报的通信信道使用安全的TCP连接转发,通过公共互联网彼此通信。
在可能没有诸如通过VPN连接的安全网络路由的情况下,本发明的TCP连接隧道允许驻留在源服务器上的客户端应用程序连接到驻留在目的服务器上的目的服务器应用程序。在这种情况下,并且根据本发明的一个实施例并参考图2a和2b,运行源隧道网关应用程序235的源网关服务器230在源网关服务器230和驻留在源服务器205上的客户端应用程序210之间建立直接第4层网络TCP路由240。在一个实施例中,源隧道网关应用程序235具有对应的驻留在目的网关255上的目的隧道网关应用程序250,通过它建立了消息通道。目的隧道网关应用程序250建立到目标服务器220的直接第4层网络TCP路由260,目标服务器220运行着服务器应用程序215。在替代实施例中,如图2a所示,目的隧道网关应用250可以在目的服务器220自身上运行。
以TCP通信格式到达源隧道网关应用程序的客户端应用程序数据被重新封装,以符合UDP通信标准。重新格式化或封装后,使用单独、私有且安全的UDP面向数据报的通信信道通过公共互联网传输客户端应用程序数据。
在本发明的这个版本中,源隧道网关包括被配置为接受新连接的监听TCP套接字。接受新连接后,源隧道网关应用程序会发信号通知目的隧道网关应用程序,以发起与目标服务器上预定服务器应用程序的新出站TCP连接。成功连接后,将从源套接字接收的所有TCP数据都转换为UDP格式,并通过UDP通道转发到目标套接字,然后恢复为初始的TCP格式,然后再交付给服务器应用程序。
本发明在非信任网络(例如使用UDP面向数据报的通信信道公共互联网)上断开连接的/地理网络之间提供安全的专用的TCP通信。它提供类似于VPN的功能,但是具有更大的安全性优势,并且复杂度较低。本发明可以进一步与应用程序管理平台集成,以提供跨公用互联网的分布式应用程序的自动连接。这可以支持与服务器集群相关的高可用性,复制和灾难恢复功能的简化配置,而无需VPN或主机网络堆栈的任何重新配置。
如相关领域的普通技术人员将理解的那样,本发明的一种实现是作为高可用性应用程序集群软件系统的一部分。高可用性集群系统管理可以在服务器集群的任何一台服务器上运行的应用程序,并根据故障在服务器之间移动应用程序。在这种情况下,本发明被配置为在不活动的服务器上自动建立隧道源,以支持从任何服务器对该服务器的应用程序访问,而不管应用程序在哪个服务器上处于活动状态。
在此参照附图详细描述本发明的实施例。尽管以一定程度的特定性描述和说明了本发明,但是应该理解,本公开仅是通过示例的方式进行的,并且在不脱离本发明的精神和范围的情况下本领域技术人员可以对部件的组合和布置进行多种改变。
参考附图提供本发明的描述,以帮助全面理解由权利要求及其等效物定义的本发明的示例性实施例。它包括各种具体细节以帮助理解,但这些仅仅被视为示范。因此,本领域的普通技术人员将认识到,可以在不脱离本发明的范围和精神的情况下对本文描述的实施例进行各种改变和修改。此外,为了清楚和简洁,省略了对已知功能和构造的描述。
在以下描述和权利要求中使用的术语和词语不限于书面含义,而是仅由发明人用来使对本发明的清楚和一致的理解成为可能。因此,对于本领域技术人员而言显而易见的是,提供本发明的示例性实施方式的以下描述仅出于说明的目的,而并非出于限制由所附权利要求及其等同物所限定的本发明的目的。
术语“基本上”是指不需要精确地实现所叙述的特性,参数或值,但是,偏差或变化,包括例如公差,测量误差,测量精度限制和本领域技术人员已知的其他因素,可能会出现,但不会排除特征所要提供的效果。
贯穿全文,相同的数字表示相同的元素。在附图中,为了清楚起见,可能放大了某些线、层、组件,元件或特征的尺寸。
本文所使用的术语仅出于描述特定实施例的目的,并不旨在限制本发明。如本文所使用的,单数形式“一”,“一个”和“该”也意图包括复数形式,除非上下文另外明确指出。因此,例如,提及“部件表面”包括提及一个或多个这样的表面。
如本文所用,对“一个实施例”或“一个实施例”的任何引用表示结合该实施例描述的特定元件,特征,结构或特性包括在至少一个实施例中。说明书中各个地方出现的短语“在一个实施例中”不一定全都指同一实施例。
如本文所使用的,术语“包括”,“包含”,“具有”或其任何其他变型旨在覆盖非排他性包含。例如,包括一系列元素的过程,方法,物品或设备不一定仅限于那些元素,而是可以包括未明确列出或此类过程,方法,物品或设备固有的其他元素。此外,除非明确相反地指出,“或”是指包含性的或而不是排他性的或。例如,条件A或B由以下任一条件满足:A为真(或存在)且B为假(或不存在),A为假(或不存在)且B为真(或存在),并且A和B都为真(或存在)。
为了本发明的目的,假定以下缩写词和术语代表并且应解释为:
IP–internet protocol,互联网协议。占用OSI模型中的第3层。互联网协议负责确保将数据包发送到正确的目的地。
IPv4–Internet协议版本4,具有32位地址空间
ISP–Internet Service Provider,互联网服务提供商
OSI Model–Open Systems Interconnection model,开放系统互连模型,使用7层而不是TCP模型的4层的网络功能层的标准表征。
隧道或隧道协议(在本文中也称为通道)–在计算机网络中,隧道协议是一种通信协议,它允许将数据从一个网络移动到另一个网络。它涉及允许通过称为封装的过程跨公用网络(例如Internet)发送专用网络通信。因为隧道化涉及将流量数据重新打包为另一种形式(也许以加密为标准),所以它可以隐藏通过隧道运行的流量的性质。隧道协议通过使用数据包(有效负载)的数据部分承载实际提供服务的数据包来工作。隧道使用分层协议模型(例如OSI或TCP/IP协议套件的分层协议模型),但是在使用有效负载来承载网络通常不提供的服务时,通常会违反分层协议。通常,传递协议在分层模型中的运行级别与有效负载协议相同或更高。
端口–端口是机器上的开口,数据能够通过该开口流动。
端口转发–大多数NAT路由器提供的一种技术,允许从公用互联网到内部服务器的连接
NAT–Network Address Translation,网络地址转换,一种用于将局域网连接到公用互联网的技术。NAT使多个服务器(计算机)可以通过单个外部IPv4地址与公用互联网进行交互。
TCP–Transmission Control Protocol,传输控制协议,一种面向流,可靠传递的数据传输协议。传输控制协议在应用程序和Internet协议之间的中间级别提供通信服务。它在Internet模型的传输层提供主机到主机的连接。应用程序不需要了解用于通过链接向另一主机发送数据的特定机制,例如为容纳传输介质的最大传输单位而需要的IP分段。在传输层(OSI模型中的第4层),TCP处理所有握手和传输详细信息,并通常通过网络套接字接口为应用程序提供网络连接的抽象。
UDP–User Datagram Protocol,用户数据报协议,一种不保证有序的数据报传送协议,通过IP使用。UDP使用具有最少协议机制的简单无连接通信模型。UDP提供用于数据完整性的校验和,以及用于在数据报的源和目标处寻址不同功能的端口号。UDP不使用任何握手对话,因此使用户程序暴露于底层网络的任何不可靠性之中。在OSI模型中占据第4层。
GRE–Generic Routing Encapsulation,通用路由封装,一种简化的面向数据报的协议,某些VPN使用此协议来交换第2层或第3层流量。GRE本身位于OSI模型的第4层,因为它位于第3层协议之上,但是被认为通过包含来自较低层的消息来破坏分层顺序。
主机网络堆栈–Host Networking Stack,运行在服务器或任何其他联网计算机上的主要网络状态机,通常是操作系统内核的一部分。主机网络堆栈为TCP和UDP协议提供第4层套接字服务,并为第3层协议(例如IPv4/IPv6,第2层协议,网络硬件驱动程序和VPN的虚拟网络驱动程序)提供状态机。
LAN–Local Area Network,局域网。
WAN–Wide Area Network,广域网。一种通常将遥远的站点彼此连接或连接到公用互联网的网络。公用互联网被视为WAN。
VPN–Virtual Private Network,虚拟专用网。第2层或第3层网络技术,允许在WAN(例如公用互联网)上安全地扩展或桥接本地网络。
传输层安全,Transport Layer Security。一种用于在面向流的通信信道(例如TCP)上建立经过身份验证的专用通信信道的方法。
WSFC–Microsoft Windows Server Failover Clustering,MicrosoftWindows服务器故障转移集群;允许服务器作为计算机集群一起工作的软件。
DTLS–Datagram Transport Layer Security,数据报传输层安全。一种用于在不可靠的无序数据报通信信道(如UDP)上建立经过身份验证的专用通信信道的方法。
Socket–网络套接字是由主机名或IP地址和端口定义的端点实例,用于在计算机网络上的节点内发送或接收数据。套接字是网络软件或协议堆栈中端点的表示,并且在逻辑上类似于通过通道在两个节点之间的物理母连接,其中,该通道可视化为电缆,电缆具有两个邮件连接器,每个接头都插入该套接字。为了使网络上的两台计算机相互通信,它们必须知道彼此的端实例(主机名/IP地址)才能交换数据。
除非另有定义,否则本文中使用的所有术语(包括技术和科学术语)具有与本发明所属领域的普通技术人员通常所理解的相同含义。将进一步理解,诸如在常用词典中定义的那些术语,应被解释为具有与其在说明书和相关技术的上下文中的含义一致的含义,并且除非在此明确如此定义,否则不应以理想化或过于正式的意义来解释。为了简洁和/或清楚起见,可能没有详细描述众所周知的功能或构造。
还应理解,当一个元件被称为“在……上”、“附接”到、“连接”到、“耦合”到、“接触”、“安装”等时,还可存在另一元件,其可直接在另一元件上、附接到、连接到、耦合到或接触另一元件或介入元件。相反,当元件被称为例如“直接在……上”,“直接附接”到,“直接连接”到“直接耦接”,“直接联接”或“直接接触”另一元件时,则不存在中间元件。本领域的技术人员还将意识到,提及与另一特征“相邻”设置的结构或特征可具有与相邻特征重叠或位于其附近的部分。
如图所示,为了便于描述,这里可以使用空间相关术语,例如“低于”、“低于”、“低于”、“高于”、“高于”等来描述一个元素或特征与另一个元素或特征的关系。应当理解,空间上相对的术语意在除了图中描绘的方向之外,还包括正在使用或操作的设备的不同方向。例如,如果图中的装置被反转,则被描述为“在”其他元件或特征之下的元件将被定向到“在”其他元件或特征之上。因此,示例性术语“在下”可以包括“在上”和“在下”的方向。该装置可以以其他方式定向(旋转90度或以其他定向),并且本文中使用的空间相对描述符可以相应地解释。类似地,除非另有特别指示,否则在此仅出于解释的目的使用术语“向上”、“向下”、“垂直”、“水平”等。
参考图3并且根据本发明的一个实施例,一对隧道网关305、310管理任意数量的单独隧道连接。图3是服务器集群中两个节点之间的通信流量的逻辑描述。根据本发明,源隧道网关305的特征是具有多个监听TCP套接字312、314接受连接。侦听套接字上接受的每个连接构成一个单独的通信会话,该会话将导致由目的隧道网关310发起的单独的出站TCP连接。
图3中的逻辑连接通过UDPDTLS通道320在Node1和Node2之间。通过UDPDTLS通道发送的消息至少有两种形式,分别用于不同的目的。这些包括:
●组通信协议消息(“成员消息”)这些由组通信管理器325管理的消息,用于确定服务器集群的其他成员的响应性,以达成关于当前哪些服务器可用以及哪个服务器是集群协调器的集群共识。这些消息不需要可靠地传递,也不需要以任何特定的顺序传递,但必须尽快传递,以便对通信丢失做出快速反应。
●管道消息。管道消息330提供可靠的、面向流的信道,类似于终端控制协议(TCP)消息。管道消息在套接字会话上下文中操作,并使用类似于TCP的端口号进行多路复用和路由。管道套接字上的数据传输可靠且有序,并承载所有更高级别集群管理功能的流量。管道消息需要一个复杂的状态机来生成和处理。
使用预共享密钥,Node1和Node2建立一个安全通道,通过该通道可以交换管道消息。例如,链接到客户端应用程序2 340的节点1的套接字实例5333 314,通过节点1的套接字端口映射345隧道传输到节点2的套接字端口映射350,已到达链接到服务器应用程序2360的节点2的套接字实例7777 318。类似的,链接到节点1上的套接字实例6666 316的服务器应用程序1 365的实例,通过节点2的套接字端口映射350隧道传输到节点1的套接字端口映射345,以到达链接到客户端应用程序1 370的节点1的套接字实例1234 312。由于每个节点可以具有多个实例,并且每个LAN可以具有多个节点,所以Node2和Node2的通信管理器325管理管道330及其对等组的成员。
现在参考图4a和4b,本发明的一个实施例包括通信耦合到公共互联网130的一个或多个服务器405,其中每个服务器除其他外还包括集群监视器410,本地监视器420,处理器401,非暂时性存储介质402。客户端应用程序430和/或服务器应用435在一个或多个服务器405上运行,或者经由LAN与服务器交互。本发明支持TCP隧道的操作,供这些应用程序在公共互联网上使用。TCP隧道允许此处说明和描述的应用程序通过不一致的网络(例如跨NAT路由器440)相互连接,而不打开对公用互联网130的访问。此外,通信地耦合到互联网的是中间注册表服务器450,其使得能够跨公共互联网形成集群。
图4所示的集群监视器410负责在参与隧道网关网络的所有可用服务器之间建立通信,监视服务器可用性,通过其协调器提供虚拟同步,监视和同步所附服务进程(集群服务)的状态,在集群服务成员之间中继命令,并维护隧道端点。作为组成一组隧道网关服务器的一部分,集群监视器选择该组中的一个特定成员作为集群协调器。由于本发明使得建立多于两个隧道网关服务器的网络成为可能且有价值,因此隧道网关服务器的组在本文中被称为集群,主要联网组件为集群监视器。
从集群监视器410的角度来看,集群服务是参与命名组的外部软件组件。集群监视器会通知参与同一组的所有集群服务彼此的状态以及该组可能发生的任何更改。本地监视器组件用作集群服务。组中的任何服务器都可以担任此角色。集群监视器的组件包括:
○组通信模块411–负责与集群中所有可用服务器建立通信,监视服务器可用性和通信信道,以及选举服务器作为集群协调者。
○管道路由器和状态机412–通过不可靠的,无序的,面向数据报的UDP通信信道提供可靠的,有序的,面向流的消息传递通道。管理管道套接字,包括侦听套接字和传出连接。隧道端点管理器使用此模块提供的通信信道来建立新的隧道会话并交换现有会话上的数据。管道路由器和状态机也被其他集群监控组件在内部使用与其他服务器进行通信。管道状态机与大多数主机网络堆栈中的TCP模块相似,并且执行的功能大致相同,但是在本发明中,它充当集群监视器组件中类似TCP的私有软件组件。
○DTLS会话管理器413–负责通过UDP与集群中的其他服务器建立经过身份验证的DTLS会话。
○中间注册表服务器客户端414–此客户端管理与中间注册表服务器的通信,包括NAT配置发现,组注册和邀请。
○集群服务状态机415–负责监视集群服务的可用性,处理对可用集群服务的更改,并向运行在每个系统上的活动集群服务组件通知当前服务成员身份。
○命令状态机416–监视各种集群服务提交的中继命令的状态。该模块还确保中继命令的顺序一致,并将响应的可靠性发送回这些命令的发布者。
○通信设置管理器418–通信设置管理器维护集群的管理配置的详细信息,包括系统的列表、它们的网络地址和密码机密。管理活动集群中添加和删除系统的过程。
○隧道端点管理器419–此组件(在图4c中显示了更多详细信息,它负责根据全局配置创建,更改或删除隧道重定向器端点。隧道端点管理器确保隧道配置在服务器之间同步,处理对全局隧道配置的更新,并管理两种不同类型的隧道端点:
■TCP侦听器块432–侦听TCP套接字。对于每个新接受的连接,TCP侦听器块将启动到预配置地址的管道连接。成功连接后,将从接受的TCP套接字接收到的所有数据转发到管道套接字,反之亦然。
■管道侦听器块434、436–侦听管道套接字。对于每个新接受的连接,管道侦听器块将启动与预配置地址的TCP连接。成功连接后,将从接受的管道套接字接收到的所有数据转发到TCP套接字,反之亦然。
在内部,作为集群监视器410(图4d)一部分的管道路由器和状态机412包括:
■套接字端口映射462–此映射通过它们绑定到的本地端口以及远程端口(如果已连接)索引所有管道路由器套接字。允许将入站消息快速路由到适当的套接字进行处理。
■路由索引464–路由索引包含DTLS状态机和每个可用对等方的UDP通信信道详细信息,并按对等方的名称进行索引。每个路由都提供了一种将数据报发送到特定对等方的方法。
由管道路由器和状态机412管理的每个套接字465包括:
○连接状态机466–此机器标识特定套接字的连接状态,并确定对新接收到的消息的解释。套接字状态严格遵循RFC793为TCP概述的状态,包括:
■SynSent–连接请求发送到另一端,等待响应;
■SynReceived–收到连接请求,尚未确认响应;
■已建立–双方确认了连接请求,双方均未请求关闭连接;
■FinWait1–本地端已请求关闭连接,远程端未请求关闭,也未确认本地关闭请求;
■FinWait2–本地方请求关闭连接,远程方未请求关闭,但已确认本地关闭;
■关闭-本地方已请求连接关闭,远程方也已请求连接关闭,但尚未确认本地关闭;
■TimeWait–双方都请求关闭连接,远端已经确认,但是可能需要重新发送本地确认;
■CloseWait–远程端已请求关闭连接;当地方已发出确认,但未要求关闭;
■LastAck–远程端已请求关闭连接,本地端已发送确认,然后请求关闭,但尚未确认;和
■侦听–套接字已打开,可以接受新的连接请求。
○数据缓冲区467–数据缓冲区包含尚未被另一方确认的出站数据和无序接收的入站数据。
○传输状态机468–传输状态机决定何时以及如何将本地数据发送到远程侧。执行:测量网络容量和往返时间,消息丢失分析,传输限制,定时重传和连接超时操作。
驻留在集群内每个服务器上的本地监视器420维护隧道的配置状态,并提供管理接口。本地监视器的组件包括:
○客户端管理器421–该模块负责处理来自本地客户端403的传入客户端请求,将请求传递给应用程序协调器,以及维护客户端连接。
○同步管理器422–同步管理器维护虚拟主机和应用程序的管理配置。当集群成员身份更改时,在系统之间同步配置。
○应用程序协调器423–负责执行管理命令,并将隧道配置与集群监视器同步。该组件负责维护配置,该配置描述了要在整个集群中维护的隧道的列表。
除了为TCP连接隧道提供服务之外,由本发明的管道路由器和状态机提供的有序,可靠的通信信道对于集群监视器内部的组件(例如集群服务状态机和命令状态机)也是必需的。管道路由器通信信道用于将命令发送到集群中的其他服务器,将响应发送回命令发布者,以及同步配置。应用程序协调器的隧道配置表中的条目包含:
○目标网关名称–标识将操作目的隧道网关的集群成员
○目标目标地址和端口–标识目标网关将与之建立新隧道连接的主机
○一个或多个源,包括:
■源网关名称–将操作源隧道网关的集群成员
■源侦听地址和端口–描述如何创建源网关的侦听TCP端口
再次转到图4c,可以看到集群监视器410和隧道端点管理器419的TCP隧道侦听器块和管道侦听器块组件,因为它们内部利用了隧道会话组件。隧道会话代表单个已建立的连接,并且包括TCP侦听套接字470和管道路由器套接字476。侦听器块为其在侦听套接字上接受的每个连接创建一个隧道会话471,并且每个侦听器块都包含它已创建的一组隧道会话。隧道会话组件有两个主要职责。这些职责包括:
○将在一个套接字上收到的数据转发到另一个套接字。当从TCP套接字472接收到数据时,将其发送到管道套接字474,反之亦然。这还包括当一方接收数据的速度不如数据进入的速度快时,另一方中断接收的可能性。
○管理文件结束和套接字关闭。任何一方都可以发起关闭,而不必同时发起。必须将在一个套接字上收到的关闭事件转发给另一个套接字,并且当双方完成关闭时,可以丢弃隧道会话。
除了集群之外,中间注册表服务器(或模块)450仍然通过公共互联网耦合到集群,它使地理上分离的服务器能够使用UDP而不是更传统的VPN来形成服务器集群。注册表服务组件包括:
○成员资格列表管理器452–维护联系中的已知服务器,它们声明属于的组的列表,并将该组的更改通知同一组的其他服务器。还处理集群形成和添加新服务器的邀请请求。
○DTLS会话管理器454–负责与充当客户端的服务器建立DTLS会话。不用于身份验证,但用于名义上的消息隐私。
○连接日志管理器456–启用后,维护有关已联系哪些服务器,建立联系以及失去联系的日志。用于潜在的计量和计费目的。
○配置管理器458–维护配对服务的配置,包括其应监听的地址以及服务器黑名单。
根据本发明的一个实施例的用于在服务器集群的形成中配置新隧道的方法包括:
1.集群协调器向目的网关服务器发送请求以创建管道侦听器块476。管道侦听器模块476将配置为在随机管道端口上侦听474,并连接到目标目的地址-隧道的目的服务器应用程序。
2.目标网关服务器用绑定侦听器块的管道端口进行响应。
3.此后,集群协调器将请求发送到所有原始网关服务器以创建TCP侦听器块470。TCP侦听器块被配置为在步骤(2)中确定的管道端口上连接到目标网关服务器。
管道路由器和状态机提供面向连接的,有序的,可靠传递的消息通道,并在不可靠的,乱序的数据报消息通道上操作消息通道。管道路由器和状态机还通过数字端口的名称空间(类似于TCP)提供连接侦听和连接建立消息。
使用提供安全性的DTLS会话管理器412,通过数据报传输层安全(“DTLS”)协议封装由管道路由器和状态机生成的数据报消息。DTLS允许隧道网关组件使用公钥加密相互认证,并为消息私密性加密数据报。通过使用此安全级别,可以防止在邮件穿越公用互联网时进行拦截,欺骗和邮件更改攻击。相关领域中的技术人员可以知道,DTLS可以替代提供服务器身份验证和消息保密性的任何类似网络安全层。
DTLS封装的数据报消息通过UDP在网关隧道应用程序和组件之间交换。然后,使用在路由索引464中列出的已知地址,或通过中介注册服务器450使用端点发现来建立UDP通信信道,如图4a所示。
本质上,本发明是网关源隧道应用程序和网关目的隧道应用程序之间的交互。然而,本发明不将通信限于一对网关服务器。除了简单的点对点隧道之外,本发明还允许每个网关服务器具有单个目的地,多个起点和多个隧道的隧道。如上所述以及在随后的部分中,用于形成本发明的隧道网关服务器之间的链接的管道路由器和状态机,DTLS和UDP传输组件可以用于形成隧道网关服务器的集群。
本发明的一个特征是它仅使用第4层TCP和UDP套接字与主机网络堆栈交互,并且不需要第2层或第3层VPN驱动程序。尽管通常将客户端应用程序配置为连接到运行服务器应用程序的主机,但是根据本发明,客户端应用程序将配置为通过隧道始发点连接到主机。集群监视器组件(在此描述)保留用于隧道源的侦听TCP套接字。接受新的TCP连接后,集群监视器组件通过在其UDP通道上发送适当的消息来启动到远程集群监视器的管道连接,并在成功连接后在到达时来回传输数据。
当应用程序的各个部分通过不一致的网络或其他麻烦的网络(例如NAT路由器和限制性防火墙)连接时,TCP连接隧道特别有用,前提是隧道网关能够找到消息通道。本发明通过使用源管道网关应用程序的管道路由器和状态机组件将接受的TCP连接转发到网关目的地隧道应用程序,最后作为到目标应用程序的出站TCP连接,来完成TCP连接隧道传输。
与其他网络访问方法相比,TCP连接隧道具有安全优势。举例来说,尝试连接到由云提供商托管的私有服务器的客户端可以使用两种广泛接受的使服务器可用的方法。通常,在这种情况下,客户端和服务器都通过NAT路由器连接到互联网,因此无法直接寻址。
本发明在公共互联网上使用TCP隧道和专用UDP信道来将驻留在源服务器上的客户端应用程序与驻留在目的服务器上的服务器应用程序连接。客户机应用程序生成的数据从TCP传输格式转换或打包为适合UDP传输的格式,通过面向专用和安全UDP数据报的通信信道在因特网上传输,然后重新打包为适合TCP传输的格式以传送到服务器应用程序。
此后包括的流程图描述了可用于在公共互联网上进行TCP隧道传输的方法的示例。在以下描述中,可以理解,流程图图示的每个框以及流程图图示中的框的组合可以由计算机程序指令来实现。这些计算机程序指令可以被加载到计算机或其他可编程装置上以产生机器,使得在计算机或其他可编程装置上执行的指令创建用于实现在一个或多个流程图框中指定的功能的装置。这些计算机程序指令还可以存储在计算机可读存储器中,该计算机可读存储器可以指导计算机或其他可编程装置以特定方式运行,从而使得存储在计算机可读存储器中的指令产生包括用于实现以下目的的指令装置的手段,这些手段实现在一个或多个流程图块中指定的功能。也可以将计算机程序指令加载到计算机或其他可编程装置上,以使一系列操作步骤在计算机或其他可编程装置上执行,以产生计算机实现的过程,从而使得指令可以在计算机或其他可编程装置上执行。其他可编程设备提供用于实现在一个或多个流程图框中指定的功能的步骤。
因此,流程图图示的框支持用于执行指定功能的装置的组合以及用于执行指定功能的步骤的组合。还应理解,流程图图示的每个框以及流程图图示中的框的组合可以由执行指定功能或步骤的基于专用硬件的计算机系统,或专用硬件和计算机指令的组合来实现。
根据本发明的一个实施例并参考图5和图6,用于在公共互联网上进行TCP隧道的过程从在驻留在源服务器上的客户端应用510和源隧道网关应用之间建立610直接第4层TCP网络路由开始。在一个实施例中,驻留在集群监视器410的组件内的隧道网关应用程序驱动隧道端点管理器419,管道路由器和状态机412以及组通信模块411以及对等路由470的DTLS状态机472,被速率索引464所标识,以在源隧道网关应用程序(集群监视器)和目的隧道网关应用程序之间建立620私有和安全的单独UDP面向数据报的通信信道(本地UDP和远程UDP端点474、476)。在其他实施例中,源隧道网关应用程序和/或目的隧道网关应用程序可以驻留在单独的服务器上,例如源网关服务器和目的网关服务器。
将客户端数据以适用于TCP传输的格式传递到源隧道网关应用程序后,将其打包630为UDP面向数据报的通信格式,然后将从源隧道网关应用程序转发640到目的隧道网关应用程序。信息用DTSL通信协议加密。
在到达时,将适合UDP面向数据报的通信的客户端数据重新打包650或转换回适用于TCP传输的格式。此后,目的隧道网关应用程序建立670到位于目的服务器上的服务器应用程序的直接第4层网络路由,客户端应用程序数据以适用于TCP传输的格式被发送680到目的服务器上。
如上所述,集群监控器(源隧道网关应用程序)的管道状态机和组通信模块可以包括配置为接受多个应用程序连接的多个侦听TCP套接字。每个连接都是安全的直接应用程序到应用程序连接。并且,响应于新的连接开始被侦听的TCP套接字接受,位于源隧道网关应用程序中的管道路由器和连接状态机可以向目标隧道网关应用程序发出信号,以发起到所述(或其他)服务器应用程序的出站TCP连接。并且每个传输都使用DTLS协议封装。
本发明可以以多种配置来实现。允许驻留在源服务器720上的客户端应用程序710访问目的服务器715和目的服务器应用程序725的最常见方法是将NAT路由器730配置为将可公开访问的TCP端口735转发到内部服务器应用725,如图7a所示。使用这种方法,必须将客户端应用程序配置为在适当转发的端口上连接到目标NAT路由器733的公共地址。如果可以轻松更改NAT路由器配置,并且只提供对服务器应用程序的访问,则此方法很简单。但是,此方法还将使转发的TCP端口可用于整个公用互联网,这可能是敏感服务器应用程序的安全问题。
通过向客户端应用程序710提供并仅提供对服务器应用程序725的访问,并且不产生对来自公用互联网130的客户端应用程序710或客户端应用程序数据的访问的可能性,图7b所示的本发明的TCP连接隧道提供了更高的隔离度。通过这种方法,客户端应用程序710被配置为在适当转发的端口上连接到本地服务器(源网关)740,将应用数据重新打包为合适的UDP格式,并通过单独面向UDP数据报的通信信道转发封装的数据。到达目的隧道网关750后,数据将被重新打包并安全地传递到目的服务器应用程序。
本发明还促进了在一台服务器位于对称NAT后面的情况下两台服务器及其应用程序之间的直接通信,只要另一台服务器不也位于对称NAT后面。这是通过双向尝试发起通信来实现的,其中来自非对称NAT后面的服务器的出站尝试可以被对称NAT阻止,但是对称NAT后面的服务器的出站尝试将不会被非对称NAT阻止。
本文描述的发明使用面向数据报的UDP协议在隧道网关之间进行通信,通过该协议可以转发TCP应用数据。端点发现使用UDP实质上更可靠,并且UDP允许更准确地评估对等服务器的状态,因为从对等服务器接收的每个消息都由本发明的组件处理。在TCP方法中,主机网络堆栈不会通知应用程序任何不包含下一个未接收数据块的消息。所描述的概念为服务器之间以及匹配服务之间的所有通信样式指定了单个UDP端口的使用。这支持可靠的端点发现和应用程序数据转发。
在阅读了本公开之后,本领域技术人员将理解通过本文公开的原理的用于TCP/UDP隧道的系统和过程的另外的替代结构和功能设计。因此,尽管已经示出和描述了特定的实施例和应用,但是应当理解,所公开的实施例不限于本文所公开的精确构造和组件。在不脱离本发明的精神和范围的情况下,可以对本文公开的方法和装置的布置,操作和细节进行对本领域技术人员而言显而易见的各种修改,改变和变化。
在一个实例中,本发明可以被实现为一种用于传输控制协议隧道的计算机实现的方法,包括以下步骤:
○在驻留在源服务器上的客户端应用程序和驻留在源网关上的源隧道网关应用程序之间建立源直接第4层终端控制协议(TCP)网络路由,从而使用适用于TCP传输的格式将客户端应用程序数据发送到所述源隧道网关应用程序;
○在驻留在所述源网关上的所述源隧道网关应用程序和驻留在目的网关)上的目的隧道网关应用程序之间建立专用且安全的单个用户数据报协议(UDP)面向数据报的通信信道;
○在所述源隧道网关应用程序处,将客户端应用程序数据重新打包成适用于UDP传输的格式;
○通过所述专用且安全的单个UDP面向数据报的通信信道,使用UDP将客户端应用程序数据从所述源隧道网关应用程序转发到所述目的隧道网关应用程序;
○在所述目的隧道网关应用程序处,将客户端应用程序数据重新打包为所述适用于TCP传输的格式;以及
○在所述目的网关上的目的隧道网关应用程序和目的服务器上的服务器应用程序之间建立目的直接第4层网络TCP路由,此后,使用TCP将客户端应用程序数据发送到所述服务器应用程序。
上述方法的其他特征可以包括:
○其中,所述源隧道网关应用程序包括被配置为接受应用程序连接的一个或多个监听TCP套接字;
○其中,所述源隧道网关应用程序接受的每个连接都构成一个单独的通信会话,从而在所述源隧道网关应用程序和所述客户端应用程序之间形成单独的TCP连接;
○响应于侦听TCP套接字开始接受新连接,通过驻留在所述源隧道网关应用程序上的管道路由器和连接状态机,向所述目的隧道网关应用程序发送信令,以启动到所述服务器应用程序的新出站TCP连接;
○其中,所述管道路由器和所述连接状态机使用数据报传输层安全性(DTLS)协议封装消息;
○响应于到正被连接的服务器应用程序的新出站TCP连接,还包括,通过专用且安全的单个用户数据报协议(UDP)面向数据报的通信信道,在所述源服务器上的客户端应用程序与所述目的服务器上的服务器应用程序之间传输客户端应用程序数据;
○其中,所述客户端应用程序的访问仅限于所述服务器应用程序,并且服务器应用程序的访问仅限于所述客户端应用程序;
○所述源隧道网关应用程序和所述目的隧道网关应用程序管理所述客户端应用程序和所述服务器应用程序之间的一个或多个隧道连接;以及
○其中,每个隧道连接可以具有唯一的应用程序。
在另一实例中,本发明可以实现为一种非暂时性机器可读存储介质,其上存储有用于执行一种方法的指令,该指令包括机器可执行代码,该机器可执行代码在由至少一个机器执行时使该机器:
○在驻留在源服务器上的客户端应用程序和驻留在源网关上的源隧道网关应用程序之间建立源直接第4层终端控制协议(TCP)网络路由,从而使用适用于TCP传输的格式将客户端应用程序数据发送到所述源隧道网关应用程序;
○在驻留在所述源网关上的所述源隧道网关应用程序和驻留在目的网关上的目的隧道网关应用程序之间建立专用且安全的单个用户数据报协议(UDP)面向数据报的通信信道;
○在所述源隧道网关应用程序处,将客户端应用程序数据打包成适用于UDP传输的格式;
○通过所述专用且安全的单个UDP面向数据报的通信信道,使用UDP将客户端应用程序数据从所述源隧道网关应用程序转发到所述目的隧道网关应用程序;
○在所述目的隧道网关应用程序处,将客户端应用程序数据重新打包为所述适用于TCP传输的格式;以及
○在所述目的网关上的目的隧道网关应用程序和目的服务器上的服务器应用程序之间建立目的直接第4层网络TCP路由,使用TCP将客户端应用程序数据发送到所述服务器应用程序。
与方法一样,非暂时性存储媒体可以包含提供更多特征的代码,包括:
○其中,所述源隧道网关应用程序包括被配置为接受客户端应用程序连接的一个或多个监听TCP套接字;
○其中,所述源网关应用程序接受的每个连接都构成一个单独的通信会话,从而在所述源隧道网关应用程序和所述客户端应用程序之间形成单独的TCP连接;
○响应于侦听TCP套接字开始接受新连接,还包括软件部分,该软件部分被配置为,通过驻留在所述源隧道网关应用程序上的管道路由器和连接状态机,向所述目的隧道网关应用程序发送信令,以启动到所述服务器应用程序的新出站TCP连接;
○其中,所述管道路由器和所述连接状态机使用数据报传输层安全性(DTLS)协议封装消息;
○响应于到正被连接的服务器应用程序的新出站TCP连接,还包括软件部分,该软件部分被配置为,通过专用且安全的单个用户数据报协议(UDP)面向数据报的通信信道,在所述源服务器上的客户端应用程序与所述目的服务器上的服务器应用程序之间传输客户端应用程序数据;
○机器可执行代码,它使机器将客户端应用程序的访问限制到服务器应用程序,并将服务器应用程序的访问限制到客户端应用程序;
○其中,所述源隧道网关和所述目的隧道网关管理所述客户端应用程序和所述服务器应用程序之间的一个或多个隧道连接;
○其中,每个隧道连接可能具有唯一的应用程序。
本发明还可以实现用于传输控制协议隧道的计算机系统。这样的系统将包括能够执行指令的机器和容纳多个软件部分的非暂时性存储介质,其中该软件包括以下指令:
○在驻留在源服务器上的客户端应用程序和驻留在源网关上的源隧道网关应用程序之间建立源直接第4层终端控制协议(TCP)网络路由,从而使用适用于TCP传输的格式将客户端应用程序数据发送到所述源隧道网关应用程序;
○在驻留在所述源网关上的所述源隧道网关应用程序和驻留在目的网关上的目的隧道网关应用程序之间建立专用且安全的单个用户数据报协议(UDP)面向数据报的通信信道;
○在所述源隧道网关应用程序处,将客户端应用程序数据重新打包成适用于UDP传输的格式;
○通过所述专用且安全的单个UDP面向数据报的通信信道,使用UDP将客户端应用程序数据从所述源隧道网关应用程序转发到所述目的隧道网关应用程序;
○在所述目的隧道网关应用程序处,将客户端应用程序数据重新打包为所述适用于TCP传输的格式;以及
○在所述目的网关上的目的隧道网关应用程序和目的服务器上的服务器应用程序之间建立目的直接第4层网络TCP路由,使用TCP将客户端应用程序数据发送到所述服务器应用程序。
上述计算机系统的其他特征可以包括:
○其中,所述源隧道网关应用程序包括被配置为接受客户端应用程序连接的一个或多个监听TCP套接字;
○其中,所述源网关应用程序接受的每个连接都构成一个单独的通信会话,从而在所述源隧道网关应用程序和所述客户端应用程序之间形成单独的TCP连接;
○响应于侦听TCP套接字开始接受新连接,还包括软件部分,该软件部分被配置为,通过驻留在所述源隧道网关应用程序上的管道路由器和连接状态机,向所述目的隧道网关应用程序发送信令,以启动到所述服务器应用程序的新出站TCP连接;
○其中,所述管道路由器和所述连接状态机使用数据报传输层安全性(DTLS)协议封装消息;
○响应于到正被连接的服务器应用程序的新出站TCP连接,还包括软件部分,该软件部分被配置为,通过专用且安全的单个用户数据报协议(UDP)面向数据报的通信信道,在所述源服务器上的客户端应用程序与所述目的服务器上的服务器应用程序之间传输客户端应用程序数据;以及
○一个软件部分被配置为,将所述客户端应用程序的访问限于所述服务器应用程序,并且将所述服务器应用程序的访问限于所述客户端应用程序
本领域技术人员还将理解,在不脱离本发明的精神或基本特征的情况下,本发明可以以其他特定形式实施。同样,模块,管理器,功能,系统,引擎,层,特征,属性,方法和其他方面的特定命名和划分也不是强制性的或不重要的,并且实现本发明或其特征的机制可以具有不同的名称,分类,和/或形式。此外,对于相关领域的普通技术人员将显而易见的是,可以将本发明的模块,管理器,功能,系统,引擎,层,特征,属性,方法和其他方面实现为软件,硬件,固件,或三者的任意组合。当然,无论本发明的组件被实现为软件的何处,该组件都可以被实现为脚本,作为独立程序,作为较大程序的一部分,作为多个单独的脚本和/或程序,作为静态地实现。或动态链接库,作为内核可加载模块,作为设备驱动程序,和/或以计算机编程领域的技术人员现在或将来已知的所有其他方式。另外,本发明决不限于以任何特定的编程语言或针对任何特定的操作系统或环境的实现。因此,本发明的公开旨在说明而非限制本发明的范围,本发明的范围在所附权利要求中阐明。
在优选实施例中,本发明可以用软件实现。体现本发明的软件编程代码通常由微处理器从某种类型的长期,非暂时性持久存储介质(例如闪存驱动器或硬盘驱动器)访问。软件编程代码可以体现在与数据处理系统一起使用的各种已知介质中的任何一种上,例如磁盘,硬盘驱动器,CD-ROM等。该代码可以分布在这样的介质上,或者可以通过某种类型的网络从一个计算机系统的存储器或存储分布到其他计算机系统,以供这些其他系统使用。可替代地,编程代码可以被体现在设备的存储器中,并且可以由微处理器使用内部总线来访问。用于将软件编程代码体现在存储器中,物理介质上和/或经由网络分发软件代码的技术和方法是众所周知的,在此将不作进一步讨论。
通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程,程序,对象,组件,数据结构等。此外,本领域技术人员将理解,可以利用其他计算机系统配置来实践本发明,包括手持式设备,多处理器系统,基于微处理器的或可编程的消费电子产品,网络PC,服务器,小型计算机,大型计算机,等等。本发明优选地在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储设备中。
用于实现本发明的示例性系统包括通用计算设备,例如常规计算机,通信设备等的形式,其包括处理单元,系统存储器以及耦合各种系统组件的系统总线,所述系统组件包括:系统内存到处理单元。系统总线可以是几种类型的总线结构中的任何一种,包括使用各种总线体系结构中的任何一种的存储器总线或存储器控制器,外围总线和局部总线。系统存储器通常包括只读存储器(ROM)和随机存取存储器(RAM)。基本输入/输出系统(BIOS)包含有助于在个人计算机内各个元素之间(例如在启动过程中)传递信息的基本例程,该基本例程存储在ROM中。该计算机可以进一步包括用于从硬盘读取和写入硬盘的硬盘驱动器,用于从可移动磁盘读取或写入的磁盘驱动器。硬盘驱动器和磁盘驱动器分别通过硬盘驱动器接口和磁盘驱动器接口连接到系统总线。驱动器及其相关的计算机可读介质为个人计算机提供了计算机可读指令,数据结构,程序模块和其他数据的非易失性存储。尽管本文所述的示例性环境采用了硬盘和可移动磁盘,但是本领域技术人员应当理解,示例性存储中还可以使用可以存储计算机可访问的数据的其他类型的计算机可读介质。
尽管上面已经结合用于传输控制协议隧道的方法和系统描述了本发明的原理,但是应当清楚地理解,前述描述仅是通过示例的方式进行的,而不是对本发明范围的限制。特别地,认识到前述公开的教导将对相关领域的技术人员提出其他修改。这样的修改可以涉及本身已知的其他特征,并且可以代替本文已经描述的特征或除本文已经描述的特征之外使用这些特征。尽管权利要求书在本申请中已对特征的特定组合进行了阐述,应当理解,本文公开的范围还包括任何新特征或任何显式或隐式公开的特征的新组合,或对相关领域技术人员显而易见的其任何概括或修改,无论该等发明是否与任何权利要求中目前所要求保护的相同发明有关,以及是否减轻了本发明所面临的任何或所有相同技术问题。申请人特此保留在本申请或由此衍生的任何其他申请的起诉期间针对此类特征和/或此类特征的组合提出新权利要求的权利。
Claims (25)
1.一种用于传输控制协议隧道的计算机实现的方法,该方法包括:
在驻留在源服务器(205)上的客户端应用程序(210)和驻留在源网关(230)上的源隧道网关应用程序(235)之间建立(610)源直接第4层终端控制协议(TCP)网络路由,从而使用适用于TCP传输的格式将客户端应用程序数据发送到所述源隧道网关应用程序(235);
在驻留在所述源网关(230)上的所述源隧道网关应用程序(235)和驻留在目的网关(255)上的目的隧道网关应用程序(250)之间建立(620)专用且安全的单独用户数据报协议(UDP)面向数据报的通信信道;
在所述源隧道网关应用程序(210)处,将客户端应用程序数据打包(630)成适用于UDP传输的格式;
通过所述专用且安全的单独UDP面向数据报的通信信道,使用UDP将客户端应用程序数据从所述源隧道网关应用程序(210)转发(640)到所述目的隧道网关应用程序(250);
在所述目的隧道网关应用程序(250)处,将客户端应用程序数据重新打包(650)为所述适用于TCP传输的格式;以及
在所述目的网关(255)上的目的隧道网关应用程序(250)和目的服务器(220)上的服务器应用程序(215)之间建立(670)目的直接第4层网络TCP路由,此后,使用TCP将客户端应用程序数据发送(680)到所述服务器应用程序(215)。
2.根据权利要求1所述的用于传输控制协议隧道的计算机实现的方法,其中,所述源隧道网关应用程序包括被配置为接受应用程序连接的一个或多个监听TCP套接字。
3.根据权利要求2所述的用于传输控制协议隧道的计算机实现的方法,其中,所述源隧道网关应用程序接受的每个连接都构成一个单独的通信会话,从而在所述源隧道网关应用程序和所述客户端应用程序之间形成单独的TCP连接。
4.根据权利要求3所述的用于传输控制协议隧道的计算机实现的方法,响应于侦听TCP套接字开始接受新连接,通过驻留在所述源隧道网关应用程序上的管道路由器和连接状态机,向所述目的隧道网关应用程序发送信令,以启动到所述服务器应用程序的新出站TCP连接。
5.根据权利要求4所述的用于传输控制协议隧道的计算机实现的方法,其中,所述管道路由器和所述连接状态机使用数据报传输层安全性(DTLS)协议封装消息。
6.根据权利要求4所述的用于传输控制协议隧道的计算机实现的方法,响应于到正被连接的服务器应用程序的新出站TCP连接,还包括,通过专用且安全的单独用户数据报协议(UDP)面向数据报的通信信道,在所述源服务器上的客户端应用程序与所述目的服务器上的服务器应用程序之间传输客户端应用程序数据。
7.根据权利要求1所述的用于传输控制协议隧道的计算机实现的方法,其中,所述客户端应用程序的访问仅限于所述服务器应用程序,并且服务器应用程序的访问仅限于所述客户端应用程序。
8.根据权利要求1所述的用于传输控制协议隧道的计算机实现的方法,其中,所述源隧道网关应用程序和所述目的隧道网关应用程序管理所述客户端应用程序和所述服务器应用程序之间的一个或多个隧道连接。
9.根据权利要求8所述的用于传输控制协议隧道的计算机实现的方法,其中,每个隧道连接可以具有唯一的应用程序。
10.一种非暂时性机器可读存储介质,其上存储有用于执行一种方法的指令,该指令包括机器可执行代码,该机器可执行代码在由至少一台机器执行时,使得所述机器:
在驻留在源服务器(205)上的客户端应用程序(210)和驻留在源网关(230)上的源隧道网关应用程序(235)之间建立(610)源直接第4层终端控制协议(TCP)网络路由,从而使用适用于TCP传输的格式将客户端应用程序数据发送到所述源隧道网关应用程序(235);
在驻留在所述源网关(230)上的所述源隧道网关应用程序(235)和驻留在目的网关(255)上的目的隧道网关应用程序(250)之间建立(620)专用且安全的单独用户数据报协议(UDP)面向数据报的通信信道;
在所述源隧道网关应用程序(235)处,将客户端应用程序数据打包(630)成适用于UDP传输的格式;
通过所述专用且安全的单独UDP面向数据报的通信信道,使用UDP将客户端应用程序数据从所述源隧道网关应用程序(210)转发到所述目的隧道网关应用程序(250);
在所述目的隧道网关应用程序(250)处,将客户端应用程序数据重新打包(650)为所述适用于TCP传输的格式;以及
在所述目的网关(255)上的目的隧道网关应用程序(250)和目的服务器(220)上的服务器应用程序(215)之间建立(670)目的直接第4层网络TCP路由,使用TCP将客户端应用程序数据发送(680)到所述服务器应用程序(215)。
11.根据权利要求10所述的非暂时性机器可读存储介质,其中,所述源隧道网关应用程序包括被配置为接受客户端应用程序连接的一个或多个监听TCP套接字。
12.根据权利要求11所述的非暂时性机器可读存储介质,其中,所述源网关应用程序接受的每个连接都构成一个单独的通信会话,从而在所述源隧道网关应用程序和所述客户端应用程序之间形成单独的TCP连接。
13.根据权利要求12所述的非暂时性机器可读存储介质,响应于侦听TCP套接字开始接受新连接,还包括机器可执行代码,该机器可执行代码使得所述机器通过驻留在所述源隧道网关应用程序上的管道路由器和连接状态机,向所述目的隧道网关应用程序发送信令,以启动到所述服务器应用程序的新出站TCP连接。
14.根据权利要求13所述的非暂时性机器可读存储介质,其中,所述管道路由器和所述连接状态机使用数据报传输层安全性(DTLS)协议封装消息。
15.根据权利要求13所述的非暂时性机器可读存储介质,响应于到正被连接的服务器应用程序的新出站TCP连接,还包括机器可执行代码,该机器可执行代码使得所述机器,通过专用且安全的单独用户数据报协议(UDP)面向数据报的通信信道,在所述源服务器上的客户端应用程序与所述目的服务器上的服务器应用程序之间传输客户端应用程序数据。
16.根据权利要求10所述的非暂时性机器可读存储介质,还包括机器可执行代码,该机器可执行代码使得所述机器将所述客户端应用程序的访问限于所述服务器应用程序,并且将所述服务器应用程序的访问限于所述客户端应用程序。
17.根据权利要求11所述的非暂时性机器可读存储介质,其中,所述源隧道网关和所述目的隧道网关管理所述客户端应用程序和所述服务器应用程序之间的一个或多个隧道连接。
18.根据权利要求17所述的非暂时性机器可读存储介质,其中,每个隧道连接可以具有唯一的应用程序。
19.一种用于传输控制协议隧道的计算机系统,该计算机系统包括:
能够执行体现为软件的指令的机器(401);以及
一种非暂时性存储介质(402),其中包含多个软件部分,其中,所述软件部分之一被配置为
在驻留在源服务器(205)上的客户端应用程序(210)和驻留在源网关(230)上的源隧道网关应用程序(235)之间建立(610)源直接第4层终端控制协议(TCP)网络路由,从而使用适用于TCP传输的格式将客户端应用程序数据发送到所述源隧道网关应用程序(235);
在驻留在所述源网关(230)上的所述源隧道网关应用程序(235)和驻留在目的网关(255)上的目的隧道网关应用程序(250)之间建立(620)专用且安全的单独用户数据报协议(UDP)面向数据报的通信信道;
在所述源隧道网关应用程序(235)处,将客户端应用程序数据重新打包(650)成适用于UDP传输的格式;
通过所述专用且安全的单独UDP面向数据报的通信信道,使用UDP将客户端应用程序数据从所述源隧道网关应用程序(235)转发(640)到所述目的隧道网关应用程序(250);
在所述目的隧道网关应用程序(250)处,将客户端应用程序数据重新打包(650)为所述适用于TCP传输的格式;以及
在所述目的网关(255)上的目的隧道网关应用程序(250)和目的服务器(220)上的服务器应用程序(215)之间建立(670)目的直接第4层网络TCP路由,使用TCP将客户端应用程序数据发送到所述服务器应用程序。
20.根据权利要求19所述的计算机系统,其中,所述源隧道网关应用程序包括被配置为接受客户端应用程序连接的一个或多个监听TCP套接字。
21.根据权利要求20所述的计算机系统,其中,所述源网关应用程序接受的每个连接都构成一个单独的通信会话,从而在所述源隧道网关应用程序和所述客户端应用程序之间形成单独的TCP连接。
22.根据权利要求21所述的计算机系统,响应于侦听TCP套接字开始接受新连接,还包括软件部分,该软件部分被配置为,通过驻留在所述源隧道网关应用程序上的管道路由器和连接状态机,向所述目的隧道网关应用程序发送信令,以启动到所述服务器应用程序的新出站TCP连接。
23.根据权利要求22所述的计算机系统,其中,所述管道路由器和所述连接状态机使用数据报传输层安全性(DTLS)协议封装消息。
24.根据权利要求22所述的计算机系统,响应于到正被连接的服务器应用程序的新出站TCP连接,还包括软件部分,该软件部分被配置为,通过专用且安全的单独用户数据报协议(UDP)面向数据报的通信信道,在所述源服务器上的客户端应用程序与所述目的服务器上的服务器应用程序之间传输客户端应用程序数据。
25.根据权利要求19所述的计算机系统,还包括软件部分,该软件部分被配置为,将所述客户端应用程序的访问限于所述服务器应用程序,并且将所述服务器应用程序的访问限于所述客户端应用程序。
Applications Claiming Priority (17)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862715361P | 2018-08-07 | 2018-08-07 | |
US201862715367P | 2018-08-07 | 2018-08-07 | |
US62/715,367 | 2018-08-07 | ||
US62/715,361 | 2018-08-07 | ||
US201862716562P | 2018-08-09 | 2018-08-09 | |
US62/716,562 | 2018-08-09 | ||
US201862717194P | 2018-08-10 | 2018-08-10 | |
US62/717,194 | 2018-08-10 | ||
US201862723373P | 2018-08-27 | 2018-08-27 | |
US62/723,373 | 2018-08-27 | ||
US16/532,727 | 2019-08-06 | ||
US16/532,764 US11082254B2 (en) | 2018-08-07 | 2019-08-06 | User datagram protocol tunneling in distributed application instances |
US16/532,677 | 2019-08-06 | ||
US16/532,727 US10805113B2 (en) | 2018-08-07 | 2019-08-06 | Application transmission control protocol tunneling over the public internet |
US16/532,764 | 2019-08-06 | ||
US16/532,677 US11323288B2 (en) | 2018-08-07 | 2019-08-06 | Systems and methods for server cluster network communication across the public internet |
PCT/US2019/045430 WO2020033493A1 (en) | 2018-08-07 | 2019-08-07 | Application transmission control protocol tunneling over the public internet |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112805977A true CN112805977A (zh) | 2021-05-14 |
CN112805977B CN112805977B (zh) | 2023-06-13 |
Family
ID=69406527
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980052860.0A Active CN112805977B (zh) | 2018-08-07 | 2019-08-07 | 公用互联网上的应用传输控制协议隧道 |
CN201980052876.1A Active CN112997463B (zh) | 2018-08-07 | 2019-08-07 | 用于跨公用互联网的服务器集群网络通信的系统和方法 |
CN201980053933.8A Active CN113169958B (zh) | 2018-08-07 | 2019-08-07 | 分布式应用程序实例中的用户数据报协议隧道 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980052876.1A Active CN112997463B (zh) | 2018-08-07 | 2019-08-07 | 用于跨公用互联网的服务器集群网络通信的系统和方法 |
CN201980053933.8A Active CN113169958B (zh) | 2018-08-07 | 2019-08-07 | 分布式应用程序实例中的用户数据报协议隧道 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10805113B2 (zh) |
EP (3) | EP3834394B1 (zh) |
CN (3) | CN112805977B (zh) |
CA (3) | CA3108785C (zh) |
WO (3) | WO2020033494A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024921A (zh) * | 2021-10-14 | 2022-02-08 | 济南浪潮数据技术有限公司 | 一种隧道协同方法、装置、设备及可读存储介质 |
CN114024921B (zh) * | 2021-10-14 | 2024-05-28 | 郑州浪潮数据技术有限公司 | 一种隧道协同方法、装置、设备及可读存储介质 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3923146B1 (en) * | 2019-04-01 | 2023-11-22 | E-Jan Networks Co. | Communication system, information providing device, program, and information providing method |
US11297037B2 (en) * | 2019-07-22 | 2022-04-05 | Arista Networks, Inc. | Method and network device for overlay tunnel termination and mirroring spanning datacenters |
US20220376933A1 (en) * | 2019-09-25 | 2022-11-24 | Commonwealth Scientific And Industrial Research Organisation | Cryptographic services for browser applications |
US11379464B2 (en) * | 2019-12-12 | 2022-07-05 | Micro Focus Llc | Asymmetric quorum protocol based distributed transaction database consistency control |
EP3896917B1 (en) * | 2020-04-16 | 2024-03-13 | Rohde & Schwarz GmbH & Co. KG | System and method for transmitting time-critical analog signals and/or digital signal |
US11411772B1 (en) * | 2021-04-15 | 2022-08-09 | Blackberry Limited | Establishing tunneling connection over restrictive networks |
CN113286321B (zh) * | 2021-04-30 | 2022-02-22 | 新华三信息安全技术有限公司 | 一种备份管理方法、装置、设备及机器可读存储介质 |
US11477270B1 (en) | 2021-07-06 | 2022-10-18 | Vmware, Inc. | Seamless hand-off of data traffic in public cloud environments |
US11824753B2 (en) * | 2021-09-05 | 2023-11-21 | Cisco Technology, Inc. | Network node-to-node connectivity verification including data path processing of packets within a packet switching device |
CN114401245B (zh) * | 2021-12-22 | 2024-03-22 | 上海网基科技有限公司 | 实现高性能dns服务的方法、装置、计算机设备和存储介质 |
CN117354276A (zh) * | 2022-06-27 | 2024-01-05 | 中移(杭州)信息技术有限公司 | 一种网络穿透系统的启动方法及报文收发方法、通信设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002247130A (ja) * | 2001-02-20 | 2002-08-30 | Nippon Telegr & Teleph Corp <Ntt> | Sipトンネリング装置及びそれを用いた通信システム |
KR20030047471A (ko) * | 2001-12-10 | 2003-06-18 | (주)애니 유저넷 | 인터넷 전화의 방화벽 통과방법 및 터널링 게이트웨이 |
CN1460212A (zh) * | 2001-03-30 | 2003-12-03 | 三德惬瑞公司 | 使用协议无关控制模块引导和管理应用程序及业务服务器的媒体对话构架 |
US20060235939A1 (en) * | 2005-04-18 | 2006-10-19 | Wai Yim | Apparatus and methods for tunneling a media streaming application through a firewall |
CN102088460A (zh) * | 2010-12-29 | 2011-06-08 | 北京新媒传信科技有限公司 | 受限网络中流媒体数据的传输方法、设备和系统 |
US20120287833A1 (en) * | 2008-01-04 | 2012-11-15 | International Business Machines Corporation | Using a Transmission Control Protocol (TCP) Channel to Save Power for Virtual Private Networks (VPNs) That Use User Datagram Protocol (UDP) |
US20160050085A1 (en) * | 2014-08-15 | 2016-02-18 | LiveQoS Inc. | Udp over tcp tunnel |
EP3198464A1 (en) * | 2014-09-25 | 2017-08-02 | Hughes Network Systems, LLC | Application-aware multihoming for data traffic acceleration in data communications networks |
Family Cites Families (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647422B2 (en) * | 2001-11-06 | 2010-01-12 | Enterasys Networks, Inc. | VPN failure recovery |
SE0103853D0 (sv) * | 2001-11-15 | 2001-11-15 | Ericsson Telefon Ab L M | Method and system of retransmission |
US20040088385A1 (en) * | 2002-11-01 | 2004-05-06 | Hexago Inc. | Method and apparatus for connecting IPV4 devices through an IPV6 network using a tunnel setup protocol |
US20080045267A1 (en) * | 2003-03-19 | 2008-02-21 | Research In Motion Limited | System and Method for Pushing Information from a Host System to a Mobile Data Communication Device in a Wireless Data Network |
US20050163061A1 (en) * | 2004-01-28 | 2005-07-28 | Gridiron Software, Inc. | Zero configuration peer discovery in a grid computing environment |
US20060029016A1 (en) | 2004-06-29 | 2006-02-09 | Radware Limited | Debugging application performance over a network |
CN1767493A (zh) * | 2004-10-29 | 2006-05-03 | 北京佳讯飞鸿电气有限责任公司 | 实现voip业务穿越私网的系统及方法 |
US7443809B2 (en) * | 2005-04-27 | 2008-10-28 | Symbol Technologies, Inc. | Method, system and apparatus for creating a mesh network of wireless switches to support layer 3 roaming in wireless local area networks (WLANs) |
US20060268834A1 (en) | 2005-05-26 | 2006-11-30 | Symbol Technologies, Inc. | Method, system and wireless router apparatus supporting multiple subnets for layer 3 roaming in wireless local area networks (WLANs) |
US20070002833A1 (en) * | 2005-06-30 | 2007-01-04 | Symbol Technologies, Inc. | Method, system and apparatus for assigning and managing IP addresses for wireless clients in wireless local area networks (WLANs) |
US8234702B2 (en) * | 2006-08-29 | 2012-07-31 | Oracle International Corporation | Cross network layer correlation-based firewalls |
US7852861B2 (en) * | 2006-12-14 | 2010-12-14 | Array Networks, Inc. | Dynamic system and method for virtual private network (VPN) application level content routing using dual-proxy method |
CN101043443B (zh) * | 2007-03-16 | 2011-10-19 | 程飞 | 私网穿越网络教育培训底层软交换平台系统及软交换方法 |
US7860116B2 (en) * | 2007-05-24 | 2010-12-28 | Worldwide Packets, Inc. | Processing packets of a virtual interface associated with tunnels |
US8340103B2 (en) * | 2007-05-29 | 2012-12-25 | Ca, Inc. | System and method for creating a secure tunnel for communications over a network |
US8024788B2 (en) | 2007-05-31 | 2011-09-20 | The Boeing Company | Method and apparatus for reliable, high speed data transfers in a high assurance multiple level secure environment |
US7992201B2 (en) * | 2007-07-26 | 2011-08-02 | International Business Machines Corporation | Dynamic network tunnel endpoint selection |
US8130747B2 (en) | 2007-08-06 | 2012-03-06 | Blue Coat Systems, Inc. | System and method of traffic inspection and stateful connection forwarding among geographically dispersed network appliances organized as clusters |
US8272046B2 (en) * | 2007-11-13 | 2012-09-18 | Cisco Technology, Inc. | Network mobility over a multi-path virtual private network |
TWI441493B (zh) | 2007-11-27 | 2014-06-11 | Ind Tech Res Inst | 網路位址轉換的系統與方法 |
US8020203B2 (en) * | 2007-12-03 | 2011-09-13 | Novell, Inc. | Techniques for high availability of virtual private networks (VPN's) |
JP5074290B2 (ja) * | 2008-05-13 | 2012-11-14 | 株式会社日立国際電気 | 冗長切替システム、冗長管理装置およびアプリケーション処理装置 |
US8010085B2 (en) * | 2008-11-19 | 2011-08-30 | Zscaler, Inc. | Traffic redirection in cloud based security services |
US8893260B2 (en) | 2008-12-17 | 2014-11-18 | Rockstar Consortium Us Lp | Secure remote access public communication environment |
US8514864B2 (en) * | 2009-03-31 | 2013-08-20 | Verizon Patent And Licensing Inc. | System and method for providing network mobility |
US20110082941A1 (en) * | 2009-10-06 | 2011-04-07 | Electronics And Telecommunications Research Institute | Method of providing direct communication in internet protocol network |
US8843639B2 (en) * | 2009-10-23 | 2014-09-23 | Acpana Business Systems Inc. | System and method for creating a transparent data tunnel |
US8892646B2 (en) * | 2010-08-25 | 2014-11-18 | Damaka, Inc. | System and method for shared session appearance in a hybrid peer-to-peer environment |
US8874785B2 (en) | 2010-02-15 | 2014-10-28 | Damaka, Inc. | System and method for signaling and data tunneling in a peer-to-peer environment |
KR20120071121A (ko) | 2010-12-22 | 2012-07-02 | 한국전자통신연구원 | 가상 터널 라우터와 ip 카메라 관리서버 및 위치 기반 ip 카메라 서비스 방법 |
KR101263783B1 (ko) * | 2010-12-27 | 2013-05-13 | 삼성에스디에스 주식회사 | 릴레이 서버를 이용한 데이터 전송 시스템 및 방법 |
US8856323B2 (en) * | 2011-02-10 | 2014-10-07 | Trilliant Holdings, Inc. | Device and method for facilitating secure communications over a cellular network |
US9094400B2 (en) | 2011-04-27 | 2015-07-28 | International Business Machines Corporation | Authentication in virtual private networks |
US20130204988A1 (en) * | 2011-07-27 | 2013-08-08 | Mobidia Technology, Inc. | Method and system for loopback proxy |
WO2013128798A1 (ja) * | 2012-03-02 | 2013-09-06 | 日本電気株式会社 | 経路制御システム、コントロール装置及び経路制御方法 |
US9203784B2 (en) * | 2012-04-24 | 2015-12-01 | Cisco Technology, Inc. | Distributed virtual switch architecture for a hybrid cloud |
US8990901B2 (en) * | 2012-05-05 | 2015-03-24 | Citrix Systems, Inc. | Systems and methods for network filtering in VPN |
US9215131B2 (en) | 2012-06-29 | 2015-12-15 | Cisco Technology, Inc. | Methods for exchanging network management messages using UDP over HTTP protocol |
US10382401B1 (en) * | 2013-02-26 | 2019-08-13 | Zentera Systems, Inc. | Cloud over IP for enterprise hybrid cloud network and security |
US10348767B1 (en) * | 2013-02-26 | 2019-07-09 | Zentera Systems, Inc. | Cloud over IP session layer network |
US10015285B2 (en) * | 2013-03-14 | 2018-07-03 | Huawei Technologies Co., Ltd. | System and method for multi-stream compression and decompression |
KR20190018562A (ko) | 2013-04-30 | 2019-02-22 | 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) | 셀룰러 네트워크 멀티캐스트 전송에서의 멀티캐스트 그룹 재사용 |
US9241044B2 (en) * | 2013-08-28 | 2016-01-19 | Hola Networks, Ltd. | System and method for improving internet communication by using intermediate nodes |
WO2015103338A1 (en) * | 2013-12-31 | 2015-07-09 | Lookout, Inc. | Cloud-based network security |
US9661005B2 (en) * | 2014-01-09 | 2017-05-23 | International Business Machines Corporation | Security level and status exchange between TCP/UDP client(s) and server(s) for secure transactions |
US9270449B1 (en) * | 2014-01-17 | 2016-02-23 | Amazon Technologies, Inc. | Secured communication in network environments |
US9577927B2 (en) | 2014-06-30 | 2017-02-21 | Nicira, Inc. | Encoding control plane information in transport protocol source port field and applications thereof in network virtualization |
US9906497B2 (en) * | 2014-10-06 | 2018-02-27 | Cryptzone North America, Inc. | Multi-tunneling virtual network adapter |
US9444792B2 (en) | 2014-10-21 | 2016-09-13 | Oracle International Corporation | Dynamic tunnel for real time data communication |
DE102014015443B4 (de) * | 2014-10-21 | 2016-05-04 | Unify Gmbh & Co. Kg | Telekommunikationsanordnung und Verfahren zum Traversieren einer Application-Layer-Gateway-Firewall beim Aufbau einer RTC-Kommunikationsverbindung zwischen einem RTC-Client und einem RTC-Server |
JP6777650B2 (ja) * | 2015-04-10 | 2020-10-28 | ドイッチェ テレコム アーゲー | Tcpトンネル及びネイティブtcp情報に基づくバンドリングシナリオにおけるパケットのスケジューリングのための方法及びシステム |
US9735943B2 (en) * | 2015-05-11 | 2017-08-15 | Citrix Systems, Inc. | Micro VPN tunneling for mobile platforms |
US10187357B2 (en) * | 2015-07-05 | 2019-01-22 | M2MD Technologies, Inc. | Method and system for internetwork communication with machine devices |
CN105827687A (zh) * | 2015-11-17 | 2016-08-03 | 广东亿迅科技有限公司 | 集群管理方法及其管理系统 |
GB2544518B (en) | 2015-11-19 | 2020-02-12 | Samsung Electronics Co Ltd | Channel quality indicators |
US10298627B2 (en) * | 2016-02-01 | 2019-05-21 | Oracle International Corporation | Concentration of independent tunneled encapsulated media |
US10412048B2 (en) * | 2016-02-08 | 2019-09-10 | Cryptzone North America, Inc. | Protecting network devices by a firewall |
US9998299B2 (en) * | 2016-07-20 | 2018-06-12 | Oracle International Corporation | Efficient transport of encapsulated media traffic over restrictive networks |
US10015097B2 (en) * | 2016-08-19 | 2018-07-03 | Oracle International Corporation | Fast access telecommunication tunnel cloning |
US10397189B1 (en) * | 2016-09-27 | 2019-08-27 | Amazon Technologies, Inc. | Peered virtual private network endpoint nodes |
CN106559332B (zh) * | 2016-11-03 | 2020-08-18 | Tcl科技集团股份有限公司 | 一种快速组建全连通服务器集群的方法和系统 |
US10833891B2 (en) * | 2017-02-11 | 2020-11-10 | Pismo Labs Technology Limited | Methods and systems for transmitting information packets through tunnel groups at a network node |
US20190182155A1 (en) * | 2017-12-07 | 2019-06-13 | Mingtai Chang | Distributed Network Sharing And Traffic Isolation |
US10679039B2 (en) * | 2018-04-03 | 2020-06-09 | Google Llc | Detecting actions to discourage recognition |
-
2019
- 2019-08-06 US US16/532,727 patent/US10805113B2/en active Active
- 2019-08-06 US US16/532,677 patent/US11323288B2/en active Active
- 2019-08-06 US US16/532,764 patent/US11082254B2/en active Active
- 2019-08-07 EP EP19756291.1A patent/EP3834394B1/en active Active
- 2019-08-07 CN CN201980052860.0A patent/CN112805977B/zh active Active
- 2019-08-07 CN CN201980052876.1A patent/CN112997463B/zh active Active
- 2019-08-07 CA CA3108785A patent/CA3108785C/en active Active
- 2019-08-07 EP EP19756290.3A patent/EP3834393B1/en active Active
- 2019-08-07 EP EP19759135.7A patent/EP3834396B1/en active Active
- 2019-08-07 WO PCT/US2019/045431 patent/WO2020033494A1/en unknown
- 2019-08-07 WO PCT/US2019/045425 patent/WO2020033489A1/en unknown
- 2019-08-07 CA CA3108769A patent/CA3108769C/en active Active
- 2019-08-07 CN CN201980053933.8A patent/CN113169958B/zh active Active
- 2019-08-07 WO PCT/US2019/045430 patent/WO2020033493A1/en unknown
- 2019-08-07 CA CA3108787A patent/CA3108787C/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002247130A (ja) * | 2001-02-20 | 2002-08-30 | Nippon Telegr & Teleph Corp <Ntt> | Sipトンネリング装置及びそれを用いた通信システム |
CN1460212A (zh) * | 2001-03-30 | 2003-12-03 | 三德惬瑞公司 | 使用协议无关控制模块引导和管理应用程序及业务服务器的媒体对话构架 |
KR20030047471A (ko) * | 2001-12-10 | 2003-06-18 | (주)애니 유저넷 | 인터넷 전화의 방화벽 통과방법 및 터널링 게이트웨이 |
US20060235939A1 (en) * | 2005-04-18 | 2006-10-19 | Wai Yim | Apparatus and methods for tunneling a media streaming application through a firewall |
US20120287833A1 (en) * | 2008-01-04 | 2012-11-15 | International Business Machines Corporation | Using a Transmission Control Protocol (TCP) Channel to Save Power for Virtual Private Networks (VPNs) That Use User Datagram Protocol (UDP) |
CN102088460A (zh) * | 2010-12-29 | 2011-06-08 | 北京新媒传信科技有限公司 | 受限网络中流媒体数据的传输方法、设备和系统 |
US20160050085A1 (en) * | 2014-08-15 | 2016-02-18 | LiveQoS Inc. | Udp over tcp tunnel |
EP3198464A1 (en) * | 2014-09-25 | 2017-08-02 | Hughes Network Systems, LLC | Application-aware multihoming for data traffic acceleration in data communications networks |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024921A (zh) * | 2021-10-14 | 2022-02-08 | 济南浪潮数据技术有限公司 | 一种隧道协同方法、装置、设备及可读存储介质 |
CN114024921B (zh) * | 2021-10-14 | 2024-05-28 | 郑州浪潮数据技术有限公司 | 一种隧道协同方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3834396B1 (en) | 2024-04-10 |
CN112997463A (zh) | 2021-06-18 |
CA3108785A1 (en) | 2020-02-13 |
CA3108769C (en) | 2023-09-19 |
US20200052927A1 (en) | 2020-02-13 |
CN112997463B (zh) | 2023-07-25 |
CN113169958A (zh) | 2021-07-23 |
CA3108785C (en) | 2023-07-18 |
WO2020033494A1 (en) | 2020-02-13 |
US11323288B2 (en) | 2022-05-03 |
EP3834396A1 (en) | 2021-06-16 |
US11082254B2 (en) | 2021-08-03 |
EP3834394B1 (en) | 2024-04-10 |
CA3108787A1 (en) | 2020-02-13 |
US20200053125A1 (en) | 2020-02-13 |
WO2020033489A1 (en) | 2020-02-13 |
EP3834393A1 (en) | 2021-06-16 |
US10805113B2 (en) | 2020-10-13 |
WO2020033493A1 (en) | 2020-02-13 |
CA3108769A1 (en) | 2020-02-13 |
EP3834393B1 (en) | 2023-11-29 |
EP3834394A1 (en) | 2021-06-16 |
US20200053163A1 (en) | 2020-02-13 |
CA3108787C (en) | 2023-06-20 |
CN112805977B (zh) | 2023-06-13 |
CN113169958B (zh) | 2023-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112805977B (zh) | 公用互联网上的应用传输控制协议隧道 | |
EP1774438B1 (en) | System and method for establishing a virtual private network | |
US7979528B2 (en) | System and method for traversing firewalls, NATs, and proxies with rich media communications and other application protocols | |
US11575757B2 (en) | Cloaked remote client access | |
KR20070045282A (ko) | 네트워크 노드 간의 통신을 최적화하기 위한 시스템 및방법 | |
US11165891B2 (en) | Highly available transmission control protocol tunnels | |
TW201635164A (zh) | 利用公有雲端網路的方法、私有雲端路由伺服器及智慧型裝置客戶端 | |
US11677584B2 (en) | Application TCP tunneling over the public internet | |
JP2016005196A (ja) | トンネル接続装置、通信ネットワーク、データ通信方法、及びプログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |