CN113169958A - 分布式应用程序实例中的用户数据报协议隧道 - Google Patents

分布式应用程序实例中的用户数据报协议隧道 Download PDF

Info

Publication number
CN113169958A
CN113169958A CN201980053933.8A CN201980053933A CN113169958A CN 113169958 A CN113169958 A CN 113169958A CN 201980053933 A CN201980053933 A CN 201980053933A CN 113169958 A CN113169958 A CN 113169958A
Authority
CN
China
Prior art keywords
application
tcp
instance
server
distributed
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
Application number
CN201980053933.8A
Other languages
English (en)
Other versions
CN113169958B (zh
Inventor
吴光青
S·瑞维奇
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.)
DH2i Co
Original Assignee
DH2i Co
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 DH2i Co filed Critical DH2i Co
Publication of CN113169958A publication Critical patent/CN113169958A/zh
Application granted granted Critical
Publication of CN113169958B publication Critical patent/CN113169958B/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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route 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

网络TCP隧道被动态地配置为支持分布式应用程序的应用程序内连接。隧道源侦听每个服务器的环回地址。此侦听配置仅允许在同一服务器上运行的应用程序进行连接。隧道网关应用程序与每个服务器上的分布式应用程序接口,并包括配置为选择一个或多个TCP端口的隧道端点管理器。这些选择的端口均与单独TCP侦听器相互关联。一旦被关联,来自驻留在服务器集群中的多个服务器中的每个服务器上的分布式应用程序实例的数据将通过这些TCP连接和在服务器集群中每个对等方之间形成的面向UDP数据报的通信信道进行路由。此后,每个分布式应用程序的实例都可以通过每个面向UDP数据报的唯一通信信道访问服务器集群中的对等方。

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的优先权,这些的全部内容通过引用结合于此,用于所有目的,通过引用将其整体并入本文,如同在此完全阐述一样。
技术领域
本发明的实施例总体上涉及分布式应用程序之间的通信,并且更具体地涉及使用传输控制协议来动态配置分布式应用程序之间的通信的***和方法。
背景技术
服务器集群是一组松散或紧密连接的计算机,它们可以协同工作,因此在许多方面可以将它们视为单个***。集群中的各组件通常通过局域网(LAN)相互连接,每个节点都运行自己的操作***实例。通常,部署集群相对于单台计算机可以提高性能和可用性,并且通常比具有同等速度或可用性的单台计算机更具成本效益。并且由于大多数集群都在LAN内运行,它们可以自由通信,避免了公共因特网交互所带来的安全隐患。
在通信协议的传输控制协议(“TCP”)/因特网协议(“IP”)套件的正常操作中,如图1所示,驻留在具有IP地址A的客户端A 110上的客户端应用程序120向驻留在具有IP地址B的服务器B 130上的服务器应用程序140请求新的连接。连接到网络的每个设备都必须具有唯一IP地址,以区别于其他设备。IP地址类似于您的家庭电话或移动设备上的唯一电话号码。区别在于它由四个被称为八位字节的段组成,每个段之间用句点分隔。IPv4地址是一个32位整数值,通常以点分十进制表示法编写,由分别用十进制数字表示且用句点分隔的四个八位字节的地址组成(例如11.22.333.444)。通常,与服务器的通信在服务器应用程序TCP 8080端口上。在该示例中,服务器B 130观察来自客户端A 110对IP地址A的连接请求。
传统的集群软件之所以被部署在控制良好的LAN上,原因有二。首先并如上所述,供应商认为LAN上的软件是安全的,或者至少比通过公共因特网提供对其软件或服务的直接访问更为安全。其次,传统集群软件运行所需的各第4层(TCP和UDP)通信信道是多样的,并且在LAN内更易于管理。
除非正在使用网络地址转换,否则网络上其他任何设备都不会具有相同的IP地址。因此,为了使一个设备能够与另一个设备进行通信,发送设备必须在开始传输数据之前知道目的地的位置。根据与子网掩码相关的源设备和目的设备的位置(地址),发现目的设备地址的位置的过程将有所不同。
为了通过公用因特网供应商跨越遍及多个LAN的集群主要使用专用虚拟专用网络或VPN(如图1b和1c所示),为了兼顾安全性,并在服务器之间提供不受限制的第3层网络路径,以支持所需的第4层通信信道的多样化设置。
VPN是一种安全的隧道,通信和数据可以经由该隧道在两点之间安全地流动。回想一下,因特网是一个分组交换网络,这意味着发送方和接收方之间没有单一的、不间断的连接。相反,当信息被发送时,它将被分解成多个小数据包,并通过许多不同的路径同时发送到同一位置,然后在接收端进行重组。这与电路交换网络(如电话***)相反,后者在进行呼叫并交换电路之后,将网络的一部分划分出来以进行单个直接连接。
因特网上传输的每个数据包均携带信息,以将其定向到其位置以及如何使用。例如,某些数据包可用于使用超文本传输协议(HTTP)来形成网站,而其他数据包可用于使用因特网消息访问协议(IMAP)来访问电子邮件。当然,每个数据包都需要知道发送到哪个地址以及谁是发送者。传输控制协议(TCP)和国际互连协议(IP)是用于分解和重组数据包的最常见协议集。
TCP/IP模型分为四个层,解决了将数据分解为多个数据包,通过因特网发送数据并在目的地将其重组的问题。这些层包括应用程序层、传输层、因特网层和网络访问层。网络访问层负责将二进制数据转换为网络信号。其包括将计算机友好数据转换为网络友好信号的计算机或调制解调器上的网卡。因特网层提供逻辑寻址、路径确定和转发。
应用层包括各种协议,这些协议管理与应用程序的交互、数据翻译、编码、对话控制,可以在***之间进行通信协调。有许多应用程序协议,其中比较常见的是HTTP、IMAP、文件传输协议(FTP)、简单邮件传输协议(SMTP)、域名服务(DNS)等。
传输层负责数据的端到端传输,并在主机之间建立逻辑连接。该层中有两种可用协议:TCP和用户数据报协议(UDP)。TCP是一种定向且可靠的连接,使用窗口控制有序数据流和数据段的传递,UDP只是简单地传输数据而没有花哨,尽管可靠性较差,但提供了更快的数据传输。
在VPN中,消息的每个数据包都经过加密,然后封装在标准TCP IP数据包中以进行传输。这些标准IP数据包包括传输封装的数据包的隧道的另一端的目的地址。因此,当数据包通过因特网移动时,封装的数据包的真实地址无法被读取,只能访问隧道地址。
在接收端,计算机或路由器会剥离外部IP数据包并解密内部数据包。基于该信息,内部数据包被传递到目的地。这个过程需要4层通信信道来影响数据的安全传送,而这些层也付出了一定的代价。VPN协议本质上是传输协议和加密标准的组合。
通常,隧道是一种通信协议,它允许数据从一个网络安全地移动到另一个网络,但并非没有问题。它涉及允许通过如上所述封装在公共网络(如因特网)上发送专用网络通信。隧道协议可以例如允许外部协议在不支持该特定协议的网络上运行,例如在IPv4上运行IPv6。另一个重要的用途是提供仅使用基础TCP/IP网络服务所提供的不切实际或不安全的服务,例如向其物理网络地址不属于公司网络的远程用户提供公司网络地址。由于隧道涉及将流量数据重新打包为其他形式,因此它可以隐藏通过隧道运行的流量的性质。
隧道协议通过使用数据包的数据部分(有效负载)来承载实际提供服务的数据包。隧道使用分层协议模型,例如TCP/IP协议套件中的协议模型,但是当使用有效负载来承载网络通常不提供的服务时,通常会违反分层协议。通常,传递协议在分层模型中的操作级别与有效负载协议相同或更高。
遗憾的是,基于隧道的IP流量可能无法通过基于网络的安全设备收到预期的检查或策略应用级别,除非此类设备特别了解隧道。这会减少纵深防御,并可能导致安全漏洞。这适用于所有位于网络上(network-located)的设备以及任何基于终端主机(end-host-based)的防火墙,它们现有挂钩机制在隧道客户端执行解封装之后或进行封装之前不会向其显示IP数据包流。此外,除非采取特殊措施,否则隧道内部的IP地址不会在其通过其隧道的网络中进行入口和出口过滤。只有隧道端点可以进行此类限制安全性的过滤。
隧道的其他问题包括NAT漏洞以及可以推测隧道地址的可能性。实际上,可以在目的地址被剖析的同时,该地址揭示有关客户端性质的一些信息。因此,需要创造一种更安全的手段,通过该手段,在网络环境中的服务器之间进行通信,尤其是当这些服务器在服务器集群中被关联时。
本发明的其他优点和新颖特征将部分地在下面的描述中阐述,并且在阅读以下说明书后,本领域技术人员可以清楚地了解本发明,或者可以通过实施本发明来了解。借助于所附权利要求中特别指出的实例、组合、组合物和方法,可以实现和获得本发明的优点。
发明内容
在下文中通过示例的方式描述了一种用于动态配置网络隧道(特别是TCP隧道)以及特定的分布式应用程序以支持所述分布式应用程序的应用程序内连接的技术。本发明配置分布式应用程序的每个实例以监听与隧道网关应用程序相关联的环回地址。这仅允许在同一服务器上运行的应用程序连接到它们,即在网络上其他位置的服务器上运行的应用程序将无法连接到分布式应用程序侦听器。要求分布式应用程序侦听器接受来自本地运行的应用程序(仅该应用程序)的连接,并且环回侦听器的使用使本发明的***更加安全。
在本发明的一个实施例中,一种用于通过广域网进行分布式应用程序的应用程序内连接的***包括:作为服务器集群运作的多个服务器,其中每个服务器包括隧道网关应用程序。每个隧道网关应用程序还包括多个终端控制协议(TCP)侦听器,这些侦听器通过环回地址耦合到分布式应用程序的其他实例。
在集群中的多个服务器中的每个服务器上实例化分布式应用程序的单独实例,并且该实例通过直接第4层TCP网络路由与驻留在该服务器上的隧道网关应用程序进行通信。来自该分布式应用程序的客户端应用程序数据通过此路由使用适合TCP传输的格式被传输到该隧道网关应用程序。
此外,分布式应用程序的每个实例使用分配给每个服务器上的应用程序实例的TCP侦听器和环回端口,通过其隧道网关应用程序通信地耦合到该分布式应用程序的每个其他实例。该TCP侦听器仅接受来自该分布式应用程序的本地实例的连接,并且每个服务器上的每个环回端口都配置为专用于该服务器上的分布式应用程序的实例。一旦被分配,面向用户数据报协议(UDP)数据报的通信信道将用于在每个隧道网关应用程序之间交换数据。
每个隧道网关应用程序被配置为将客户端应用程序数据从每个分布式应用程序实例接收的适合TCP传输的格式修改为适合UDP传输的格式,以便通过广域网进行传输。
在本发明的一个方面中,隧道网关应用程序包括隧道端点管理器,该隧道端点管理器被配置为选择一个或多个TCP端口,将每个选择的端口与多个TCP侦听器中的一个相关联,并将每个相关联的TCP侦听器/TCP端口对路由到分布式应用程序的单独实例。
在本发明的另一个实施例中,一种用于通过广域网进行分布式应用程序的应用程序内连接的方法,包括:操作由多个服务器组成的服务器集群,其中每个服务器包括一个隧道网关应用程序,并且其中每个隧道网关应用程序包括多个终端控制协议(TCP)侦听器。
该方法通过在服务器集群中的每个服务器上实例化分布式应用程序的单独实例而继续,其中,分布式应用程序的每个单独实例通过直接第4层TCP网络路由与驻留在该服务器上的隧道网关应用程序进行通信。此后,使用适合TCP传输的格式将客户端应用程序数据传输到每个服务器上的隧道网关应用程序。
该分布式应用程序的每个实例通过分配给每个服务器上的应用程序实例的环回端口,使用TCP侦听器在每个隧道网关应用程序处通信地耦合到该分布式应用程序的每个其他实例。最后,客户端应用程序数据通过面向用户数据报协议(UDP)数据报的通信信道,通过广域网在每个隧道网关应用程序之间传输。
前述方法可以体现为一种存储在非暂时性机器可读存储介质上的指令,当其被至少一台机器执行时,实现通过广域网进行分布式应用程序的应用程序内连接。
本公开中和以下详细描述中描述的特征和优点并非包括一切。鉴于附图、说明书和权利要求书,许多附加特征和优点对于相关领域的普通技术人员将是显而易见的。此外,应该注意的是,说明书中使用的语言主要是出于可读性和指导目的而选择的,并且并非被选择来描绘或限制本发明的主题;必须参考权利要求以确定本发明的主题。
附图的简要说明
通过参考以下结合附图对一个或多个实施例的描述,本发明的前述和其他特征和目的以及实现它们的方式将变得更加明显,并且将最好地理解本发明本身,其中:
图1示出了使用传输控制协议(“TCP”)/因特网协议(“IP”)通信协议套件的内部LAN客户端到服务器的连接;
图2示出了根据本发明的一个实施例的使用TCP/IP通信协议套件、源和目的网关以及用户数据报协议(“UDP”)隧道的客户端到服务器连接;
图3a示出了在使用TCP/IP通信协议通过局域网直接连接的服务器集群中运行的分布式应用程序服务器集群;
图3b示出了根据本发明的一个实施例的在使用TCP隧道间接连接的服务器集群中运行的分布式应用程序;
图4a和图4b示出了根据本发明的一个实施例的分布式服务器集群的***架构图,其中显示了用于通过安全的UDP信道提供终端控制协议隧道和分布式应用程序数据交换的各种组件、引擎和模块;
图5是根据本发明的一个实施例的用于经由安全UDP信道的终端控制协议隧道和客户端应用程序数据转发的过程的网络流程图;和
图6是根据本发明的一个实施例的用于终端控制协议隧道和客户端应用程序数据转发的方法的流程图。
附图仅出于说明的目的描绘了本发明的实施例。本领域技术人员在不脱离本文所述的本发明的原理下,可以从以下讨论中容易地认识到采用本文所示的结构和方法的替代实施例。
具体实施方式
网络TCP隧道被动态地配置为支持分布式应用程序的应用程序内连接。本发明配置隧道源以侦听每个服务器的环回地址。此侦听配置仅允许运行在同一服务器上的应用程序连接到它们,即运行在网络其他位置的服务器上的应用程序(无论它们在局域网内还是在其他地方)都无法连接到该隧道源侦听器。要求隧道源侦听器是为了接受来自本地运行的应用程序的连接,并且只有该程序才能使***更安全。
隧道网关应用程序与每个服务器上的分布式应用程序接口,并包括配置为选择一个或多个TCP端口的隧道终结点管理器。这些选择的端口均与单独TCP侦听器关联。一旦被关联,来自驻留在服务器集群中的多个服务器中的每个服务器上的分布式应用程序实例的数据通过这些TCP连接和在服务器集群中每个对等方之间形成的面向UDP数据报的通信信道进行路由。此后,该分布式应用程序的每个实例都可以通过每个唯一面向UDP数据报的通信信道访问服务器集群中的对等方。
下面参考附图详细描述本发明的实施例。尽管已经以一定程度的特征描述和说明了本发明,但是应该理解,本公开仅通过示例的方式进行,并且本公开仅通过示例的方式进行,并且本领域技术人员可以在不脱离本发明的精神和范围的情况下对部件的组合和布置进行多种改变。
提供参考附图的以下描述以帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。它包括各种具体细节以帮助理解,但这些仅被视为示例性的。因此,本领域普通技术人员将认识到,在不脱离本发明的范围和精神的情况下,可以对这里描述的实施例进行各种改变和修改。此外,为了清楚和简明,以下描述中省略了对公知功能和结构的描述。
在以下描述和权利要求中使用的术语和名词不限于书面含义,而是仅由发明人使用以使得能够清楚和一致地理解本发明。因此,对于本领域技术人员来说显而易见的是,提供本发明的示例性实施例的以下描述仅用于说明目的,而不是为了限制由所附权利要求及其等同物限定的本发明的目的。
术语“基本上”是指所述特征、参数或值不需要精确地实现,而是可以实现为那些可能会以不排除所述特征意图提供的效果的量的偏差或变化,包括例如公差、测量误差、测量精度限制和本领域技术人员已知的其他因素。
相同的编号始终指代相同的元件。在附图中,为了清楚起见,可放大某些线、层、组件、元件或特征的尺寸。
这里使用的术语仅用于描述特定实施例的目的,而不是用于限制本发明。如这里所使用的,单数形式“一”,“一个”和“该”也旨在包括复数形式,除非上下文中另有特别说明。因此,例如,对“组件表面”的引用包括对一个或多个这样的表面的引用。
如本文所用,对“一个实施例”的任何引用旨在结合该实施例描述的特定元件、特征、结构或特性包括在至少一个实施例中。在说明书中各处出现的短语“在一个实施例中”不一定都指的是同一实施例。
如这里所使用的,术语“包括”、“包含”、“构成”、“具有”、“含有”或其任何其他变型旨在涵盖非排他性的包含。例如,包括元件列表的过程、方法、产品或装置不一定仅限于那些元件,而是可以包括未明确列出的或者这种过程、方法、产品或装置固有的其他元件。此外,除非有相反的明确说明,否则“或”是指包含性的或不是排他性的。例如,以下任何一项表示满足条件A或B:A为真(或存在)且B为假(或不存在),A为假(或不存在)且B为真(或存在),且A和B均为真(或存在)。
为了本发明的目的,以下缩写应理解为是指:
IP–因特网协议。占用OSI模型中的第3层。可以参考IPv4或IPv6。因特网协议负责确保将数据包发送到正确的目的地。
IPv4–因特网协议版本4,具有32位地址空间
IPv6–因特网协议版本6,具有128位地址空间
ISP–因特网服务提供商
OSI模型–开放***互连模型,它是使用TCP模型的四层而不是七层的网络功能层的标准表征。
NAT–网络地址转换,一种用于将局域网连接到公共因特网的技术。NAT使多个服务器(计算机)可以通过单个外部IPv4地址与公共因特网进行交互。
端口转发–大多数NAT路由器提供的一种允许从公共因特网到内部服务器连接的技术。
TCP/IP传输控制协议/因特网协议,是用于因特网上互连网络设备的一组通信协议。传输控制协议是一种面向流的、可靠传输数据的传输协议。TCP在应用程序和因特网协议之间的中间层提供通信服务。它在因特网模型的传输层提供主机到主机的连接。应用程序不需要了解用于通过链接向另一主机发送数据的特定机制,例如为容纳传输介质的最大传输单位而需要的IP分段。在传输层,(OSI模型中的第4层)TCP处理所有握手和传输细节,并通常通过网络套接字接口为应用程序提供网络连接的抽象。
隧道或隧道协议(本文中也称为信道)–在计算机网络中,隧道协议是一种通信协议,它允许从一个网络到另一个网络的数据移动。它涉及允许通过称为封装的过程在公共网络(例如因特网)上发送专用网络通信。因为隧道技术涉及将流量数据重新打包成其他形式(也许以加密为标准),所以它可以隐藏通过隧道运行的流量的性质。隧道协议通过使用数据包的数据部分(有效负载)来承载实际提供服务的数据包。隧道使用分层协议模型,例如OSI或TCP/IP协议套件的模型。
端口–机器上的一个端口正在打开,数据可以通过该端口流动。
UDP–用户数据报协议,一种通过IP使用的不必要顺序的数据报传送协议。UDP使用具有最少协议机制的简单无连接通信模型。UDP提供用于数据完整性的校验和,以及用于在数据报的源和目的处寻址不同功能的端口号。UDP不使用任何握手对话,因此使用户程序暴露于底层网络的任何不可靠性。在OSI模型中占据第4层。
GRE–通用路由封装,一种简化的面向数据报的协议,某些VPN使用此协议来交换第2层或第3层流量。GRE本身位于OSI模型的第4层,因为它位于第3层协议之上,但是被认为通过包含来自较低层的消息来破坏分层顺序。
主机网络堆栈–在服务器或任何其他联网计算机上运行的主网络状态机。通常是操作***内核的一部分提供用于TCP和UDP协议的第4层套接字服务,以及用于第3层协议(例如IPv4/IPv6)、第2层协议、网络硬件驱动程序和VPN的虚拟网络驱动程序的状态机。
LAN–局域网
WAN–广域网,通常将远程站点彼此连接或连接到公共因特网的网络
VPN–虚拟专用网络。第2层或第3层网络技术,允许通过WAN(例如公共因特网)安全地扩展或桥接本地网络。
TLS–传输层安全协议,一种用于在面向流的通信信道(例如TCP)上建立经过身份验证的专用通信信道的方法。
DTLS–数据报传输层安全协议,一种用于在不可靠的无序数据报通信信道(例如UDP)上建立经过身份验证的专用通信信道的方法。
传输层安全协议。一种用于在面向流的通信信道(例如TCP)上建立经过身份验证的专用通信信道的方法。
套接字–网络套接字是由主机名或IP地址和端口定义的端点实例,用于在计算机网络上的节点内发送或接收数据。套接字是网络软件或协议栈中端点的表示,并且在逻辑上类似于通过信道在两个节点之间的物理母连接,其中该信道被视为具有***每个节点的套接字的两个邮件连接器的电缆。为了使网络上的两台计算机相互通信,它们必须知道彼此的端点实例(主机名/IP地址)才能交换数据。
环回地址–环回地址将传出信号发送回同一台计算机以进行测试。在TCP/IP网络中,该环回IP地址为127.0.0.1,并且对此地址执行ping操作将始终返回答复,除非防火墙阻止。因此,环回是只有一个端点的通信信道。TCP/IP网络指定环回允许客户端软件与同一台计算机上的服务器软件进行通信。用户可以指定一个IP地址(通常为127.0.0.1),它将指向计算机的TCP/IP网络配置。环回功能的地址范围是127.0.0.0到127.255.255.255。与ping相似,环回使用户可以测试自己的网络,以确保IP堆栈正常运行。
TCP侦听器–TCP侦听器是TCP连接的服务器侧副本。它用于通过TCP接受传入连接。
除非另外定义,否则这里使用的所有术语(包括技术和科学术语)具有与本发明所属领域的普通技术人员通常理解的含义相同的含义。将进一步理解,诸如在常用词典中定义的那些术语应被解释为具有与其在说明书的上下文中和相关领域的含义一致的含义,并且除非在本文中明确地如此定义,否则不应以理想化或过于正式的含义来解释。为简洁和/或清楚起见,可能未详细描述众所周知的功能或构造。
还应该理解,当一个元件被称为“接于”、“附接”、“连接”、“耦合”、“接触”、“安装”另一个元件时,它可以直接接于、附接、连接、耦合或接触其他元件,或者也可以存在中间元件。相反,当一个元件被称为例如“直接接于”、“直接附接”、“直接连接”、“直接耦合”或“直接接触”另一个元件时,不存在中间元件。本领域技术人员还将理解,对与另一特征“相邻”设置的结构或特征的引用可具有与相邻特征重叠或位于相邻特征之下的部分。
这里可以使用空间相对术语,例如“下面”,“底下”,“下方”,“外部”,“上面”等,以便于描述如图中所示的一个元件或特征与另一个元件或特征的关系。应当理解,除了图中所示的取向之外,空间相对术语旨在包括使用或操作中的装置的不同取向。例如,如果图中的装置被倒转,则被描述为在其他元件或特征“下方”或“下面”的元件将被“定向”在其他元件或特征之上。因此,示例性术语“下方”可以包括“上方”和“下方”的取向。装置可以以其他方式定向(旋转90度或在其他方位),并且相应地解释本文使用的空间相对描述。类似地,除非另有明确说明,否则本文使用术语“向上”、“向下”、“垂直”、“水平”等仅用于解释的目的。
图2示出了根据本发明的一个实施例的使用通信协议的TCP/IP套件,源网关和目的网关以及用户数据报协议(“UDP”)隧道的客户端到服务器连接。在较高级别上,驻留在具有IP地址A的客户端服务器210上的客户端应用程序220试图与驻留在具有IP地址B的目的服务器230上的服务器应用程序240通信。
使用TCP连接建立两个中间网关(源网关服务器215和目的网关服务器235)的隧道,为客户端应用程序220提供了连接到服务器应用程序240的间接方法。为了使用根据本发明的TCP连接隧道,客户端应用程序220在源隧道网关应用程序8080端口上请求到在IP地址X上源隧道网关应用程序225的新的TCP连接。此后,源隧道网关应用程序225使用特定设计的UDP通信信道250与目的隧道网关应用程序245进行联系,并请求建立到服务器应用程序240的新的隧道连接。
代表到服务器应用程序的新的隧道连接,驻留在目的网关服务器255上的目的隧道网关应用程序245在8080端口上使用IP地址B发起到目的服务器230的TCP连接。目的服务器应用程序240观察到来自IP地址Y(目的网关服务器的IP地址)的连接请求,如果连接过程成功,则中间隧道网关将交换从隧道两侧接收的数据有效负载,以使客户端应用程序220和服务器应用程序240直接连接起来。
如上所述的TCP连接隧道在客户端应用程序和服务器应用程序驻留在不能通过第3层因特网协议直接相互寻址的不同主机上的情况下很有用。为了促进连接隧道,必须在中间隧道网关之间建立通信模式-通常通过窄信道,例如通过重新映射的IP地址和TCP或UDP端口的单个TCP连接或UDP消息信道。
回想一下,为了本发明的目的,分布式应用程序是指一种软件应用程序,其组件运行在通过网络连接的多个服务器上,这些服务器之间使用TCP进行通信。分布式应用程序通常还与不被视为分布式应用程序的一部分的其他组件(有时称之为客户端应用程序)通信,但是这种连接超出了本发明的范围,因此不再进一步讨论。分布式应用程序可以具有同构组件和/或异构组件。同构组件能够履行相同的角色和功能,并且通常以对等方式相互连接。纯同构分布式应用程序的一个例子是启用了可用性组功能的Microsoft SQL Server,它使用TCP连接来复制数据库内容和对数据库的更改。异构组件具有不同的连接模式的不同角色,但是它们都被视为分布式应用程序的一部分。
图3a描绘了包含三个服务器310、320、330的三节点同构对等分布式应用程序的典型配置,每个服务器运行相同软件(分布式)应用程序315、325、335的实例。每个软件应用程序315、325、335的实例都配置为作为三节点集群的一个成员运行,并使用它们在本地网络上的IP地址经由TCP直接连接到它的两个对等方。在此示例中,每个分布式应用程序315、325、335的实例都连接到TCP 022端口上的其他实例。
通过使用TCP隧道可以建立一种功能类似的***,但其中的服务器是经由公共因特网(参见图3b)耦合的。本发明的一个实施例是通过首先使用隧道应用程序网关318、328、338在每个服务器上创建TCP隧道***来建立这种连接。此TCP隧道***允许每个应用程序315、325、335的实例连接到集群中每个其他服务器上的对应实例。在该示例中,隧道被配置为在确定其应用程序没有使用它们之后侦听由本发明选择的TCP端口。此后,本发明配置每个分布式应用程序实例315、325、335分别连接到与隧道网关应用程序318、328、338上的隧道相关联的TCP侦听器,而不是直接连接到其命名的对等方,此后该TCP侦听器随后连接到服务器集群中的分布式应用程序的每个其他实例。
在图3b所示的示例中,驻留在每个服务器310、320、330上的隧道网关应用程序组件318、328、338通过5022端口与驻留在该服务器上的分布式应用程序实例315、325、335建立TCP连接。每个服务器上的隧道网关应用程序318、328、338包括多个TCP侦听器350、360、370。TCP侦听器与服务器集群中每个分布式应用程序的实例相关联。因此,对于服务器A310,隧道网关应用程序318经由TCP 5022端口提供从其他应用程序的实例接收的数据。并且,驻留在服务器A 310上的分布式应用程序315在TCP侦听器60002处调度应用程序数据到驻留在服务器B 320上的的分布式应用程序的实例325,以及在TCP侦听器60003处调度应用程序数据到驻留在服务器N 330上的分布式应用程序的实例335。同样,驻留在服务器B 320上的分布式应用程序的实例325通过TCP5022端口从其他应用程序的实例中接收数据。驻留在服务器B 320上的分布式应用程序325的实例在TCP侦听器60001处调度应用程序数据到驻留在服务器A 310上的分布式应用程序的实例315和在TCP侦听器60003处调度应用程序数据到驻留在服务器N 330上的分布式应用程序的实例335。
本发明的TCP隧道的配置的一个方面是对于每个服务器,一个隧道网关组件在该服务器上运行,并且预期连接到该隧道网关的TCP侦听器的唯一组件也是在该服务器上运行的应用程序。同样,该隧道网关应用程序是预期会连接到该服务器上运行的应用程序的一组有限组件之一。为此,本发明规定隧道网关TCP侦听器使用IP环回地址(127.0.0.1or::1)。回想一下,环回地址是只有一个端点的通信信道。TCP/IP网络指定环回允许客户端软件与同一台计算机上的服务器软件进行通信。
另外,隧道网关应用程序侦听用于与对等方连接的TCP端口(此示例中为TCP60001、60002和60003)也可以配置为侦听环回地址(例如,127.0.0.1.60001)。对于TCP侦听器使用环回地址会限制到本地服务器的连接,并会阻止任何连接网络上的其他主机访问这些隧道侦听器。
尽管本发明可直接适用于使用TCP作为其通信方法的分布式应用程序,但是保留了支持UDP通信信道和任何其他可以封装的通信的可能性。本发明的一个实施例中,配置分布式应用程序为以自动化方式连接到其对等方。本发明可能不适用于某些具有提供了它们如何连接到其他组件(即不允许指定TCP端口或从默认值改变TCP端口的组件)的有限可配置性的组件的分布式应用程序。使本发明适应于特定应用程序可能需要辅助组件,例如TCP/UDP转换器组件。
本发明的一个实施例为分布式应用程序动态地建立专用的、安全的连接,其中操作分布式应用程序的服务器不能通过第3层因特网协议直接相互寻址。这通常是因为服务器连接到不相交、地理位置遥远的专用内部网络。本发明促进了运行在彼此之间连接的不同服务器上的应用程序的组件,并提供了类似于VPN的功能,但是无需设置VPN或手动配置应用程序。
图4a和4b中示出了本发明的一个实施例的组件,包括耦合到集群405中的多个服务器的中间注册表服务器450。此外,服务器集群内的每个服务器405包括集群监视器410、本地监视器420、运行状况监视器435、主机引擎430、应用程序引擎468和一个或多个分布式应用程序480,以及处理器(机器)401和非暂时性存储介质402。
本发明的集群监视器410负责在参与隧道网关网络的所有可用服务器之间建立通信,监视服务器的可用性,通过协调器提供虚拟同步,监视并同步附加服务进程(集群服务)的状态,在集群服务成员之间中继命令,并维护隧道端点。作为形成一组隧道网关服务器的一部分,集群监视器410选择该组中的一个特定成员作为集群协调器。该组中的任何服务器都可以充当此角色。
由于本发明使建立两个以上隧道网关服务器的网络成为可能,因此该隧道网关服务器组将被称为集群,其主要联网组件为集群监视器410。对于集群监视器410,集群服务是参与命名组的任何外部软件组件。集群监视器410报告参与同一组的所有集群服务彼此的状态以及该组可能发生的任何变化。本地监视器420组件用作驻留集群监视器410的集群服务。集群监视器的子组件包括:
○组通信模块411–负责与集群中所有可用服务器建立通信,监视服务器可用性和通信信道,以及选举一服务器作为集群协调者。
○管道路由器和状态机412–通过面向数据报的UDP通信信道,提供可靠、有序的面向流的消息传递信道。管道路由器和状态机管理管道套接字,包括侦听套接字和传出连接。隧道端点管理器419使用此模块提供的通信信道来建立新的隧道会话并交换现有会话上的数据。其他集群监视器组件在内部也使用它与其他服务器进行通信。管道路由器和状态机类似于大多数主机网络堆栈中的TCP模块,并且执行的功能基本相同。
○DTLS会话管理器413–负责通过UDP与集群中的其他服务器建立经过身份验证的DTLS会话。
○中间注册表服务器客户端414–中间注册表服务器客户端管理与中间注册表服务器的通信,包括NAT配置发现、组注册和邀请。
○集群服务状态机415–集群服务状态机监视集群服务的可用性,处理对可用集群服务集合的更改,并将当前服务成员资格报告给在每个***上运行的活动集群服务组件。
○命令状态机416–负责监视各种集群服务提交的中继命令的状态。命令状态机确保中继命令的顺序一致,并将可靠的响应发送回这些命令的发布者。
○通信设置管理器418–通信设置管理器维护集群的管理配置细节,包括***列表、它们的网络地址和加密密钥。通信设置管理器负责管理在活动集群中添加和删除***的过程。
○隧道端点管理器419–负责基于全局配置创建、更改或删除隧道重定向器端点。隧道端点管理器确保隧道配置在服务器之间同步、处理对全局隧道配置的更新并管理两种不同类型的隧道端点:
■TCP侦听器块432–TCP侦听器块对TCP套接字进行侦听。对于每个新接受的连接,TCP侦听器块将启动到预配置地址的管道连接。成功连接后,从接受的TCP套接字接收到的所有数据都将转发到管道套接字,反之亦然。
■管道侦听器块434–管道侦听器块对管道套接字进行侦听。对于每个新接受的连接,管道侦听器块将启动与预配置地址的TCP连接。成功连接后,将从接受的管道套接字接收的所有数据转发到TCP套接字,反之亦然。
在集群监视器410中,使用分布式应用程序配置新的TCP隧道的过程(请参见图4)包括以下步骤:
1.充当集群协调器的集群组通信模块发送请求到目的隧道网关应用程序服务器,以创建管道侦听器块。管道侦听器块被配置为在随机管道端口上侦听,并连接到目的目标地址-目的服务器上的分布式应用程序实例。
2.目的隧道网关应用程序以绑定侦听器块的管道端口作为响应。
3.集群协调器发送请求到所有源隧道网关应用程序,以创建TCP侦听器块。TCP侦听器块被配置为在上述步骤2中确定的管道端口上连接到每个目的隧道网关应用程序。
本地监视器420及其相关的子组件执行本发明的集群方面。可以用许多类似的设计替换这些设计,以进行高可用性应用程序管理。在本发明的这种设计中,本地监视器20负责从用户接口接收请求并将请求转发到主机引擎430、应用引擎460和集群监视器410。在本发明的一个实施例中,本地监控器包括:
○客户端管理器421–负责处理传入的客户端请求,将请求传递给应用程序协调器或处理引擎以及维护客户端连接。
○同步管理器422–负责维护虚拟主机和应用程序的管理配置。当集群成员身份更改时,在***之间同步配置。
○应用程序协调器423–负责执行集群范围内的管理命令,并维护与参与SQL服务器可用性组的服务器和其他托管应用程序相关的集群不变性。例如,如果***发生故障,并且该***正在托管特定应用程序的组件,则应用程序协调器将确保将该应用程序配置为重新分配故障服务器的职责。
○仲裁管理器424–仲裁管理器根据配置设置确定活动集群是否存在仲裁。如果不存在仲裁,仲裁管理器将关闭活动的应用程序。例如,如果同一集群的两个子组能够相互通信但无法彼此通信,则它们将形成两个独立的集群。仲裁管理器确保只有这些集群之一尝试启动应用程序。
○分配管理器425–负责监视每个***上活动的应用程序集,并根据配置的资源要求和可用性指导自动应用程序放置决策。
○文件***监视器426–文件***监视器监视应用程序的文件***路径的可用性,并向集群协调器报告状态。
○处理引擎427–处理引擎通过将请求转发到主机引擎、应用程序引擎和/或同步管理器来解析并执行客户端请求。
应用程序引擎460负责建立和管理分布式应用程序。其包括:
○数据库管理器461–负责维护和管理每个[SQL Server]应用程序实例的实例数据库文件。
○实例管理器463–负责维护和管理存储在磁盘上的实例配置。管理分布式应用程序的配置,包括配置连接性和使用TCP隧道连接到对等方。
○集成管理器462–负责通过注册表和运行状况监视器处理实例注册。
主机引擎430建立并维护虚拟主机和虚拟IP地址。主机引擎的子组件包括:
○虚拟主机管理器431–负责维护和管理虚拟主机。
○因特网地址管理器432–负责管理虚拟IP地址订阅。
运行状况监视器435监视服务器上运行的应用程序的运行状况,并发出故障转移或故障回复事件的信号。每个运行状况监视器包括:
○性能监视器436–负责监视***和相关应用程序进程的CPU、内存和I/O利用率。
○本地服务器观察器437–负责监视应用程序运行状况并根据注册策略引发事件。
○警报措施处理器438–负责响应警报和应用程序条件发送电子邮件和调用脚本。
说明书中包括的流程图描述了可用于使用TCP隧道在分布式应用程序之间进行通信的方法的示例。在以下描述中,将理解流程图图示的每个框以及流程图图示中的框的组合可以由计算机程序指令实现。这些计算机程序指令可以加载到计算机或以产生机器的其他可编程装置上,使得在计算机或其他可编程装置上执行的指令创建用于实现流程图框中指定的功能的方式。这些计算机程序指令还可以存储在计算机可读存储器中,该计算机可读存储器可以指示计算机或其他可编程装置以特定方式运行,使得存储在计算机可读存储器中的指令产生包括用于实现流程图框中指定的功能的方式的指令装置的制品。计算机程序指令也可以加载到计算机或其他可编程装置上,以使得在计算机或其他可编程装置上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机上执行的指令或其他可编程装置提供用于实现流程图框中指定的功能的步骤。
因此,流程图图示的框支持用于执行指定功能的装置的组合以及用于执行指定功能的步骤的组合。还将理解,流程图图示的每个框以及流程图图示中的框的组合可以由执行特定功能或步骤的专用基于硬件的计算机***或专用硬件和计算机指令的组合来实现。
本发明的一种方法(如图5和图6额外详细所示)被提炼为以下步骤:
1.操作605由多个服务器405组成的服务器集群,其中每个服务器包括隧道网关应用程序225,并且每个服务器包括多个终端控制协议(TCP)侦听器。
2.确定该分布式应用程序的连接路径,包括哪些组件具有TCP侦听器以及哪些组件连接到哪些侦听器。
a.在存在分布式应用程序实例的每个服务器上,将分布式应用程序与驻留隧道网关应用程序进行关联610。
b.在服务器集群中每个服务器上的分布式应用程序和驻留隧道网关应用程序之间建立620直接TCP第4层连接510。
3.对于每个连接器/侦听器对,将新的隧道与在分布式应用程序的连接实例的服务器上运行的源隧道网关应用程序上的源TCP侦听器进行关联660,并通过在侦听应用程序的服务器上运行的目的隧道网关应用程序540路由。
a.当为每个隧道源点选择630TCP***520时,确保640该***未被服务器上运行的任何其他应用程序使用。
b.如果应用程序要求所有组件都具有相同的配置,并且该配置描述了要用于访问该组中特定成员的地址和TCP端口,则隧道源侦听端口560的选择变得更加复杂。对于用于连接到该特定对等方的隧道源,必须使用相同的侦听端口,因此所选择的端口必须对所有需要这些隧道源的服务器上的其他应用程序可用且未使用。
4.重新配置每个参与的应用程序组件,以连接到源隧道网关的TCP侦听器,而不是目的应用程序侦听器。
5.使用面向UDP数据报的通信信道570在分布式应用程序的实例之间传输670分布式应用程序数据。
本发明支持由该应用程序或应用程序集合使用的TCP隧道的操作。TCP隧道允许分布式应用程序组件通过不一致的网络(例如跨NAT路由器和公共因特网)相互连接,而无需打开对公共因特网的访问。应用程序引擎实例管理器负责将配置应用于此组件,包括使分布式应用程序使用TCP隧道的设置。
除了为TCP隧道提供服务外,由本发明的管道路由器和状态机提供的有序、可靠的通信信道还为操作集群监视器内部组件(例如集群服务状态机和命令状态机)提供了必要的数据。管道路由器通信信道用于将命令发送到集群中的其他服务器,将响应发送回命令发布者,以及同步配置。
例如,应用程序协调器隧道配置表中的条目包含:
○目的网关名称–将操作目的隧道网关的集群成员
○目的目标地址和端口–目的网关将与之建立新的隧道连接的主机
○一个或多个源,包括:
■源网关名称–将操作源隧道网关的集群成员
■源侦听地址和端口–描述如何创建源网关的侦听TCP端口
作为相关领域中的合理技术人员将理解,本发明通过在本地环回端口上通过隧道网关应用程序传送数据来修改分布式应用程序的通信方案,而不是直接使用位于远程服务器上的其他分布式应用程序的实例来查找信道。挑战在于映射正确端口以访问应用程序,以及将分布式应用程序配置为与网关交互,而不是直接与分布式应用程序交互。本发明通过选择一个或多个TCP端口并将每个选择的端口与多个TCP***中的一个相关联并随后将每个关联的TCP***路由到分布式应用的另一实例来实现。
在本发明的一个实例中,一种用于在广域网上通过分布式应用进行应用内连接的计算机实现的***可以包括:
○作为服务器集群运行的多个服务器,其中每个服务器包括隧道网关应用程序,并且其中每个隧道网关应用程序包括多个终端控制协议(TCP)侦听器;
○分布式应用程序,其中在该多个服务器中的每个服务器上实例化该分布式应用程序的单独实例,并通过直接第4层TCP网络路由与驻留在该服务器上的隧道网关应用程序通信耦合,从而使用适合TCP传输的格式将客户端应用程序数据传输到隧道网关应用程序,其中每个分布式应用程序的实例通过分配给每个分布式应用程序实例的环回端口,使用TCP侦听器经由隧道网关应用程序与每个其他分布式应用程序的实例通信耦合;和
○在每个隧道网关应用程序之间的面向用户数据报协议(UDP)数据报的通信信道。
上述***的其他功能可以包括:
○其中每个隧道网关应用程序被配置为将从每个分布式应用实例接收的适合TCP传输的格式的客户端应用程序数据修改为适合UDP传输的格式,以通过所述广域网进行传输;
○其中,每个隧道网关应用程序被配置为将通过所述广域网以适合UDP传输的格式从另一隧道网关应用程序接收的客户端应用程序数据修改为适合TCP传输的格式,用于传输到分布式应用程序。
○其中,TCP侦听器仅接受来自分布式应用程序的本地实例的连接;
○其中,每个服务器上的每个环回端口被配置为专用于该服务器上的所述分布式应用程序的实例;
○其中每个应用程序实例被配置为与在其上存在另一分布式应用程序的实例的多个服务器中的彼此关联的TCP***连接;和
○其中,隧道网关应用程序包括隧道端点管理器,该隧道端点管理器配置为选择一个或多个TCP端口并将每个选择的端口与多个TCP侦听器中的一个相关联,并将每个相关联的TCP侦听器路由到驻留在所述服务器集群中多个服务器中的每个服务器上的所述分布式应用程序的实例,在所述服务器集群中的每个对等方之间形成唯一面向UDP数据报的通信信道,然后将所述分布式应用程序的每个实例配置为通过每个所述唯一面向UDP数据报的通信信道访问所述服务器集群中的对等方。
本发明还可以体现为用于通过广域网进行分布式应用程序的应用程序内连接的计算机实现的方法。在这种情况下,该方法包括以下步骤:
○操作由多个服务器组成的服务器集群,其中每个服务器包括隧道网关应用程序,并且其中每个隧道网关应用程序包括多个终端控制协议(TCP)侦听器;
○在服务器集群中的多个服务器中的每个服务器上实例化分布式应用程序的单独实例,其中分布式应用程序的每个单独实例通过直接第4层TCP网络路由与驻留在该服务器上的隧道网关应用程序进行通信;
○使用适合TCP传输的格式在每个服务器上的所述隧道网关应用程序之间传输客户端应用程序数据;
○通过分配给每个服务器上应用程序实例的环回端口,使用TCP侦听器将分布式应用程序的每个实例通信地耦合到每个隧道网关应用程序处的分布式应用程序的每个其他实例;和
○通过面向用户数据报协议(UDP)数据报的通信信道,通过广域网在每个隧道网关应用程序之间传输客户端应用程序数据。
上述方法可以包含其他功能,包括:
○在每个隧道网关应用程序上,将从每个分布式应用程序实例接收的适合TCP传输的格式的客户端应用程序数据修改为适合UDP传输的格式,以通过广域网进行传输;
○在每个隧道网关应用程序上,将通过广域网以适合UDP传输的格式从另一个隧道网关应用程序接收到的客户应用程序数据修改为适合TCP传输的格式,以传输到分布式应用程序;
○TCP侦听器仅接受本地分布式应用程序的实例的连接;
○配置每个服务器上的每个环回端口为该服务器上的分布式应用程序实例专有;
○配置每个应用程序实例与TCP侦听器连接,TCP侦听器与存在分布式应用程序的另一个实例的多个服务器彼此相关联;和
○配置隧道网关应用程序以选择一个或多个TCP端口,并将每个选择的端口与多个TCP侦听器中的一个相关联,并将每个关联的TCP侦听器路由到驻留在所述服务器集群中多个服务器中的每个服务器上的所述分布式应用程序的实例,在所述服务器集群中的每个对等方之间形成唯一面向UDP数据报的通信信道,然后配置所述分布式应用程序的每个实例为通过每个所述唯一面向UDP数据报的通信信道访问所述服务器集群中的对等方。
在又一个实施例中,本发明可以被实现为一种非暂时性机器可读存储介质,其上存储有用于通过广域网进行分布式应用的应用内连接的指令,该指令包括机器可执行代码,该机器可执行代码由至少一台机器执行时,使机器:
○操作由多个服务器组成的服务器集群,其中每个服务器包括隧道网关应用程序,并且每个隧道网关应用程序包括多个终端控制协议(TCP)侦听器;
○在服务器集群中的多个服务器中的每个服务器上实例化分布式应用程序的单独实例,其中分布式应用程序的每个单独实例通过直接第4层TCP网络路由与驻留在该服务器上的隧道网关应用程序进行通信;
○使用适合TCP传输的格式在每个服务器上的隧道网关应用程序之间传输客户端应用程序数据;
○通过分配给每个服务器上的应用程序实例的环回端口,使用TCP侦听器将每个分布式应用程序的实例通信地耦合到每个隧道网关应用程序处的每个其他分布式应用程序的实例;和
○通过面向用户数据报协议(UDP)数据报的通信信道,通过广域网在每个隧道网关应用程序之间传输客户端应用程序数据。
存在于非暂时性存储介质上的本发明的附加内容包括使机器执行以下操作的机器可执行代码:
○在每个隧道网关应用程序上,将从每个分布式应用实例接收的适合TCP传输的格式的客户端应用程序数据修改为适合UDP传输的格式,以在广域网上进行传输;
○在每个隧道网关应用程序处,将通过广域网以适合UDP传输的格式从另一隧道网关应用程序接收的客户端应用程序数据修改为适合TCP传输的格式,以传输给分布式应用程序;
○TCP侦听器仅接受本地的分布式应用程序的实例的连接;
○配置每个服务器上的每个环回端口专用于该服务器上的所述分布式应用程序的实例;
○配置每个应用程序实例为与存在所述分布式应用程序的另一个实例的所述多个服务器中彼此关联的TCP侦听器连接;和
○选择一个或多个TCP端口,并将每个选择的端口与多个TCP侦听器之一相关联,并将每个关联的TCP侦听器路由到驻留在所述服务器集群中多个服务器中的每个服务器上的所述分布式应用程序的实例,在所述服务器集群中的每个对等方之间形成唯一面向UDP数据报的通信信道,然后配置所述分布式应用程序的每个实例为通过每个所述唯一面向UDP数据报的通信信号访问所述服务器集群中的对等方。
除非另有明确说明,否则本文中使用“处理”,“计算”,“计算”,“确定”,“呈现”,“显示”等词语进行的讨论可能是指机器的动作或过程(例如,一台计算机)来操纵或转换表示为一个或多个存储器(例如,易失性存储器,非易失性存储器或其组合),寄存器或其他机器组件中的物理(例如,电,磁或光)量的数据接收,存储,传输或显示信息的信息。
在一个优选实施例中,本发明可以用软件实现。体现本发明的软件编程代码通常由微处理器从某种类型的长期永久存储介质访问,例如闪存驱动器或硬盘驱动器。软件编程代码可以体现在各种已知介质中的任何一种上,以与数据处理***一起使用,例如磁盘、硬盘驱动器、CD-ROM等。代码可以分布在这样的介质上,或者可以通过某种类型的网络从一个计算机***的存储器分发到其他计算机***以供这些其他***使用。或者,编程代码可以体现在设备的存储器中,并由微处理器使用内部总线访问。在存储器中、在物理介质上实现软件编程代码和/或经由网络分发软件代码的技术和方法是公知的,并且在此不再进一步讨论。
通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。此外,本领域技术人员将理解,本发明可以用其他计算机***配置来实践,包括手持设备、多处理器***、基于微处理器或可编程的消费电子产品、网络PC、微型计算机、大型计算机,等等。本发明还可以在分布式计算环境中实施,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
用于实现本发明的示例性***包括通用计算设备,例如常规计算机、个人通信设备等的形式,通用计算设备包括处理单元、***存储器以及耦合各种***组件的***总线,包括耦合***内存到处理单元的总线。***总线可以是若干类型的总线结构中的任何一种,包括存储器总线或存储器控制器、***总线和使用各种总线架构中的任何总线架构的本地总线。***存储器通常包括只读存储器(ROM)和随机存取存储器(RAM)。基本输入/输出***(BIOS)存储在ROM中,其包含有助于在个人计算机内的元件之间传输信息的基本例程,例如在启动期间。该计算机可以进一步包括用于从硬盘读取和写入硬盘的硬盘驱动器,用于从可移动磁盘读取或写入的磁盘驱动器。硬盘驱动器和磁盘驱动器分别通过硬盘驱动器接口和磁盘驱动器接口连接到***总线。驱动器及其相关的计算机可读介质为个人计算机提供了计算机可读指令、数据结构、程序模块和其他数据的非暂时性非易失性存储。尽管这里描述的示例性环境采用硬盘和可移动磁盘,但是本领域技术人员应该理解,可以存储可由计算机访问的数据的其他类型的计算机可读介质也可以用于示例性的操作环境。
本领域的技术人员将理解,在不脱离本发明的精神或基本特征的情况下,本发明可以以其他特定形式实施。同样,模块、管理器、功能、***、引擎、层、特征、属性、方法和其他方面的特定命名和划分不是强制性的或重要的,并且实现本发明或其特征的机制可以具有不同的名称、分区和/或格式。此外,对于相关领域的普通技术人员将显而易见的是,可以将本发明的模块、管理器、功能、***、引擎、层、特征、属性、方法和其他方面实现为软件、硬件、固件或三者的任意组合。当然,在将本发明的组件实现为软件的任何地方,该组件可以实现为脚本、独立程序、较大程序的一部分、多个单独的脚本和/或程序、静态、或者动态链接库、内核可加载模块、设备驱动程序和/或为计算机编程领域的技术人员所知的现在或将来的每种和任何其他方式。另外,本发明不限于以任何特定编程语言或任何特定操作***或环境的实现。因此,本发明的公开意图是说明性的,而不是限制权利要求中阐述的本发明的范围。
尽管上面已经结合分布式应用程序的应用程序内连接描述了本发明的原理,但是应该清楚地理解,前面的描述仅通过例子方式进行,而不是对本发明范围的限制。特别地,应认识到,前述公开内容的教导将暗示对相关领域的技术人员的其他修改。这些修改可以涉及本身已知的其他特征,并且可以代替或补充本文已经描述的特征的其他特征。尽管在本申请中已经将权利要求公式化为特征的特定组合,但是应当理解,本文公开的范围还包括明确或隐含地公开的任何新颖特征或特征的任何新颖组合,或者对于相关领域的技术人员显而易见的任何概括或修改,无论是否涉及与任何权利要求中目前要求保护的相同的发明,以及它是否减轻了与本发明所面临的任何或所有相同的技术问题。申请人特此保留在本申请或由此衍生的任何其他申请的审查期间针对此类特征和/或此类特征的组合提出新权利要求的权利。

Claims (21)

1.一种用于通过广域网进行分布式应用程序的应用程序内连接的计算机实现的***,包括:
作为服务器集群运行的多个服务器(405),其中每个服务器包括隧道网关应用程序(225、540),并且其中每个隧道网关应用程序包括多个终端控制协议(TCP)侦听器(520);
分布式应用程序(480),其中在所述多个服务器(405)中的每个服务器上实例化所述分布式应用程序的单独实例,并通过直接第4层TCP网络路由(510)与驻留在该服务器上的隧道网关应用程序(225,540)通信地耦合,从而使用适合TCP传输的格式将客户端应用程序数据传送到所述隧道网关应用程序,并且其中所述分布式应用程序(480)中的每个实例都通过分配给每个服务器上的所述分布式应用程序实例的环回端口,使用所述TCP侦听器(520)经由所述隧道网关应用程序(225、540)与所述分布式应用程序(480)中的每个其他实例通信地耦合;以及
在每个隧道网关应用程序之间的面向用户数据报协议(UDP)数据报的通信信道(570)。
2.根据权利要求1所述的用于在广域网上进行分布式应用程序的应用程序内连接的计算机实现的***,其中,每个隧道网关应用程序被配置为将从每个分布式应用程序实例接收的适合TCP传输的格式的客户端应用程序数据修改为适合UDP传输的格式,以通过所述广域网进行传输。
3.根据权利要求1所述的用于在广域网上进行分布式应用程序的应用程序内连接的计算机实现的***,其中,每个隧道网关应用程序被配置为将通过所述广域网以适合UDP传输的格式从另一隧道网关应用程序接收的客户端应用程序数据修改为适合TCP传输的格式,以便传输到所述分布式应用程序。
4.根据权利要求1所述的用于在广域网上进行分布式应用程序的应用程序内连接的计算机实现的***,其中,所述TCP侦听器仅接受来自所述分布式应用程序的本地实例的连接。
5.根据权利要求1所述的用于在广域网上进行分布式应用程序的应用程序内连接的计算机实现的***,其中,每个服务器上的每个环回端口被配置为专用于该服务器上的所述分布式应用程序的实例。
6.根据权利要求1所述的用于在广域网上进行分布式应用程序的应用程序内连接的计算机实现的***,其中,每个应用程序实例被配置为与TCP侦听器连接,所述TCP侦听器与存在所述分布式应用程序的另一个实例的所述多个服务器相互关联。
7.根据权利要求1所述的用于在广域网上进行分布式应用程序的应用程序内连接的计算机实现的***,其中,所述隧道网关应用程序包括隧道端点管理器,所述隧道端点管理器被配置为选择一个或多个TCP端口,并将每个选择的端口与所述多个TCP侦听器中的一个相关联,并将每个相关联的TCP侦听器路由到驻留在所述服务器集群中多个服务器中的每个服务器上的所述分布式应用程序的实例,在所述服务器集群中的每个对等方之间形成唯一面向UDP数据报的通信信道,然后将所述分布式应用程序的每个实例配置为通过每个唯一面向UDP数据报的通信信道访问所述服务器集群中的对等方。
8.一种用于在广域网上进行分布式应用程序的应用程序内连接的计算机实现的方法,包括:
操作(605)由多个服务器(405)组成的服务器集群,其中每个服务器包括隧道网关应用程序(225,540),并且其中每个隧道网关应用程序包括多个终端控制协议(TCP)侦听器(520);
在所述服务器集群中的所述多个服务器(405)的每个服务器上实例化(610)分布式应用程序(480)的单独实例,其中所述分布式应用程序的每个单独实例通过直接第4层TCP网络路由(520)与驻留在该服务器上的所述隧道网关应用程序(225、540)进行通信;
使用适合TCP传输的格式在每个服务器上的所述隧道网关应用程序(225、540)之间传输(620)客户端应用程序数据;
通过分配给每个服务器上的应用程序实例的环回端口,使用TCP侦听器(520)将所述分布式应用程序(480)的每个实例通信地耦合(660)到每个隧道网关应用程序(225、540)处的所述分布式应用程序的每个其他实例;和
通过面向用户数据报协议(UDP)数据报的通信信道(570),通过所述广域网在每个隧道网关应用程序之间传输(670)客户端应用程序数据。
9.根据权利要求8所述的用于在广域网上进行分布式应用程序的应用程序内连接的计算机实现的方法,还包括:在每个隧道网关应用程序中,将从每个分布式应用程序实例接收的适合TCP传输的格式的客户端应用程序数据修改为适合UDP传输的格式,以通过所述广域网进行传输。
10.根据权利要求8所述的用于在广域网上进行分布式应用程序的应用程序内连接的计算机实现的方法,还包括:在每个隧道网关应用程序中,将通过所述广域网以适合UDP传输的格式从另一个隧道网关应用程序接收的客户端应用程序数据修改为适合TCP传输的格式,以传输到所述分布式应用程序。
11.根据权利要求8所述的用于在广域网上进行分布式应用程序的应用程序内连接的计算机实现的方法,还包括:TCP侦听器仅接受来自所述分布式应用程序的本地实例的连接。
12.根据权利要求8所述的用于在广域网上进行分布式应用程序的应用程序内连接的计算机实现的方法,还包括:配置每个服务器上的每个环回端口专用于该服务器上的所述分布式应用程序的实例。
13.根据权利要求8所述的用于在广域网上进行分布式应用程序的应用程序内连接的计算机实现的方法,还包括:配置每个应用程序实例与TCP侦听器连接,所述TCP侦听器与存在所述分布式应用程序的另一个实例的所述多个服务器相互关联。
14.根据权利要求8所述的用于在广域网上进行分布式应用程序的应用程序内连接的计算机实现的方法,还包括:配置所述隧道网关应用程序选择一个或多个TCP端口,并将每个选择的端口与所述多个TCP侦听器中的一个相关联,并将每个关联的TCP侦听器路由到驻留在所述服务器集群中多个服务器中的每个服务器上的所述分布式应用程序的实例,在所述服务器集群中的每个对等方之间形成唯一面向UDP数据报的通信信道,然后配置所述分布式应用程序的每个实例为通过每个所述唯一面向UDP数据报的通信信道访问所述服务器集群中的对等方。
15.一种非暂时性机器可读存储介质,其上存储有用于通过广域网进行分布式应用程序的应用程序内连接的指令,该指令包括机器可执行代码,当被至少一台机器执行时,该机器可执行代码使机器:
操作(605)由多个服务器(405)组成的服务器集群,其中每个服务器包括隧道网关应用程序(225,540),并且其中每个隧道网关应用程序包括多个终端控制协议(TCP)侦听器(520);
在所述服务器集群中的所述多个服务器(405)的每一个服务器上实例化(610)所述分布式应用程序(480)的单独实例,其中所述分布式应用程序的每个单独实例通过直接第4层TCP网络路由(520)与驻留在该服务器上的所述隧道网关应用程序(225、540)通信;
使用适合TCP传输的格式在每个服务器上的所述隧道网关应用程序(225、540)之间传输(620)客户端应用程序数据;
通过分配给每个服务器上的应用程序实例的环回端口,使用TCP侦听器(520)将所述分布式应用程序(480)的每个实例通信地耦合(660)到每个隧道网关应用程序(225、540)处的所述分布式应用程序的每个其他实例;
通过面向用户数据报协议(UDP)数据报的通信信道(570),通过所述广域网在每个隧道网关应用程序之间传输客户端应用程序(670)数据。
16.根据权利要求15所述的非暂时性机器可读存储介质,还包括机器可执行代码,该机器可执行代码使机器:在每个隧道网关应用程序处,将从每个分布式应用程序实例接收的适合TCP传输的格式的客户端应用程序数据修改为适合UDP传输的格式,以通过所述广域网进行传输。
17.如权利要求15所述的非暂时性机器可读存储介质,其特征在于,还包括机器可执行代码,该机器可执行代码使机器:在每个隧道网关应用程序处,将通过所述广域网以适合UDP传输的格式从另一隧道网关应用程序接收到的客户端应用程序数据修改为适合TCP传输的格式,以传输到分布式应用程序。
18.如权利要求15所述的非暂时性机器可读存储介质,其特征在于,还包括机器可执行代码,该机器可执行代码使机器:TCP侦听器仅接受来自所述分布式应用程序的本地实例的连接。
19.如权利要求15所述的非暂时性机器可读存储介质,其特征在于,还包括机器可执行代码,该机器可执行代码使机器:配置每个服务器上的每个环回端口专用于该服务器上的所述分布式应用程序的实例。
20.如权利要求15所述的非暂时性机器可读存储介质,其特征在于,还包括机器可执行代码,该机器可执行代码使机器:配置每个应用程序实例与TCP侦听器连接,所述TCP侦听器与存在所述分布式应用程序的另一个实例的所述多个服务器相互关联。
21.如权利要求15所述的非暂时性机器可读存储介质,其特征在于,还包括机器可执行代码,该机器可执行代码使机器:选择一个或多个TCP端口,并将每个选择的端口与所述多个TCP侦听器中的一个相关联,并将每个关联的TCP侦听器路由到驻留在所述服务器集群中多个服务器中的每个服务器上的所述分布式应用程序的实例,在所述服务器集群中的每个对等方之间形成唯一面向UDP数据报的通信信道,然后配置所述分布式应用程序的每个实例为通过每个所述唯一面向UDP数据报的通信信号访问所述服务器集群中的对等方。
CN201980053933.8A 2018-08-07 2019-08-07 分布式应用程序实例中的用户数据报协议隧道 Active CN113169958B (zh)

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
US201862715367P 2018-08-07 2018-08-07
US201862715361P 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,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,677 US11323288B2 (en) 2018-08-07 2019-08-06 Systems and methods for server cluster network communication across the public internet
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,764 2019-08-06
PCT/US2019/045431 WO2020033494A1 (en) 2018-08-07 2019-08-07 User datagram protocol tunneling in distributed application instances

Publications (2)

Publication Number Publication Date
CN113169958A true CN113169958A (zh) 2021-07-23
CN113169958B CN113169958B (zh) 2023-07-11

Family

ID=69406527

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201980052876.1A Active CN112997463B (zh) 2018-08-07 2019-08-07 用于跨公用互联网的服务器集群网络通信的***和方法
CN201980052860.0A Active CN112805977B (zh) 2018-08-07 2019-08-07 公用互联网上的应用传输控制协议隧道
CN201980053933.8A Active CN113169958B (zh) 2018-08-07 2019-08-07 分布式应用程序实例中的用户数据报协议隧道

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201980052876.1A Active CN112997463B (zh) 2018-08-07 2019-08-07 用于跨公用互联网的服务器集群网络通信的***和方法
CN201980052860.0A Active CN112805977B (zh) 2018-08-07 2019-08-07 公用互联网上的应用传输控制协议隧道

Country Status (5)

Country Link
US (3) US11082254B2 (zh)
EP (3) EP3834393B1 (zh)
CN (3) CN112997463B (zh)
CA (3) CA3108785C (zh)
WO (3) WO2020033494A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
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
AU2020353720A1 (en) * 2019-09-25 2022-03-31 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
CN114024921B (zh) * 2021-10-14 2024-05-28 郑州浪潮数据技术有限公司 一种隧道协同方法、装置、设备及可读存储介质
CN114401245B (zh) * 2021-12-22 2024-03-22 上海网基科技有限公司 实现高性能dns服务的方法、装置、计算机设备和存储介质
CN117354276A (zh) * 2022-06-27 2024-01-05 中移(杭州)信息技术有限公司 一种网络穿透***的启动方法及报文收发方法、通信设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100161960A1 (en) * 2008-12-17 2010-06-24 Nortel Networks Limited Secure Remote Access Public Communication Environment
US20130133043A1 (en) * 2011-04-27 2013-05-23 International Business Machines Corporation Authentication in virtual private networks
EP3198464A1 (en) * 2014-09-25 2017-08-02 Hughes Network Systems, LLC Application-aware multihoming for data traffic acceleration in data communications networks
CN107079021A (zh) * 2014-10-21 2017-08-18 统有限责任两合公司 在建立rtc客户端与rtc服务器之间的rtc通信连接时穿越应用层网关防火墙的电信装置和方法
CN107690793A (zh) * 2015-05-11 2018-02-13 思杰***有限公司 用于移动平台的微vpn隧穿

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002247130A (ja) * 2001-02-20 2002-08-30 Nippon Telegr & Teleph Corp <Ntt> Sipトンネリング装置及びそれを用いた通信システム
US20020156900A1 (en) * 2001-03-30 2002-10-24 Brian Marquette Protocol independent control module
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
KR20030047471A (ko) * 2001-12-10 2003-06-18 (주)애니 유저넷 인터넷 전화의 방화벽 통과방법 및 터널링 게이트웨이
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
US20080261632A1 (en) * 2003-03-19 2008-10-23 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
CA2496421A1 (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业务穿越私网的***及方法
US20060235939A1 (en) * 2005-04-18 2006-10-19 Wai Yim Apparatus and methods for tunneling a media streaming application through a firewall
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)
US8228830B2 (en) * 2008-01-04 2012-07-24 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)
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
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
US8874785B2 (en) * 2010-02-15 2014-10-28 Damaka, Inc. System and method for signaling and data tunneling in a peer-to-peer environment
US8892646B2 (en) 2010-08-25 2014-11-18 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
KR20120071121A (ko) * 2010-12-22 2012-07-02 한국전자통신연구원 가상 터널 라우터와 ip 카메라 관리서버 및 위치 기반 ip 카메라 서비스 방법
KR101263783B1 (ko) * 2010-12-27 2013-05-13 삼성에스디에스 주식회사 릴레이 서버를 이용한 데이터 전송 시스템 및 방법
CN102088460B (zh) * 2010-12-29 2013-07-17 北京新媒传信科技有限公司 受限网络中流媒体数据的传输方法、设备和***
WO2012173667A2 (en) 2011-02-10 2012-12-20 Trilliant Holdings, Inc. Device and method for facilitating secure communications over a cellular network
US20130204988A1 (en) * 2011-07-27 2013-08-08 Mobidia Technology, Inc. Method and system for loopback proxy
JP5967187B2 (ja) * 2012-03-02 2016-08-10 日本電気株式会社 経路制御システム、コントロール装置及び経路制御方法
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
MX349074B (es) 2013-04-30 2017-07-07 Ericsson Telefon Ab L M Reuso del grupo multidifusión en el transporte de multidifusión de la red celular.
US9241044B2 (en) * 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US20150188949A1 (en) * 2013-12-31 2015-07-02 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
US10097373B2 (en) * 2014-08-15 2018-10-09 LiveQoS Inc. UDP over TCP tunnel
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
ES2837224T3 (es) 2015-04-10 2021-06-29 Deutsche Telekom Ag Método y sistema para la planificación de paquetes en un escenario de agrupamiento basado en túneles TCP e información TCP nativa
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科技集团股份有限公司 一种快速组建全连通服务器集群的方法和***
GB2567026B (en) 2017-02-11 2022-03-23 Pismo Labs Technology Ltd 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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100161960A1 (en) * 2008-12-17 2010-06-24 Nortel Networks Limited Secure Remote Access Public Communication Environment
US20130133043A1 (en) * 2011-04-27 2013-05-23 International Business Machines Corporation Authentication in virtual private networks
EP3198464A1 (en) * 2014-09-25 2017-08-02 Hughes Network Systems, LLC Application-aware multihoming for data traffic acceleration in data communications networks
CN107079021A (zh) * 2014-10-21 2017-08-18 统有限责任两合公司 在建立rtc客户端与rtc服务器之间的rtc通信连接时穿越应用层网关防火墙的电信装置和方法
CN107690793A (zh) * 2015-05-11 2018-02-13 思杰***有限公司 用于移动平台的微vpn隧穿

Also Published As

Publication number Publication date
EP3834393A1 (en) 2021-06-16
US20200053163A1 (en) 2020-02-13
WO2020033494A1 (en) 2020-02-13
CN112997463B (zh) 2023-07-25
CA3108787C (en) 2023-06-20
CA3108785C (en) 2023-07-18
CN112805977B (zh) 2023-06-13
CA3108769A1 (en) 2020-02-13
US20200052927A1 (en) 2020-02-13
WO2020033489A1 (en) 2020-02-13
CN113169958B (zh) 2023-07-11
US11082254B2 (en) 2021-08-03
CA3108785A1 (en) 2020-02-13
CN112805977A (zh) 2021-05-14
CN112997463A (zh) 2021-06-18
EP3834396B1 (en) 2024-04-10
WO2020033493A1 (en) 2020-02-13
EP3834394B1 (en) 2024-04-10
EP3834393B1 (en) 2023-11-29
CA3108787A1 (en) 2020-02-13
US10805113B2 (en) 2020-10-13
US20200053125A1 (en) 2020-02-13
EP3834396A1 (en) 2021-06-16
US11323288B2 (en) 2022-05-03
EP3834394A1 (en) 2021-06-16
CA3108769C (en) 2023-09-19

Similar Documents

Publication Publication Date Title
CN113169958B (zh) 分布式应用程序实例中的用户数据报协议隧道
EP3186930B1 (en) Relay optimization using software defined networking
US8032641B2 (en) Assymmetric traffic flow detection
JP4146886B2 (ja) 通信モジュール及びこの通信モジュールを備えたアプリケーションプログラム
US11575757B2 (en) Cloaked remote client access
US8817815B2 (en) Traffic optimization over network link
US11165891B2 (en) Highly available transmission control protocol tunnels
US20130339509A1 (en) Networking systems
US20070100998A1 (en) System and method of accessing a resource on a translated network device
US20160315824A1 (en) Networking systems
US11677584B2 (en) Application TCP tunneling over the public internet
WO2024073113A1 (en) System and method for creating a private service access network
Slyvester et al. TCP/IP Services

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