WO2015038044A1 - A transparent proxy in a communications network - Google Patents

A transparent proxy in a communications network Download PDF

Info

Publication number
WO2015038044A1
WO2015038044A1 PCT/SE2013/051073 SE2013051073W WO2015038044A1 WO 2015038044 A1 WO2015038044 A1 WO 2015038044A1 SE 2013051073 W SE2013051073 W SE 2013051073W WO 2015038044 A1 WO2015038044 A1 WO 2015038044A1
Authority
WO
WIPO (PCT)
Prior art keywords
proxy
client
server
overloaded
resource
Prior art date
Application number
PCT/SE2013/051073
Other languages
French (fr)
Inventor
Anders THOMSON
Original Assignee
Telefonaktiebolaget L M Ericsson (Publ)
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 L M Ericsson (Publ) filed Critical Telefonaktiebolaget L M Ericsson (Publ)
Priority to PCT/SE2013/051073 priority Critical patent/WO2015038044A1/en
Publication of WO2015038044A1 publication Critical patent/WO2015038044A1/en

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/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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]

Definitions

  • the invention relates to a transparent proxy for a communications network, a method of a transparent proxy in a communications network, and
  • a current approach for overload protection of a provider of a resource typically includes detecting that an overload situation exists and answering new requests to the provider of the resource with an appropriate Hypertext Transfer Protocol (HTTP) response status code. For instance, if a user requests access to a web page of a newspaper, and a server on which the webpage is located currently is overloaded, the server will reply with status code 503: "Service Unavailable, please try again later". This is helpful for the user for informational purposes, and may also have the auspicious effect that the user will not continue (at least not immediately) sending requests for the web page and thus will not further increase the load of the server with additional requests. The server will hence eventually recover from the overload condition.
  • HTTP Hypertext Transfer Protocol
  • a transparent proxy server such as, e.g., an HTTP cache
  • HTTP cache is commonly arranged in a communication path between a client/user and an HTTP server with which the client wishes to communicate.
  • the purpose of the cache is to enhance user experience through the faster and better responses it can provide.
  • the cache is transparent to the user who is unaware of the fact that he/she is
  • the HTTP proxy communicating with an intermediary node, the HTTP proxy, and not the server actually providing the resource.
  • the HTTP cache in any way breaks the client's access to the server's response, such as for instance sending the 503 status code to the user due to HTTP cache overload, it negatively affects user experience, which is undesirable.
  • the transparent proxy ends up overloaded and starts to return 503 responses, or worse starts to reject new connections altogether, the user's quality of experience (QoE) will be severely impacted as he/she not only is deprived of the enhanced QoE that the transparent proxy was expected to deliver, but ultimately is not serviced at all.
  • QoE quality of experience
  • An object of the present invention is to solve, or at least mitigate, this problem in the art and to provide an improved way of providing a resource in a communications network.
  • This object is attained in a first aspect of the present invention by a method of a transparent proxy in a communications network.
  • the method comprises receiving from a client a request for a resource provided by a server, and determining whether the proxy is overloaded. If so, the request is forwarded to a server; if not, the requested resource is provided to the client.
  • the object is attained in a second aspect of the present invention by a transparent proxy.
  • the proxy comprises a processor and a memory
  • the proxy is thereby operative to receive from a client a request for a resource provided by a server, and determine whether the proxy is overloaded. If so, the proxy is operative to forward the request to the server. If not, the proxy is operative to provide the requested resource to the client.
  • an intermediary network node receives from a client a request for a resource provided by a server, for instance a request to retrieve a particular web page.
  • the proxy determines that an overload situation is present, the proxy will forward the request for the resource to the server, which will provide the requested resource to the client. If it is determined that no overload situation is present at the proxy, the proxy will provide the requested resource on behalf of the server.
  • the proxy either fetches the web page from its cache, or turns to the server for the web page, and provides the requested web page to the client.
  • the proxy will either fetch the resource from its cache or turn to the server for the requested resource and
  • the proxy will advantageously act as a router, and forward the request to the server, which in its turn will provide the requested resource to the client via the routing proxy.
  • the proxy will advantageously be completely transparent to the client in that no error messages are sent from the proxy to the client and delivery of a requested resource is not discontinued at the proxy in an overload situation.
  • the proxy determines whether an overload situation is present by evaluating any one, or a combination, of at least one of a number of measures reflecting a load of the proxy, such as a number received requests for a resource at the proxy, a number of pending requests for a resource at the proxy, a current processing load of the proxy, a frequency of received requests for a resource at the proxy, and an average response time of the proxy. For instance, the proxy may determine whether an overloaded situation is present by means of comparing the number of received requests with a predetermined threshold request value. If the number of incoming requests to the proxy exceeds the predetermined threshold value, the proxy determines that an overload situation has occurred (or will occur, should another specified number of requests be received).
  • a number of measures reflecting a load of the proxy such as a number received requests for a resource at the proxy, a number of pending requests for a resource at the proxy, a current processing load of the proxy, a frequency of received requests for a resource at the proxy, and an average response time of the proxy.
  • the proxy determines that an immediate overload situation has arisen, or that an overload situation is soon to occur, should the requests continue to arrive. It maybe advantageous to provide some overload margin at the proxy such that requests can be forwarded to the server to which the request relates. This avoids a situation where the proxy is so overloaded that it cannot forward the requests to the server. Further embodiments of the present invention will be illustrated and discussed in the detailed description herein below.
  • Figure l illustrates a communications network in which the present invention may be implemented
  • Figure 2a illustrates a transparent proxy according to an embodiment of the present invention
  • Figure 2b illustrates a flowchart of a method of a transparent proxy according to an embodiment of the present invention
  • Figure 3 illustrates a proxy according to an embodiment of the present invention
  • FIG. 4a illustrates an embodiment of the present invention
  • Figure 4b illustrates a further embodiment of the present invention.
  • Figure 4c illustrates yet a further embodiment of the present invention.
  • FIG l illustrates a communications network in which the present invention may be implemented.
  • the communications network comprises a client io, a server n providing resources, and a transparent proxy 12.
  • the client 10 is a network node typically embodied in the form of user equipment (UE) such as a mobile phone, a personal digital assistant (PDA), a smart phone, a tablet, a laptop, a media player, etc.
  • UE user equipment
  • PDA personal digital assistant
  • smart phone a tablet, a laptop, a media player, etc.
  • a user at the client 10 browses a web site of a newspaper and requests a particular web page provided by the server 11.
  • the client 10 is directed to the proxy 12 which provides the requested resource in the form of the particular web page is provided.
  • the proxy 12 may provide the resource either by fetching the web page from a local cache or by turning to the server 11 for the requested resource, receiving the resource, and providing the resource to the client 10.
  • the purpose of the proxy is to enhance user experience through the faster and better responses it can provide.
  • the proxy is transparent to the user in that the user does not know (or cares) that he/ she is communicating with the proxy 12 rather than with the server 11.
  • An example of a proxy is a caching proxy which speeds up service requests of clients by retrieving requested resources from a local cache, i.e., resources which were saved from a previous request made by the same client or even other clients.
  • caching proxies advantageously store copies of frequently requested resources, allowing reduction of client bandwidth usage (typically a great number of clients are routed via the caching proxy, such as, e.g., all users in a larger enterprise), while increasing performance.
  • FIGS. 2a and 2b respectively illustrate a transparent proxy 12 according to an embodiment of the present invention, and a flowchart of a method of a transparent proxy in a communications network according to an embodiment of the present invention.
  • the method at the proxy 12 is performed by a processor 15 embodied in the form of one or more microprocessors arranged to execute a computer program 17 downloaded to a suitable storage medium 16 associated with the microprocessor, such as a Random Access Memory (RAM), a Flash memory or a hard disk drive.
  • the processor 15 is arranged to at least partly carry out the method according to embodiments of the present invention when the appropriate computer program 17 comprising computer- executable instructions is downloaded to the storage medium 16 and executed by the processor 15.
  • the storage medium 16 may also be a computer program product comprising the computer program 17.
  • the computer program 17 may be transferred to the storage medium 16 by means of a suitable computer program product, such as a floppy disk or a memory stick.
  • the computer program 17 may be downloaded to the storage medium 16 over a network.
  • the processor 15 may alternatively be embodied in the form of an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), a digital signal processor (DSP), etc.
  • ASIC application specific integrated circuit
  • FPGA field-programmable gate array
  • CPLD complex programmable logic device
  • DSP digital signal processor
  • the proxy 12 will advantageously be completely transparent to the client 10 in that no error messages are sent from the proxy to the client and delivery of a requested resource is not discontinued at the proxy 12. If the proxy 12 is overloaded, it will forward the requests to the server 11 which will service the client 10 as requested. Once the overload situation is resolved, the proxy 12 can again provide the requested resources to the client 10. This will be described in the following in more detail.
  • the currently pending request for a resource from the client 10 in step S101 is serviced by the proxy 12 in step S104, regardless of whether the proxy 12 in step 102 determines whether an overload situation is present, while any further requests received at the proxy 12 are forwarded S103 to the server 11 such that the server 11 can provide said further requested resources to the client 10. Once the overload situation is resolved, the proxy 12 can again provide requested resources to the client 10.
  • FIG. 3 shows a transparent proxy 12 according to an embodiment of the present invention.
  • the proxy 12 comprises receiving means 21 adapted to receive, from a client, a request for a resource provided by a server, and determining means 22 adapted to determine whether the proxy 12 is overloaded.
  • the receiving means 21 may comprise a communications interface for receiving and transmitting messages to the client, and/or for receiving and transmitting messages to other devices, such as the server 11.
  • the proxy 12 comprises forwarding means 23 adapted to forward the request to the server 11 in case the proxy 12 is overloaded.
  • the forwarding means 23 may comprise a communications interface for receiving and transmitting messages to the server 11, and/or for receiving and transmitting messages to other devices, such as the server 11.
  • the proxy 12 comprises providing means 24 adapted to provide the requested resource to the client 10.
  • the providing means 24 may comprise a communications interface, or share communications interface with the receiving means 21.
  • the providing means 24 may further comprise a local storage for caching data.
  • the receiving means 21, determining means 22, forwarding means 23 and providing means 24, may (in analogy with the description given in connection to Figures 2a and b) be implemented by a processor embodied in the form of one or more microprocessors arranged to execute a computer program downloaded to a suitable storage medium associated with the microprocessor, such as a RAM, a Flash memory or a hard disk drive.
  • the receiving means 21, forwarding means 23 and providing means 24 may comprise one or more transmitters and/ or receivers and/ or transceivers, comprising analogue and digital components and a suitable antenna for radio communication
  • the processor 15 of the proxy 12 is arranged to carry out the method according to embodiments of the present invention when the appropriate computer program comprising computer-executable instructions is
  • the storage medium may also be a computer program product comprising the computer program.
  • the computer program may be transferred to the storage medium by means of a suitable computer program product, such as a floppy disk or a memory stick.
  • the computer program may be downloaded to the storage medium over a network, e.g., the communications network in which the proxy 12 is deployed.
  • the processor may alternatively be embodied in the form of an ASIC, an FPGA, a CPLD, a DSP, etc.
  • the processor 15 executing an appropriate computer program 17 is configured to receive a request for a resource and either 1) forward received data packets to their intended remote destination, i.e., the server 11, i.e., act as a router, or 2) intercept these packets, establish a Transmission Control Protocol (TCP) connection, and place the received data packets in an accept queue which a proxy application subsequently fetches requests from.
  • TCP Transmission Control Protocol
  • the proxy 12 is configured to be set in one of two modes depending on whether an overload situation is present at the proxy or not.
  • the processor 15 is configured to operate in a first mode, referred to as non-overload mode, if there is no overload.
  • the processor 15 enters a second mode, also referred to as overload mode, and forwards received packets in a manner similar to a router, as discussed hereinbefore.
  • overload mode also referred to as overload mode
  • FIG 4a illustrates an embodiment of the present invention, when the proxy 12 is in overload mode.
  • a TCP connection is established by the client 10 sending a SYN ("SYNchronize") packet to the proxy in step 300. Since it is determined that the proxy is overloaded, the proxy will act as a router. Thus, the proxy will send each data packet onwards (by looking at its destination header), illustrated by the SYN packet being forwarded to the server from the proxy.
  • SYNchronize SYN
  • the server In response to receiving the SYN packet, the server sends in step 301 a SYN ACK ("SYNchronize ACKnowledgement") packet to the client via the proxy, again acting as a router, wherein the client in step 302 sends an ACK (“ACKnowledgement”) packet to the server via the proxy.
  • SYN ACK SYNchronize ACKnowledgement
  • payload data in an appropriate form defining the request for the resource is sent by the client in step 303 and received by the overloaded proxy 12, which in overload mode forwards the request to the server 11.
  • the request of the client may be to access a particular web page.
  • the server 11 responds by providing the requested resource to the client 10 in step 304 via the proxy 12 acting as a router.
  • the client sends a FIN ("FINal") packet to the server in step 305 via the proxy
  • the server replies with sending a FIN ACK ("FINal ACKnowledgement") packet to the client via the proxy in step 306, wherein the client in step 307 responds with an ACK (“ACKnowledgement”) packet terminating the TCP connection.
  • FIN FIN
  • ACKnowledgement ACKnowledgement
  • a TCP connection is established by the client 10 sending a SYN packet to the proxy in step 400. Since it is determined that the proxy not is overloaded, the proxy no longer acts as a router and will reply to the SYN packet with a SYN ACK packet in step 401, wherein the client in step 402 sends an ACK packet to the server via the proxy.
  • the TCP connection between the client and the proxy is thus established.
  • the proxy 12 will no longer act as a router, but further provide a requested resource to the client 10 via the connection established in steps 400-402. Consequently, in step 403, the proxy will interpret the payload data of the request to determine if it immediately can service the client.
  • the particular web page requested by the client is not in the cache of the proxy, implying that the proxy must turn to the server 11 for the requested resource and thus establish a TCP connection between itself and the server.
  • the proxy sends a SYN packet to the server in step 404, the server replies with a SYN ACK packet in step 405, and the proxy sends in step 406 an ACK packet to the server, wherein the TCP connection between the proxy and the server is established, and the proxy acquires the resource from the server in step 407.
  • the server 11 will reply to the proxy in step 408 by providing the requested resource (i.e., the previously mentioned web page) to the proxy, which in its turn will provide the web page to the client in step 409.
  • the requested resource i.e., the previously mentioned web page
  • the TCP connections can be terminated.
  • the client will hence send a FIN packet to the proxy in step 410 via the proxy, the proxy replies with sending a FIN ACK packet to the client in step 411, wherein the client in step 412 responds with an ACK packet terminating the TCP connection between the client and the proxy.
  • the client will terminate the TCP connection to the server by sending a FIN packet to the server in step 413, the server replies with a FIN ACK packet in step 414, wherein the proxy in step 415 responds with an ACK packet terminating the TCP connection between the proxy and the server.
  • TCP connection setup steps 404-406 is omitted since a TCP connection between the proxy and the server already is established.
  • FIG 4c illustrates an embodiment of the present invention, when the proxy is in non-overload mode, but the requested resource has been cached at the proxy. This may, for instance, be the case if a further client would request the same particular web page.
  • a TCP connection is established by the client 10 sending a SYN packet to the proxy 12 in step 500. Since it is determined that the proxy is not overloaded, the proxy no longer acts as a router and will reply to the SYN packet with a SYN ACK packet in step 501, wherein the client in step 502 sends an ACK packet to the server via the proxy. The TCP connection between the client and the proxy is thus established.
  • the proxy interprets the payload data of the request to determine which action to take.
  • the particular web page requested by the client 10 is located in the cache of the proxy 12, implying that the proxy need not turn to the server 11 for the requested resource.
  • no TCP connection is established between the proxy and the server.
  • the proxy 12 will subsequently reply to the client request by providing the requested web page in step 504. After the requested resource has been provided to the client by the proxy, the TCP connections can be terminated.
  • the client will hence send a FIN packet to the proxy in step 505 via the proxy, the proxy replies with sending a FIN ACK packet to the client in step 506, wherein the client in step 507 responds with an ACK packet terminating the TCP connection between the client and the proxy.
  • the receiving of the current SYN packet may be the event which triggers the proxy to immediately enter the overload mode, forwarding the currently pending request to the server 11 by the proxy acting as a router as illustrated in Figure 4a.
  • the SYN packet is received and the process continues as in either Figure 4b and 4c, wherein the proxy provides the requested resource to the client 10 and subsequently enters the overload mode, in which scenario subsequently received requests will be forwarded to the server by the proxy acting as a router as illustrated in Figure 4a.
  • a corresponding reasoning can be made for a scenario when the proxy 12 is in overload mode and receives a SYN packet.
  • the processor 15 at the proxy 12 determines whether it is, or is to be, overloaded by means of comparing the number of received requests for a resource with a predetermined threshold request value. If the number of incoming requests to the proxy 12 exceeds the predetermined threshold value, the processor 15 determines that an overload situation has occurred, or is likely to occur. To avoid rapid switching between the overload mode and the non-overload mode, hysteresis may be used. That is, a first threshold value may be used to determine whether proxy is overloaded, while a second, lower threshold value may be used to determine whether the proxy should exit the overload mode and thus enter the non-overload mode.
  • the processor 15 determines its current processing load, and if the load exceeds a processing load threshold value, say 90 %, it will forward the requests from the proxy 12 to the remote server 11 such that the client 10 can be serviced as requested by the server 11. It can be envisaged that a combination of number of received requests and processor load is considered when determining overload. It should further be noted that the degree of overload corresponding to a determined overload situation at the proxy 12 may vary depending on the particular
  • processing load of the processor 15 is used as a measure of overload, one implementation may determine that an overload situation is present at a processing load of e.g. 70 %, while another implementation may determine that an overload situation is present at a processing load of for instance 90 %, If it is determined by the processor 15 that the proxy 12 is capable of providing the requested resource, a local application is performed at the proxy 12 for executing the requested resource, as previously discussed, such as providing to the client 10 a requested web page which previously has been fetched at the destination server 11 and stored as a local copy at the proxy 12 such that the request for a resource can be accelerated.
  • a local application is performed at the proxy 12 for executing the requested resource, as previously discussed, such as providing to the client 10 a requested web page which previously has been fetched at the destination server 11 and stored as a local copy at the proxy 12 such that the request for a resource can be accelerated.
  • the processor 15 determines that an overload situation no longer is present at the proxy 12, it stops forwarding of requests to the server 11 in step S103 and resumes the servicing of the client 10 as illustrated by step S104.
  • the processor in response to determining that the proxy 12 is overloaded, sets an overload status indicator indicating that the proxy is overloaded.
  • the processor sets the overload status indicator indicating that the proxy is not overloaded, in order for the proxy 12 to advantageously keep track of the current mode.

Abstract

The present invention relates to a method of a transparent proxy (12) in a communications network. The method comprises receiving a request for a resource from a client (10), and determining whether the proxy is overloaded. If so, the request is forwarded to a server(11); if not, the requested resource is provided. The present invention further relates to a proxy (12) operative to perform the method.

Description

A TRANSPARENT PROXY IN A COMMUNICATIONS NETWORK
TECHNICAL FIELD
The invention relates to a transparent proxy for a communications network, a method of a transparent proxy in a communications network, and
corresponding computer program/ computer program product.
BACKGROUND
A current approach for overload protection of a provider of a resource typically includes detecting that an overload situation exists and answering new requests to the provider of the resource with an appropriate Hypertext Transfer Protocol (HTTP) response status code. For instance, if a user requests access to a web page of a newspaper, and a server on which the webpage is located currently is overloaded, the server will reply with status code 503: "Service Unavailable, please try again later". This is helpful for the user for informational purposes, and may also have the auspicious effect that the user will not continue (at least not immediately) sending requests for the web page and thus will not further increase the load of the server with additional requests. The server will hence eventually recover from the overload condition.
The current approach of handling an overload situation presents a problem for systems providing a resource in a manner which is expected to be transparent to the user. For instance, a transparent proxy server, such as, e.g., an HTTP cache, is commonly arranged in a communication path between a client/user and an HTTP server with which the client wishes to communicate. The purpose of the cache is to enhance user experience through the faster and better responses it can provide. The cache is transparent to the user who is unaware of the fact that he/she is
communicating with an intermediary node, the HTTP proxy, and not the server actually providing the resource. If the HTTP cache in any way breaks the client's access to the server's response, such as for instance sending the 503 status code to the user due to HTTP cache overload, it negatively affects user experience, which is undesirable. If the transparent proxy ends up overloaded and starts to return 503 responses, or worse starts to reject new connections altogether, the user's quality of experience (QoE) will be severely impacted as he/she not only is deprived of the enhanced QoE that the transparent proxy was expected to deliver, but ultimately is not serviced at all.
SUMMARY
An object of the present invention is to solve, or at least mitigate, this problem in the art and to provide an improved way of providing a resource in a communications network. This object is attained in a first aspect of the present invention by a method of a transparent proxy in a communications network. The method comprises receiving from a client a request for a resource provided by a server, and determining whether the proxy is overloaded. If so, the request is forwarded to a server; if not, the requested resource is provided to the client. The object is attained in a second aspect of the present invention by a transparent proxy. The proxy comprises a processor and a memory
containing instructions executable by the processor. The proxy is thereby operative to receive from a client a request for a resource provided by a server, and determine whether the proxy is overloaded. If so, the proxy is operative to forward the request to the server. If not, the proxy is operative to provide the requested resource to the client.
Advantageously, with the present invention, an intermediary network node, such as a transparent proxy, receives from a client a request for a resource provided by a server, for instance a request to retrieve a particular web page. In case the proxy determines that an overload situation is present, the proxy will forward the request for the resource to the server, which will provide the requested resource to the client. If it is determined that no overload situation is present at the proxy, the proxy will provide the requested resource on behalf of the server. Thus, in case of the previously mentioned web page, the proxy either fetches the web page from its cache, or turns to the server for the web page, and provides the requested web page to the client.
In case there is no proxy overload, the proxy will either fetch the resource from its cache or turn to the server for the requested resource and
subsequently provide the resource to the client. In case the proxy is overloaded, the proxy will advantageously act as a router, and forward the request to the server, which in its turn will provide the requested resource to the client via the routing proxy.
Thus, the proxy will advantageously be completely transparent to the client in that no error messages are sent from the proxy to the client and delivery of a requested resource is not discontinued at the proxy in an overload situation.
In embodiments of the present invention, the proxy determines whether an overload situation is present by evaluating any one, or a combination, of at least one of a number of measures reflecting a load of the proxy, such as a number received requests for a resource at the proxy, a number of pending requests for a resource at the proxy, a current processing load of the proxy, a frequency of received requests for a resource at the proxy, and an average response time of the proxy. For instance, the proxy may determine whether an overloaded situation is present by means of comparing the number of received requests with a predetermined threshold request value. If the number of incoming requests to the proxy exceeds the predetermined threshold value, the proxy determines that an overload situation has occurred (or will occur, should another specified number of requests be received). Thus, the proxy determines that an immediate overload situation has arisen, or that an overload situation is soon to occur, should the requests continue to arrive. It maybe advantageous to provide some overload margin at the proxy such that requests can be forwarded to the server to which the request relates. This avoids a situation where the proxy is so overloaded that it cannot forward the requests to the server. Further embodiments of the present invention will be illustrated and discussed in the detailed description herein below.
Generally, all terms used in the claims are to be interpreted according to their ordinary meaning in the technical field, unless explicitly defined otherwise herein. All references to "a/an/the element, apparatus, component, means, step, etc." are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any method disclosed herein do not have to be performed in the exact order disclosed, unless explicitly stated. BRIEF DESCRIPTION OF THE DRAWINGS
The invention is now described, by way of example, with reference to the accompanying drawings, in which:
Figure l illustrates a communications network in which the present invention may be implemented; Figure 2a illustrates a transparent proxy according to an embodiment of the present invention;
Figure 2b illustrates a flowchart of a method of a transparent proxy according to an embodiment of the present invention;
Figure 3 illustrates a proxy according to an embodiment of the present invention;
Figure 4a illustrates an embodiment of the present invention;
Figure 4b illustrates a further embodiment of the present invention; and
Figure 4c illustrates yet a further embodiment of the present invention.
DETAILED DESCRIPTION
The invention will now be described more fully hereinafter with reference to the accompanying drawings, in which certain embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout the description.
Figure l illustrates a communications network in which the present invention may be implemented. The communications network comprises a client io, a server n providing resources, and a transparent proxy 12. The client 10 is a network node typically embodied in the form of user equipment (UE) such as a mobile phone, a personal digital assistant (PDA), a smart phone, a tablet, a laptop, a media player, etc.
For instance, a user at the client 10 browses a web site of a newspaper and requests a particular web page provided by the server 11. The client 10 is directed to the proxy 12 which provides the requested resource in the form of the particular web page is provided. The proxy 12 may provide the resource either by fetching the web page from a local cache or by turning to the server 11 for the requested resource, receiving the resource, and providing the resource to the client 10. The purpose of the proxy is to enhance user experience through the faster and better responses it can provide. The proxy is transparent to the user in that the user does not know (or cares) that he/ she is communicating with the proxy 12 rather than with the server 11.
An example of a proxy is a caching proxy which speeds up service requests of clients by retrieving requested resources from a local cache, i.e., resources which were saved from a previous request made by the same client or even other clients. Thus, caching proxies advantageously store copies of frequently requested resources, allowing reduction of client bandwidth usage (typically a great number of clients are routed via the caching proxy, such as, e.g., all users in a larger enterprise), while increasing performance.
However, a caching proxy as is known in the art, and which is unable to handle a request of the client 10 due to overload, will reply to the client 10 with HTTP response status code 503: "Service Unavailable, please try again later", and deny the resource requested by the user, which is an undesirable behaviour. With the present invention, this problem is overcome by an improved proxy 12 for providing a resource requested by the client 10. Figures 2a and 2b respectively illustrate a transparent proxy 12 according to an embodiment of the present invention, and a flowchart of a method of a transparent proxy in a communications network according to an embodiment of the present invention. The method at the proxy 12 is performed by a processor 15 embodied in the form of one or more microprocessors arranged to execute a computer program 17 downloaded to a suitable storage medium 16 associated with the microprocessor, such as a Random Access Memory (RAM), a Flash memory or a hard disk drive. The processor 15 is arranged to at least partly carry out the method according to embodiments of the present invention when the appropriate computer program 17 comprising computer- executable instructions is downloaded to the storage medium 16 and executed by the processor 15. The storage medium 16 may also be a computer program product comprising the computer program 17. Alternatively, the computer program 17 may be transferred to the storage medium 16 by means of a suitable computer program product, such as a floppy disk or a memory stick. As a further alternative, the computer program 17 may be downloaded to the storage medium 16 over a network. The processor 15 may alternatively be embodied in the form of an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), a digital signal processor (DSP), etc. Thus, with reference to Figures 2a and 2b, the processor 15 at the proxy 12 receives in step S101 from a client 10 a request for a resource provided by a server 11. Upon receiving the request, the processor 15 determines in step S102 whether an overload situation is present at the proxy 12. If so, the proxy acts as a router, and the request is forwarded to the server 11 in step S103 which subsequently will provide the requested resource to the client in step S105. If no overload situation is present, the requested resource is provided by the proxy 12 in step S104. Hence, with the present invention, the proxy 12 will advantageously be completely transparent to the client 10 in that no error messages are sent from the proxy to the client and delivery of a requested resource is not discontinued at the proxy 12. If the proxy 12 is overloaded, it will forward the requests to the server 11 which will service the client 10 as requested. Once the overload situation is resolved, the proxy 12 can again provide the requested resources to the client 10. This will be described in the following in more detail.
As previously discussed, in an alternative embodiment of the present invention the currently pending request for a resource from the client 10 in step S101 is serviced by the proxy 12 in step S104, regardless of whether the proxy 12 in step 102 determines whether an overload situation is present, while any further requests received at the proxy 12 are forwarded S103 to the server 11 such that the server 11 can provide said further requested resources to the client 10. Once the overload situation is resolved, the proxy 12 can again provide requested resources to the client 10.
Figure 3 shows a transparent proxy 12 according to an embodiment of the present invention. The proxy 12 comprises receiving means 21 adapted to receive, from a client, a request for a resource provided by a server, and determining means 22 adapted to determine whether the proxy 12 is overloaded. The receiving means 21 may comprise a communications interface for receiving and transmitting messages to the client, and/or for receiving and transmitting messages to other devices, such as the server 11. Further, the proxy 12 comprises forwarding means 23 adapted to forward the request to the server 11 in case the proxy 12 is overloaded. The forwarding means 23 may comprise a communications interface for receiving and transmitting messages to the server 11, and/or for receiving and transmitting messages to other devices, such as the server 11. Moreover, the proxy 12 comprises providing means 24 adapted to provide the requested resource to the client 10. The providing means 24 may comprise a communications interface, or share communications interface with the receiving means 21. The providing means 24 may further comprise a local storage for caching data. The receiving means 21, determining means 22, forwarding means 23 and providing means 24, may (in analogy with the description given in connection to Figures 2a and b) be implemented by a processor embodied in the form of one or more microprocessors arranged to execute a computer program downloaded to a suitable storage medium associated with the microprocessor, such as a RAM, a Flash memory or a hard disk drive. The receiving means 21, forwarding means 23 and providing means 24 may comprise one or more transmitters and/ or receivers and/ or transceivers, comprising analogue and digital components and a suitable antenna for radio communication The processor 15 of the proxy 12 is arranged to carry out the method according to embodiments of the present invention when the appropriate computer program comprising computer-executable instructions is
downloaded to the storage medium 16 and executed by the processor 15. The storage medium may also be a computer program product comprising the computer program. Alternatively, the computer program may be transferred to the storage medium by means of a suitable computer program product, such as a floppy disk or a memory stick. As a further alternative, the computer program may be downloaded to the storage medium over a network, e.g., the communications network in which the proxy 12 is deployed. The processor may alternatively be embodied in the form of an ASIC, an FPGA, a CPLD, a DSP, etc.
In more detail, the processor 15 executing an appropriate computer program 17 is configured to receive a request for a resource and either 1) forward received data packets to their intended remote destination, i.e., the server 11, i.e., act as a router, or 2) intercept these packets, establish a Transmission Control Protocol (TCP) connection, and place the received data packets in an accept queue which a proxy application subsequently fetches requests from.
Thus, the proxy 12 is configured to be set in one of two modes depending on whether an overload situation is present at the proxy or not. Normally, the processor 15 is configured to operate in a first mode, referred to as non-overload mode, if there is no overload. Upon overload, the processor 15 enters a second mode, also referred to as overload mode, and forwards received packets in a manner similar to a router, as discussed hereinbefore. Once it is determined that no overload situation is present at the proxy 12, the proxy will leave the overload mode and enter the non- overload and provide the requested resource.
Figure 4a illustrates an embodiment of the present invention, when the proxy 12 is in overload mode. When a request for a resource is made, a TCP connection is established by the client 10 sending a SYN ("SYNchronize") packet to the proxy in step 300. Since it is determined that the proxy is overloaded, the proxy will act as a router. Thus, the proxy will send each data packet onwards (by looking at its destination header), illustrated by the SYN packet being forwarded to the server from the proxy. In response to receiving the SYN packet, the server sends in step 301 a SYN ACK ("SYNchronize ACKnowledgement") packet to the client via the proxy, again acting as a router, wherein the client in step 302 sends an ACK ("ACKnowledgement") packet to the server via the proxy. The TCP connection is thus established.
Thereafter, payload data in an appropriate form defining the request for the resource is sent by the client in step 303 and received by the overloaded proxy 12, which in overload mode forwards the request to the server 11. As previously has been described, the request of the client may be to access a particular web page.
The server 11 responds by providing the requested resource to the client 10 in step 304 via the proxy 12 acting as a router. Finally, when the TCP connection is to be terminated, the client sends a FIN ("FINal") packet to the server in step 305 via the proxy, the server replies with sending a FIN ACK ("FINal ACKnowledgement") packet to the client via the proxy in step 306, wherein the client in step 307 responds with an ACK ("ACKnowledgement") packet terminating the TCP connection. This is an inexpensive method to use in periods of proxy overload. Figure 4b illustrates an embodiment of the present invention, when the proxy 12 is set in non-overload mode, but where the requested resource has not yet been cached at the proxy (or if the requested resource is noncacheable). As in the case of Figure 4a, when a request for a resource is made, a TCP connection is established by the client 10 sending a SYN packet to the proxy in step 400. Since it is determined that the proxy not is overloaded, the proxy no longer acts as a router and will reply to the SYN packet with a SYN ACK packet in step 401, wherein the client in step 402 sends an ACK packet to the server via the proxy. The TCP connection between the client and the proxy is thus established.
In non-overload mode, the proxy 12 will no longer act as a router, but further provide a requested resource to the client 10 via the connection established in steps 400-402. Consequently, in step 403, the proxy will interpret the payload data of the request to determine if it immediately can service the client. In this particular exemplifying embodiment, the particular web page requested by the client is not in the cache of the proxy, implying that the proxy must turn to the server 11 for the requested resource and thus establish a TCP connection between itself and the server. Hence, the proxy sends a SYN packet to the server in step 404, the server replies with a SYN ACK packet in step 405, and the proxy sends in step 406 an ACK packet to the server, wherein the TCP connection between the proxy and the server is established, and the proxy acquires the resource from the server in step 407.
The server 11 will reply to the proxy in step 408 by providing the requested resource (i.e., the previously mentioned web page) to the proxy, which in its turn will provide the web page to the client in step 409. After the requested resource has been provided to the client by the proxy, the TCP connections can be terminated. The client will hence send a FIN packet to the proxy in step 410 via the proxy, the proxy replies with sending a FIN ACK packet to the client in step 411, wherein the client in step 412 responds with an ACK packet terminating the TCP connection between the client and the proxy. Similarly, the client will terminate the TCP connection to the server by sending a FIN packet to the server in step 413, the server replies with a FIN ACK packet in step 414, wherein the proxy in step 415 responds with an ACK packet terminating the TCP connection between the proxy and the server.
It should be noted that an already established TCP connection between the proxy and the server could be reused. In that case, the TCP connection setup steps 404-406 is omitted since a TCP connection between the proxy and the server already is established.
Figure 4c illustrates an embodiment of the present invention, when the proxy is in non-overload mode, but the requested resource has been cached at the proxy. This may, for instance, be the case if a further client would request the same particular web page. As in Figures 4a and b, when a request for a resource is made, a TCP connection is established by the client 10 sending a SYN packet to the proxy 12 in step 500. Since it is determined that the proxy is not overloaded, the proxy no longer acts as a router and will reply to the SYN packet with a SYN ACK packet in step 501, wherein the client in step 502 sends an ACK packet to the server via the proxy. The TCP connection between the client and the proxy is thus established.
In step 503, the proxy interprets the payload data of the request to determine which action to take. In this particular exemplifying embodiment, the particular web page requested by the client 10 is located in the cache of the proxy 12, implying that the proxy need not turn to the server 11 for the requested resource. Thus, in contrast to the procedure illustrated with reference to Figure 4b, no TCP connection is established between the proxy and the server. The proxy 12 will subsequently reply to the client request by providing the requested web page in step 504. After the requested resource has been provided to the client by the proxy, the TCP connections can be terminated. The client will hence send a FIN packet to the proxy in step 505 via the proxy, the proxy replies with sending a FIN ACK packet to the client in step 506, wherein the client in step 507 responds with an ACK packet terminating the TCP connection between the client and the proxy. In this context, with reference to Figures 4a-c, it should be noted that when the request from a resource is received by the proxy 12 when in non-overload mode, the receiving of the current SYN packet may be the event which triggers the proxy to immediately enter the overload mode, forwarding the currently pending request to the server 11 by the proxy acting as a router as illustrated in Figure 4a. Alternatively, the SYN packet is received and the process continues as in either Figure 4b and 4c, wherein the proxy provides the requested resource to the client 10 and subsequently enters the overload mode, in which scenario subsequently received requests will be forwarded to the server by the proxy acting as a router as illustrated in Figure 4a. A corresponding reasoning can be made for a scenario when the proxy 12 is in overload mode and receives a SYN packet.
It should further be noted with reference to Figures 4a-c that, once a TCP connection is established at the client 10, a plurality of requests 303, 403, 503 can be sent from the client before the TCP connection is terminated, and not just a single request as is illustrated in Figures 4a-c.
In an embodiment, the processor 15 at the proxy 12 determines whether it is, or is to be, overloaded by means of comparing the number of received requests for a resource with a predetermined threshold request value. If the number of incoming requests to the proxy 12 exceeds the predetermined threshold value, the processor 15 determines that an overload situation has occurred, or is likely to occur. To avoid rapid switching between the overload mode and the non-overload mode, hysteresis may be used. That is, a first threshold value may be used to determine whether proxy is overloaded, while a second, lower threshold value may be used to determine whether the proxy should exit the overload mode and thus enter the non-overload mode.
In an alternative embodiment, the processor 15 determines its current processing load, and if the load exceeds a processing load threshold value, say 90 %, it will forward the requests from the proxy 12 to the remote server 11 such that the client 10 can be serviced as requested by the server 11. It can be envisaged that a combination of number of received requests and processor load is considered when determining overload. It should further be noted that the degree of overload corresponding to a determined overload situation at the proxy 12 may vary depending on the particular
implementation. For instance if processing load of the processor 15 is used as a measure of overload, one implementation may determine that an overload situation is present at a processing load of e.g. 70 %, while another implementation may determine that an overload situation is present at a processing load of for instance 90 %, If it is determined by the processor 15 that the proxy 12 is capable of providing the requested resource, a local application is performed at the proxy 12 for executing the requested resource, as previously discussed, such as providing to the client 10 a requested web page which previously has been fetched at the destination server 11 and stored as a local copy at the proxy 12 such that the request for a resource can be accelerated.
It is to be noted that as soon as the processor 15 determines that an overload situation no longer is present at the proxy 12, it stops forwarding of requests to the server 11 in step S103 and resumes the servicing of the client 10 as illustrated by step S104. In an embodiment of the present invention, in response to determining that the proxy 12 is overloaded, the processor sets an overload status indicator indicating that the proxy is overloaded. Correspondingly, in response to determining that the proxy 12 is not overloaded, the processor sets the overload status indicator indicating that the proxy is not overloaded, in order for the proxy 12 to advantageously keep track of the current mode.
The invention has mainly been described above with reference to a few embodiments. However, as is readily appreciated by a person skilled in the art, other embodiments than the ones disclosed above are equally possible within the scope of the invention, as defined by the appended patent claims.

Claims

1. A method of a transparent proxy in a communications network, the method comprising:
receiving from a client a request for a resource provided by a server (S101);
determining whether the proxy is overloaded (S102), and if so;
forwarding the request to the server (S103), or else;
providing the requested resource to the client (S104).
2. The method according to claim 1, further comprising:
evaluating at least one measure reflecting a load of the proxy, and determining that the proxy is overloaded if the at least one measure exceeds a threshold value.
3. The method according to claim 2, wherein the at least one evaluated measure comprises any one, or a combination, of at least one of a number of received requests for a resource at the proxy, a number of pending requests for a resource at the proxy, a current processing load of the proxy, a frequency of received requests for a resource at the proxy, and an average response time of the proxy.
4. The method according to any one of the preceding claims, further comprising:
in response to determining that the proxy is overloaded, entering an overload mode of the proxy.
5. The method according to claim 4, further comprising:
in response to determining that the proxy is not overloaded, leaving the overload mode.
6. The method according to claims 4 or 5, wherein the request is forwarded to the server if the proxy has entered the overload mode.
7. The method according to any one of claims 1 to 3, further comprising: in response to determining that the proxy is overloaded, setting an overload status indicator indicating that the proxy is overloaded.
8. The method according to claim 7, further comprising:
in response to determining that the proxy is not overloaded, setting the overload status indicator indicating that the proxy is not overloaded.
9. The method according to claim 8, wherein the request is forwarded to the server if the overload status indicator indicates that the proxy is overloaded.
10. The method according to any one of the preceding claims, further comprising:
determining whether the proxy is overloaded upon receiving, from the client, a synchronization, SYN, packet, and if so:
routing further transmission control protocol, TCP, connection setup packets between the client and the server to establish a TCP connection between the client and the server on which the request for a resource can be forwarded to the server by the proxy and on which the requested resource can be provided by the server to the client via the proxy.
11. The method according to any one of the preceding claims, further comprising:
determining whether the proxy is overloaded upon receiving, from the client, a synchronization, SYN, packet, and if not:
establishing a TCP connection with the client; and
providing the requested resource to the client via the TCP connection established between the proxy and the client.
12. The method according to claim 11, further comprising:
acquiring the requested resource via an already established TCP connection with the server in case the requested resource is not cached at the proxy. l6
13. The method according to claim 11, further comprising:
establishing a TCP connection with the server, via which the requested resource is acquired in case the requested resource is not cached at the proxy.
14. The method according to claim 11, further comprising:
acquiring the requested resource from a proxy cache.
15. A computer program (17) comprising computer-executable instructions for causing a device (12) to perform at least parts of the steps recited in any one of claims 1-14 when the computer-executable instructions are executed on a processor (15) included in the device.
16. A computer program product comprising a computer readable medium (16), the computer readable medium having the computer program (17) according to claim 15 embodied therein.
17. A transparent proxy (12) for a communications network, the proxy comprising a processor (15) and a memory (16), said memory containing instructions executable by said processor, whereby said proxy is operative to: receiving from a client (10) a request for a resource provided by a server
(11);
determining whether the proxy is overloaded, and if so;
forwarding the request to the server, or else;
providing the requested resource to the client.
18. The transparent proxy (12) according to claim 17, further being operative to:
evaluating at least one measure reflecting a load of the proxy, and determining that the proxy is overloaded if the at least one measure exceeds a threshold value.
19. The transparent proxy (12) according to claim 18, wherein the at least one evaluated measure comprises any one, or a combination, of at least one of a number of received requests for a resource at the proxy, a number of pending requests for a resource at the proxy, a current processing load at the proxy, a frequency of received requests for a resource at the proxy, and an average response time of the proxy.
20. The transparent proxy (12) according to any one of claims 17-19, further being operative to:
in response to determining that it is overloaded, entering an overload mode.
21. The transparent proxy (12) according to claim 20, further being operative to:
in response to determining that it is not overloaded, leaving the overload mode.
22. The transparent proxy (12) according to claims 20 or 21, further being operative to:
forwarding the request to the server (11) if the proxy has entered the overload mode.
23. The transparent proxy (12) according to any one of claims 17 to 19, further being operative to:
in response to determining that it is overloaded, setting an overload status indicator indicating that the proxy is overloaded.
24. The transparent proxy (12) according to claim 23, further being operative to:
in response to determining that it is not overloaded, setting the overload status indicator indicating that the proxy is not overloaded.
25. The transparent proxy (12) according to claim 24, further being operative to:
forwarding the request to the server (11) if the overload status indicator indicates that the proxy is overloaded.
26. The transparent proxy (12) according to any one of claims 17-25, further being operative to:
determining whether the proxy is overloaded upon receiving, from the l8 client (10), a SYN packet, and if so:
routing further TCP connection setup packets between the client and the server (11) to establish a TCP connection between the client and the server on which the request for a resource can be forwarded to the server by the proxy and on which the requested resource can be provided by the server to the client via the proxy.
27. The transparent proxy (12) according to any one of claims 17-25, further being operative to:
determining whether the proxy is overloaded upon receiving, from the client (10), a SYN packet, and if not:
establishing a TCP connection with the client; and
providing the requested resource to the client via the TCP connection established between the proxy and the client.
28. The transparent proxy (12) according to claim 27, further being configured to:
acquiring the requested resource via an already established TCP connection with the server (11) in case the requested resource is not cached at the proxy.
29. The transparent proxy (12) according to claim 27, further being operative to:
establishing a TCP connection with the server (11), via which the requested resource is acquired in case the requested resource is not cached at the proxy.
30. The transparent proxy (12) according to claim 27, further being operative to:
acquiring the requested resource from a proxy cache.
PCT/SE2013/051073 2013-09-16 2013-09-16 A transparent proxy in a communications network WO2015038044A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/SE2013/051073 WO2015038044A1 (en) 2013-09-16 2013-09-16 A transparent proxy in a communications network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SE2013/051073 WO2015038044A1 (en) 2013-09-16 2013-09-16 A transparent proxy in a communications network

Publications (1)

Publication Number Publication Date
WO2015038044A1 true WO2015038044A1 (en) 2015-03-19

Family

ID=49354877

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SE2013/051073 WO2015038044A1 (en) 2013-09-16 2013-09-16 A transparent proxy in a communications network

Country Status (1)

Country Link
WO (1) WO2015038044A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020005566A1 (en) * 2018-06-27 2020-01-02 T-Mobile Usa, Inc. Micro-level network node failover system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020071422A1 (en) * 1998-09-28 2002-06-13 Anthony D. Amicangioli Tagging for demultiplexing in a network traffic server

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020071422A1 (en) * 1998-09-28 2002-06-13 Anthony D. Amicangioli Tagging for demultiplexing in a network traffic server

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
GREG BARISH ET AL: "World Wide Web Caching: Trends and Techniques", IEEE COMMUNICATIONS MAGAZINE, IEEE SERVICE CENTER, PISCATAWAY, US, vol. 38, no. 5, 1 May 2000 (2000-05-01), pages 178 - 185, XP011091295, ISSN: 0163-6804, DOI: 10.1109/35.841844 *
LADIWALA S ET AL: "Transparent TCP acceleration", COMPUTER COMMUNICATIONS, ELSEVIER SCIENCE PUBLISHERS BV, AMSTERDAM, NL, vol. 32, no. 4, 4 March 2009 (2009-03-04), pages 691 - 702, XP025937583, ISSN: 0140-3664, [retrieved on 20081207], DOI: 10.1016/J.COMCOM.2008.11.036 *
QIE X ET AL: "Scheduling computations on a software-based router", ACM SIGMETRICS PERFORMANCE EVALUATION REVIEW, ASSOCIATION FOR COMPUTING MACHINERY, NEW YORK, NY, US, vol. 29, no. 1, 16 June 2001 (2001-06-16), pages 13 - 24, XP002299759, ISSN: 0163-5999, DOI: 10.1145/384268.378425 *
YANG WANG ET AL: "A load balancing model for web cache proxy based on ant colony behavior", MACHINE LEARNING AND CYBERNETICS, 2008 INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 12 July 2008 (2008-07-12), pages 2192 - 2197, XP031318418, ISBN: 978-1-4244-2095-7 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020005566A1 (en) * 2018-06-27 2020-01-02 T-Mobile Usa, Inc. Micro-level network node failover system
US10972588B2 (en) 2018-06-27 2021-04-06 T-Mobile Usa, Inc. Micro-level network node failover system
US11588927B2 (en) 2018-06-27 2023-02-21 T-Mobile Usa, Inc. Micro-level network node failover system

Similar Documents

Publication Publication Date Title
US9641650B2 (en) TCP proxy server
US9094464B1 (en) Connection digest for accelerating web traffic
US20180095818A1 (en) Dynamic and adaptive approach for failure detection of node in a cluster
US9979653B2 (en) System and method of providing improved throughput control under delay-based congestion situation in a network
US8189532B2 (en) Mobile node, a method or handover and a computer program
US8995258B2 (en) Radio communication apparatus and radio communication method for determining relay processing based upon policy information
EP3075110B1 (en) Controlling a transmission control protocol window size
CN106612284B (en) Streaming data transmission method and device
EP3232638B1 (en) Data transmission method, apparatus and system
US20130311614A1 (en) Method for retrieving content and wireless communication device for performing same
US10630530B2 (en) Cache method, cache edge server, cache core server, and cache system
US11290487B2 (en) Method and apparatus for reducing latency of network protocols
US20200296629A1 (en) Back-pressure control in a telecommunications network
WO2017114231A1 (en) Packet sending method, tcp proxy, and tcp client
EP3544332B1 (en) Techniques for scheduling multipath data traffic
CN106471847B (en) Method and apparatus for communicating data communication sessions between radio access networks
US20130250849A1 (en) Method and Apparatus for Efficient Content Delivery in Radio Access Networks
US10405233B2 (en) Enhanced overload protection in a telecommunications network
US20140056136A1 (en) Preventing TCP from becoming too conservative too quickly
US10645003B2 (en) Data packet transmission method, network side device, and user equipment
WO2015038044A1 (en) A transparent proxy in a communications network
KR20170109979A (en) Method and terminal for multi-path transmission
US10015288B2 (en) Communication apparatus and control method of communication apparatus
EP3314970B1 (en) Method and apparatus for managing uplink traffic from a client device in a communication network
US11956328B1 (en) Avoiding stuck subscriber sessions on a disaggregated broadband network gateway

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: 13776591

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13776591

Country of ref document: EP

Kind code of ref document: A1