CN111930832B - Fast and scalable database cluster communication path - Google Patents
Fast and scalable database cluster communication path Download PDFInfo
- Publication number
- CN111930832B CN111930832B CN202010616046.1A CN202010616046A CN111930832B CN 111930832 B CN111930832 B CN 111930832B CN 202010616046 A CN202010616046 A CN 202010616046A CN 111930832 B CN111930832 B CN 111930832B
- Authority
- CN
- China
- Prior art keywords
- application
- links
- data
- dedicated virtual
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- 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/0281—Proxies
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/164—Implementing security features at a particular protocol layer at the network layer
-
- 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/168—Implementing security features at a particular protocol layer above the transport layer
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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种用于应用容器通过直接通信链路进行通信的技术。建立一条或多条第一专用虚拟链路,用于在一个或多个第一应用容器之间进行直接应用容器级通信。通过所述对应的一条或多条第一专用虚拟链路在所述一个或多个第一应用容器之间传输数据,其中,所述一条或多条第一专用虚拟链路中的每一条链路在第一端与所述一个或多个第一应用容器中对应的一个连接并且在第二端与对应的虚拟输入/输出(virtual input/output,VIO)连接。
The present invention relates to a technology for application containers to communicate via direct communication links. One or more first dedicated virtual links are established for direct application container-level communication between one or more first application containers. Data is transmitted between the one or more first application containers via the corresponding one or more first dedicated virtual links, wherein each of the one or more first dedicated virtual links is connected to a corresponding one of the one or more first application containers at a first end and to a corresponding virtual input/output (VIO) at a second end.
Description
相关申请案交叉申请Cross-application of related applications
本申请要求于2015年09月21日递交的发明名称为“快速和可扩展的数据库集群通信路径”的第62/221,458号美国临时专利申请案的在先优先权,且要求作为申请日为2016年9月21日,申请号为CN201680051225.7的中国专利申请的分案,上述两件申请的内容以引入的方式并入本文。This application claims the priority of U.S. Provisional Patent Application No. 62/221,458, filed on September 21, 2015, entitled “Fast and Scalable Database Cluster Communication Path,” and claims to be a divisional of Chinese Patent Application No. CN201680051225.7, filed on September 21, 2016. The contents of the above two applications are incorporated herein by reference.
背景技术Background technique
为了以安全的方式通过因特网在企业网络上连接和管理网络节点/设备(例如,路由器/交换机等),需要根据所述节点/设备提供的服务的类型来创建多个安全会话。当所述节点/设备位于网络地址转换(network address translation,NAT)/防火墙后面时,与所述节点/设备的连接和管理相关的问题越来越突出。企业NAT/防火墙需要打开多个端口以允许每个会话。随着会话数量增加,端口的数量也在增加。In order to connect and manage network nodes/devices (e.g., routers/switches, etc.) on an enterprise network through the Internet in a secure manner, multiple secure sessions need to be created depending on the type of services provided by the node/device. When the node/device is located behind a network address translation (NAT)/firewall, the problems associated with connecting and managing the node/device become increasingly prominent. The enterprise NAT/firewall needs to open multiple ports to allow each session. As the number of sessions increases, the number of ports also increases.
发明内容Summary of the invention
在一实施例中,提供一种用于在网络中传输应用净荷的方法,包括:接收与客户端上的一个或多个应用对应的一个或多个应用净荷,其中,所述应用净荷由包含传输层协议的客户端请求组成;终结所述传输层协议,并读取与当前会话相关联的应用净荷;为每个接收到的应用准备包含特定应用信息的头部信息,以插入到对应的一个应用净荷中;加密包含所述头部信息的应用净荷,以便在所述网络中通过单个虚拟通信链路传输。In one embodiment, a method for transmitting application payloads in a network is provided, comprising: receiving one or more application payloads corresponding to one or more applications on a client, wherein the application payload consists of a client request including a transport layer protocol; terminating the transport layer protocol and reading the application payload associated with the current session; preparing header information including specific application information for each received application to be inserted into a corresponding application payload; and encrypting the application payload including the header information for transmission over a single virtual communication link in the network.
在另一实施例中,提供一种非瞬时性计算机可读介质,其中,在网络中用于传输应用净荷的计算机指令存储在所述非瞬时性计算机可读介质中,当其由一个或多个处理器执行时,所述计算机指令使得所述一个或多个处理器执行以下步骤:接收与客户端上的一个或多个应用对应的一个或多个应用净荷,其中,所述应用净荷由包含传输层协议的客户端请求组成;终结所述传输层协议,并读取与当前会话相关联的应用净荷;为每个接收到的应用准备包含特定应用信息的头部信息,以插入到对应的一个应用净荷中;加密包含所述头部信息的应用净荷,以便在所述网络中通过单个虚拟通信链路传输。In another embodiment, a non-transitory computer-readable medium is provided, wherein computer instructions for transmitting application payloads in a network are stored in the non-transitory computer-readable medium, and when it is executed by one or more processors, the computer instructions cause the one or more processors to perform the following steps: receiving one or more application payloads corresponding to one or more applications on a client, wherein the application payload consists of a client request containing a transport layer protocol; terminating the transport layer protocol and reading the application payload associated with the current session; preparing header information containing specific application information for each received application to be inserted into a corresponding application payload; and encrypting the application payload containing the header information for transmission over a single virtual communication link in the network.
在又一实施例中,提供了一种用于应用容器通过直接通信链路进行通信的方法,包括:建立一条或多条第一专用虚拟链路,用于在一个或多个第一应用容器之间进行直接应用容器级通信;通过所述对应的一条或多条第一专用虚拟链路在所述一个或多个第一应用容器之间传输数据,其中,所述一条或多条第一专用虚拟链路中的每一条链路在第一端与所述一个或多个第一应用容器中对应的一个连接并且在第二端与对应的虚拟输入/输出(virtual input/output,VIO)连接。In another embodiment, a method for application containers to communicate via direct communication links is provided, comprising: establishing one or more first dedicated virtual links for direct application container-level communication between one or more first application containers; transmitting data between the one or more first application containers via the corresponding one or more first dedicated virtual links, wherein each of the one or more first dedicated virtual links is connected to a corresponding one of the one or more first application containers at a first end and to a corresponding virtual input/output (VIO) at a second end.
在又一实施例中,提供了一种用于通过虚拟输入/输出将直接数据库提供到应用级通信的方法,包括:建立一条或多条第一专用虚拟链路,用于在一个或多个第一数据库实例之间进行直接应用级通信;通过所述对应的一条或多条第一专用虚拟链路在所述一个或多个第一数据库实例之间传输数据,其中,所述一条或多条第一专用虚拟链路中的每一条链路在第一端与所述一个或多个第一数据库实例中对应的一个连接。In another embodiment, a method for providing direct database to application-level communication via virtual input/output is provided, comprising: establishing one or more first dedicated virtual links for direct application-level communication between one or more first database instances; transmitting data between the one or more first database instances via the corresponding one or more first dedicated virtual links, wherein each of the one or more first dedicated virtual links is connected to a corresponding one of the one or more first database instances at a first end.
本发明内容用于简单介绍一些精选的概念,在下面的描述中将进一步详细阐述这些概念。本发明内容的目的不在于确定所要求保护的本发明的关键特征或必要特征,也不在于协助确定所要求保护的本发明的范围。所要求保护的本发明不限于用于解决背景技术中描述的任一或所有缺点的实现方式。This summary is intended to briefly introduce some selected concepts that will be further elaborated in the following description. This summary is not intended to identify key features or essential features of the claimed invention, nor is it intended to assist in determining the scope of the claimed invention. The claimed invention is not limited to implementations that address any or all of the disadvantages described in the background.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
本发明的方面通过举例的方式示出但不受附图的限制,附图中相同的附图标记表示相同的元件。Aspects of the present invention are illustrated by way of example and not limitation in the accompanying figures, in which like references indicate similar elements.
图1示出了可以实现本发明各种实施例的示例性网络环境;FIG1 shows an exemplary network environment in which various embodiments of the present invention may be implemented;
图2示出了可以复用应用净荷的虚拟通信链路环境;FIG2 shows a virtual communication link environment in which application payloads can be reused;
图3示出了图2提供的应用加密复用(application crypto multiplexing,ACM)环境中的客户端和服务器代理;FIG. 3 illustrates a client and server proxy in the application crypto multiplexing (ACM) environment provided in FIG. 2 ;
图4A和图4B示出了通过虚拟通信链路发送和接收净荷的流程图;4A and 4B show a flow chart of sending and receiving a payload via a virtual communication link;
图5示出了添加到应用客户端或应用服务器的净荷中的中介层;FIG5 shows a mediation layer added to the payload of an application client or application server;
图6示出了图5的ACM头部的示例;FIG6 shows an example of the ACM header of FIG5 ;
图7示出了ACM数据会话状态机的状态图;FIG7 shows a state diagram of an ACM data session state machine;
图8A和图8B示出了在网络中传输应用净荷的示例性流程图;8A and 8B show an exemplary flow chart of transmitting an application payload in a network;
图9示出了可以实现本发明的示例性网络;FIG9 illustrates an exemplary network in which the present invention may be implemented;
图10示出了通过使用用于主机内通信的虚拟输入/输出接口进行的示例性容器分组通信;FIG10 illustrates exemplary container packet communication using a virtual input/output interface for intra-host communication;
图11示出了通过使用用于主机间通信的虚拟输入/输出接口进行的示例性容器分组通信;FIG11 illustrates exemplary container packet communication using a virtual input/output interface for inter-host communication;
图12和图13示出了使用VIO而不需要消耗TCP和相关套接字进行的直接数据库/应用级通信的各种实施例;12 and 13 illustrate various embodiments of direct database/application level communications using VIO without consuming TCP and associated sockets;
图14A和图14B示出了建立用于容器和数据库实例的虚拟链路的示例性流程图;14A and 14B illustrate an exemplary flow chart for establishing a virtual link for a container and a database instance;
图15示出了本发明实施例提供的一种节点的实施例;FIG15 shows an embodiment of a node provided by an embodiment of the present invention;
图16示出了可以用于实现各种实施例的网络系统的方框图;FIG16 shows a block diagram of a network system that can be used to implement various embodiments;
图17示出了所公开的技术提供的方框图。FIG. 17 shows a block diagram provided by the disclosed technology.
具体实施方式Detailed ways
本发明涉及一种用于在网络中传输应用净荷的技术:接收与客户端上的一个或多个应用对应的一个或多个应用净荷,其中,所述应用净荷由包含传输层协议的客户端请求组成;终结所述传输层协议,并读取与当前会话相关联的应用净荷;为每个接收到的应用准备包含特定应用信息的头部信息,以插入到对应的一个应用净荷中;加密包含所述头部信息的应用净荷,以便在所述网络中通过单个虚拟通信链路传输。The present invention relates to a technology for transmitting application payloads in a network: receiving one or more application payloads corresponding to one or more applications on a client, wherein the application payload consists of a client request containing a transport layer protocol; terminating the transport layer protocol and reading the application payload associated with the current session; preparing header information containing specific application information for each received application to be inserted into a corresponding application payload; encrypting the application payload containing the header information so as to be transmitted through a single virtual communication link in the network.
应当理解,本发明可以以多种不同的方式实现,并且不应被解释为限于本文所阐述的实施例。相反,提供这些实施例将使得本发明是彻底和完整的,并将向本领域技术人员充分传达本发明。实际上,本发明旨在涵盖这些实施例的替代、修改和等同物,这些实施例包含在由所附权利要求限定的本发明的范围和精神内。另外,在以下本发明的详细描述中阐述了许多特定细节,以便透彻理解本发明。然而,本领域普通技术人员应认识到无需这些具体的细节即可实现本发明。It should be understood that the present invention can be implemented in many different ways and should not be construed as being limited to the embodiments set forth herein. On the contrary, providing these embodiments will make the present invention thorough and complete, and will fully convey the present invention to those skilled in the art. In fact, the present invention is intended to cover the substitution, modification and equivalent of these embodiments, which are included in the scope and spirit of the present invention as defined by the appended claims. In addition, many specific details are set forth in the following detailed description of the present invention, so as to thoroughly understand the present invention. However, those of ordinary skill in the art will recognize that the present invention can be implemented without these specific details.
所公开的技术通常提供“多对一”集成代理和隧道解决方案,其在应用净荷与传输控制协议(transmission control protocol,TCP)/安全套接层(secure socket layer,SSL)头部之间添加中介层,其中,状态机可以用于控制会话。The disclosed technology generally provides a "many-to-one" integrated proxy and tunnel solution that adds an intermediary layer between the application payload and the transmission control protocol (TCP)/secure socket layer (SSL) header, where a state machine can be used to control the session.
可以基于网络节点/设备的位置使用客户端或服务器来实现这种集成代理和隧道解决方案。所述网络节点/设备示例性地包括但不限于本领域普通技术人员查看本发明所理解的路由器、交换机、WiFi设备、物联网(Internet of Things,IOT)设备或任何物理和虚拟设备。This integrated proxy and tunnel solution can be implemented using a client or server based on the location of the network node/device. The network node/device illustratively includes but is not limited to a router, switch, WiFi device, Internet of Things (IOT) device, or any physical and virtual device as understood by a person of ordinary skill in the art viewing the present invention.
根据下面的讨论显而易见的是,所公开的技术可以为安全服务提供单点。例如,应用可以将加密责任委托给设备,而所述设备可以在所述设备与控制器之间建立信道并交换加密数据,从而在设备之间提供安全连接。在服务器端提供了一种加密服务器来实现所公开的技术,并且在客户端提供了一种加密客户端功能来实现所公开的技术。通信信道可以认证并提供消息完整性、用户认证以及机密性。所述通信信道还可以支持标准对称/非对称加密功能,并且能够在NAT/防火墙后面建立安全信道。It will be apparent from the following discussion that the disclosed technology can provide a single point for security services. For example, an application can delegate encryption responsibilities to a device, and the device can establish a channel between the device and a controller and exchange encrypted data, thereby providing a secure connection between the devices. An encryption server is provided on the server side to implement the disclosed technology, and an encryption client function is provided on the client side to implement the disclosed technology. The communication channel can authenticate and provide message integrity, user authentication, and confidentiality. The communication channel can also support standard symmetric/asymmetric encryption functions and can establish a secure channel behind a NAT/firewall.
图1示出了可以实现本发明各种实施例的示例性网络环境。所述网络环境100包括,例如客户端102、服务器104、SDN控制器112以及管理员114。通常,SDN涉及执行一组网络设备的控制功能的独立控制器的使用。作为软件定义网络的示例,在路由的情况下,不是执行个别分析的路由器通过所述网络确定路由,所述控制器可以确定所述路由并且使所述网络中的其他设备根据所述控制器的决定来运行。可以使用不同的协议来实现软件定义网络,包括OpenFlow等开放协议,以及来自网络提供商的私有协议。FIG. 1 illustrates an exemplary network environment in which various embodiments of the present invention may be implemented. The network environment 100 includes, for example, a client 102, a server 104, an SDN controller 112, and an administrator 114. Typically, SDN involves the use of an independent controller that performs control functions for a group of network devices. As an example of a software defined network, in the case of routing, instead of a router performing individual analysis to determine a route through the network, the controller may determine the route and cause other devices in the network to operate according to the controller's decision. Software defined networks may be implemented using different protocols, including open protocols such as OpenFlow, as well as proprietary protocols from network providers.
在所描绘的实施例中,所述SDN 106包括网络节点108和110以及服务设备116。网络节点108和110可以包括交换机和其他设备(未示出)。这些网络节点108和110可以是通常用于转发网络业务的物理实例化或虚拟实例化。尽管未示出,SDN 106还可以包括其他类型的设备,例如其他网络设备中的路由器、负载均衡器以及各种L4-L7网络设备。In the depicted embodiment, the SDN 106 includes network nodes 108 and 110 and service devices 116. The network nodes 108 and 110 may include switches and other devices (not shown). These network nodes 108 and 110 may be physical instantiations or virtual instantiations that are generally used to forward network traffic. Although not shown, the SDN 106 may also include other types of devices, such as routers, load balancers, and various L4-L7 network devices among other network devices.
SDN 106可以连接如客户端102和服务器104等各种端点设备。另外,SDN 106可以向在客户端设备102与服务器设备104之间流动的网络业务提供服务。在一实施例中,管理员114可以使用SDN控制器112编程SDN 106的网络设备以将客户端102的网络业务传送到一个或多个服务设备116。The SDN 106 may connect various endpoint devices such as the client 102 and the server 104. In addition, the SDN 106 may provide services to network traffic flowing between the client devices 102 and the server devices 104. In one embodiment, the administrator 114 may use the SDN controller 112 to program the network devices of the SDN 106 to transmit the network traffic of the client 102 to one or more service devices 116.
服务设备116可以包括,例如入侵检测服务(intrusion detection service,简称IDS)设备、入侵防御系统(intrusion prevention system,IPS)设备、网页代理、网页服务器、网页应用防火墙等。在其他示例中,服务设备116可以另外或可选地包括用于提供服务的设备,如拒绝服务(denial of service,DoS)保护、分布式拒绝服务(distributeddenial of service,DDoS)保护、业务过滤、广域网(wide area network,WAN)加速或其他此类服务。The service device 116 may include, for example, an intrusion detection service (IDS) device, an intrusion prevention system (IPS) device, a web proxy, a web server, a web application firewall, etc. In other examples, the service device 116 may additionally or alternatively include a device for providing services, such as denial of service (DoS) protection, distributed denial of service (DDoS) protection, service filtering, wide area network (WAN) acceleration, or other such services.
尽管示出的是单独的设备,但是应当理解,服务设备116可以是物理设备、多租户设备或虚拟服务(例如,基于云的服务),并且可以轻易应用于除了物理设备以外的虚拟设备和基于云的应用。Although shown as a separate device, it should be understood that the service device 116 can be a physical device, a multi-tenant device, or a virtual service (e.g., a cloud-based service), and can be easily applied to virtual devices and cloud-based applications in addition to physical devices.
图2示出了可以复用应用净荷的虚拟通信链路环境。所述环境200,此处也称为应用加密复用(application crypto multiplexing,ACM)环境200包括,例如虚拟通信链路202、客户端代理204、应用客户端206、服务器代理208以及应用服务器210。2 shows a virtual communication link environment that can multiplex application payloads. The environment 200, also referred to herein as an application crypto multiplexing (ACM) environment 200, includes, for example, a virtual communication link 202, a client agent 204, an application client 206, a server agent 208, and an application server 210.
虚拟通信链路(例如虚拟隧道)允许两个不能直接相互寻址的计算机程序(例如,客户端和服务器应用)运行。例如,当应用客户端206的客户端应用需要连接到远程站点处的应用服务器210的服务器应用时,所述服务器应用210可以位于客户或合作者不可寻址的本地网络(例如,在防火墙后)中的计算机上。此时,所述应用客户端206将不能直接地对所述应用服务器210进行寻址。因此,所述虚拟通信链路使得应用客户端206可以访问所述应用服务器210,反之亦然。A virtual communication link (e.g., a virtual tunnel) allows two computer programs (e.g., client and server applications) that cannot directly address each other to run. For example, when a client application of an application client 206 needs to connect to a server application of an application server 210 at a remote site, the server application 210 may be located on a computer in a local network (e.g., behind a firewall) that is not addressable by the client or collaborator. At this point, the application client 206 will not be able to directly address the application server 210. Therefore, the virtual communication link enables the application client 206 to access the application server 210 and vice versa.
在所公开的技术的实施例中,所述虚拟通信链路202允许应用客户端206和/或应用服务器210上的一个或多个应用通过复用和/或解复用应用客户端206和/或应用服务器210上的所述应用的净荷来共享单个通信信道(例如,虚拟通信链路或隧道),以处理来自同一设备的业务。In an embodiment of the disclosed technology, the virtual communication link 202 allows one or more applications on the application client 206 and/or application server 210 to share a single communication channel (e.g., a virtual communication link or tunnel) by multiplexing and/or demultiplexing the payload of the applications on the application client 206 and/or application server 210 to process services from the same device.
更具体地,所述客户端代理204和服务器代理208(以下参照图3解释)与虚拟通信链路202可以在信道的每一端集成或组合,通过复用和/或解复用所述应用客户端206和应用服务器210的净荷来形成单个套接接口,以使用如加密虚拟隧道(virtual tunnel,VT)等虚拟通信链路202进行通信。More specifically, the client agent 204 and the server agent 208 (explained below with reference to FIG. 3 ) and the virtual communication link 202 may be integrated or combined at each end of the channel to form a single socket interface by multiplexing and/or demultiplexing the payloads of the application client 206 and the application server 210 to communicate using the virtual communication link 202 such as an encrypted virtual tunnel (VT).
在一实施例中,可以通过将ACM头部添加到承载特定应用信息的特定应用的净荷中来实现所述复用和/或解复用。下面参照图5和图6对头部进行更详细地的说明。In one embodiment, the multiplexing and/or demultiplexing may be achieved by adding an ACM header to a payload of a specific application that carries specific application information. The header is described in more detail below with reference to FIG5 and FIG6.
所述应用客户端206可以包括如网络配置协议(Network ConfigurationProtocol,NETCONF)插件的第一客户端应用206A、如简单网络管理协议(Simple NetworkManagement Protocol,SNMP)插件的第二客户端应用206B和/或如无线接入点控制协议(Control and Provisioning of Wireless Access Points,CAPWAP)插件的第三客户端应用206C。这些插件可用于设备的远程配置,并允许将业务模式无缝地添加到组成所述网络的现有网络设备中。也就是说,并不是部署业务生成器来战略性地将业务模式引入到所述网络的各个点,而是封装所需的业务模式并通过插件传送到所述网络的现有网络设备中,否则,这些插件将被用来操纵所述网络设备的数据配置。The application client 206 may include a first client application 206A such as a Network Configuration Protocol (NETCONF) plug-in, a second client application 206B such as a Simple Network Management Protocol (SNMP) plug-in, and/or a third client application 206C such as a Control and Provisioning of Wireless Access Points (CAPWAP) plug-in. These plug-ins can be used for remote configuration of devices and allow business models to be seamlessly added to existing network devices that make up the network. In other words, rather than deploying a business generator to strategically introduce business models to various points in the network, the required business models are encapsulated and transmitted to the existing network devices of the network through plug-ins, otherwise, these plug-ins will be used to manipulate the data configuration of the network devices.
例如,NETCONF提供用于配置网络设备的机制,并且针对配置数据采用基于可扩展标记语言(Extensible Markup Language,XML)的数据编码,其可以包括策略数据;SNMP允许设备管理系统遍历并修改管理信息库(management information base,MIB),其中,所述管理信息库在管理的元素内存储配置数据;CAPWAP是用于通过所述虚拟通信链路在任何网状节点与所述控制器之间交换消息的协议,最初针对所谓的轻量级接入点进行设计。For example, NETCONF provides a mechanism for configuring network devices and uses data encoding based on Extensible Markup Language (XML) for configuration data, which may include policy data; SNMP allows device management systems to traverse and modify the management information base (MIB), which stores configuration data within managed elements; CAPWAP is a protocol for exchanging messages between any mesh node and the controller through the virtual communication link, and was originally designed for so-called lightweight access points.
所述客户端代理204包括加密客户端204A,其通过套接字(参见图3的解释)分别可操作地耦合到第一、第二和第三客户端应用206A、206B和206C。The client agent 204 includes an encryption client 204A operatively coupled to first, second and third client applications 206A, 206B and 206C, respectively, via sockets (see FIG. 3 for explanation).
类似于所述应用客户端206,所述应用服务器210可以包括如NETCONF插件的第一服务器应用210A、如SNMP插件的第二服务器应用210B和/或如CAPWAP插件的第三服务器应用中的一个或多个,其通过套接字可操作地耦合到所述应用加密服务器。Similar to the application client 206, the application server 210 may include one or more of a first server application 210A such as a NETCONF plug-in, a second server application 210B such as an SNMP plug-in, and/or a third server application such as a CAPWAP plug-in, which are operably coupled to the application encryption server via a socket.
所述服务器代理208包括加密服务器208A,其通过套接字(参见图3的解释)分别可操作地耦合到第一、第二和第三客户端应用210A、210B和210C。The server agent 208 includes an encryption server 208A operatively coupled to first, second and third client applications 210A, 210B and 210C, respectively, via sockets (see FIG. 3 for explanation).
相应地,所述ACM环境200允许SDN控制器,如SDN控制器112使用如公共云或因特网等网络来与诸如网络节点108和110等网络设备进行通信并管理所述网络设备。通过采用公开的所述ACM环境200,防火墙可以无需打开多个端口来支持多个应用。相反,所述ACM环境200使SDN控制器112可以轻易地管理多个应用。所述ACM环境200还可以减少TCP代理会话开销和隧道净荷开销,并且可以用于在同一设备上运行了不同应用的控制面业务。Accordingly, the ACM environment 200 allows an SDN controller, such as the SDN controller 112, to communicate with and manage network devices, such as network nodes 108 and 110, using a network, such as a public cloud or the Internet. By using the disclosed ACM environment 200, a firewall may not need to open multiple ports to support multiple applications. Instead, the ACM environment 200 enables the SDN controller 112 to easily manage multiple applications. The ACM environment 200 may also reduce TCP proxy session overhead and tunnel payload overhead, and may be used for control plane services running different applications on the same device.
所述ACM环境200与其他加密技术不同。例如,因特网密钥交换(Internet keyexchange,IKE)/因特网协议安全(Internet protocol security,IPSEC)等其他技术使用基于层3的隧道技术和基于层4的SSL技术。这些技术针对每个应用采用一个会话。The ACM environment 200 is different from other encryption technologies. For example, other technologies such as Internet key exchange (IKE)/Internet protocol security (IPSEC) use layer 3-based tunneling technology and layer 4-based SSL technology. These technologies use one session for each application.
图3示出了图2提供的ACM环境中的客户端和服务器代理。所述ACM环境300包括,例如虚拟通信链路202,如与客户端代理204和服务器代理208通信耦合的加密虚拟隧道。Figure 3 illustrates the client and server agents in the ACM environment provided in Figure 2. The ACM environment 300 includes, for example, a virtual communication link 202, such as an encrypted virtual tunnel communicatively coupled to a client agent 204 and a server agent 208.
所述客户端代理204包括会话管理器302A、MUX/DEMUX 306A、传输层安全(transport layer security,TLS)/数据报TLS(datagram TLS,DTLS)客户端304A、NETCONF客户端(会话1)310A以及SNMP客户端(会话2)312A。类似地,所述服务器代理208包括会话管理器302B、MUX/DEMUX 306B、传输层安全(transport layer security,TLS)/数据报(datagram TLS,DTLS)客户端304B、NETCONF客户端(会话1)310B以及SNMP客户端(会话2)312B。The client agent 204 includes a session manager 302A, a MUX/DEMUX 306A, a transport layer security (TLS)/datagram TLS (DTLS) client 304A, a NETCONF client (session 1) 310A, and a SNMP client (session 2) 312A. Similarly, the server agent 208 includes a session manager 302B, a MUX/DEMUX 306B, a transport layer security (TLS)/datagram TLS (DTLS) client 304B, a NETCONF client (session 1) 310B, and a SNMP client (session 2) 312B.
所述会话管理器302A可以实现所述应用客户端206(图2)与所述客户端代理204之间透明安全且开放的通信。在一实施例中,会话管理器302A可以执行加密会话处理,包括管理加密会话握手,并管理密钥、证书、认证、授权等。此外,会话管理器302A可以在一实施例中建立加密的会话和/或连接,终结加密的会话和/或连接,并将其自身建立为加密的会话和/或连接的中间人等。The session manager 302A can implement transparent, secure and open communication between the application client 206 ( FIG. 2 ) and the client agent 204. In one embodiment, the session manager 302A can perform encrypted session processing, including managing encrypted session handshakes, and managing keys, certificates, authentication, authorization, etc. In addition, the session manager 302A can establish encrypted sessions and/or connections, terminate encrypted sessions and/or connections, and establish itself as a middleman for encrypted sessions and/or connections, etc. in one embodiment.
所述NETCONF客户端1(会话1)310A和所述SNMP客户端2(会话2)312A通过套接字通信耦合到所述会话管理器302A。类似地,所述NETCONF服务器1(会话1)310B和所述SNMP服务器2(会话2)312B通过套接字通信耦合到所述会话管理器302B。The NETCONF client 1 (session 1) 310A and the SNMP client 2 (session 2) 312A are coupled to the session manager 302A via socket communication. Similarly, the NETCONF server 1 (session 1) 310B and the SNMP server 2 (session 2) 312B are coupled to the session manager 302B via socket communication.
客户端代理204上的所述MUX/DEMUX 306A可以用于通过复用应用净荷将所述应用净荷从应用客户端206上的多个套接字路由到客户端代理204上的单个套接字。复用的所述应用净荷可以通过虚拟通信链路202传输到所述代理服务器208,然后传送到所述应用服务器210。在一实施例中,所述MUX/DEMUX 306A用于通过单个安全连接(例如,虚拟通信链路202)将应用净荷从所述客户端代理204传输到所述应用服务器210上对应的多个套接字(在所述服务器代理208处进行解复用后)。The MUX/DEMUX 306A on the client proxy 204 may be used to route the application payload from multiple sockets on the application client 206 to a single socket on the client proxy 204 by multiplexing the application payload. The multiplexed application payload may be transmitted to the proxy server 208 via the virtual communication link 202 and then transmitted to the application server 210. In one embodiment, the MUX/DEMUX 306A is used to transmit the application payload from the client proxy 204 to the corresponding multiple sockets on the application server 210 (after demultiplexing at the server proxy 208) via a single secure connection (e.g., the virtual communication link 202).
类似地,客户端代理204上的MUX/DEMUX 306A可以用于使用客户端代理204上的单个套接字从所述虚拟通信链路202接收应用净荷。从应用服务器210接收的所述应用净荷可以由所述MUX/DEMUX 306A解复用为离散的应用净荷,并且每个离散的应用净荷可被传输到所述应用客户端206上对应的一个或多个套接字。在一实施例中,所述MUX/DEMUX 306A用于通过从所述服务器代理204到所述应用客户端206上对应的多个套接字的单个安全连接(例如,虚拟通信链路202)接收应用净荷。Similarly, the MUX/DEMUX 306A on the client agent 204 can be used to receive application payloads from the virtual communication link 202 using a single socket on the client agent 204. The application payload received from the application server 210 can be demultiplexed by the MUX/DEMUX 306A into discrete application payloads, and each discrete application payload can be transmitted to a corresponding one or more sockets on the application client 206. In one embodiment, the MUX/DEMUX 306A is used to receive application payloads over a single secure connection (e.g., virtual communication link 202) from the server agent 204 to corresponding multiple sockets on the application client 206.
如下所述,所述MUX/DEMUX 306A还负责准备ACM头部信息并将所述ACM头部信息添加到所述应用净荷中。The MUX/DEMUX 306A is also responsible for preparing ACM header information and adding the ACM header information to the application payload, as described below.
此处所使用的术语套接字是指端口、缓冲器、逻辑节点或对象,用于通过网络连接从远程设备接收任何格式的数据,如HTTP格式。所述MUX/DEMUX 306B可以以类似的方式配置。The term socket as used herein refers to a port, buffer, logical node or object for receiving data in any format, such as HTTP format, from a remote device via a network connection. The MUX/DEMUX 306B may be configured in a similar manner.
为了确保所述虚拟通信链路202上的通信,可以采用TLS/DTLS客户端304A(客户端代理)和304B(服务器代理)。所述TLS/DTLS客户端304A和304B负责加密/解密所述复用/解复用的应用净荷。所述TLS协议主要旨在提供两种通信计算机应用之间的隐私和数据完整性。将TLS设计为在如TCP等传输协议之上且在如HTTP等应用层之下运行。为了建立一个加密型安全数据通道,连接对等体必须在将使用的密码集和用于加密数据的密钥上达成一致。TLS也适用于运行数据报协议,如用户数据报协议(User Datagram Protocol,UDP)。数据报TLS(datagram TLS,DTLS)是基于TLS的协议,能够保护如UDP等数据报传输,并且很适合隧道应用,例如通向网状网络中的控制器的CAPWAP隧道。In order to ensure the communication on the virtual communication link 202, TLS/DTLS clients 304A (client agent) and 304B (server agent) can be used. The TLS/DTLS clients 304A and 304B are responsible for encrypting/decrypting the multiplexed/demultiplexed application payload. The TLS protocol is mainly intended to provide privacy and data integrity between two communicating computer applications. TLS is designed to run above transport protocols such as TCP and below application layers such as HTTP. In order to establish an encrypted secure data channel, the connecting peers must agree on the cipher set to be used and the key used to encrypt the data. TLS is also suitable for running datagram protocols such as the User Datagram Protocol (UDP). Datagram TLS (DTLS) is a TLS-based protocol that can protect datagram transmissions such as UDP and is well suited for tunnel applications, such as CAPWAP tunnels to controllers in mesh networks.
图4A和图4B示出了通过虚拟通信链路上发送和接收净荷的流程图。此处描述的过程通过如图3所示的所述客户端代理204和服务器代理208来实现。然而,应当理解,任何网络组件或元件都可以执行这种实现方式,而所公开的实施例是非限制性示例。4A and 4B show a flow chart of sending and receiving payloads over a virtual communication link. The process described herein is implemented by the client agent 204 and the server agent 208 as shown in FIG3. However, it should be understood that any network component or element can perform this implementation, and the disclosed embodiment is a non-limiting example.
具体地,图4A示出了向服务器发送客户端数据的流程图。客户端310A和/或客户端312A创建TCP/UDP客户端请求并将应用数据(例如,净荷)发送到客户端代理204。在402A,所述客户端代理204通过会话管理器302A接收所述应用数据。此时,所述会话管理器302A终结所述TCP连接并从本地会话读取所述应用数据并获取会话信息。管理所述状态(图7)和会话,并将会话细节发送到MUX/DEMUX 306A。Specifically, FIG. 4A shows a flow chart of sending client data to a server. Client 310A and/or client 312A create a TCP/UDP client request and send application data (e.g., payload) to client agent 204. At 402A, the client agent 204 receives the application data through session manager 302A. At this point, the session manager 302A terminates the TCP connection and reads the application data from the local session and obtains session information. Manages the state (FIG. 7) and session, and sends session details to MUX/DEMUX 306A.
在404A,所述MUX/DEMUX 306A准备ACM头部并将所述ACM头部添加到所述应用数据(净荷)中。以下结合图5和图6详细描述所述ACM头部和应用净荷。At 404A, the MUX/DEMUX 306A prepares an ACM header and adds the ACM header to the application data (payload). The ACM header and application payload are described in detail below in conjunction with FIG. 5 and FIG. 6 .
在406A,所述TLS/DTLS客户端304A负责加密/解密所述数据(应用数据+ACM头部),并通过虚拟通信链路202将所述应用数据发送到所述应用服务器210。At 406A, the TLS/DTLS client 304A is responsible for encrypting/decrypting the data (application data+ACM header) and sending the application data to the application server 210 via the virtual communication link 202.
在412A,所述服务器代理208通过所述虚拟通信链路202接收所述加密/解密的数据(应用+ACM头部)。在410A,所述MUX/DEMUX 306B向所述净荷添加/去除所述ACM头部。At 412A, the server agent 208 receives the encrypted/decrypted data (application+ACM header) via the virtual communication link 202. At 410A, the MUX/DEMUX 306B adds/removes the ACM header to the payload.
在408A,所述服务器代理208上的会话管理器302B然后从所述MUX/DEMUX 306B读取所述应用数据,并与所述应用服务器210创建/管理本地会话。然后,所述应用数据通过所述会话的安全套接字发送到所述应用服务器210,并且客户端310B和/或312B读取所述请求并准备应用响应。At 408A, the session manager 302B on the server agent 208 then reads the application data from the MUX/DEMUX 306B and creates/manages a local session with the application server 210. The application data is then sent to the application server 210 over the session's secure socket, and the client 310B and/or 312B reads the request and prepares an application response.
图4B示出了向客户端发送服务器数据的流程图。响应于图4A的所述客户端请求,所述服务器1 310B和/或服务器2 312B准备应用响应。在402B,所述会话管理器302B从应用服务器210读取应用数据(例如,净荷),并为所述会话信息创建/管理记录。然后,所述会话管理器302B将所述会话信息和应用数据发送到MUX/DEMUX 306B。FIG4B shows a flow chart of sending server data to a client. In response to the client request of FIG4A, the server 1 310B and/or server 2 312B prepares an application response. At 402B, the session manager 302B reads the application data (e.g., payload) from the application server 210 and creates/manages a record for the session information. The session manager 302B then sends the session information and application data to the MUX/DEMUX 306B.
在404B,MUX/DEMUX 306读取所述会话信息和应用数据,并准备要向所述应用数据(净荷)添加/去除的ACM头部。在406B,TLS/DTLS服务304B加密所述应用数据(应用+ACM头部),并且通过客户端代理204和虚拟隧道链路202将加密的所述应用数据发送到所述应用客户端206。At 404B, MUX/DEMUX 306 reads the session information and application data and prepares an ACM header to be added/removed from the application data (payload). At 406B, TLS/DTLS service 304B encrypts the application data (application+ACM header) and sends the encrypted application data to the application client 206 via the client proxy 204 and virtual tunnel link 202.
当代理客户端204的所述TLS/DTLS客户端304A接收到所述加密的应用数据时,则在408B解密所述应用数据(应用+ACM头部),且在410B,所述MUX/DEMUX 306A从所述应用数据(净荷)中去除所述ACM报头,并将解密的所述应用数据发送到会话管理器302A。然后,所述会话管理器302A从MUX/DEMUX 306A读取所述应用数据,并将所述应用数据发送到客户端1 310A和/或客户端2 312A的对应套接字,其中,所述响应是从所述应用服务器210接收到的。When the TLS/DTLS client 304A of the proxy client 204 receives the encrypted application data, the application data (application+ACM header) is decrypted at 408B, and at 410B, the MUX/DEMUX 306A removes the ACM header from the application data (payload) and sends the decrypted application data to the session manager 302A. The session manager 302A then reads the application data from the MUX/DEMUX 306A and sends the application data to the corresponding sockets of the client 1 310A and/or the client 2 312A, where the response is received from the application server 210.
图5示出了添加到应用客户端或应用服务器的净荷中的中介层。示出的所述垫片层被添加到开放系统互连(open systems interconnection,OSI)层502的层4和层7之间。该图还示出了三个净荷,包括:NETCONF净荷502A、SNMP净荷502B以及CAPWAP净荷502C。Figure 5 shows an intermediary layer added to the payload of an application client or application server. The shim layer is shown added between layer 4 and layer 7 of the open systems interconnection (OSI) layer 502. The figure also shows three payloads, including: NETCONF payload 502A, SNMP payload 502B, and CAPWAP payload 502C.
如图所示,层3(IP)是构建和管理多节点网络的分组层,包括寻址、路由以及业务控制。层4(TCP/UDP)是负责在网络中的点之间传输数据段的传输层,包括分段、确认以及复用。层5和/或层6可以包括作为管理通信会话的表示层(层6)和会话层(层5)一部分的添加的中介层,如在两个节点之间以多次前后传输的形式连续交换信息。层7(NETCONF/SNMP/CAPWAP)是包含高层API的应用层,包括资源共享和远程文件访问。As shown, Layer 3 (IP) is the packet layer that builds and manages multi-node networks, including addressing, routing, and service control. Layer 4 (TCP/UDP) is the transport layer responsible for transmitting data segments between points in the network, including segmentation, acknowledgment, and multiplexing. Layer 5 and/or Layer 6 may include added intermediary layers as part of the presentation layer (Layer 6) and session layer (Layer 5) that manage communication sessions, such as continuously exchanging information between two nodes in the form of multiple forward and backward transmissions. Layer 7 (NETCONF/SNMP/CAPWAP) is the application layer that contains high-level APIs, including resource sharing and remote file access.
图6示出了图5的ACM头部的示例。所述ACM头部包括,例如ACM版本字段、ACM操作(Op)类型字段、安全会话控制字段、应用会话/源端口字段、应用标识符(identifier,ID)字段以及净荷长度字段。应当理解,所示出的头部是头部配置的非限制性示例,并且可以实现任何变体。FIG6 shows an example of the ACM header of FIG5. The ACM header includes, for example, an ACM version field, an ACM operation (Op) type field, a secure session control field, an application session/source port field, an application identifier (ID) field, and a payload length field. It should be understood that the header shown is a non-limiting example of a header configuration, and any variation may be implemented.
所述ACM头部中定义的字段的大小和信息类型可以变化。作为示例,在一个非限制性实施例中,所述ACM版本字段可以是4比特并且可以指示初始版本;所述ACM Op类型字段可以是4比特并且可以指示操作类型;所述安全会话控制字段可以是2字节并且指示安全会话控制类型;所述应用会话/源端口字段可以是2字节并且可以指示会话ID或源端口;所述应用ID字段可以是2字节并且可以指示应用TCP、UDP ID或目的端口;所述净荷长度字段可以是2字节并且可以指示净荷的大小。The size and information type of the fields defined in the ACM header may vary. As an example, in a non-limiting embodiment, the ACM Version field may be 4 bits and may indicate an initial version; the ACM Op Type field may be 4 bits and may indicate an operation type; the Secure Session Control field may be 2 bytes and may indicate a secure session control type; the Application Session/Source Port field may be 2 bytes and may indicate a session ID or source port; the Application ID field may be 2 bytes and may indicate an application TCP, UDP ID or destination port; the Payload Length field may be 2 bytes and may indicate the size of the payload.
净荷可以被配置为以下信息类型中的任何一种或多种:ACM hello请求、ACMhello响应、ACM确认、ACM数据或数据传输、ACM服务更新、ACM服务更新确认、ACM健康统计请求、ACM健康统计响应、ACM控制/警报/错误、ACM心跳请求和/或ACM心跳响应。The payload can be configured as any one or more of the following information types: ACM hello request, ACM hello response, ACM confirmation, ACM data or data transfer, ACM service update, ACM service update confirmation, ACM health statistics request, ACM health statistics response, ACM control/alarm/error, ACM heartbeat request and/or ACM heartbeat response.
图7示出了ACM数据会话状态机的状态图。所述ACM数据会话状态机包括初始状态702、数据写入状态704/710、数据读取状态706/712,以及会话关闭状态708。如图7所示,数据操作状态可以根据以下内容定义:会话启动事件(CE)-11、读数据/写数据事件(DRWS)-01、读数据/写数据结束事件(DRWE)-10,以及会话关闭事件(CT)-00。Fig. 7 shows a state diagram of an ACM data session state machine. The ACM data session state machine includes an initial state 702, a data write state 704/710, a data read state 706/712, and a session close state 708. As shown in Fig. 7, the data operation state can be defined according to the following contents: a session start event (CE)-11, a read data/write data event (DRWS)-01, a read data/write data end event (DRWE)-10, and a session close event (CT)-00.
图8A和图8B示出了在网络中传输应用净荷的示例性流程图。参见图8A,在802,例如由代理客户端204接收一个或多个应用净荷502A、502B和502C,其中,所述一个或多个应用净荷502A、502B和502C分别对应于应用客户端206上的一个或多个应用206A、206B和206C,且所述应用净荷由包含如TCP或UDP等传输层协议的客户端请求组成。8A and 8B show an exemplary flow chart of transmitting an application payload in a network. Referring to FIG8A , at 802, one or more application payloads 502A, 502B, and 502C are received, for example, by a proxy client 204, wherein the one or more application payloads 502A, 502B, and 502C correspond to one or more applications 206A, 206B, and 206C on an application client 206, respectively, and the application payload consists of a client request including a transport layer protocol such as TCP or UDP.
在804,例如由会话管理器302A终结在所述代理客户端204上接收到的所述应用净荷,并且针对当前会话读取所述应用净荷。At 804, the application payload received at the proxy client 204 is terminated, for example by the session manager 302A, and read for the current session.
在806,MUX/DEMUX 306A为每个接收到的应用准备包含特定应用信息的头部信息,以插入到对应的一个应用净荷中。在808,所述TLS/DTLS客户端304A加密包含所述头部信息的应用净荷,以便在所述网络中通过单个虚拟通信链路202传输。At 806, the MUX/DEMUX 306A prepares header information containing specific application information for each received application to be inserted into a corresponding application payload. At 808, the TLS/DTLS client 304A encrypts the application payload containing the header information for transmission over a single virtual communication link 202 in the network.
参见图8B,可以复用所述一个或多个应用净荷,包括插入到所述应用净荷中的头部信息,以共享单个通信信道(即,虚拟通信链路)。8B, the one or more application payloads, including header information inserted into the application payloads, may be multiplexed to share a single communication channel (ie, virtual communication link).
在812,通过共享的通信链路传输复用的所述应用净荷。在到达终点(例如,服务器代理208)时,解复用(并解密)所述应用净荷,使得应用服务器210可以在814响应来自所述客户端的请求。The multiplexed application payload is transmitted over a shared communication link at 812. Upon reaching the end point (eg, server proxy 208), the application payload is demultiplexed (and decrypted) so that the application server 210 can respond to the request from the client at 814.
图9示出可以实现本发明的示例性网络。所述网络900包括云902、网络906、云提供商908以及客户端914A和914B至914N。9 shows an exemplary network in which the present invention may be implemented. The network 900 includes a cloud 902, a network 906, a cloud provider 908, and clients 914A and 914B to 914N.
云902包括一个或多个主机904至904N(统称为904N),其中,每个主机904N包括一个或多个节点904N1。在一实施例中,所述节点904N1是位于物理机上的虚拟机(virtualmachine,VM),如通过主机904N的主机904。在另一实施例中,所述主机904N可以位于数据中心。例如,所述一个或多个节点904N1位于由云提供商908提供的云902上的物理机904N上。当位于主机904N上时,用户可以与一个或多个应用(例如应用904N1-2和904N1-3)进行交互,使用如客户端914A和914B至914N等客户端计算机系统在所述一个或多个节点904N1上执行。在一实施例中,在不使用VM的情况下,所述应用904N1-2和904N1-3可以位于主机904N上。如上所述,所述一个或多个节点904N1执行可由不同用户和/或组织拥有或管理的一个或多个应用904N1-2和904N1-3。例如,客户可以部署应用904N1-2和904N1-3,其中,所述应用904N1-2和904N1-3可以与位于第一客户应用的相同或不同节点904N上的另一客户应用共存。在一实施例中,在不同节点904N上执行部分或单独的应用904N1-2和904N1-3。The cloud 902 includes one or more hosts 904 to 904N (collectively referred to as 904N), wherein each host 904N includes one or more nodes 904N1. In one embodiment, the node 904N1 is a virtual machine (VM) located on a physical machine, such as the host 904 through the host 904N. In another embodiment, the host 904N may be located in a data center. For example, the one or more nodes 904N1 are located on a physical machine 904N on the cloud 902 provided by a cloud provider 908. When located on the host 904N, a user can interact with one or more applications (e.g., applications 904N1-2 and 904N1-3) and execute on the one or more nodes 904N1 using a client computer system such as clients 914A and 914B to 914N. In one embodiment, without using a VM, the applications 904N1-2 and 904N1-3 may be located on the host 904N. As described above, the one or more nodes 904N1 execute one or more applications 904N1-2 and 904N1-3 that may be owned or managed by different users and/or organizations. For example, a customer may deploy applications 904N1-2 and 904N1-3, wherein the applications 904N1-2 and 904N1-3 may coexist with another customer application located on the same or different nodes 904N as the first customer application. In one embodiment, portions or separate applications 904N1-2 and 904N1-3 are executed on different nodes 904N.
在一实施例中,如本领域技术人员所理解的,用于执行应用904N1-2和904N1-3的数据包括由预先存在的应用组件所构建的应用镜像和管理所述应用904N1-2和904N1-3的用户的源代码。在SDN和容器网络场景中的镜像是指表示可执行应用文件的数据,用于为所述应用的运行时间实例部署功能。在一个示例中,使用Docker工具构建镜像,也称为Docker镜像。如下面所解释的,尽管Docker桥不被排除使用,但在实施本发明各种实施例中将不需要使用Docker桥。In one embodiment, as understood by those skilled in the art, the data used to execute applications 904N1-2 and 904N1-3 includes application images built from pre-existing application components and source code for users who manage the applications 904N1-2 and 904N1-3. An image in an SDN and container network scenario refers to data representing an executable application file that is used to deploy functionality for a runtime instance of the application. In one example, an image is built using the Docker tool, also referred to as a Docker image. As explained below, although the use of a Docker bridge is not excluded, the use of a Docker bridge will not be required in implementing various embodiments of the present invention.
所述一个或多个节点904N1-2和904N1-3可以通过启动应用镜像的实例作为一个或多个节点904N1-2和904N1-3中的容器904N1-2A、904N1-2B、904N1-3A和904N1-3B以执行应用。一个或多个节点904N1-2和904N1-3中的容器904N1-2A、904N1-2B、904N1-3A和904N1-3B可以实现所述应用904N1-2和904N1-3的功能。The one or more nodes 904N1-2 and 904N1-3 can execute the application by starting an instance of the application image as a container 904N1-2A, 904N1-2B, 904N1-3A, and 904N1-3B in one or more nodes 904N1-2 and 904N1-3. The containers 904N1-2A, 904N1-2B, 904N1-3A, and 904N1-3B in one or more nodes 904N1-2 and 904N1-3 can implement the functions of the applications 904N1-2 and 904N1-3.
容器904N1-2A、904N1-2B、904N1-3A和904N1-3B可以实现操作系统级虚拟化,其中,在主计算机(未示出)上的操作系统的内核上提供抽象层。所述抽象层支持,例如多个容器,其中,每个容器包括应用及其相关内容。每个容器可以作为所述操作系统上的独立进程执行,并与其他容器共享所述内核。所述容器依靠内核功能来利用资源隔离(CPU、内存、块I/O、网络等)和单独的命名空间,并完全隔离操作环境的应用视图。通过使用容器,可以隔离资源,使得业务受限,并且进程被配置为具有含各自进程ID空间、文件系统结构以及网络接口的操作系统的私有视图。多个容器可以共享相同的内核,但是可以限制每个容器仅使用特定量的资源,例如CPU、内存和I/O。Containers 904N1-2A, 904N1-2B, 904N1-3A, and 904N1-3B can implement operating system-level virtualization, in which an abstraction layer is provided on the kernel of the operating system on the host computer (not shown). The abstraction layer supports, for example, multiple containers, each of which includes an application and its related content. Each container can be executed as an independent process on the operating system and share the kernel with other containers. The container relies on kernel functions to utilize resource isolation (CPU, memory, block I/O, network, etc.) and separate namespaces, and completely isolate the application view of the operating environment. By using containers, resources can be isolated, so that the business is limited, and the process is configured to have a private view of the operating system with its own process ID space, file system structure, and network interface. Multiple containers can share the same kernel, but each container can be restricted to use only a specific amount of resources, such as CPU, memory, and I/O.
客户端914A和914B至914N可以通过网络906连接到云提供商908提供的云902上的主机904N,其中,所述网络906可以是私网(例如,局域网(local area network,LAN)、广域网(wide area network,WAN)、内联网或其他类似的私网)或公网(例如,因特网)。每个客户端914A和914B至914N可以是移动设备、PDA、便携式计算机、台式计算机、平板计算设备、服务器设备或任何其他计算设备。每个主机904N可以是服务器计算机系统、台式计算机或任何其他计算设备。Clients 914A and 914B to 914N can be connected to a host 904N on a cloud 902 provided by a cloud provider 908 via a network 906, wherein the network 906 can be a private network (e.g., a local area network (LAN), a wide area network (WAN), an intranet, or other similar private network) or a public network (e.g., the Internet). Each client 914A and 914B to 914N can be a mobile device, a PDA, a portable computer, a desktop computer, a tablet computing device, a server device, or any other computing device. Each host 904N can be a server computer system, a desktop computer, or any other computing device.
虽然根据上述网络描述了各种实施例,但是本领域技术人员可以理解的是所述网络是非限制性示例,并且可以以各种其他配置来实现,包括单个整体式计算机系统,以及以各种方式连接的计算机系统或类似设备的各种其他组合。Although various embodiments are described based on the above-mentioned network, those skilled in the art will appreciate that the network is a non-limiting example and can be implemented in various other configurations, including a single integral computer system, and various other combinations of computer systems or similar devices connected in various ways.
图10示出了通过使用用于主机内通信的虚拟输入/输出接口进行的示例性容器分组通信。在传统的SDN中,容器从例如指定的注册表收集到的应用镜像中产生。当容器被(通常由守护进程)实例化时,向所述容器分配唯一的网络地址,其将所述容器连接到虚拟以太网网桥,例如Docker网桥。所述系统中的所有容器通过将数据包传送到Docker网桥来进行通信,然后通过容器网络转发这些数据包。然而,所述容器与重型网桥端口中的每个端口通信,并且利用开放的vSwitch(OVS)和/或linux内核网桥机制。FIG10 illustrates an exemplary container packet communication using a virtual input/output interface for intra-host communication. In a traditional SDN, containers are generated from application images collected from, for example, a specified registry. When a container is instantiated (usually by a daemon), a unique network address is assigned to the container, which connects the container to a virtual Ethernet bridge, such as a Docker bridge. All containers in the system communicate by transmitting packets to the Docker bridge, which are then forwarded through the container network. However, the container communicates with each of the heavy bridge ports and utilizes an open vSwitch (OVS) and/or linux kernel bridge mechanism.
在其他实施例中,容器1002、1004和1006可以利用如操作系统级虚拟化的服务器虚拟化方法,其中,操作系统的内核允许实现多个隔离的用户空间实例。一些实例可以包括但不限于容器、虚拟化引擎(virtualization engine,VE)、虚拟专用服务器(virtualprivate server,VPS)、Jail或区域,和/或其任何混合式组合。容器1002、1004和1006的一些示例性可用技术包括chroot、Linux-VServer、lmctfy(“让我容纳你的程序”)、LXC(Linux容器)、OpenVZ(开放的Virtuozzo)、Parallels Virtuozzo容器、Solaris容器(和Solaris区域)、FreeBSD Jail、sysjail、WPAR(工作负载分区)、HP-UX容器(安全资源分区,SRP)、iCore虚拟帐户以及Sandboxie。In other embodiments, containers 1002, 1004, and 1006 can utilize server virtualization methods such as operating system-level virtualization, in which the kernel of the operating system allows multiple isolated user space instances to be implemented. Some instances may include, but are not limited to, containers, virtualization engines (virtualization engines, VE), virtual private servers (virtualprivate servers, VPS), jails or regions, and/or any hybrid combination thereof. Some exemplary available technologies for containers 1002, 1004, and 1006 include chroot, Linux-VServer, lmctfy ("Let me contain your program"), LXC (Linux container), OpenVZ (Open Virtuozzo), Parallels Virtuozzo container, Solaris container (and Solaris zone), FreeBSD Jail, sysjail, WPAR (workload partition), HP-UX container (Secure Resource Partition, SRP), iCore virtual account, and Sandboxie.
根据所公开的技术,通过虚拟输入/输出(virtual input/output,VIO)1010A/B(或输入/输出虚拟化(input/output virtualization,IOV))实现直接容器级通信。在VIO中,单个物理适配器卡作为多个虚拟网络接口卡(network interface card,NIC)和虚拟主机总线适配器(host bus adapter,HBA)。这些VIO 1010A/B可以被加载到所述主机1008上(如图10所示),并且包括VIO软件和/或硬件,其可以用于控制通过如专用链路等所述通信链路1-6从容器1002、1004和1006输入和输出的数据包。每个VIO 1010A/B可以直接将所述数据包复用和解复用到其他容器1002、1004和1006中,从而解决主机内容器通信的限制。这种配置可以易于部署和扩展,并降低通信开销。According to the disclosed technology, direct container-level communication is achieved through virtual input/output (VIO) 1010A/B (or input/output virtualization (IOV)). In VIO, a single physical adapter card acts as multiple virtual network interface cards (NIC) and virtual host bus adapters (HBA). These VIOs 1010A/B can be loaded onto the host 1008 (as shown in FIG. 10 ) and include VIO software and/or hardware that can be used to control data packets input and output from containers 1002, 1004, and 1006 through the communication links 1-6 such as dedicated links. Each VIO 1010A/B can directly multiplex and demultiplex the data packets into other containers 1002, 1004, and 1006, thereby solving the limitations of container communication within the host. This configuration can be easily deployed and expanded, and reduces communication overhead.
参见图10,实现了直接容器层级通信,其中,容器1002、1004和1006通过与主机1008连接的VIO 1010A/B使用通信链路1-6互相通信耦合。在一实施例中,每个容器1002、1004和1006可以包括连接到对应的一个或多个VIO 1010A/B的虚拟网络接口卡(virtualnetwork interface,vNIC),而不需要使用网桥来支持其间的通信。还应当理解,所述VIO1010A/B可以使用网桥或OVS发送数据包。Referring to FIG. 10 , direct container-level communication is implemented, wherein containers 1002, 1004, and 1006 are communicatively coupled to each other using communication links 1-6 via VIOs 1010A/B connected to a host 1008. In one embodiment, each container 1002, 1004, and 1006 may include a virtual network interface card (vNIC) connected to a corresponding one or more VIOs 1010A/B, without the need to use a bridge to support communication therebetween. It should also be understood that the VIOs 1010A/B may use a bridge or OVS to send packets.
作为示例,假设容器1002、1004和1006包括专用链路1、2、3和6(为了讨论的目的,假设不存在链路4和5)。所述容器1002、1004和1006中的每一个在相应的容器与VIO之间建立专用虚拟链路。因此,容器1002在容器1002与VIO 1010A之间形成链路(1),在容器1002与VIO 1010B之间形成链路(6);容器1004在容器1004与VIO 1010A之间形成链路(2);容器1006在容器1006与VIO 1010B之间形成链路(3)。As an example, assume that containers 1002, 1004, and 1006 include dedicated links 1, 2, 3, and 6 (for the purpose of discussion, assume that links 4 and 5 do not exist). Each of the containers 1002, 1004, and 1006 establishes a dedicated virtual link between the corresponding container and the VIO. Therefore, container 1002 forms a link (1) between container 1002 and VIO 1010A, and a link (6) between container 1002 and VIO 1010B; container 1004 forms a link (2) between container 1004 and VIO 1010A; and container 1006 forms a link (3) between container 1006 and VIO 1010B.
图11示出了通过使用用于主机间通信的虚拟输入/输出接口进行的示例性容器分组通信。主机间实例包括容器1102、1104、1106、1108、1110和1112,其与对应的主机1114和主机1116中的VIO 1122A/B通信耦合。类似于图10中的描述,所述容器通过所述VIO 1122A/B建立用于直接应用级通信的专用虚拟链路。可以直接使用输入队列等将所述专用虚拟链路复用到一条或多条物理链路1120上。FIG. 11 illustrates exemplary container packet communication using a virtual input/output interface for inter-host communication. The inter-host instance includes containers 1102, 1104, 1106, 1108, 1110, and 1112, which are communicatively coupled to VIO 1122A/B in corresponding hosts 1114 and 1116. Similar to the description in FIG. 10, the container establishes a dedicated virtual link for direct application-level communication through the VIO 1122A/B. The dedicated virtual link can be multiplexed onto one or more physical links 1120 directly using input queues, etc.
所述物理链路1120启动每一个主机,例如主机1114和主机1116。所述物理网络接口1120可以是网络I/O设备,其为任何形式的I/O虚拟化(IOV)提供硬件、软件或其组合等方面的支持。所述IOV设备示例性包括但不限于符合PCI-SIG的SR-IOV设备和非SR-IOV设备、符合PCI-SIG的MR-IOV设备、多队列NIC、I/O适配器、聚合网卡以及聚合网络适配器(converged network adapter,CNA)。The physical link 1120 enables each host, such as host 1114 and host 1116. The physical network interface 1120 may be a network I/O device that provides hardware, software, or a combination thereof, support for any form of I/O virtualization (IOV). Exemplary IOV devices include, but are not limited to, SR-IOV devices and non-SR-IOV devices compliant with PCI-SIG, MR-IOV devices compliant with PCI-SIG, multi-queue NICs, I/O adapters, converged network cards, and converged network adapters (CNA).
在一个示例性实施例中,假设在容器与VIO之间的主机1114和主机1116中的每个主机上存在三条专用虚拟链路。在主机1114中,容器1102创建链路1,容器1104创建链路2,容器1106创建链路3。在主机1116中,容器1108创建链路4,容器1110创建链路5,容器1112创建链路6。在主机1114内,可以将从容器1102、1104和1106传输到VIOS 1122A/B的信息复用到一条或多条物理链路1120上,以便传输到主机1116上。应当理解,任何一个或多个容器的信息可以被复用和/或传输到一条或多条物理链路上。在主机1116上,接收到的传输信息可以被解复用并发送到相应的一个或多个容器1108、1110和1112。In an exemplary embodiment, assume that there are three dedicated virtual links on each of the host 1114 and the host 1116 between the container and the VIO. In the host 1114, the container 1102 creates link 1, the container 1104 creates link 2, and the container 1106 creates link 3. In the host 1116, the container 1108 creates link 4, the container 1110 creates link 5, and the container 1112 creates link 6. Within the host 1114, the information transmitted from the containers 1102, 1104, and 1106 to the VIOS 1122A/B can be multiplexed onto one or more physical links 1120 for transmission to the host 1116. It should be understood that the information of any one or more containers can be multiplexed and/or transmitted onto one or more physical links. On the host 1116, the received transmission information can be demultiplexed and sent to the corresponding one or more containers 1108, 1110, and 1112.
图12和图13示出了使用VIO而不需要消耗TCP和相关套接字进行的直接数据库/应用级通信的各种实施例。可以将一个或多个实施例标准化以用于数据库(database,DB)使用的通用应用编程接口(application programming interface,API)。通过VIO的直接DB/应用级通信可以易于实施和扩展,并降低通信开销。Figures 12 and 13 illustrate various embodiments of direct database/application level communication using VIO without consuming TCP and related sockets. One or more embodiments may be standardized to a common application programming interface (API) used by a database (DB). Direct DB/application level communication via VIO may be easy to implement and scale, and reduce communication overhead.
根据所公开的技术,通过虚拟输入/输出(virtual input/output,VIO)1210A/B(或输入/输出虚拟化)实现直接DB实例级通信。在VIO中,单个物理适配器卡作为多个虚拟网络接口卡(network interface card,NIC)和虚拟主机总线适配器(host bus adapter,HBA)。这些VIO 1210A/B可以被加载到所述主机1208上,并且包括VIO软件和/或硬件,其可以用于控制通过如专用链路等所述通信链路1-6从DB实例1202、1204和1206输入和输出的数据包。每个VIO 1210A/B可以直接将所述数据包复用和解复用到其他DB实例1202、1204和1206中,从而解决主机内实例通信的限制。这种配置可以易于部署和扩展,并降低通信开销。According to the disclosed technology, direct DB instance level communication is achieved through virtual input/output (virtual input/output, VIO) 1210A/B (or input/output virtualization). In VIO, a single physical adapter card acts as multiple virtual network interface cards (NIC) and virtual host bus adapters (HBA). These VIO 1210A/B can be loaded onto the host 1208 and include VIO software and/or hardware, which can be used to control the data packets input and output from DB instances 1202, 1204 and 1206 through the communication links 1-6 such as dedicated links. Each VIO 1210A/B can directly multiplex and demultiplex the data packets to other DB instances 1202, 1204 and 1206, thereby solving the limitations of instance communication within the host. This configuration can be easy to deploy and expand, and reduce communication overhead.
具体地,图12示出了通过使用用于主机内通信的虚拟输入/输出接口进行的示例性数据库实例通信。可以理解的是,数据库(database,DB)实例是访问一组数据库文件的一组内存结构和后台进程。该进程可以由所有用户共享。Specifically, FIG. 12 shows an exemplary database instance communication using a virtual input/output interface for intra-host communication. It is understood that a database (DB) instance is a set of memory structures and background processes that access a set of database files. The process can be shared by all users.
实现了DB实例级通信,其中,DB实例1202、1204和1206通过与主机1208连接的VIO1210A/B使用通信链路1-6互相通信耦合。在一实施例中,每个容器1202、1204和1206可以包括连接到对应的一个或多个VIO 1210A/B的虚拟网络接口卡(virtual networkinterface,vNIC),而不需要使用网桥来支持其间的通信。还应当理解,所述VIO 1210A/B可以使用网桥或OVS发送数据包。DB instance level communication is implemented, wherein DB instances 1202, 1204, and 1206 are communicatively coupled to each other using communication links 1-6 via VIO 1210A/B connected to host 1208. In one embodiment, each container 1202, 1204, and 1206 may include a virtual network interface card (vNIC) connected to corresponding one or more VIOs 1210A/B without the need to use a bridge to support communication therebetween. It should also be understood that the VIO 1210A/B may use a bridge or OVS to send packets.
作为示例,假设容器1202、1204和1206包括专用链路1、2、3和6(为了讨论的目的,假设不存在链路4和5)。所述DB实例1202、1204和1206中的每一个在相应的容器与VIO之间建立专用虚拟链路。因此,DB实例1202在DB实例1202与VIO 1210A之间形成链路(1),在DB实例1202与VIO 1210B之间形成链路(6);DB实例1204在DB实例1204与VIO 1210A之间形成链路(2);DB实例1206在DB实例1206与VIO 1210B之间形成链路(3)。As an example, assume that containers 1202, 1204, and 1206 include dedicated links 1, 2, 3, and 6 (for discussion purposes, assume that links 4 and 5 do not exist). Each of the DB instances 1202, 1204, and 1206 establishes a dedicated virtual link between the corresponding container and the VIO. Thus, DB instance 1202 forms a link (1) between DB instance 1202 and VIO 1210A, and a link (6) between DB instance 1202 and VIO 1210B; DB instance 1204 forms a link (2) between DB instance 1204 and VIO 1210A; and DB instance 1206 forms a link (3) between DB instance 1206 and VIO 1210B.
图13示出了通过使用用于主机间通信的虚拟输入/输出接口进行的示例性DB实例分组通信。所述主机间实例包括实例1302、1304、1306、1308、1310和1312,其与对应的主机1314和主机1316中的VIO 1322A/B通信耦合。类似于图12中的描述,所述DB实例通过所述VIO1322A/B建立用于直接应用级通信的专用虚拟链路。可以无需TCP套接字而直接使用输入队列等将所述专用虚拟链路复用到一条或多条物理链路1320上。FIG. 13 shows an exemplary DB instance packet communication using a virtual input/output interface for inter-host communication. The inter-host instance includes instances 1302, 1304, 1306, 1308, 1310, and 1312, which are communicatively coupled with VIO 1322A/B in corresponding host 1314 and host 1316. Similar to the description in FIG. 12, the DB instance establishes a dedicated virtual link for direct application-level communication through the VIO 1322A/B. The dedicated virtual link can be multiplexed onto one or more physical links 1320 directly using input queues, etc. without TCP sockets.
所述物理链路1320启动每一个主机,例如主机1314和主机1316。所述物理网络接口1320可以是网络I/O设备,其为任何形式的I/O虚拟化(IOV)提供硬件、软件或其组合等方面的支持。所述IOV设备示例性包括但不限于符合PCI-SIG的SR-IOV设备和非SR-IOV设备、符合PCI-SIG的MR-IOV设备、多队列NIC、I/O适配器、聚合网卡以及聚合网络适配器(converged network adapter,CNA)。The physical link 1320 enables each host, such as host 1314 and host 1316. The physical network interface 1320 may be a network I/O device that provides hardware, software, or a combination thereof, support for any form of I/O virtualization (IOV). Exemplary IOV devices include, but are not limited to, SR-IOV devices and non-SR-IOV devices compliant with PCI-SIG, MR-IOV devices compliant with PCI-SIG, multi-queue NICs, I/O adapters, converged network cards, and converged network adapters (CNA).
在一个示例性实施例中,假设在DB实例与VIO之间的主机1314和主机1316的每个主机上存在三条专用虚拟链路。在主机1314中,DB实例1302创建链路1,DB实例1304创建链路2,DB实例1306创建链路3。在主机1316中,DB实例1308创建链路4,DB实例1310创建链路5,DB实例1312创建链路6。在主机1314内,可以将从DB实例1302、1304和1306传输到VIOS1322A/B的信息复用到一条或多条物理链路1320上,以便传输到主机1316上。应当理解,任何一个或多个DB实例的信息可以被复用和/或传输到一条或多条物理链路上。在主机1116上,接收到的传输信息可以被解复用并发送到相应的一个或多个DB实例1308、1310和1312。In an exemplary embodiment, assume that there are three dedicated virtual links on each of the host 1314 and the host 1316 between the DB instances and the VIO. In the host 1314, the DB instance 1302 creates link 1, the DB instance 1304 creates link 2, and the DB instance 1306 creates link 3. In the host 1316, the DB instance 1308 creates link 4, the DB instance 1310 creates link 5, and the DB instance 1312 creates link 6. Within the host 1314, information transmitted from the DB instances 1302, 1304, and 1306 to the VIOS 1322A/B can be multiplexed onto one or more physical links 1320 for transmission to the host 1316. It should be understood that the information of any one or more DB instances can be multiplexed and/or transmitted onto one or more physical links. On the host 1116, the received transmission information can be demultiplexed and sent to the corresponding one or more DB instances 1308, 1310, and 1312.
图14A和图14B示出了建立用于容器和数据库实例的虚拟链路的示例性流程图。参见图14A,该流程图涉及通过直接通信链路进行通信的应用容器。在1402,建立一条或多条第一专用虚拟链路1-6(例如,由各个容器1002、1004和1006建立),用于在一个或多个第一应用容器之间进行直接应用容器级通信。然后,在1404,可以通过所述对应的一条或多条第一专用虚拟链路1-6在所述一个或多个第一应用容器1002、1004和1006之间传输数据,其中,所述一条或多条第一专用虚拟链路1-6中的每一条链路在第一端与所述一个或多个第一应用容器1002、1004和1006中对应的一个连接并且在第二端与对应的虚拟输入/输出(virtual input/output,VIO)连接。14A and 14B show an exemplary flow chart for establishing a virtual link for a container and a database instance. Referring to FIG. 14A , the flow chart relates to an application container communicating via a direct communication link. At 1402, one or more first dedicated virtual links 1-6 (e.g., established by each container 1002, 1004, and 1006) are established for direct application container-level communication between one or more first application containers. Then, at 1404, data can be transmitted between the one or more first application containers 1002, 1004, and 1006 via the corresponding one or more first dedicated virtual links 1-6, wherein each of the one or more first dedicated virtual links 1-6 is connected at a first end to a corresponding one of the one or more first application containers 1002, 1004, and 1006 and is connected at a second end to a corresponding virtual input/output (VIO).
参见图14B,该流程图涉及通过虚拟输入/输出(virtual input/output,VIO)将直接数据库提供到应用级通信。在1406,建立一条或多条第一专用虚拟链路1-6(例如,由各个DB实例1202、1204和1206建立),用于在一个或多个第一DB实例1202、1204和1206之间进行直接应用级通信。然后,在1408,可以通过所述对应的一条或多条第一专用虚拟链路1-6在所述一个或多个第一DB实例1202、1204和1206之间传输数据,其中,所述一条或多条第一专用虚拟链路1-6中的每一条链路在第一端与所述一个或多个第一DV实例1202、1204和1206中对应的一个连接并且在第二端与对应的虚拟输入/输出(virtual input/output,VIO)连接。Referring to FIG. 14B , the flow chart relates to providing direct database to application level communication via virtual input/output (VIO). At 1406, one or more first dedicated virtual links 1-6 (e.g., established by each DB instance 1202, 1204, and 1206) are established for direct application level communication between the one or more first DB instances 1202, 1204, and 1206. Then, at 1408, data may be transmitted between the one or more first DB instances 1202, 1204, and 1206 via the corresponding one or more first dedicated virtual links 1-6, wherein each of the one or more first dedicated virtual links 1-6 is connected at a first end to a corresponding one of the one or more first DV instances 1202, 1204, and 1206 and at a second end to a corresponding virtual input/output (VIO).
图15示出了本发明实施例提供的一种节点的实施例。所述节点可以是,例如节点108和110(图1)或网络中所描述的任何其他节点或路由器。所述节点1500可以包括多个输入/输出端口15110/1530和/或用于从其他节点接收和发送数据的接收器(Rx)1512和发送器(Tx)1532、处理系统或处理器1520(或内容感知单元),包括存储器1522和可编程内容转发面1528,以处理数据并确定哪个节点发送所述数据。如上所述,所述节点1500还可以接收应用数据(净荷)。FIG. 15 shows an embodiment of a node provided by an embodiment of the present invention. The node may be, for example, nodes 108 and 110 (FIG. 1) or any other node or router described in the network. The node 1500 may include multiple input/output ports 15110/1530 and/or a receiver (Rx) 1512 and a transmitter (Tx) 1532 for receiving and sending data from other nodes, a processing system or processor 1520 (or a content-aware unit), including a memory 1522 and a programmable content forwarding plane 1528 to process data and determine which node sends the data. As described above, the node 1500 may also receive application data (payload).
尽管示出的是单个处理器,但所述处理器1520不限于此,并且可以包括多个处理器。所述处理器1520可以实现为一个或多个中央处理单元(central processing unit,CPU)芯片、内核(例如,多核处理器)、现场可编程门阵列(field programmable gatearray,FPGA)、专用集成电路(application-specific integrated circuit,ASIC)和/或数字信号处理器(digital signal processor,DSP),和/或可以是一个或多个ASIC的一部分。所述处理器1520可以用于执行实施例中描述的任一或组合的步骤来实现本文描述的任一方案,如图4A/图4B、图8和图14所示的过程。此外,所述处理器1520可以使用硬件、软件或其组合来实现。Although a single processor is shown, the processor 1520 is not limited thereto and may include multiple processors. The processor 1520 may be implemented as one or more central processing units (CPU) chips, cores (e.g., multi-core processors), field programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs) and/or digital signal processors (DSPs), and/or may be part of one or more ASICs. The processor 1520 may be used to perform any or a combination of steps described in the embodiments to implement any of the schemes described herein, such as the processes shown in FIG. 4A/FIG. 4B, FIG. 8, and FIG. 14. In addition, the processor 1520 may be implemented using hardware, software, or a combination thereof.
所述存储器1522(或内存)可以包括缓存1524、长期存储器1526以及数据库集群通信模块1528,并且可以用于存储路由表,转发表或本文公开的其他表或信息。虽然示出的是单个存储器,所述存储器1522可以实现为只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)或辅助存储器(例如,用于非易失性数据存储的一个或多个磁盘或磁带机)。The memory 1522 (or memory) may include a cache 1524, a long-term memory 1526, and a database cluster communication module 1528, and may be used to store routing tables, forwarding tables, or other tables or information disclosed herein. Although a single memory is shown, the memory 1522 may be implemented as a read-only memory (ROM), a random access memory (RAM), or an auxiliary memory (e.g., one or more disks or tape drives for non-volatile data storage).
所述数据库集群通信模块1528的引入对节点1500的功能提供了改进。所述数据库集群通信模块1528还能将节点1500转换到不同状态。或者,所述数据库集群通信模块1528实现为存储在所述处理器1520中的指令。The introduction of the database cluster communication module 1528 provides improvements to the functionality of the node 1500. The database cluster communication module 1528 can also convert the node 1500 to a different state. Alternatively, the database cluster communication module 1528 is implemented as an instruction stored in the processor 1520.
图16示出了可以用于实现各种实施例的网络系统的方框图。特定设备可以利用所示的所有组件,或者仅使用组件的子集,且集成度可以随设备而变化。此外,设备可以包含组件的多个实例,如多个处理单元、处理器、内存、发送器、接收器等。所述网络系统可以包括配备有一个或多个输入/输出设备的处理单元1601,如网络接口、存储接口等。所述处理单元1601可以包括连接到总线的中央处理单元(central processing unit,CPU)1610、内存1620、大容量存储设备1630以及I/O接口1660。所述总线可以是包括内存总线或内存控制器、外围总线等任何类型的几种总线架构中的一种或多种。FIG. 16 shows a block diagram of a network system that can be used to implement various embodiments. A particular device can utilize all of the components shown, or only a subset of the components, and the degree of integration can vary with the device. In addition, a device can include multiple instances of components, such as multiple processing units, processors, memories, transmitters, receivers, etc. The network system may include a processing unit 1601 equipped with one or more input/output devices, such as a network interface, a storage interface, etc. The processing unit 1601 may include a central processing unit (CPU) 1610, a memory 1620, a mass storage device 1630, and an I/O interface 1660 connected to a bus. The bus may be one or more of several bus architectures including any type of memory bus or memory controller, peripheral bus, etc.
所述CPU 1610可以包括任何类型的电子数据处理器。所述内存1620可以包括任何类型的系统内存,例如静态随机存取存储器(static random access memory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)或其组合等。在一实施例中,所述内存1620可以包括启动时使用的ROM,以及用于在执行程序时使用的用于存储程序和数据的DRAM。在实施例中,所述内存1620是非暂时性的。所述大容量存储设备1630可以包括任何类型的存储设备,用于存储数据、程序和其他信息并且使数据、程序和其它信息通过总线可访问。所述大容量存储设备1630可以包括,例如固态驱动器、硬盘驱动器、磁盘驱动器、光盘驱动器等中的一个或多个。The CPU 1610 may include any type of electronic data processor. The memory 1620 may include any type of system memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), read-only memory (ROM) or a combination thereof. In one embodiment, the memory 1620 may include a ROM used at startup, and a DRAM for storing programs and data used when executing a program. In an embodiment, the memory 1620 is non-temporary. The mass storage device 1630 may include any type of storage device for storing data, programs and other information and making the data, programs and other information accessible through a bus. The mass storage device 1630 may include, for example, one or more of a solid-state drive, a hard disk drive, a magnetic disk drive, an optical disk drive, etc.
所述处理单元1601还包括一个或多个网络接口1650,其可以包括如以太网电缆等有线链路,和/或通向接入节点或一个或多个网络1680的无线链路。所述网络接口1650允许所述处理单元1601通过所述网络1680与远程单元通信。例如,所述网络接口1650可以通过一个或多个发送器/发送天线和一个或多个接收器/接收天线提供无线通信。在一实施例中,所述处理单元1601耦合到局域网或广域网,用于数据处理以及与远程设备的通信,如其他处理单元、因特网、远程存储设施等。The processing unit 1601 also includes one or more network interfaces 1650, which may include wired links such as Ethernet cables, and/or wireless links to access nodes or one or more networks 1680. The network interfaces 1650 allow the processing unit 1601 to communicate with remote units via the networks 1680. For example, the network interface 1650 may provide wireless communications via one or more transmitters/transmit antennas and one or more receivers/receive antennas. In one embodiment, the processing unit 1601 is coupled to a local area network or a wide area network for data processing and communication with remote devices, such as other processing units, the Internet, remote storage facilities, etc.
图17示出了所公开的技术提供的方框图。接收/发送模块1702接收并发送与客户端上的一个或多个应用对应的一个或多个应用净荷。终结模块1704终结传输层协议,并读取与当前会话相关联的应用净荷。准备模块1706为每个接收到的应用准备包含特定应用信息的头部信息,以插入到对应的一个应用净荷中。加密/解密模块1708加密/解密包含所述头部信息的应用净荷,以便在所述网络中通过单个虚拟通信链路传输。复用/解复用模块1710复用/解复用所述应用净荷,使得其可以通过单个通信信道(虚拟通信链路)传输。最后,虚拟I/O模块1712允许应用容器使用主机上的虚拟输入/输出(virtual input/output,VIO)互相直接通信。所公开的技术提供来自同一设备的多个安全应用,其具有复用/解复用且通过单个加密信道传输的应用净荷。该技术具有的一个或多个优点包括但不限于:不产生会话建立开销和隧道开销、减少TCP代理会话开销和隧道净荷开销、可用于并且可以用于在同一设备上运行了不同应用的控制面业务、减少安全会话建立的次数(不对称和对称)、通过公共云或因特网实现SDN控制器与网络设备的通信、通过单个加密会话复用多个应用、防火墙不需要打开多个端口来支持多个应用、通过因特网/云管理网络设备(路由器/交换机/WiFi/IOT)、可轻易管理Netconf/SNMP和Capwap等多种应用。FIG17 shows a block diagram provided by the disclosed technology. The receiving/sending module 1702 receives and sends one or more application payloads corresponding to one or more applications on the client. The termination module 1704 terminates the transport layer protocol and reads the application payload associated with the current session. The preparation module 1706 prepares header information containing specific application information for each received application to be inserted into a corresponding application payload. The encryption/decryption module 1708 encrypts/decrypts the application payload containing the header information so that it can be transmitted through a single virtual communication link in the network. The multiplexing/demultiplexing module 1710 multiplexes/demultiplexes the application payload so that it can be transmitted through a single communication channel (virtual communication link). Finally, the virtual I/O module 1712 allows application containers to communicate directly with each other using virtual input/output (VIO) on the host. The disclosed technology provides multiple secure applications from the same device, which have multiplexed/demultiplexed application payloads transmitted through a single encrypted channel. One or more advantages of this technology include but are not limited to: no session establishment overhead and tunnel overhead, reduction of TCP proxy session overhead and tunnel payload overhead, can be used and can be used for control plane services running different applications on the same device, reduce the number of secure session establishment times (asymmetric and symmetric), realize communication between SDN controller and network devices through public cloud or Internet, multiplex multiple applications through a single encrypted session, firewall does not need to open multiple ports to support multiple applications, manage network devices (routers/switches/WiFi/IOT) through Internet/cloud, and can easily manage multiple applications such as Netconf/SNMP and Capwap.
所公开的技术的其他实施例有利地提供以下非限制性优点:当缩短端到端通信路径时,VIO降低了通信延迟,从而提高了数据库的整体性能;并且VIO可以减少数据库实例之间的并发连接总数,其中,通常对一个服务器可以建立并发送数据消息的TCP连接数量有一个严格的限制。这将提高数据库集群的可扩展性,也意味着可以将更多的数据库实例放入数据库集群,并且所述数据库集群可以同时处理更多的查询。这也将提高整体的数据库系统性能。Other embodiments of the disclosed technology advantageously provide the following non-limiting advantages: VIO reduces communication latency while shortening the end-to-end communication path, thereby improving the overall performance of the database; and VIO can reduce the total number of concurrent connections between database instances, where there is usually a strict limit on the number of TCP connections that a server can establish and send data messages. This will improve the scalability of the database cluster, which also means that more database instances can be put into the database cluster, and the database cluster can process more queries simultaneously. This will also improve the overall database system performance.
根据本发明的各种实施例,本文所描述的方法可以通过执行软件程序的硬件计算机系统来实现。此外,在非限制性实施例中,实现可以包括分布式处理、组件/对象分布式处理以及并行处理。可以构造虚拟计算机系统处理来实现本文所述的一个或多个方法或功能,并且本文描述的处理器可以用于支持虚拟处理环境。According to various embodiments of the present invention, the methods described herein may be implemented by a hardware computer system executing a software program. In addition, in a non-limiting embodiment, implementation may include distributed processing, component/object distributed processing, and parallel processing. A virtual computer system process may be constructed to implement one or more methods or functions described herein, and the processor described herein may be used to support a virtual processing environment.
此处,结合本发明实施例的方法、装置(系统)以及计算机程序产品的流程图和/或方框图描述本发明的各方面。应当理解,流程图和/或方框图的每个框以及流程图和/或方框图中的框的组合可以由计算机程序指令来实现。可以将这些计算机程序指令提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,以生成机制,使得这些通过计算机或其他可编程指令执行装置的处理器所执行的指令创建实现所述流程图和/或方框图中的一个或多个方框所指定的功能/动作的机制。Here, various aspects of the present invention are described in conjunction with the flowcharts and/or block diagrams of the methods, devices (systems) and computer program products of the embodiments of the present invention. It should be understood that each frame of the flowchart and/or block diagram and the combination of frames in the flowchart and/or block diagram can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer or other programmable data processing device to generate a mechanism so that these instructions executed by the processor of the computer or other programmable instruction execution device create a mechanism for implementing the functions/actions specified by one or more frames in the flowchart and/or block diagram.
这里所使用的术语仅用于描述特定方面,而非旨在限制本发明。除非上下文中另有明确说明,此处使用的单数形式“一个”和“所述”包括复数含义。应进一步了解,术语“包括”和/或“包含”用于说明存在所述特征、整体、步骤、操作、元件和/或部件,但并不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、部件和/或它们的组合。The terms used herein are only used to describe specific aspects and are not intended to limit the present invention. Unless otherwise clearly stated in the context, the singular forms "a", "an" and "the" used herein include plural meanings. It should be further understood that the terms "include" and/or "comprise" are used to illustrate the presence of the features, wholes, steps, operations, elements and/or parts, but do not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, parts and/or combinations thereof.
对本发明的描述只是为了说明的目的,而这些描述并不旨在穷举或限于所公开的实施例。在不偏离本发明的范围和精神的前提下,多种修改和变体对本领域技术人员而言是显而易见的。选择和描述本发明的各个方面以便更好地解释本发明的原理和实际应用,并且使本领域普通技术人员能够理解本发明和适合预期特定用途的各种修改。The present invention is described for illustrative purposes only, and these descriptions are not intended to be exhaustive or limited to the disclosed embodiments. Without departing from the scope and spirit of the present invention, various modifications and variations will be apparent to those skilled in the art. Various aspects of the present invention are selected and described in order to better explain the principles and practical applications of the present invention, and to enable those of ordinary skill in the art to understand the present invention and various modifications suitable for the intended specific use.
为了实现本文的目标,与所公开的技术相关联的每个过程可以连续地由一个或多个计算设备执行。过程中的每个步骤可以由与其他步骤中使用的相同或不同的计算设备执行,并且每个步骤不一定由单个计算设备执行。To achieve the objectives of this article, each process associated with the disclosed technology can be performed continuously by one or more computing devices. Each step in the process can be performed by the same or different computing devices used in other steps, and each step is not necessarily performed by a single computing device.
虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应该理解的是,权利要求书定义的主题不必局限于上面描述的具体特征或动作。相反,上述具体的特征和动作被公开作为实施权利要求的示例性方式。Although the subject matter has been described in language specific to structural features and/or methodological acts, it should be understood that the subject matter defined in the claims is not necessarily limited to the specific features or acts described above. Instead, the specific features and acts described above are disclosed as exemplary ways of implementing the claims.
Claims (10)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010616046.1A CN111930832B (en) | 2015-09-21 | 2016-09-21 | Fast and scalable database cluster communication path |
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201562221458P | 2015-09-21 | 2015-09-21 | |
| US62/221,458 | 2015-09-21 | ||
| CN201680051225.7A CN108370280B (en) | 2015-09-21 | 2016-09-21 | Fast and extensible database cluster communication path |
| PCT/US2016/052902 WO2017053441A1 (en) | 2015-09-21 | 2016-09-21 | Fast and scalable database cluster communication path |
| CN202010616046.1A CN111930832B (en) | 2015-09-21 | 2016-09-21 | Fast and scalable database cluster communication path |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201680051225.7A Division CN108370280B (en) | 2015-09-21 | 2016-09-21 | Fast and extensible database cluster communication path |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111930832A CN111930832A (en) | 2020-11-13 |
| CN111930832B true CN111930832B (en) | 2024-06-07 |
Family
ID=58387279
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010616046.1A Active CN111930832B (en) | 2015-09-21 | 2016-09-21 | Fast and scalable database cluster communication path |
| CN201680051225.7A Active CN108370280B (en) | 2015-09-21 | 2016-09-21 | Fast and extensible database cluster communication path |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201680051225.7A Active CN108370280B (en) | 2015-09-21 | 2016-09-21 | Fast and extensible database cluster communication path |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP3338386A4 (en) |
| JP (1) | JP6511194B2 (en) |
| CN (2) | CN111930832B (en) |
| WO (1) | WO2017053441A1 (en) |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10877798B2 (en) * | 2017-08-31 | 2020-12-29 | Netflix, Inc. | Scalable techniques for executing custom algorithms on media items |
| US10904342B2 (en) | 2018-07-30 | 2021-01-26 | Cisco Technology, Inc. | Container networking using communication tunnels |
| CN111355601B (en) * | 2018-12-21 | 2022-05-10 | 华为技术有限公司 | Information transmission method and device |
| CN111953640B (en) * | 2019-05-17 | 2024-08-02 | 阿里巴巴集团控股有限公司 | Communication method, communication system, cloud node and readable storage medium |
| US11088952B2 (en) * | 2019-06-12 | 2021-08-10 | Juniper Networks, Inc. | Network traffic control based on application path |
| CN110995561B (en) * | 2019-12-06 | 2021-05-07 | 中国科学院信息工程研究所 | Virtual network data communication interaction method and system based on container technology |
| CN113301004B (en) * | 2020-06-17 | 2023-05-09 | 阿里巴巴集团控股有限公司 | Data processing method, device, communication method and single-network-card virtual machine |
| CN114666806B (en) * | 2020-12-22 | 2024-08-27 | 中国移动通信集团终端有限公司 | Wireless network virtualization method, device, equipment and storage medium |
| US12231409B2 (en) * | 2022-02-15 | 2025-02-18 | Capital One Services, Llc | Methods and systems for linking mobile applications to multi-access point providers using an intermediary database |
| CN114584621B (en) * | 2022-04-18 | 2024-06-07 | 中国农业银行股份有限公司 | Data transmission method and device |
| EP4507253A1 (en) * | 2023-08-09 | 2025-02-12 | dSPACE GmbH | Method for data transmission in a network system and network system |
| CN117376358B (en) * | 2023-10-12 | 2024-07-23 | 曙光云计算集团股份有限公司 | Access request processing method and device and computer equipment |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104331659A (en) * | 2014-10-30 | 2015-02-04 | 浪潮电子信息产业股份有限公司 | Design method for resource application isolation of key application host system |
| CN104904178A (en) * | 2012-10-15 | 2015-09-09 | 思杰系统有限公司 | Providing virtualized private network tunnels |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6711166B1 (en) * | 1997-12-10 | 2004-03-23 | Radvision Ltd. | System and method for packet network trunking |
| KR101111099B1 (en) * | 2004-09-09 | 2012-02-17 | 아바야 테크놀러지 코퍼레이션 | Methods of and systems for network traffic security |
| WO2006074072A2 (en) * | 2004-12-30 | 2006-07-13 | Citrix Systems, Inc. | Systems and methods for providing client-side acceleration techniques |
| US20060253605A1 (en) * | 2004-12-30 | 2006-11-09 | Prabakar Sundarrajan | Systems and methods for providing integrated client-side acceleration techniques to access remote applications |
| CN101557386A (en) * | 2008-04-10 | 2009-10-14 | 华为技术有限公司 | Method and device for sending data and method and device for receiving data |
| CN101902489B (en) * | 2009-06-01 | 2013-04-17 | 华为技术有限公司 | Message sending method, processing method, client, router and system |
| US8584120B2 (en) * | 2009-11-23 | 2013-11-12 | Julian Michael Urbach | Stream-based software application delivery and launching system |
| JP5428878B2 (en) * | 2010-01-12 | 2014-02-26 | 日本電気株式会社 | Communication path configuration system, system control method, and system control program |
| US8990380B2 (en) * | 2010-08-12 | 2015-03-24 | Citrix Systems, Inc. | Systems and methods for quality of service of ICA published applications |
| US8996657B2 (en) * | 2010-09-01 | 2015-03-31 | Canon Kabushiki Kaisha | Systems and methods for multiplexing network channels |
| US9749291B2 (en) * | 2011-07-15 | 2017-08-29 | International Business Machines Corporation | Securing applications on public facing systems |
| US8934015B1 (en) * | 2011-07-20 | 2015-01-13 | Google Inc. | Experience sharing |
| US9032506B2 (en) * | 2012-08-09 | 2015-05-12 | Cisco Technology, Inc. | Multiple application containerization in a single container |
| US9514208B2 (en) * | 2012-10-30 | 2016-12-06 | Vekatachary Srinivasan | Method and system of stateless data replication in a distributed database system |
| US9438488B2 (en) * | 2012-11-09 | 2016-09-06 | Citrix Systems, Inc. | Systems and methods for appflow for datastream |
-
2016
- 2016-09-21 EP EP16849515.8A patent/EP3338386A4/en not_active Withdrawn
- 2016-09-21 CN CN202010616046.1A patent/CN111930832B/en active Active
- 2016-09-21 WO PCT/US2016/052902 patent/WO2017053441A1/en not_active Application Discontinuation
- 2016-09-21 JP JP2018515086A patent/JP6511194B2/en active Active
- 2016-09-21 CN CN201680051225.7A patent/CN108370280B/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104904178A (en) * | 2012-10-15 | 2015-09-09 | 思杰系统有限公司 | Providing virtualized private network tunnels |
| CN104331659A (en) * | 2014-10-30 | 2015-02-04 | 浪潮电子信息产业股份有限公司 | Design method for resource application isolation of key application host system |
Also Published As
| Publication number | Publication date |
|---|---|
| JP6511194B2 (en) | 2019-05-15 |
| CN108370280B (en) | 2020-09-11 |
| JP2018536316A (en) | 2018-12-06 |
| CN111930832A (en) | 2020-11-13 |
| CN108370280A (en) | 2018-08-03 |
| WO2017053441A1 (en) | 2017-03-30 |
| EP3338386A1 (en) | 2018-06-27 |
| EP3338386A4 (en) | 2018-10-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111930832B (en) | Fast and scalable database cluster communication path | |
| US12206706B2 (en) | Infrastructure level LAN security | |
| JP7641276B2 (en) | Method, system, and computer-readable medium for providing a multi-tenant software-defined wide area network (SD-WAN) node | |
| US11394692B2 (en) | Distributed tunneling for VPN | |
| US10757138B2 (en) | Systems and methods for storing a security parameter index in an options field of an encapsulation header | |
| US11044238B2 (en) | Secure communications among tenant virtual machines in a cloud networking environment | |
| US9596077B2 (en) | Community of interest-based secured communications over IPsec | |
| US11316837B2 (en) | Supporting unknown unicast traffic using policy-based encryption virtualized networks | |
| US20220360566A1 (en) | Distributed tunneling for vpn | |
| CN113383528A (en) | System and apparatus for enhanced QOS, bootstrapping, and policy enforcement for HTTPS traffic via intelligent inline path discovery of TLS termination nodes | |
| US12095736B2 (en) | Security association bundling for an interface | |
| US20220070139A1 (en) | Port and loopback ip addresses allocation scheme for full-mesh communications with transparent tls tunnels | |
| US12341873B2 (en) | Computer and network interface controller securely offloading encryption keys and underlay IPsec encryption processing to the network interface controller | |
| US12231407B2 (en) | Logical switch level load balancing of L2VPN traffic | |
| Rosen | IPsec |
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 |