[go: up one dir, main page]

WO2016155826A1 - System, apparatus and method for load balancing - Google Patents

System, apparatus and method for load balancing Download PDF

Info

Publication number
WO2016155826A1
WO2016155826A1 PCT/EP2015/057252 EP2015057252W WO2016155826A1 WO 2016155826 A1 WO2016155826 A1 WO 2016155826A1 EP 2015057252 W EP2015057252 W EP 2015057252W WO 2016155826 A1 WO2016155826 A1 WO 2016155826A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
connection request
code
unique
identity
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.)
Ceased
Application number
PCT/EP2015/057252
Other languages
French (fr)
Inventor
Johan Svedberg
Robert Skog
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Priority to EP15714802.4A priority Critical patent/EP3278526B1/en
Priority to US15/555,115 priority patent/US10924533B2/en
Priority to PCT/EP2015/057252 priority patent/WO2016155826A1/en
Publication of WO2016155826A1 publication Critical patent/WO2016155826A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Definitions

  • This invention relates to a system, apparatus and method for load balancing, and in particular to a system, apparatus and method for performing load balancing in a communications network comprising a plurality of servers.
  • Stateful load balancing may be used during the dynamic increase or decrease of the number of traffic servers available in the cloud. In this case, the load balancer will continue to direct traffic to the servers until they are closed, and will start directing traffic to severs when connections become available.
  • stateful load balancing Another typical use of stateful load balancing is for overload protection. If a specific traffic server is overloaded, stateful load balancing can be used to redirect any new traffic connections to other available traffic servers.
  • Multipath TCP defines an overlay connection from one device to a server on top of two of more existing connections, e.g. a TCP overlay connection on top of two or more TCP connections.
  • a device can be connected to the sever using both a 3G/LTE network and a WiFi network. This can assist a device with roaming between different access networks.
  • a single Multipath TCP connection can be created that seamlessly uses one 3G/LTE sub- connection and a second WiFi sub-connection. Since the two sub-connections are typically setup on different networks, the IP-address of the client side of the connections will be different, and in different networks.
  • Multipath TCP therefore associates the two or more connections to create a seamless single Multiplath connection.
  • load balancing In order to scale a server that terminates Multipath TCP connections, some form of load balancing may be used. However, load balancing is not well suited for use with Multipath TCP.
  • a method of performing multi-path load balancing in a communications network comprising a plurality of servers.
  • the method comprises, in a server: receiving a first connection request from a first load balancer, sent from a first interface of a client device; and storing a code representing the server in a database.
  • the code is associated with a unique identity of the server.
  • the first and second connection requests form part of a transmission control protocol (TCP).
  • TCP transmission control protocol
  • the method may further comprise in the server, sending first and second
  • acknowledgements of the first and second connection requests to the client device including the unique identity of the server may comprise receiving a response to the first and second acknowledgments respectively.
  • the first and second load balancer also determine the unique server identity from a TCP header; and forward the response to the server associated with the unique server identity.
  • a method of performing multi-path load balancing associated with a server.
  • the method comprises receiving a first connection request from a first load balancer, sent from a first interface of a client device and storing a code representing the server in a database.
  • the code is associated with a unique identity of the server, and the code is for use by a second load balancer to direct a second connection request, associated with the first connection request, to the server.
  • the first and second connection requests may form part of a transmission control protocol, TCP.
  • the server stores the code representing the server in the database after receipt of a first response message.
  • the first response message may relate to a first acknowledgement message previously sent from the server to the client device upon receipt of the first connection request.
  • the code may comprise a token associated with a security key relating to the server.
  • a method of performing multi-path load balancing in a load balancer comprises receiving a second connection request, from a second interface of a client device, wherein the second connection request is associated with a first connection request sent from a first interface of the client device to a first server.
  • the second connection request includes a code associated with the first server.
  • the method further comprises mapping the code to an entry in a database; determining a unique server identity associated with the code; and forwarding the second connection request to a server associated with the unique server identity.
  • the first and second connection requests may form part of a transmission control protocol, TCP.
  • the method may further comprise receiving a first response to an acknowledgment of the first connection request, sent by the server to the client device; determining a unique server identity from the first response.
  • the method may also comprise forwarding the response to the server associated with the unique server identity.
  • the method further comprises, receiving a second response to an acknowledgment of the second connection request, sent by the server to the client device, determining a unique server identity from the second response.
  • the method may further comprise forwarding the response to the server associated with the unique server identity.
  • the server may further comprise a processing module adapted to store a code representing the server in a database, the code associated with a unique identity of the server, wherein the code is for use by a second load balancer to direct a second connection request, associated with the first connection request, to the server.
  • a processing module adapted to store a code representing the server in a database, the code associated with a unique identity of the server, wherein the code is for use by a second load balancer to direct a second connection request, associated with the first connection request, to the server.
  • a load balancer for use with multi-path load balancing.
  • the load balancer comprising a communications module adapted to receive a second connection request, from a second interface of a client device, wherein the second connection request is associated with a first connection request sent from a first interface of the client device to a first server, and wherein the second connection request includes a code associated with the first server.
  • the load balancer may further comprise a processing module adapted to map the code to an entry in a database, and to determine a unique server identity associated with the code.
  • the communications module is further adapted to forward the second connection request to a server associated with the unique server identity.
  • Figure 1 illustrates a communications network according to some embodiments of the invention
  • Figure 2 illustrates a signalling diagram according to an embodiment of the invention
  • Figure 3 shows a flow chart illustrating a method performed by a traffic server according to embodiments of the invention
  • Figure 4 shows a flow chart illustrating a method performed by a load balancer according to embodiments of the invention
  • FIG. 5 illustrates a load balancer according to embodiments of the invention.
  • FIG. 6 illustrates a traffic server according to embodiments of the invention.
  • FIG. 1 illustrates an example of a communications network generally indicated 100, in which embodiments according to the invention may be used.
  • a client device which in this illustrated example is a user equipment 102, is connected to an access switch 104 of the communications network 100.
  • the access switch 104 is adapted to forward requests from the user equipment 102 to a load balancer in an access load balancer pool 106 (Access LB Pool) which may comprise a plurality of load balancers, for example the illustrated load balancer Access_LB1.
  • Access LB Pool access load balancer pool
  • Different requests sent by the user equipment 102 may be sent to different load balancers within this pool.
  • the requests may be in any communications protocol.
  • the communications protocol may be a Transmission Control Protocol (TCP)
  • the load balancers within the access load balancer pool 106 are further connected to a plurality of traffic servers within the pool of traffic servers (Traffic Server Pool) 108.
  • the access load balancers can forward the user requests to one of these plurality of traffic servers.
  • These traffic servers may also connect back to the access switch 104.
  • a second pool of load balancers namely an internet load balancer pool (Internet LB Pool) 1 10, is connected to the traffic server pool 108 and further connected to an Internet side access switch (Internet Switch) 1 12.
  • the Internet access switch 1 12 is also configured to receive requests from the traffic server pool 108.
  • the Internet side access switch is further connected to an origin server 1 14.
  • the origin server 1 14 may be provided, for example, in a large-scale provider of services over the Internet, such as Google or Facebook or any other provider of services.
  • This illustrated example shows a cloud-based system, in which there are pools of load balancers and traffic servers, with the numbers of load balancers and traffic servers being subject to change.
  • the client device may comprise two or more interfaces which connect over different networks. For example, there may be one interface which may connect via a 3G/LTE network and a second interface which connects over WiFi. In this case, there may be two or more connections between the traffic server and the client device simultaneously.
  • the access load balancer pool will connect directly a server which is suitable for providing the requested services. In this case, there is no need to forward the traffic on to an origin server over the internet. In such an example the server pool 108, the Internet load balancer pool 1 10 and internet switch 1 12 may be omitted.
  • Figure 2 illustrates a signalling diagram according to an embodiment of the invention.
  • client device 202 (Client A) comprises two communications interfaces, a first interface 204 and a second interface 206. These interfaces, as described earlier, may provide connections over different networks, for example, 3G/LTE and WiFi networks.
  • client device 202 of this example is described as having two communication interfaces, it is noted that embodiments of the invention may be used with client devices comprising more than two communication interfaces, for example for use with Multipath TCP connections comprising two or more sub-connections.
  • the Load balancing cluster 106 comprises a plurality of load balancers, for example n load balancers LB1 -LBn
  • the first load balancer 208 is specifically indicated LB1 and the remaining load balancers 210 are collectively indicated LBn.
  • the Server cluster 108 comprises a plurality of servers, for example n servers S1 -Sn.
  • the first server 212 is specifically indicated S1 and the remaining servers 214 are collectively indicated Sn.
  • This first connection request 216 may be a standard TCP request message, for example a MP_CAPABLE message, and may comprise a Key identifying client device 202 (e.g. Key A identifying Client A).
  • this first connection request is a first sub-connection request for a Multipath TCP connection.
  • the first load balancer 208 selects a server to use, for example using stateless load balancing.
  • the stateless load balancing involves using a hashtag algorithm on the IP address and source port of the first connection request.
  • the first load balancer 208 then forwards 218 the first connection request 216 to the selected server.
  • the selected server is the first server 212.
  • the first server 212 When the first server 212 receives the first connection request 216/218, it returns a first acknowledgment 220 to the first interface 204 of the client device 202, bypassing the first load balancer 208.
  • This first acknowledgment 220 may contain a unique identity of the server. It some embodiments, such as those described in a co-pending application by the present applicant, PCT/CN2015/075358, the unique server identity may be encoded into the timestamp of the first acknowledgment 220. Specifically, in some embodiments, the unique server identity is encoded into the TCP timestamp option.
  • this first acknowledgment 220 may be returned to the client device 202 along with a Key which identifies the Server cluster B (e.g. Key B identifying server cluster B).
  • a Key which identifies the Server cluster B (e.g. Key B identifying server cluster B).
  • the client device 202 will then send a first response 222 to the first acknowledgment 220 to the first load balancer 208.
  • the first load balancer 208 will determine the unique server identity and forward 224 the first response 222 to the first server 212. Again, the server identity may be decoded from the time stamp as described in co-pending application PCT/CN2015/075358. In some embodiments, the first load balancer 208 will decode the server identity from the timestamp in a header of the first response 222.
  • the first response 222 may contain both of the Keys identifying the first server (Key B) and the client device 202 (Key A), for the server to validate the first response 222.
  • a server when a server receives a first connection request 218 from a client device 202, it will store a code associated with the unique server identity in a database.
  • the first server 212 stores the code representing the server in the database after receipt of the first response 224.
  • the code representing the server is stored after receipt of a MP_CAPABLE message.
  • the code is a token associated with a security key relating to the first server (for example B's token).
  • the token may be a hashtag algorithm of a security key used to authenticate the first communications response.
  • there are no further connection requests in the session i.e. the Multipath capability of the client device is not utilised.
  • the signalling may continue from the first interface of the client device, using the unique server identity encoded into the header of the responses to ensure that the traffic is sent to the same server.
  • the client device 202 sends a second connection request 226 from the second interface 206 to a load balancer.
  • this request may be an MP_JOIN request, a sub-connection request to the Multipath TCP connection.
  • the second connection request 226 is sent to a second load balancer 210 in the group of load balancers LBn.
  • it may be sent instead to the first load balancer 208. Therefore, in some embodiments, first load balancer and the second load balancer are the same.
  • This second connection request 226 may be sent with a token and a random number generated by the client device.
  • the token may be a hashtag algorithm of the key received previously by the client device in the first acknowledgement.
  • the second connection request comprises B's token and A's nounce.
  • the second connection request 226 may, in some embodiments, not contain any information directly identifying a specific server for the request to be directed to.
  • this second connection request 226 is a new communication request from a different interface of the client device 202, there has been no opportunity for the first traffic sever to encode it's unique server identity into this second connection request, for example into the header of this second connection request 226 as mentioned above. Therefore, a different solution is needed in order to ensure that this second connection request 226 is sent to the same traffic sever as the first connection request 216.
  • the request is a second connection request, for example identified by being a TCP MP_JOIN message, it is clear that it is a request which is intended to be related to a previous request, namely the first connection request 216.
  • the second load balancer 210 when it receives the second connection request 226, it maps the code, in this case the received token, to an entry in the database.
  • the database will contain an entry comprising the code linked to a unique server identity.
  • the second load balancer 210 will determine the unique server identity which is associated with the code.
  • the unique server identity which is retrieved by the second load balancer 210 is the first server's 212 unique server identity.
  • the second load balancer 210 can then forward 228 the second connection request 226 to the server associated with the retrieved server identity, namely the first server 212.
  • the first server When the first server receives the second connection request 226, it returns a second acknowledgment 230 to the second interface 206 of the client device 202, bypassing the second load balancer 210.
  • This first acknowledgment 230 may contain the unique identity of the first server 212.
  • the unique server identity is encoded into the timestamp of the second acknowledgment 230, for example a TCP timestamp.
  • the client device 202 will send a second response 232 to the second acknowledgment 230 to the second load balancer 210.
  • the second load balancer 210 will determine the unique server identity and forward 234 the second response 232 to the first server 212.
  • the load balancer will determine the server identity in this step by decoding the server identity from the timestamp in the header of the second response 232.
  • both connections from the first interface 204 and the second interface 206 in this multipath session will now be set up so that the server identity is automatically encoded into responses. Therefore, the future traffic in this session from both interfaces can all be sent to the same server.
  • the communications network in Figure 1 is therefore configured to perform a method comprising, in a server 212, receiving a first connection request 218 from a first load balancer 208, sent from a first interface 204 of a client device 202, and storing a code representing the server 212 in a database, the code associated with a unique identity of the server 212.
  • the method also comprises, in a second load balancer 210, receiving a second connection request 226, from a second interface 206 of the client device 202, wherein the second connection request 226 is associated with the first connection request 216 sent from the first interface 204 of the client device 202 to the server 212, and wherein the second connection request 226 includes a code associated with the server 212.
  • the method also comprises the second load balancer 210 using the code to access the database, determine the unique server identity associated with the code, and forward the second connection request 226 to the server 212 associated with the unique server identity.
  • first and second connection requests 216, 226 may form part of a transmission control protocol, TCP, or any other suitable protocol.
  • the method may comprise the first and second load balancers receiving a response to the first and second acknowledgments respectively; determining the unique server identity from a TCP header; and forwarding the response to the server associated with the unique server identity.
  • FIG. 3 shows a flow chart illustrating a method performed by a server according to an embodiment of the invention, for example a traffic server, or some other form of server.
  • the server receives a first connection request from a first load balancer, sent from a first interface of a client device.
  • the first connection request is a TCP SYN request that indicates it is a first sub-connection in a Multipath TCP connection.
  • it may have an MP_CAPABLE option.
  • a unique key may also be generated by the server and returned to the client in a SYN/ACK response.
  • this code is generated by calculating a hash of the unique key. This may then be stored alongside the unique server identity in the database.
  • the code is for use by a second load balancer to direct a second connection request, associated with the first connection request, to the server.
  • the first and second load balancers may be different load balancers, or the same load balancer.
  • first and second connection requests may form part of a transmission control protocol (TCP), or any other suitable protocol.
  • TCP transmission control protocol
  • the client may later create a second sub-connection in the Multipath TCP, an MP_JOIN request, and the code can be retrieved from the database and sent along with the request. This would enable the request to be sent to the same server.
  • the code may comprise a token associated with a security key relating to the server.
  • the code may be a token used in a three-way handshake in multipath TCP.
  • the token may be a hash of the security key used to authenticate the first connection request.
  • Figure 4 shows a flow chart illustrating a method performed by a load balancer according to an embodiment of the invention.
  • step 401 the load balancer receives a second connection request, from a second interface of a client device, wherein the second connection request includes a code associated with a first server.
  • the second connection request is associated with a first connection request sent from a first interface of the client device to the first server.
  • first and second connection requests may form part of a transmission control protocol (TCP), or any other suitable protocol.
  • TCP transmission control protocol
  • acknowledgment of the first connection request sent by the server to the client device. It may then determine a unique server identity from the first response; and forward the response to the server associated with the unique server identity.
  • step 404 the load balancer forwards the second connection request to a server associated with the unique server identity.
  • the load balancer may receive a second response to an acknowledgment of the second connection request, sent by the server to the client device. The load balancer may then determine a unique server identity from second response and forward the response to the server associated with the unique server identity.
  • the communications module 501 is further adapted to forward the second connection request to a server associated with the unique server identity.
  • Figure 6 illustrates an example of a server generally indicated 600 according to embodiments of the invention. Any or all of the servers in the server pool 108 illustrated in Figure 1 may have this structure.
  • the server 600 comprises a communications module 601 and processing module 602.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

A method of performing multi-path load balancing in a communications network comprising a plurality of servers comprises, in a server: receiving a first connection request from a first load balancer, sent from a first interface of a client device (step 301); and storing a code representing the server in a database, the code associated with a unique identity of the server (step 302). The method comprises, in a second load balancer: receiving a second connection request, from a second interface of the client device, wherein the second connection request is associated with the first connection request sent from the first interface of the client device to the server, and wherein the second connection request includes a code associated with the server (step 401); mapping the code to an entry in the database (step 402); determining the unique server identity associated with the code (step 403); and forwarding the second connection request to the server associated with the unique server identity (404).

Description

System, Apparatus and Method for Load Balancing
TECHNICAL FIELD This invention relates to a system, apparatus and method for load balancing, and in particular to a system, apparatus and method for performing load balancing in a communications network comprising a plurality of servers.
BACKGROUND
Load balancing is a function used in communications networks that comprise a plurality of servers, for example traffic servers, such as cloud-based systems. As the cloud grows it is useful not only to support stateless load balancing, where an algorithm (such as a hashtag algorithm) is used to direct a particular client to a particular server, but also to support stateful load balancing where each session is assigned to a particular server.
Stateful load balancing may be used during the dynamic increase or decrease of the number of traffic servers available in the cloud. In this case, the load balancer will continue to direct traffic to the servers until they are closed, and will start directing traffic to severs when connections become available.
Another typical use of stateful load balancing is for overload protection. If a specific traffic server is overloaded, stateful load balancing can be used to redirect any new traffic connections to other available traffic servers.
Multipath Transmission Control Protocol (Multipath TCP) defines an overlay connection from one device to a server on top of two of more existing connections, e.g. a TCP overlay connection on top of two or more TCP connections. For example, a device can be connected to the sever using both a 3G/LTE network and a WiFi network. This can assist a device with roaming between different access networks. For example, a single Multipath TCP connection can be created that seamlessly uses one 3G/LTE sub- connection and a second WiFi sub-connection. Since the two sub-connections are typically setup on different networks, the IP-address of the client side of the connections will be different, and in different networks.
Multipath TCP therefore associates the two or more connections to create a seamless single Multiplath connection.
In order to scale a server that terminates Multipath TCP connections, some form of load balancing may be used. However, load balancing is not well suited for use with Multipath TCP. SUMMARY
It is an aim of the present invention to provide a method and apparatus which obviate or reduce at least one or more of the disadvantages mentioned above. According to the present invention there is provided a method of performing multi-path load balancing in a communications network comprising a plurality of servers. The method comprises, in a server: receiving a first connection request from a first load balancer, sent from a first interface of a client device; and storing a code representing the server in a database. The code is associated with a unique identity of the server. In a second load balancer the method comprises: receiving a second connection request, from a second interface of the client device, wherein the second connection request is associated with the first connection request sent from the first interface of the client device to the server, and wherein the second connection request includes a code associated with the server. The method further comprises mapping the code to an entry in the database; determining the unique server identity associated with the code; and forwarding the second connection request to the server associated with the unique server identity.
In some embodiments the first and second connection requests form part of a transmission control protocol (TCP).
The method may further comprise in the server, sending first and second
acknowledgements of the first and second connection requests to the client device including the unique identity of the server. In the first and second load balancer the method may comprise receiving a response to the first and second acknowledgments respectively. In some embodiments the first and second load balancer also determine the unique server identity from a TCP header; and forward the response to the server associated with the unique server identity.
In some embodiments the server stores the code representing the server in the database after receipt of the first response. The first load balancer and the second load balancer may be the same.
According to a further aspect of the invention there is provided a method of performing multi-path load balancing, associated with a server. The method comprises receiving a first connection request from a first load balancer, sent from a first interface of a client device and storing a code representing the server in a database. The code is associated with a unique identity of the server, and the code is for use by a second load balancer to direct a second connection request, associated with the first connection request, to the server. The first and second connection requests may form part of a transmission control protocol, TCP.
In some embodiments the server stores the code representing the server in the database after receipt of a first response message. The first response message may relate to a first acknowledgement message previously sent from the server to the client device upon receipt of the first connection request.
The code may comprise a token associated with a security key relating to the server. According to a further aspect of the invention there is provided a method of performing multi-path load balancing in a load balancer. The method comprises receiving a second connection request, from a second interface of a client device, wherein the second connection request is associated with a first connection request sent from a first interface of the client device to a first server. The second connection request includes a code associated with the first server. The method further comprises mapping the code to an entry in a database; determining a unique server identity associated with the code; and forwarding the second connection request to a server associated with the unique server identity.
The first and second connection requests may form part of a transmission control protocol, TCP.
The method may further comprise receiving a first response to an acknowledgment of the first connection request, sent by the server to the client device; determining a unique server identity from the first response. The method may also comprise forwarding the response to the server associated with the unique server identity.
In some embodiments the method further comprises, receiving a second response to an acknowledgment of the second connection request, sent by the server to the client device, determining a unique server identity from the second response. The method may further comprise forwarding the response to the server associated with the unique server identity. According to a further aspect of the invention there is provided a server for use with multi-path load balancing. The server comprises a communications module adapted to receive a first connection request from a first load balancer, sent from a first interface of a client device. The server may further comprise a processing module adapted to store a code representing the server in a database, the code associated with a unique identity of the server, wherein the code is for use by a second load balancer to direct a second connection request, associated with the first connection request, to the server.
According to a further aspect of the invention there is provided a load balancer for use with multi-path load balancing. The load balancer comprising a communications module adapted to receive a second connection request, from a second interface of a client device, wherein the second connection request is associated with a first connection request sent from a first interface of the client device to a first server, and wherein the second connection request includes a code associated with the first server. The load balancer may further comprise a processing module adapted to map the code to an entry in a database, and to determine a unique server identity associated with the code. The communications module is further adapted to forward the second connection request to a server associated with the unique server identity. BRIEF DESCRIPTION OF THE DRAWINGS
For a better understanding of examples of the present invention, and to show more clearly how the examples may be carried into effect, reference will now be made, by way of example only, to the following drawings in which:
Figure 1 illustrates a communications network according to some embodiments of the invention;
Figure 2 illustrates a signalling diagram according to an embodiment of the invention;
Figure 3 shows a flow chart illustrating a method performed by a traffic server according to embodiments of the invention;
Figure 4 shows a flow chart illustrating a method performed by a load balancer according to embodiments of the invention;
Figure 5 illustrates a load balancer according to embodiments of the invention; and
Figure 6 illustrates a traffic server according to embodiments of the invention.
DETAILED DESCRIPTION
Embodiments of the present invention relate to the storing of a traffic server identity in a database for use in subsequent multipath requests, for example in use with load balancing, such as stateful load balancing.
Figure 1 illustrates an example of a communications network generally indicated 100, in which embodiments according to the invention may be used. A client device, which in this illustrated example is a user equipment 102, is connected to an access switch 104 of the communications network 100. The access switch 104 is adapted to forward requests from the user equipment 102 to a load balancer in an access load balancer pool 106 (Access LB Pool) which may comprise a plurality of load balancers, for example the illustrated load balancer Access_LB1. Different requests sent by the user equipment 102 may be sent to different load balancers within this pool. The requests may be in any communications protocol. In some embodiments, the communications protocol may be a Transmission Control Protocol (TCP)
The load balancers within the access load balancer pool 106 are further connected to a plurality of traffic servers within the pool of traffic servers (Traffic Server Pool) 108. The access load balancers can forward the user requests to one of these plurality of traffic servers. These traffic servers may also connect back to the access switch 104.
A second pool of load balancers, namely an internet load balancer pool (Internet LB Pool) 1 10, is connected to the traffic server pool 108 and further connected to an Internet side access switch (Internet Switch) 1 12. The Internet access switch 1 12 is also configured to receive requests from the traffic server pool 108.
The Internet side access switch is further connected to an origin server 1 14. The origin server 1 14 may be provided, for example, in a large-scale provider of services over the Internet, such as Google or Facebook or any other provider of services. This illustrated example shows a cloud-based system, in which there are pools of load balancers and traffic servers, with the numbers of load balancers and traffic servers being subject to change.
It will be appreciated that in embodiments of the invention the client device may comprise two or more interfaces which connect over different networks. For example, there may be one interface which may connect via a 3G/LTE network and a second interface which connects over WiFi. In this case, there may be two or more connections between the traffic server and the client device simultaneously. In some embodiments of the invention the access load balancer pool will connect directly a server which is suitable for providing the requested services. In this case, there is no need to forward the traffic on to an origin server over the internet. In such an example the server pool 108, the Internet load balancer pool 1 10 and internet switch 1 12 may be omitted.
Figure 2 illustrates a signalling diagram according to an embodiment of the invention.
It can be seen from this figure that, in this example, client device 202 (Client A) comprises two communications interfaces, a first interface 204 and a second interface 206. These interfaces, as described earlier, may provide connections over different networks, for example, 3G/LTE and WiFi networks. Although the client device 202 of this example is described as having two communication interfaces, it is noted that embodiments of the invention may be used with client devices comprising more than two communication interfaces, for example for use with Multipath TCP connections comprising two or more sub-connections.
The Load balancing cluster 106 comprises a plurality of load balancers, for example n load balancers LB1 -LBn The first load balancer 208 is specifically indicated LB1 and the remaining load balancers 210 are collectively indicated LBn. The Server cluster 108 comprises a plurality of servers, for example n servers S1 -Sn. The first server 212 is specifically indicated S1 and the remaining servers 214 are collectively indicated Sn.
Firstly, it is assumed that the client device 202 sends a first connection request 216 from the first interface 204 to the first load balancer 208. This first connection request 216 may be a standard TCP request message, for example a MP_CAPABLE message, and may comprise a Key identifying client device 202 (e.g. Key A identifying Client A). In embodiments of the invention, this first connection request is a first sub-connection request for a Multipath TCP connection.
The first load balancer 208 then selects a server to use, for example using stateless load balancing. In some embodiments the stateless load balancing involves using a hashtag algorithm on the IP address and source port of the first connection request. The first load balancer 208 then forwards 218 the first connection request 216 to the selected server. In this example, the selected server is the first server 212.
When the first server 212 receives the first connection request 216/218, it returns a first acknowledgment 220 to the first interface 204 of the client device 202, bypassing the first load balancer 208. This first acknowledgment 220 may contain a unique identity of the server. It some embodiments, such as those described in a co-pending application by the present applicant, PCT/CN2015/075358, the unique server identity may be encoded into the timestamp of the first acknowledgment 220. Specifically, in some embodiments, the unique server identity is encoded into the TCP timestamp option.
As is conventional in a three-way handshake, this first acknowledgment 220 may be returned to the client device 202 along with a Key which identifies the Server cluster B (e.g. Key B identifying server cluster B).
The client device 202 will then send a first response 222 to the first acknowledgment 220 to the first load balancer 208. The first load balancer 208 will determine the unique server identity and forward 224 the first response 222 to the first server 212. Again, the server identity may be decoded from the time stamp as described in co-pending application PCT/CN2015/075358. In some embodiments, the first load balancer 208 will decode the server identity from the timestamp in a header of the first response 222.
The first response 222 may contain both of the Keys identifying the first server (Key B) and the client device 202 (Key A), for the server to validate the first response 222.
According to the embodiments of the present invention, when a server receives a first connection request 218 from a client device 202, it will store a code associated with the unique server identity in a database.
In one example, the first server 212 stores the code representing the server in the database after receipt of the first response 224. In one example, the code representing the server is stored after receipt of a MP_CAPABLE message. In this example embodiment the code is a token associated with a security key relating to the first server (for example B's token). In particular, the token may be a hashtag algorithm of a security key used to authenticate the first communications response. In some embodiments of the invention there are no further connection requests in the session, i.e. the Multipath capability of the client device is not utilised. In this case, the signalling may continue from the first interface of the client device, using the unique server identity encoded into the header of the responses to ensure that the traffic is sent to the same server.
However, in this example, the client device 202 sends a second connection request 226 from the second interface 206 to a load balancer. For example, this request may be an MP_JOIN request, a sub-connection request to the Multipath TCP connection. In this example the second connection request 226 is sent to a second load balancer 210 in the group of load balancers LBn. However, it will be appreciated that it may be sent instead to the first load balancer 208. Therefore, in some embodiments, first load balancer and the second load balancer are the same.
This second connection request 226 may be sent with a token and a random number generated by the client device. The token may be a hashtag algorithm of the key received previously by the client device in the first acknowledgement. In one example the second connection request comprises B's token and A's nounce. The second connection request 226 may, in some embodiments, not contain any information directly identifying a specific server for the request to be directed to.
As this second connection request 226 is a new communication request from a different interface of the client device 202, there has been no opportunity for the first traffic sever to encode it's unique server identity into this second connection request, for example into the header of this second connection request 226 as mentioned above. Therefore, a different solution is needed in order to ensure that this second connection request 226 is sent to the same traffic sever as the first connection request 216. As the request is a second connection request, for example identified by being a TCP MP_JOIN message, it is clear that it is a request which is intended to be related to a previous request, namely the first connection request 216. Therefore, when the second load balancer 210 receives the second connection request 226, it maps the code, in this case the received token, to an entry in the database. The database will contain an entry comprising the code linked to a unique server identity. The second load balancer 210 will determine the unique server identity which is associated with the code. As the first server 212 has previously stored the code in the database alongside its own unique server identity, the unique server identity which is retrieved by the second load balancer 210 is the first server's 212 unique server identity.
The second load balancer 210 can then forward 228 the second connection request 226 to the server associated with the retrieved server identity, namely the first server 212.
When the first server receives the second connection request 226, it returns a second acknowledgment 230 to the second interface 206 of the client device 202, bypassing the second load balancer 210. This first acknowledgment 230 may contain the unique identity of the first server 212. In some embodiments, such as those described in copending application PCT/CN2015/075358 by the present Applicant, the unique server identity is encoded into the timestamp of the second acknowledgment 230, for example a TCP timestamp.
The client device 202 will send a second response 232 to the second acknowledgment 230 to the second load balancer 210. The second load balancer 210 will determine the unique server identity and forward 234 the second response 232 to the first server 212. In some embodiments, the load balancer will determine the server identity in this step by decoding the server identity from the timestamp in the header of the second response 232.
In embodiments of the invention, both connections from the first interface 204 and the second interface 206 in this multipath session will now be set up so that the server identity is automatically encoded into responses. Therefore, the future traffic in this session from both interfaces can all be sent to the same server.
In can be seen that, according to one embodiment, the communications network in Figure 1 is therefore configured to perform a method comprising, in a server 212, receiving a first connection request 218 from a first load balancer 208, sent from a first interface 204 of a client device 202, and storing a code representing the server 212 in a database, the code associated with a unique identity of the server 212. The method also comprises, in a second load balancer 210, receiving a second connection request 226, from a second interface 206 of the client device 202, wherein the second connection request 226 is associated with the first connection request 216 sent from the first interface 204 of the client device 202 to the server 212, and wherein the second connection request 226 includes a code associated with the server 212. The method also comprises the second load balancer 210 using the code to access the database, determine the unique server identity associated with the code, and forward the second connection request 226 to the server 212 associated with the unique server identity.
It will be appreciated that the first and second connection requests 216, 226 may form part of a transmission control protocol, TCP, or any other suitable protocol.
In some embodiments, the method the communications network is configured to perform may also comprise the server sending first and second acknowledgements 220, 230 of the first and second connection requests to the client device including the unique identity of the server.
Furthermore, the method may comprise the first and second load balancers receiving a response to the first and second acknowledgments respectively; determining the unique server identity from a TCP header; and forwarding the response to the server associated with the unique server identity.
Figure 3 shows a flow chart illustrating a method performed by a server according to an embodiment of the invention, for example a traffic server, or some other form of server. In step 301 the server receives a first connection request from a first load balancer, sent from a first interface of a client device. In some embodiments the first connection request is a TCP SYN request that indicates it is a first sub-connection in a Multipath TCP connection. For example, it may have an MP_CAPABLE option.
A unique key may also be generated by the server and returned to the client in a SYN/ACK response.
In step 302 the server stores a code representing the server in a database, the code associated with a unique identity of the server. The database may be a global database or may be located at any node in the communications network.
In some embodiments this code is generated by calculating a hash of the unique key. This may then be stored alongside the unique server identity in the database.
In some embodiments the code is for use by a second load balancer to direct a second connection request, associated with the first connection request, to the server. The first and second load balancers may be different load balancers, or the same load balancer.
It will be appreciated that the first and second connection requests may form part of a transmission control protocol (TCP), or any other suitable protocol.
In some embodiments the server stores the code representing the server in the database after receipt of a first response message 224/222, the first response message 224/222 relating to a first acknowledgement message 220 previously sent from the server to the client device upon receipt of the first connection request 218/216.
Therefore storing the code, enables a subsequent connection request, relating to the first connection request, to be sent to the same server as the first connection request. For example, the client may later create a second sub-connection in the Multipath TCP, an MP_JOIN request, and the code can be retrieved from the database and sent along with the request. This would enable the request to be sent to the same server.
It will be appreciated that the code may comprise a token associated with a security key relating to the server. In particular, the code may be a token used in a three-way handshake in multipath TCP. The token may be a hash of the security key used to authenticate the first connection request.
Figure 4 shows a flow chart illustrating a method performed by a load balancer according to an embodiment of the invention.
In step 401 the load balancer receives a second connection request, from a second interface of a client device, wherein the second connection request includes a code associated with a first server. In some embodiments the second connection request is associated with a first connection request sent from a first interface of the client device to the first server.
It will be appreciated that the first and second connection requests may form part of a transmission control protocol (TCP), or any other suitable protocol.
In some embodiments the load balancer may receive a first response to an
acknowledgment of the first connection request, sent by the server to the client device. It may then determine a unique server identity from the first response; and forward the response to the server associated with the unique server identity.
In step 402 the load balancer maps the code to an entry in a database. The database may be a global database or may be located at any node in the communications network. In step 403 the load balancer determines a unique server identity associated with the code.
In step 404 the load balancer forwards the second connection request to a server associated with the unique server identity. In some embodiments the load balancer may receive a second response to an acknowledgment of the second connection request, sent by the server to the client device. The load balancer may then determine a unique server identity from second response and forward the response to the server associated with the unique server identity.
Figure 5 illustrates an example of a load balancer generally indicated 500 according to an embodiment of the invention. Any or all of the load balancers in the load balancer pools 106 and 1 10 shown in Figure 1 may have this structure. In this embodiment, the load balancer 500 comprises a communications module 501 and a processing module502.
The communications module 501 is adapted to handle communications with other network nodes in the intended communications protocol(s). For example, the load balancer may be required to communicate with other network nodes over the Internet using the Transmission Control Protocol (TCP).
The processing module 502 allows the load balancer 500 to perform the functions required for its operation, including the functions described herein.
In one embodiment, the communications module 501 is adapted to receive a second connection request, from a second interface of a client device. The second connection request may be associated with a first connection request sent from a first interface of the client device to a first server. The second connection request may include a code associated with the first server.
The processing module 502 is adapted to map the code to an entry in a database, and to determine a unique server identity associated with the code.
The communications module 501 is further adapted to forward the second connection request to a server associated with the unique server identity. Figure 6 illustrates an example of a server generally indicated 600 according to embodiments of the invention. Any or all of the servers in the server pool 108 illustrated in Figure 1 may have this structure. In this embodiment the server 600 comprises a communications module 601 and processing module 602.
The communications module 601 is adapted to handle communications with other network nodes in the intended communications protocol(s). For example, the server may be required to communicate with other network nodes over the Internet using the Transmission Control Protocol (TCP).
The processing module 602 allows server 600 to perform the functions required for its operation, including the functions described herein.
In one embodiment, the communications module 601 is adapted to receive a first connection request from a first load balancer, sent from a first interface of a client device.
The processing module 602 is adapted to store a code representing the server in a database, the code associated with a unique identity of the server. The code may be for use by a second load balancer to direct a second connection request, associated with the first connection request, to the server.
There is thus described a method and system for performing multipath load balancing. In particular, a method of maintaining a multipath connection to a particular server during stateless load balancing.
As mentioned above, although the embodiments above have been described in the context of a client device having first and second interfaces, and a Multipath TCP connection comprising first and second sub-connections, the embodiments may also be used with client devices having more than two interfaces, and Multipath TCP connections having more than two sub-connections.
The use of a code representing the server in a database, the code associated with a unique identity of the server, enables Multipath TCP connections to be established in a load balancing environment, even though the way MPTCP is defined means that only the initial TCP handshake of the sub-connections includes enough information to associate them with each other. The embodiments of the invention there allow a load balancer to learn from the various handshake messages which TCP connections that need to go to the same server.
The embodiments of the present invention build on the load balancing techniques described in co-pending application PCT/CN2015/075358 by the present Applicant, in that when a first sub-connection is established a server records unique identity of the server, for example the server B's token (e.g. Hash of B's key) as key to
subsequently point to the server's address in database, wherein this database is accessible from all servers and load balancers in this domain. Thus, when at a later point any of the distributed load balancers see a new sub-connection, for example indicated by the MP_JOIN TCP option in TCP SYN segment, it can use B's token provided in the MP_JOIN TCP option to look-up the server in the database. The SYN is then forwarded to the correct server (which may then use the method of copending application PCT/CN2015/075358 by the present Applicant, to control that the following segments in the new sub-connection will also come to the same server). The embodiments have the advantage of being able to provide a Multipath TCP solution that can be deployed without a stateful and tight coupled load balancer.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. The word "comprising" does not exclude the presence of elements or steps other than those listed in a claim, "a" or "an" does not exclude a plurality, and a single feature or other unit may fulfil the functions of several units recited in the claims. Any reference signs in the claims shall not be construed so as to limit their scope.

Claims

1 . A method of performing multi-path load balancing in a communications network comprising a plurality of servers, the method comprising:
in a server:
receiving a first connection request from a first load balancer, sent from a first interface of a client device (step 301 ); and
storing a code representing the server in a database, the code associated with a unique identity of the server (step 302);
in a second load balancer:
receiving a second connection request, from a second interface of the client device, wherein the second connection request is associated with the first connection request sent from the first interface of the client device to the server, and wherein the second connection request includes a code associated with the server (step 401 );
mapping the code to an entry in the database (step 402);
determining the unique server identity associated with the code (step 403); and
forwarding the second connection request to the server associated with the unique server identity (404).
2. A method as claimed in claim 1 , wherein the first and second connection requests form part of a transmission control protocol (TCP).
3. A method as claimed in claims 1 or 2, further comprising:
in the server, sending first and second acknowledgements of the first and second connection requests to the client device including the unique identity of the server.
4. A method as claimed in claim 3 further comprising,
in the first and second load balancer:
receiving a response to the first and second acknowledgments respectively;
determining the unique server identity from a TCP header; and forwarding the response to the server associated with the unique server identity.
5. A method as claimed in 4, wherein the server stores the code representing the server in the database after receipt of the first response.
6. A method as claimed in any preceding claim, wherein the first load balancer and the second load balancer are the same.
7. A method of performing multi-path load balancing, associated with a server, the method comprising:
receiving a first connection request from a first load balancer, sent from a first interface of a client device (step 301 );
storing a code representing the server in a database, the code associated with a unique identity of the server (step 302), wherein the code is for use by a second load balancer to direct a second connection request, associated with the first connection request, to the server.
8. A method as claimed in claim 7, wherein the first and second connection requests form part of a transmission control protocol, TCP.
9. A method as claimed in claim 7 or 8, wherein the server stores the code representing the server in the database after receipt of a first response message, the first response message relating to a first acknowledgement message previously sent from the server to the client device upon receipt of the first connection request.
10. A method as claimed in any one of claims 7 to 9, wherein the code comprises a token associated with a security key relating to the server.
1 1. A method of performing multi-path load balancing in a load balancer, the method comprising:
receiving a second connection request, from a second interface of a client device, wherein the second connection request is associated with a first connection request sent from a first interface of the client device to a first server, and wherein the second connection request includes a code associated with the first server (step 401 );
mapping the code to an entry in a database (step 402);
determining a unique server identity associated with the code (step 403); and
forwarding the second connection request to a server associated with the unique server identity (404).
12. A method as claimed in claim 1 1 , wherein
the first and second connection requests form part of a transmission control protocol, TCP.
13. A method as claimed in claim 12, further comprising:
receiving a first response to an acknowledgment of the first connection request, sent by the server to the client device;
determining a unique server identity from the first response; and forwarding the response to the server associated with the unique server identity.
14. A method as claimed in any one of claims 1 1 -13, further comprising,
receiving a second response to an acknowledgment of the second connection request, sent by the server to the client device;
determining a unique server identity from the second response; and forwarding the response to the server associated with the unique server identity.
15 A server (600) for use with multi-path load balancing, the server comprising:
a communications module (601 ) adapted to receive a first connection request from a first load balancer, sent from a first interface of a client device; a processing module (602) adapted to store a code representing the server in a database, the code associated with a unique identity of the server, wherein the code is for use by a second load balancer to direct a second connection request, associated with the first connection request, to the server.
16. A load balancer (500) for use with multi-path load balancing, the load balancer comprising:
a communications module (501 ) adapted to receive a second connection request, from a second interface of a client device, wherein the second connection request is associated with a first connection request sent from a first interface of the client device to a first server, and wherein the second connection request includes a code associated with the first server;
a processing module (502) adapted to map the code to an entry in a database, and to determine a unique server identity associated with the code; and
wherein the communications module (501 ) is further adapted to forward the second connection request to a server associated with the unique server identity.
PCT/EP2015/057252 2015-04-01 2015-04-01 System, apparatus and method for load balancing Ceased WO2016155826A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP15714802.4A EP3278526B1 (en) 2015-04-01 2015-04-01 System, apparatus and method for load balancing
US15/555,115 US10924533B2 (en) 2015-04-01 2015-04-01 System, apparatus and method for load balancing
PCT/EP2015/057252 WO2016155826A1 (en) 2015-04-01 2015-04-01 System, apparatus and method for load balancing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2015/057252 WO2016155826A1 (en) 2015-04-01 2015-04-01 System, apparatus and method for load balancing

Publications (1)

Publication Number Publication Date
WO2016155826A1 true WO2016155826A1 (en) 2016-10-06

Family

ID=52814981

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2015/057252 Ceased WO2016155826A1 (en) 2015-04-01 2015-04-01 System, apparatus and method for load balancing

Country Status (3)

Country Link
US (1) US10924533B2 (en)
EP (1) EP3278526B1 (en)
WO (1) WO2016155826A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108449346A (en) * 2018-03-22 2018-08-24 北京可信华泰科技有限公司 A kind of key generation client
WO2018176961A1 (en) * 2017-03-31 2018-10-04 华为技术有限公司 Load balancing system, method, and device
WO2021008591A1 (en) * 2019-07-16 2021-01-21 华为技术有限公司 Data transmission method, device, and system

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419401B2 (en) 2016-01-08 2019-09-17 Capital One Services, Llc Methods and systems for securing data in the public cloud
US10230683B1 (en) * 2018-02-09 2019-03-12 Capital One Services, Llc Routing for large server deployments
CN113132248A (en) * 2019-12-30 2021-07-16 网宿科技股份有限公司 Load balancing method, equipment and system
CN111294355B (en) * 2020-02-10 2021-12-17 浙江大华技术股份有限公司 Sub-connection creating method, client device and server device
CN114205301A (en) * 2020-08-28 2022-03-18 华为技术有限公司 MPTCP load balancing method, medium and equipment
CN114024972B (en) * 2021-10-28 2023-11-03 平安科技(深圳)有限公司 Long connection communication method, system, device, equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140153583A1 (en) * 2012-11-30 2014-06-05 Thomson Licensing Method and multi-homed equipment for establishing a multipath connection
US20140258365A1 (en) * 2010-10-29 2014-09-11 Israel L'Heureux Enhanced computer networking via multi-connection object retrieval

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665702B1 (en) * 1998-07-15 2003-12-16 Radware Ltd. Load balancing
EP2495927B1 (en) * 2011-03-02 2014-10-08 Alcatel Lucent Concept for providing information on a data packet association and for forwarding a data packet
US10038626B2 (en) * 2013-04-16 2018-07-31 Amazon Technologies, Inc. Multipath routing in a distributed load balancer
US9578109B2 (en) * 2014-05-30 2017-02-21 Apple Inc. Long-lived MPTCP sessions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140258365A1 (en) * 2010-10-29 2014-09-11 Israel L'Heureux Enhanced computer networking via multi-connection object retrieval
US20140153583A1 (en) * 2012-11-30 2014-06-05 Thomson Licensing Method and multi-homed equipment for establishing a multipath connection

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018176961A1 (en) * 2017-03-31 2018-10-04 华为技术有限公司 Load balancing system, method, and device
CN108667880A (en) * 2017-03-31 2018-10-16 华为技术有限公司 A kind of SiteServer LBS, method and device
EP3595265A4 (en) * 2017-03-31 2020-01-15 Huawei Technologies Co., Ltd. LOAD BALANCING SYSTEM, METHOD AND DEVICE
US11122116B2 (en) 2017-03-31 2021-09-14 Huawei Technologies Co., Ltd. Load balancing system, method, and apparatus
CN108449346A (en) * 2018-03-22 2018-08-24 北京可信华泰科技有限公司 A kind of key generation client
CN108449346B (en) * 2018-03-22 2021-07-27 北京可信华泰科技有限公司 Key generation client
WO2021008591A1 (en) * 2019-07-16 2021-01-21 华为技术有限公司 Data transmission method, device, and system

Also Published As

Publication number Publication date
US20180041570A1 (en) 2018-02-08
US10924533B2 (en) 2021-02-16
EP3278526B1 (en) 2020-06-24
EP3278526A1 (en) 2018-02-07

Similar Documents

Publication Publication Date Title
EP3278526B1 (en) System, apparatus and method for load balancing
US12407726B2 (en) Overlay network ingress edge region selection
EP4247049A1 (en) Data processing method, network element device, and readable storage medium
US9876760B2 (en) Peer-to-peer connection establishment using turn
US8762535B2 (en) Managing TCP anycast requests
JP5739023B2 (en) System and method using a web proxy server to access a device having an assigned network address
JP5847853B2 (en) System and method for accessing a device having an assigned network address
CN114079669A (en) System and method for providing a global virtual network (GVN)
EP2843905A1 (en) Single pass load balancing and session persistence in packet networks
CN106330718B (en) Method for forwarding multicast message and device
EP3110102A1 (en) Communicating private data and data objects
CN103905284B (en) A kind of flow load sharing method and apparatus based on EVI networks
KR102117434B1 (en) Method for improved handling of at least one communication exchange between a telecommunication network and at least one user equipment, telecommunication network, user equipment, systems, programs and computer program products
CA3100595A1 (en) Computing system providing enhanced point of presence (pop) server selection based upon network health metrics and related methods
CN103986638A (en) Method and device for binding multiple public network links for ADVPN tunnel
WO2021008591A1 (en) Data transmission method, device, and system
JP2024099534A (en) NETWORK NODE FOR INDIRECT COMMUNICATION AND METHOD THEREIN - Patent application
JP7209593B2 (en) Relay method, relay system, and relay program
US10834179B2 (en) Load balancing
US8706865B1 (en) Enhanced network communications using diagnostic information
CN109196843A (en) A kind of data cached requesting method and relevant device
CN106254576B (en) Message forwarding method and device
KR20150049821A (en) Server and method for load balancing of using the same
US11196673B2 (en) Traffic shaping over multiple hops in a network
KR20250057505A (en) Method and electronic device for load balancing in wireless access network

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15714802

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15555115

Country of ref document: US

REEP Request for entry into the european phase

Ref document number: 2015714802

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE