US20170295264A1 - Network extended tcp splicing - Google Patents
Network extended tcp splicing Download PDFInfo
- Publication number
- US20170295264A1 US20170295264A1 US15/632,038 US201715632038A US2017295264A1 US 20170295264 A1 US20170295264 A1 US 20170295264A1 US 201715632038 A US201715632038 A US 201715632038A US 2017295264 A1 US2017295264 A1 US 2017295264A1
- Authority
- US
- United States
- Prior art keywords
- network
- tcp
- client
- server
- proxy
- 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.)
- Abandoned
Links
- 238000012546 transfer Methods 0.000 claims abstract description 33
- 238000004891 communication Methods 0.000 claims abstract description 9
- 230000005540 biological transmission Effects 0.000 claims abstract description 5
- 238000000034 method Methods 0.000 claims description 40
- 239000003795 chemical substances by application Substances 0.000 description 23
- 230000015654 memory Effects 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004026 adhesive bonding Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- 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]
Definitions
- a system for offloading information transfer between a client and a server in a communications network including a network agent to issue a data transfer offload command responsive to receiving a TCP (transmission control protocol) splice command from an application proxy.
- the system additionally includes a network controller to offload data transfer from a kernel space to a network responsive to the data transfer offload command.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
- This application is a continuation of International Application No. PCT/EP2014/079173, filed on Dec. 23, 2014, the disclosure of which is hereby incorporated by reference in its entirety.
- The present invention relates to network communication generally and to a system and a method for extending the functionality of TCP (Transmission Control Protocol) splicing in network communications in particular.
- Many of today's communication networks rely on proxies to deliver network functions. Generally, a proxy may act as an intermediary between a client and a server in order to provide additional functionality such as better user experience.
- Many proxies are implemented as software programs which run in user space at the application level of the TCP/IP stack or OSI stack. In the application level, the proxy may sit on a user's computing device as an application proxy where it may intercept connections between the computing device (client) and a server and operate on these connections. Example of these application proxies may include HTTP proxies, SOCKS proxies, and WEB proxies, among others.
- An application proxy may be used as a load balancer that intercepts a request coming from a client, analyzes it and based on the result of the analysis may select a server to whom it may forward the request for more efficient delivery of the client's request. Application proxies may also be used for content filtering, for caching, for accessing specific network sites, among numerous other applications.
- An example of an application proxy implemented in user space is shown in the representative client-server connection shown in
FIG. 1 . In the figure are illustrated a client-server connection 10 includingapplication proxy 12 inuser space 14, andIP layer 16 andTCP stack 18 inkernel space 20. Information transfer between the client and the server may include sending packets, and is shown by thenetwork connection 22 between the client andproxy 12 and thenetwork connection 24 between the proxy and the server. - In client-
server connection 10, packets sent from the client to the server may be sent throughnetwork connection 22 toIP layer 16 and TCPstack 18 where the information contained by the packets may be copied into buffers in thekernel space 20. Fromkernel space 20 the packets may be sent intouser space 14 where again the information contained by the packets may be copied into buffers byproxy 12. In addition to copying the information,proxy 12 may additionally operate on the information, including making changes in the information, before sending the packets to the server throughnetwork connection 24. In a reverse direction, packets from the server to the client may be sent through network connect 24 toIP layer 16 andTCP stack 18 where again the information contained therein may be copied into the buffers inkernel space 20, and from there intouser space 14 where again the information may be copied into the buffers byproxy 12. Again,proxy 12 may perform additional operations on the information received from the server before sending it onwards to the client. -
Proxy 12 may intercept the client-server connections at the socket layer and may identify the client and server each by information which may include an address and a port number contained in the packets (client socket and server socket). This may eliminateproxy 12 having to copy the TCP and IP headers in the packets into the buffers inuser space 14, which may somewhat improve the performance of client-server connection 10. Nevertheless, the rest of the information being transferred between the client and the server may still be copied into the buffers inuser space 14. As a result, numerous calls may still be required to access the data from the buffers. Furthermore, the packets are still required to go through all levels ofTCP stack 18 at least twice. Both these conditions may contribute to lowering system performance. - In an effort to improve the performance of the representative client-server connection previously described, a technique known as TCP splicing may be used. Such a technique is described in U.S. Pat. No. 5,941,988 to Bhagwat et al. wherein is disclosed “A method of merging two separate TCP connections terminating at a common host and ‘gluing’ them into a single connection between two end systems, where the single connection preserves TCP end-to-end semantics. The technique retains the session setup functions of the transport layer proxy, but provides a method to push the data copying into kernel space to improve the relay operation. More specifically, a byte stream arriving on one end of the split connection is mapped directly into the sequence number space of the other split connection. This process of mapping, or TCP gluing, involves updating a subset of TCP and IP header fields; that is, source and destination addresses, port numbers, sequence numbers and checksum. The changes to the TCP/IP packet headers are performed on-the-fly as packets are relayed over the glued connection between the original separate TCP connections”.
- An example of the application of the above technique is now described with reference to
FIG. 2 which schematically illustrates a client-server connection 11 including the use of TCP splicing. Client-server connection 11 includesproxy 12 inuser space 14, andIP layer 16 andTCP stack 18 inkernel space 20. Client-server connection is initially established byproxy 12 inuser space 14, for example through connection 27A through which packets initially received from the client throughnetwork connection 22 may be sent fromkernel space 20 touser space 14, and through connection 27B for packets initially received from the server throughnetwork connection 24. Onceproxy 12 determines from the initial packets the client socket and the server socket, asplice connection 26 may be established by the proxy inkernel space 20 withinIP layer 16. So long assplice connection 26 is maintained, the packets are transferred directly throughIP layer 16 without having to go throughproxy 12, substantially increasing system performance compared to representative client-server connection 10 shown inFIG. 1 . - The object of the present invention is to improve a network communication between a client and a server. This object is solved by the subject matter of the independent claims. The dependent claims protect further embodiments thereof.
- There is provided, in accordance with an embodiment of the present invention, a system for offloading information transfer between a client and a server in a communications network including a network agent to issue a data transfer offload command responsive to receiving a TCP (transmission control protocol) splice command from an application proxy. The system additionally includes a network controller to offload data transfer from a kernel space to a network responsive to the data transfer offload command.
- In accordance with an embodiment of the present invention, the network agent resides in the kernel space of a TCP/IP stack.
- In accordance with an embodiment of the present invention, the network agent resides in the TCP stack in the kernel space of a TCP/IP stack.
- In accordance with an embodiment of the present invention, the network controller resides on the network.
- In accordance with an embodiment of the present invention, the network controller includes a load balancer.
- In accordance with an embodiment of the present invention, the network agent receives the TCP splice command in a socket layer of a TCP/IP stack.
- In accordance with an embodiment of the present invention, the system additionally includes the network.
- In accordance with an embodiment of the present invention, the network is a software-defined network (SDN).
- In accordance with an embodiment of the present invention, the network controller includes a protocol oblivious forwarding controller.
- In accordance with an embodiment of the present invention, the network controller directly connects the client with the server through the network.
- There is provided, in accordance with an embodiment of the present invention, a method for offloading information transfer between a client and a server from a TCP/IP stack in a communications network, the method including transferring proxy functionality from an application proxy to a network controller responsive to the application proxy issuing a TCP splice command.
- In accordance with an embodiment of the present invention, the method additionally includes receiving the TCP splice command by a network agent.
- In accordance with an embodiment of the present invention, the receiving includes intercepting the TCP command.
- In accordance with an embodiment of the present invention, the method additionally includes the network agent sending an offload command to the network controller responsive to the receiving.
- In accordance with an embodiment of the present invention, the receiving is through a socket layer of the TCP/IP stack.
- In accordance with an embodiment of the present invention, the method additionally includes the network controller modifying a TCP and/or an IP header in a packet.
- In accordance with an embodiment of the present invention, the method additionally includes the network controller maintaining proxy functionality according to any one of a duration of the lifetime of sockets; an amount of time required to transfer information from the client to the server and/or from the server to the client; an amount of information transferred from the client to the server and/or from the server to the client; a time-out value to set up a network splice; and a request or override received from the application proxy.
- In accordance with an embodiment of the present invention, the method additionally includes the network controller returning proxy functionality to the application proxy.
- In accordance with an embodiment of the present invention, the method additionally includes the network controller offloading the information transfer to a network.
- The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:
-
FIG. 1 schematically illustrates a representative client-server network connection; -
FIG. 2 schematically illustrates a representative client-server network connection including use of TCP splicing; -
FIG. 3 schematically illustrates a client-server network connection including a Network Extended TCP Splicing system, according to an embodiment of the present invention; and -
FIG. 4 is a flow chart of a method of offloading information to a network using the Network Extended TCP Splicing system, according to an embodiment of the present invention. - It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.
- In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, and components have not been described in detail so as not to obscure the present invention.
- Applicants have realized that, despite the advantages provided by the use of known TCP splicing techniques, the functionality of the TCP splicing may be limited by the capacity of the hardware on which the application proxy sits. For example, a CPU may have insufficient processing power to drive the TCP/IP software, or may experience increased utilization due to latency in memory devices and I/O devices. Whichever may be the case, hardware capacity limitations may degrade overall system performance.
- Applicants have further realized that the above problem associated with limited hardware capacity may be overcome by offloading information transfer to the network and recalling the information “on request”. Applicants have additionally realized that techniques used for TCP splicing which enable the application proxy to offload information transfer between two sockets to the OS kernel (kernel space) may be applied to enable the application proxy to offload information transfer between the two sockets to the network. Offloading to the network, Applicants have realized, may leverage network forwarding performance through increased proxy capacity.
- Reference is now made to
FIG. 3 which schematically illustrates a client-server network connection 30 including a Network Extended TCP Splicing (NETS)system 31, according to an embodiment of the present invention. Client-server connection 30 may additionally includeapplication proxy 12 inuser space 14, andIP layer 16 and TCP stack 18 inkernel space 20.NETS system 31 may include aNETS agent 32 and aNETS controller 34.NETS system 31 may additionally an altered configuration ofTCP stack 18 which may includeNETS agent 32 as described further on below.NETS system 31 may additionally include anetwork 36 which may be implemented through SDN (software-defined networking) and may include use of protocol oblivious forwarding (POF). -
NETS system 31 may useapplication proxy 12 interceptions of client-server connections at the socket layer to offload information transfer between two sockets (client and server) tonetwork 36. Atnetwork 36,NETS system 31 may create aNETS TCP splice 23 to allow a direct connection of the client with the server over the network instead of throughkernel space 20 as is commonly done in the art. Furthermore,NETS system 31 may transfer proxy functionality fromapplication proxy 12 to network 36 to allow load balancing to be performed at the network. - As part of the offloading process, NETS
system 31 may maintain proxy functionality atnetwork 36 based on one or more predetermined criteria. These may include (a) a duration of the lifetime of the sockets; (b) an amount of time required to transfer the information from the client to the server and/or from the server to the client; (c) an amount of information to be transferred from the client to the server and/or from the server to the client; (d) a time-out value to set up the splice; (f) an override received from the application proxy; (g) or other events which may be associated with the client-server connection and information transfer; (h) or any combination thereof.NET system 31 may additionally transfer proxy functionality fromnetwork 36 toapplication proxy 12 to return control of the sockets “on request”, which may be upon termination of any one or any combination of the previously mentioned events or upon determination that there is no need to offload information. - As may be appreciated from
FIG. 3 , as a result of creatingNETS TCP splice 23interconnecting network connections network 36 without passing through kernel space 20 (and also without passing through user space 14). In operation, the connection between the client and the server may be initially established byproxy 12, for example, throughconnections 37A and 37B in a similar fashion to connections 27A and 27B inFIG. 2 . Once the connection is establishedNETS system 31 may then createNETS TCP splice 23 offloading information transfer to network 36 with proxy functionality transferred to the NETS system. Upon termination of the offloading, proxy functionality may be returned back toapplication proxy 12 as shown byconnection 37A for packets sent by the client and by connection 37B for packets sent by the server. -
NETS agent 32 may receive TCP splicing commands fromproxy 12 and, responsively, send offload commands toNETS controller 34, as shown by double headedarrow 35. The splicing commands may be intended for the socket layer and may be intercepted byNETS agent 32 acting as a proxy. Alternatively, the splicing commands may be specifically intended forNETS agent 32. On some occasion,NETS agent 32 may receive the splicing commands fromproxy 12 and may not act on the commands (i.e. not send offload commands to NETS controller 34), for example, whennetwork 36 capacity is not suitable for offloading. -
NETS agent 32 may include a module which may be integrated into TCP stack 18 (altered TCP stack) inkernel space 20. The module may be integrated within the socket layer, or in addition to the socket layer inTCP stack 18. Alternatively,NETS agent 32 may replace the socket layer.NETS agent 32 may include hardware and/or software, and may additionally include an API (application program interface) for interfacing withapplication proxy 12 and/orNETS controller 34. -
NETS controller 34 may be integrated tonetwork 36 and may receive the offload commands fromNETS agent 32.NETS controller 34 may additionally translate the commands into network device configurations to createNETS TCP splice 23 and allow load balancing to be performed innetwork 36.NETS controller 34 may additionally send information toNETS agent 32 associated withnetwork 36 capacity. The network information may be sent toNETS agent 32 through a northbound interface, also indicated by double headedarrow 35. -
NETS controller 34 may use fast path offloading (FPO) to offload traffic processing tonetwork 36. Use of FPO may allowNETS controller 34 to forward and redirect one or more packets innetwork 31 to another destination by modifying the TCP and IP fields, for example, by changing TCP and IP headers in the packets. The modifications made to the TCP and IP headers may include information associated with source and destination IP, source and destination port and event TCP.seq and TCP.ack number. - Following are exemplary function calls which may be used by the NETS System to perform the various functions described below:
-
(a) int NETS_attach(int fd1, int fd2) /* attaches two sockets for future offload. returns fd to newly created control socket */ (b) int write(int ctl_sckt, char *ctl_buf, int) /* ctl_buf contains request for offloading + parameters such as timeout, byte number etc. . . if request successful, the application is expected not to read and/or write from the sockets attached to the control socket. */ (c) struct pollfd /* new event : NETS_resume This is the event we expect to receive while polling on a control socket. It means that NETS has returned control of the attached sockets to the application/ Upon reception of the NETS_resume the application can read from the control socket data relevant to the resume such as number of bytes transferred. Also, after NETS_resume that application can resume reading and writing from/to the attached sockets. */ int read(int ctl_sckt, char *CTL_buf, int) /* read from control socket a control buf. Called after NETS_resume received on control socket during poll. Contains information such as - number of bytes sent since last offload, time elapsed since last offload & flags such a FIN/RST sent etc. . .*/ - Following is described an
exemplary method 400 of offloading information transfer to a network including a NETS TCP splice, according to an embodiment of the present invention. For clarity,exemplary method 400 described herein will be explained with reference toNETS system 31 and client-server connection 30. Furthermore, the ordinary person skilled in the art may realize thatmethod 400 may be practiced with more or less steps and/or with a different sequence of steps. - At
step 402, the server socket and the client socket may be determined byapplication proxy 12. The sockets may be determined from one or more initial packets received throughnetwork connection 22 and/orserver connection 24 and which pass throughkernel space 20 and are intercepted in the socket layer byapplication proxy 12. - At
step 404,application proxy 12 may issue a TCP splice command to create a TCP splice inkernel space 20 based on the sockets' information. The TCP splice command may be intercepted byNETS agent 32. - At
step 406, an offload command may be issued byNETS agent 32 toNETS controller 34 responsive to the TCP splice command fromapplication proxy 12. - At
step 408,NETS controller 34 may receive the offload command fromNETS agent 32 and responsive to the command, takes proxy control ofnetwork 36. NETS controller may adjust network device configurations in the packets, for example, by modifying the TCP and IP headers in the packets to perform load balancing.NETS controller 34 may retain control of the proxy functionality according to predetermined criteria which may include any one or combination of (a) a duration of the lifetime of the sockets; (b) an amount of time required to transfer the information from the client to the server and/or from the server to the client; (c) an amount of information to be transferred from the client to the server and/or from the server to the client; (d) a time-out value to set up the splice; (f) a request or override received from the application proxy; (g) or other events which may be associated with the client-server connection and information transfer. While proxy functionality is maintained byNETS controller 34, information transfer between the client and the server is direct through network 36 (through network splice 23). - At
step 410,NETS controller 34 returns control of the proxy functionality toapplication proxy 12 upon termination of the offloading. Termination may be based on the predetermined criteria for returning control and may include signaling toNETS agent 32 that the control is to be returned. Alternatively, signaling that the control of proxy functionality is to be returned toproxy 12 may originate fromNETS agent 32 according to the predetermined criteria. The signaling may include signaling toapplication proxy 12.Network splice 23 is broken and information transfer returns toproxy 12 throughkernel 20 intouser space 14. - Unless specifically stated otherwise, as apparent from the preceding discussions, it is appreciated that, throughout the specification, discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” or the like, refer to the action and/or processes of a computer, computing system, or similar electronic computing device that manipulates and/or transforms data represented as physical, such as electronic, quantities within the computing system's registers and/or memories into other data similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or display devices.
- Embodiments of the present invention may include apparatus for performing the operations herein. This apparatus may be specially constructed for the desired purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk, including floppy disks, optical disks, magnetic-optical disks, read-only memories (ROMs), compact disc read-only memories (CD-ROMs), random access memories (RAMs), electrically programmable read-only memories (EPROMs), electrically erasable and programmable read only memories (EEPROMs), magnetic or optical cards, Flash memory, or any other type of media suitable for storing electronic instructions and capable of being coupled to a computer system bus.
- The processes and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the desired method. The desired structure for a variety of these systems appears from the description above. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
- While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those of ordinary skill in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the invention.
Claims (19)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2014/079173 WO2016102004A1 (en) | 2014-12-23 | 2014-12-23 | Network extended tcp splicing |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2014/079173 Continuation WO2016102004A1 (en) | 2014-12-23 | 2014-12-23 | Network extended tcp splicing |
Publications (1)
Publication Number | Publication Date |
---|---|
US20170295264A1 true US20170295264A1 (en) | 2017-10-12 |
Family
ID=52146517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/632,038 Abandoned US20170295264A1 (en) | 2014-12-23 | 2017-06-23 | Network extended tcp splicing |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170295264A1 (en) |
EP (1) | EP3238401B1 (en) |
CN (1) | CN107005532B (en) |
WO (1) | WO2016102004A1 (en) |
Cited By (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170041418A1 (en) * | 2015-08-07 | 2017-02-09 | Dell Products L.P. | Remote socket splicing system |
US10124864B1 (en) | 2016-08-12 | 2018-11-13 | Brunswick Corporation | Pop up storage system for marine vessels |
US11245753B2 (en) * | 2018-08-17 | 2022-02-08 | Fastly, Inc. | User space redirect of packet traffic |
US11245641B2 (en) | 2020-07-02 | 2022-02-08 | Vmware, Inc. | Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN |
US11310170B2 (en) | 2019-08-27 | 2022-04-19 | Vmware, Inc. | Configuring edge nodes outside of public clouds to use routes defined through the public clouds |
US11323307B2 (en) | 2017-11-09 | 2022-05-03 | Nicira, Inc. | Method and system of a dynamic high-availability mode based on current wide area network connectivity |
US11349722B2 (en) | 2017-02-11 | 2022-05-31 | Nicira, Inc. | Method and system of connecting to a multipath hub in a cluster |
US11363124B2 (en) * | 2020-07-30 | 2022-06-14 | Vmware, Inc. | Zero copy socket splicing |
US11374904B2 (en) | 2015-04-13 | 2022-06-28 | Nicira, Inc. | Method and system of a cloud-based multipath routing protocol |
US11375005B1 (en) | 2021-07-24 | 2022-06-28 | Vmware, Inc. | High availability solutions for a secure access service edge application |
US11381499B1 (en) | 2021-05-03 | 2022-07-05 | Vmware, Inc. | Routing meshes for facilitating routing through an SD-WAN |
US11394640B2 (en) | 2019-12-12 | 2022-07-19 | Vmware, Inc. | Collecting and analyzing data regarding flows associated with DPI parameters |
US11418997B2 (en) | 2020-01-24 | 2022-08-16 | Vmware, Inc. | Using heart beats to monitor operational state of service classes of a QoS aware network link |
US11444865B2 (en) | 2020-11-17 | 2022-09-13 | Vmware, Inc. | Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN |
US11444872B2 (en) | 2015-04-13 | 2022-09-13 | Nicira, Inc. | Method and system of application-aware routing with crowdsourcing |
US11489783B2 (en) | 2019-12-12 | 2022-11-01 | Vmware, Inc. | Performing deep packet inspection in a software defined wide area network |
US11489720B1 (en) | 2021-06-18 | 2022-11-01 | Vmware, Inc. | Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics |
US11516049B2 (en) | 2017-10-02 | 2022-11-29 | Vmware, Inc. | Overlay network encapsulation to forward data message flows through multiple public cloud datacenters |
US11533248B2 (en) | 2017-06-22 | 2022-12-20 | Nicira, Inc. | Method and system of resiliency in cloud-delivered SD-WAN |
US11575600B2 (en) | 2020-11-24 | 2023-02-07 | Vmware, Inc. | Tunnel-less SD-WAN |
US11601356B2 (en) | 2020-12-29 | 2023-03-07 | Vmware, Inc. | Emulating packet flows to assess network links for SD-WAN |
US11606225B2 (en) | 2017-10-02 | 2023-03-14 | Vmware, Inc. | Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider |
US11606286B2 (en) | 2017-01-31 | 2023-03-14 | Vmware, Inc. | High performance software-defined core network |
US11611507B2 (en) | 2019-10-28 | 2023-03-21 | Vmware, Inc. | Managing forwarding elements at edge nodes connected to a virtual network |
US11677720B2 (en) | 2015-04-13 | 2023-06-13 | Nicira, Inc. | Method and system of establishing a virtual private network in a cloud service for branch networking |
US11700196B2 (en) | 2017-01-31 | 2023-07-11 | Vmware, Inc. | High performance software-defined core network |
US11706126B2 (en) | 2017-01-31 | 2023-07-18 | Vmware, Inc. | Method and apparatus for distributed data network traffic optimization |
US11706127B2 (en) | 2017-01-31 | 2023-07-18 | Vmware, Inc. | High performance software-defined core network |
US11729065B2 (en) | 2021-05-06 | 2023-08-15 | Vmware, Inc. | Methods for application defined virtual network service among multiple transport in SD-WAN |
US11792127B2 (en) | 2021-01-18 | 2023-10-17 | Vmware, Inc. | Network-aware load balancing |
US11804988B2 (en) | 2013-07-10 | 2023-10-31 | Nicira, Inc. | Method and system of overlay flow control |
US11895194B2 (en) | 2017-10-02 | 2024-02-06 | VMware LLC | Layer four optimization for a virtual network defined over public cloud |
US11909815B2 (en) | 2022-06-06 | 2024-02-20 | VMware LLC | Routing based on geolocation costs |
US11943146B2 (en) | 2021-10-01 | 2024-03-26 | VMware LLC | Traffic prioritization in SD-WAN |
US11979325B2 (en) | 2021-01-28 | 2024-05-07 | VMware LLC | Dynamic SD-WAN hub cluster scaling with machine learning |
US12009987B2 (en) | 2021-05-03 | 2024-06-11 | VMware LLC | Methods to support dynamic transit paths through hub clustering across branches in SD-WAN |
US12015536B2 (en) | 2021-06-18 | 2024-06-18 | VMware LLC | Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds |
US12034587B1 (en) | 2023-03-27 | 2024-07-09 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
US12047282B2 (en) | 2021-07-22 | 2024-07-23 | VMware LLC | Methods for smart bandwidth aggregation based dynamic overlay selection among preferred exits in SD-WAN |
US12057993B1 (en) | 2023-03-27 | 2024-08-06 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
US12166661B2 (en) | 2022-07-18 | 2024-12-10 | VMware LLC | DNS-based GSLB-aware SD-WAN for low latency SaaS applications |
US12184557B2 (en) | 2022-01-04 | 2024-12-31 | VMware LLC | Explicit congestion notification in a virtual environment |
US12218845B2 (en) | 2021-01-18 | 2025-02-04 | VMware LLC | Network-aware load balancing |
US12237990B2 (en) | 2022-07-20 | 2025-02-25 | VMware LLC | Method for modifying an SD-WAN using metric-based heat maps |
US12250114B2 (en) | 2021-06-18 | 2025-03-11 | VMware LLC | Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of sub-types of resource elements in the public clouds |
US12261777B2 (en) | 2023-08-16 | 2025-03-25 | VMware LLC | Forwarding packets in multi-regional large scale deployments with distributed gateways |
US12267364B2 (en) | 2021-07-24 | 2025-04-01 | VMware LLC | Network management services in a virtual network |
US12355655B2 (en) | 2023-08-16 | 2025-07-08 | VMware LLC | Forwarding packets in multi-regional large scale deployments with distributed gateways |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254248B (en) * | 2016-07-27 | 2019-07-02 | 中国科学院声学研究所 | A Method for Supporting Stateful Forwarding of POF Switches |
US20190068466A1 (en) * | 2017-08-30 | 2019-02-28 | Intel Corporation | Technologies for auto-discovery of fault domains |
US10574575B2 (en) * | 2018-01-25 | 2020-02-25 | Cisco Technology, Inc. | Network flow stitching using middle box flow stitching |
CN110769464A (en) * | 2018-07-25 | 2020-02-07 | 慧与发展有限责任合伙企业 | Distributing tasks |
CN112702362B (en) * | 2021-03-24 | 2021-06-08 | 北京翼辉信息技术有限公司 | Method and device for enhancing TCP/IP protocol stack, electronic equipment and storage medium |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7475154B2 (en) * | 2005-02-24 | 2009-01-06 | International Business Machines Corporation | Splicing proxied web requests with callback for subsequent requests |
-
2014
- 2014-12-23 EP EP14819022.6A patent/EP3238401B1/en not_active Not-in-force
- 2014-12-23 WO PCT/EP2014/079173 patent/WO2016102004A1/en active Application Filing
- 2014-12-23 CN CN201480083631.2A patent/CN107005532B/en not_active Expired - Fee Related
-
2017
- 2017-06-23 US US15/632,038 patent/US20170295264A1/en not_active Abandoned
Cited By (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11804988B2 (en) | 2013-07-10 | 2023-10-31 | Nicira, Inc. | Method and system of overlay flow control |
US11444872B2 (en) | 2015-04-13 | 2022-09-13 | Nicira, Inc. | Method and system of application-aware routing with crowdsourcing |
US12160408B2 (en) | 2015-04-13 | 2024-12-03 | Nicira, Inc. | Method and system of establishing a virtual private network in a cloud service for branch networking |
US11374904B2 (en) | 2015-04-13 | 2022-06-28 | Nicira, Inc. | Method and system of a cloud-based multipath routing protocol |
US11677720B2 (en) | 2015-04-13 | 2023-06-13 | Nicira, Inc. | Method and system of establishing a virtual private network in a cloud service for branch networking |
US11012524B2 (en) | 2015-08-07 | 2021-05-18 | Dell Products L.P. | Remote socket splicing system |
US20170041418A1 (en) * | 2015-08-07 | 2017-02-09 | Dell Products L.P. | Remote socket splicing system |
US10476980B2 (en) * | 2015-08-07 | 2019-11-12 | Dell Products L.P. | Remote socket splicing system |
US10124864B1 (en) | 2016-08-12 | 2018-11-13 | Brunswick Corporation | Pop up storage system for marine vessels |
US11706126B2 (en) | 2017-01-31 | 2023-07-18 | Vmware, Inc. | Method and apparatus for distributed data network traffic optimization |
US11706127B2 (en) | 2017-01-31 | 2023-07-18 | Vmware, Inc. | High performance software-defined core network |
US11606286B2 (en) | 2017-01-31 | 2023-03-14 | Vmware, Inc. | High performance software-defined core network |
US11700196B2 (en) | 2017-01-31 | 2023-07-11 | Vmware, Inc. | High performance software-defined core network |
US12034630B2 (en) | 2017-01-31 | 2024-07-09 | VMware LLC | Method and apparatus for distributed data network traffic optimization |
US12058030B2 (en) | 2017-01-31 | 2024-08-06 | VMware LLC | High performance software-defined core network |
US11349722B2 (en) | 2017-02-11 | 2022-05-31 | Nicira, Inc. | Method and system of connecting to a multipath hub in a cluster |
US12047244B2 (en) | 2017-02-11 | 2024-07-23 | Nicira, Inc. | Method and system of connecting to a multipath hub in a cluster |
US12335131B2 (en) | 2017-06-22 | 2025-06-17 | VMware LLC | Method and system of resiliency in cloud-delivered SD-WAN |
US11533248B2 (en) | 2017-06-22 | 2022-12-20 | Nicira, Inc. | Method and system of resiliency in cloud-delivered SD-WAN |
US11895194B2 (en) | 2017-10-02 | 2024-02-06 | VMware LLC | Layer four optimization for a virtual network defined over public cloud |
US11606225B2 (en) | 2017-10-02 | 2023-03-14 | Vmware, Inc. | Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider |
US11894949B2 (en) | 2017-10-02 | 2024-02-06 | VMware LLC | Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SaaS provider |
US11855805B2 (en) | 2017-10-02 | 2023-12-26 | Vmware, Inc. | Deploying firewall for virtual network defined over public cloud infrastructure |
US11516049B2 (en) | 2017-10-02 | 2022-11-29 | Vmware, Inc. | Overlay network encapsulation to forward data message flows through multiple public cloud datacenters |
US11902086B2 (en) | 2017-11-09 | 2024-02-13 | Nicira, Inc. | Method and system of a dynamic high-availability mode based on current wide area network connectivity |
US11323307B2 (en) | 2017-11-09 | 2022-05-03 | Nicira, Inc. | Method and system of a dynamic high-availability mode based on current wide area network connectivity |
US11245753B2 (en) * | 2018-08-17 | 2022-02-08 | Fastly, Inc. | User space redirect of packet traffic |
US20220150170A1 (en) * | 2018-08-17 | 2022-05-12 | Fastly, Inc. | User space redirect of packet traffic |
US11792260B2 (en) * | 2018-08-17 | 2023-10-17 | Fastly, Inc. | User space redirect of packet traffic |
US20240039987A1 (en) * | 2018-08-17 | 2024-02-01 | Fastly, Inc. | User space redirect of packet traffic |
US12177292B2 (en) * | 2018-08-17 | 2024-12-24 | Fastly, Inc. | User space redirect of packet traffic |
US11831414B2 (en) | 2019-08-27 | 2023-11-28 | Vmware, Inc. | Providing recommendations for implementing virtual networks |
US11310170B2 (en) | 2019-08-27 | 2022-04-19 | Vmware, Inc. | Configuring edge nodes outside of public clouds to use routes defined through the public clouds |
US11606314B2 (en) | 2019-08-27 | 2023-03-14 | Vmware, Inc. | Providing recommendations for implementing virtual networks |
US12132671B2 (en) | 2019-08-27 | 2024-10-29 | VMware LLC | Providing recommendations for implementing virtual networks |
US11611507B2 (en) | 2019-10-28 | 2023-03-21 | Vmware, Inc. | Managing forwarding elements at edge nodes connected to a virtual network |
US11489783B2 (en) | 2019-12-12 | 2022-11-01 | Vmware, Inc. | Performing deep packet inspection in a software defined wide area network |
US11716286B2 (en) | 2019-12-12 | 2023-08-01 | Vmware, Inc. | Collecting and analyzing data regarding flows associated with DPI parameters |
US11394640B2 (en) | 2019-12-12 | 2022-07-19 | Vmware, Inc. | Collecting and analyzing data regarding flows associated with DPI parameters |
US12177130B2 (en) | 2019-12-12 | 2024-12-24 | VMware LLC | Performing deep packet inspection in a software defined wide area network |
US12041479B2 (en) | 2020-01-24 | 2024-07-16 | VMware LLC | Accurate traffic steering between links through sub-path path quality metrics |
US11722925B2 (en) | 2020-01-24 | 2023-08-08 | Vmware, Inc. | Performing service class aware load balancing to distribute packets of a flow among multiple network links |
US11606712B2 (en) | 2020-01-24 | 2023-03-14 | Vmware, Inc. | Dynamically assigning service classes for a QOS aware network link |
US11418997B2 (en) | 2020-01-24 | 2022-08-16 | Vmware, Inc. | Using heart beats to monitor operational state of service classes of a QoS aware network link |
US11689959B2 (en) | 2020-01-24 | 2023-06-27 | Vmware, Inc. | Generating path usability state for different sub-paths offered by a network link |
US11438789B2 (en) | 2020-01-24 | 2022-09-06 | Vmware, Inc. | Computing and using different path quality metrics for different service classes |
US11245641B2 (en) | 2020-07-02 | 2022-02-08 | Vmware, Inc. | Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN |
US11477127B2 (en) | 2020-07-02 | 2022-10-18 | Vmware, Inc. | Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN |
US11709710B2 (en) | 2020-07-30 | 2023-07-25 | Vmware, Inc. | Memory allocator for I/O operations |
US11363124B2 (en) * | 2020-07-30 | 2022-06-14 | Vmware, Inc. | Zero copy socket splicing |
US11575591B2 (en) | 2020-11-17 | 2023-02-07 | Vmware, Inc. | Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN |
US11444865B2 (en) | 2020-11-17 | 2022-09-13 | Vmware, Inc. | Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN |
US11575600B2 (en) | 2020-11-24 | 2023-02-07 | Vmware, Inc. | Tunnel-less SD-WAN |
US11601356B2 (en) | 2020-12-29 | 2023-03-07 | Vmware, Inc. | Emulating packet flows to assess network links for SD-WAN |
US11929903B2 (en) | 2020-12-29 | 2024-03-12 | VMware LLC | Emulating packet flows to assess network links for SD-WAN |
US12218845B2 (en) | 2021-01-18 | 2025-02-04 | VMware LLC | Network-aware load balancing |
US11792127B2 (en) | 2021-01-18 | 2023-10-17 | Vmware, Inc. | Network-aware load balancing |
US11979325B2 (en) | 2021-01-28 | 2024-05-07 | VMware LLC | Dynamic SD-WAN hub cluster scaling with machine learning |
US11388086B1 (en) | 2021-05-03 | 2022-07-12 | Vmware, Inc. | On demand routing mesh for dynamically adjusting SD-WAN edge forwarding node roles to facilitate routing through an SD-WAN |
US11381499B1 (en) | 2021-05-03 | 2022-07-05 | Vmware, Inc. | Routing meshes for facilitating routing through an SD-WAN |
US12009987B2 (en) | 2021-05-03 | 2024-06-11 | VMware LLC | Methods to support dynamic transit paths through hub clustering across branches in SD-WAN |
US11637768B2 (en) | 2021-05-03 | 2023-04-25 | Vmware, Inc. | On demand routing mesh for routing packets through SD-WAN edge forwarding nodes in an SD-WAN |
US11582144B2 (en) | 2021-05-03 | 2023-02-14 | Vmware, Inc. | Routing mesh to provide alternate routes through SD-WAN edge forwarding nodes based on degraded operational states of SD-WAN hubs |
US11509571B1 (en) | 2021-05-03 | 2022-11-22 | Vmware, Inc. | Cost-based routing mesh for facilitating routing through an SD-WAN |
US11729065B2 (en) | 2021-05-06 | 2023-08-15 | Vmware, Inc. | Methods for application defined virtual network service among multiple transport in SD-WAN |
US12218800B2 (en) | 2021-05-06 | 2025-02-04 | VMware LLC | Methods for application defined virtual network service among multiple transport in sd-wan |
US11489720B1 (en) | 2021-06-18 | 2022-11-01 | Vmware, Inc. | Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics |
US12250114B2 (en) | 2021-06-18 | 2025-03-11 | VMware LLC | Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of sub-types of resource elements in the public clouds |
US12015536B2 (en) | 2021-06-18 | 2024-06-18 | VMware LLC | Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds |
US12047282B2 (en) | 2021-07-22 | 2024-07-23 | VMware LLC | Methods for smart bandwidth aggregation based dynamic overlay selection among preferred exits in SD-WAN |
US12267364B2 (en) | 2021-07-24 | 2025-04-01 | VMware LLC | Network management services in a virtual network |
US11375005B1 (en) | 2021-07-24 | 2022-06-28 | Vmware, Inc. | High availability solutions for a secure access service edge application |
US11943146B2 (en) | 2021-10-01 | 2024-03-26 | VMware LLC | Traffic prioritization in SD-WAN |
US12184557B2 (en) | 2022-01-04 | 2024-12-31 | VMware LLC | Explicit congestion notification in a virtual environment |
US11909815B2 (en) | 2022-06-06 | 2024-02-20 | VMware LLC | Routing based on geolocation costs |
US12166661B2 (en) | 2022-07-18 | 2024-12-10 | VMware LLC | DNS-based GSLB-aware SD-WAN for low latency SaaS applications |
US12237990B2 (en) | 2022-07-20 | 2025-02-25 | VMware LLC | Method for modifying an SD-WAN using metric-based heat maps |
US12316524B2 (en) | 2022-07-20 | 2025-05-27 | VMware LLC | Modifying an SD-wan based on flow metrics |
US12057993B1 (en) | 2023-03-27 | 2024-08-06 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
US12034587B1 (en) | 2023-03-27 | 2024-07-09 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
US12261777B2 (en) | 2023-08-16 | 2025-03-25 | VMware LLC | Forwarding packets in multi-regional large scale deployments with distributed gateways |
US12355655B2 (en) | 2023-08-16 | 2025-07-08 | VMware LLC | Forwarding packets in multi-regional large scale deployments with distributed gateways |
Also Published As
Publication number | Publication date |
---|---|
EP3238401A1 (en) | 2017-11-01 |
EP3238401B1 (en) | 2019-02-20 |
CN107005532A (en) | 2017-08-01 |
WO2016102004A1 (en) | 2016-06-30 |
CN107005532B (en) | 2020-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170295264A1 (en) | Network extended tcp splicing | |
US7346702B2 (en) | System and method for highly scalable high-speed content-based filtering and load balancing in interconnected fabrics | |
US9088451B2 (en) | System and method for network interfacing in a multiple network environment | |
US7949792B2 (en) | Encoding a TCP offload engine within FCP | |
US6981051B2 (en) | Adaptive flow control protocol | |
US9178966B2 (en) | Using transmission control protocol/internet protocol (TCP/IP) to setup high speed out of band data communication connections | |
US10205801B2 (en) | Data transfer policies between source and target servers in a wide area network | |
US8793384B2 (en) | Recovery of disconnected channels over a reliable protocol | |
US10178033B2 (en) | System and method for efficient traffic shaping and quota enforcement in a cluster environment | |
JP7344315B2 (en) | fire-and-forget offload mechanism for network-based services | |
US20140244814A1 (en) | Network communication protocol processing optimization system | |
CN113994321B (en) | Using Virtual Output Queues to Map NVME Packets on Fabric | |
KR102479757B1 (en) | Offloading method and system of network and file i/o operation, and a computer-readable recording medium | |
US20120151087A1 (en) | System and method for providing a network proxy data tunnel | |
US20050086349A1 (en) | Methods and apparatus for offloading TCP/IP processing using a protocol driver interface filter driver | |
US10140246B2 (en) | Optimizing remote direct memory access (RDMA) with cache aligned operations | |
WO2020242474A1 (en) | Routing nvme-over-fabric packets | |
EP1759317B1 (en) | Method and system for supporting read operations for iscsi and iscsi chimney | |
US10033822B2 (en) | System and method for atomic file transfer operations over connectionless network protocols | |
KR102806492B1 (en) | Method and system for offloading network and file i/o operation in quic protocol based network environment | |
CN113965433B (en) | Method for realizing multi-network aggregation | |
US7729368B2 (en) | Network buffer caching | |
US11336592B2 (en) | Flexible link level retry for shared memory switches | |
US12093571B1 (en) | Accelerating request/response protocols | |
US20070055788A1 (en) | Method for forwarding network file system requests and responses between network segments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
AS | Assignment |
Owner name: HUAWEI TECHNOLOGIES CO., LTD., CHINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TOUITOU, DAN;GAMPEL, ERAN;SIGNING DATES FROM 20171122 TO 20180420;REEL/FRAME:045836/0149 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |