The invention relates to the field of controlling a window size using Transmission Control Protocol.
The Transmission Control Protocol (TCP) is one of the most commonly used transport protocols in IP-based communication networks, such as the Internet. TCP provides reliability on top of the unreliable IP protocol, in-order delivery of data and a network congestion control mechanism to be outlined later. TCP is the primary end-to-end transport layer protocol in the Internet for non-real time data including data arising from e.g., web browsing, file-downloading and e-mail applications. The TCP layer is above the IP layer, the link layer and the physical layer, and below the application layer.
TCP uses a sliding window protocol to control a rate of sent data. A TCP sending node's window defines what the sender can send, and is based on a TCP receiving node's advertised or offered window (rwnd) and a congestion window (cwnd) calculated by the sender in the congestion control algorithm. The size of the TCP sending node's window is defined as the minimum of the receiver window (rwnd) and the congestion window (cwnd).
When the TCP sending node receives an acknowledgement (ACK) from the TCP receiving node, it can transmit as many new segments as were acknowledged. The new segments move towards the TCP receiving node and they are later acknowledged. The spacing of the ACKs determines the rate at which new packets are sent. This property is known as self-clocking, in which a TCP sending node sends packets to a TCP receiving node, which sends acknowledgements. Congestion is caused by a bigger ‘pipe’ at the TCP sending node feeding a smaller ‘pipe’ on the downlink to the TCP receiving node. The rate at which the packets flow through the downlink is also the rate at which the ACKs are sent back to the sender.
A TCP header is used to carry information about parameters such as window size, packet sequence number, acknowledgement number and so one. There are also options to enhance performance, e.g. a time stamp option giving a Round Trip Time (RTT) estimate, maximum segment size (MSS) and Selective Acknowledgements (SACK). Indications about use of options are in most cases only transmitted during the initial SYN and SYN/ACK phase of a 3-way-handshake performed to establish the TCP connection. The TCP ACKs sent from the TCP receiving node to the TCP sending node contain no data but the header itself (20 bytes), and possible options (max 40 bytes).
An end-point in the network cannot know the true pipe capacity (PC) for the TCP connection; instead it has to probe the PC and to find the bottleneck rate. TCP uses three types of input to determine congestion; An ACK indicates that more bandwidth is available, if a packet is dropped it is indicative of light congestion, and if many packets are dropped or time out, it is indicative of serious congestion. TCP acts on these signals by changing the send window or by starting over with the initial settings (the slow-start mechanism).
Congestion control in TCP uses four main algorithms: slow-start, congestion avoidance, fast-retransmit and fast-recovery algorithms. The slow-start algorithm and the congestion avoidance algorithm are independent algorithms with different objectives, although in practice they are implemented together. The slow start algorithm is specified in RFC 5681, and illustrated in
A problem with the TCP slow start mechanism is that the end user Quality of Experience (QoE) is not optimized initially. This may be a problem depending on the type of data being sent. For example, the congestion avoidance window at the start of a slow start phase may be too small to allow data to be transmitted at a sufficient rate to provide adequate QoE for sending real time video.
A further problem is that when the end user accesses the Internet (or other network) via a mobile network, and conditions in the mobile network are good, the mobile network does not fully utilize its resources as the slow start mechanism limits the initial bit rate of a data stream.
TCP proxies 5 are commonly used, but lead to a further problem with the slow-start mechanism. Each TCP proxy 5 located between the TCP sending node 1 and the TCP receiving node 2 increases the latency of packets, as they take some time to process and forward the packets. WO2004/091151 describes a method for dynamically altering TCP parameters for the congestion avoidance mechanism, but is not concerned with the slow start mechanism.
It is an object to improve an end-user's QoE during the slow start phase. According to a first aspect, there is provided a method of controlling a Transmission Control Protocol (TCP) window size for data sent from a TCP sending node via a mobile network. The TCP sending node receives a TCP request message from a remote node requesting a TCP data stream. The TCP request message includes a parameter relating to any of conditions in the mobile network and the presence of a TCP proxy node. The TCP sending node uses the parameter to determine an initial permissible window size for a TCP slow start mechanism. It can then send a TCP data stream towards a TCP receiving node using the slow start mechanism starting with the initial permissible window size. An advantage of this is that the slow start phase stars with a higher window size, and consequently data is initially sent to the TCP receiver at a higher bit rate. This improves the end-user's QoE, especially in cases where the service carried using TCP requires a high bit rate.
As an option, the remote node is selected from any of a TCP proxy node and a TCP receiving node.
The remote node is optionally located in the mobile network. For example, an eNodeB or a core network node in the mobile network may send the parameter.
The TCP sending node is optionally selected from any of a TCP server, a TCP proxy node and a UE.
Optional examples of conditions in the mobile network include any of cell load, number of active UEs, buffer load, load on a mobile network node and Channel Quality Indicator. Any combination of conditions may be included in the parameter, and it should be noted that the parameter might be an abstracted value relating to the conditions.
As an option, the TCP sending node maps a value of the received parameter to the initial permissible window size.
The TCP request message is optionally a TCP SYN, in which case the parameter may be included in a TCP option.
According to a second aspect, there is provided a method of providing information to a TCP sending node for controlling a TCP window size for TCP data sent via a mobile network. A remote node sends a request message to the TCP sending node. The request message includes a parameter relating to any of conditions in the mobile network and the presence of a TCP proxy node. An advantage of this is that the TCP sending node can use the received parameter to determine an initial permissible window size for a TCP slow start mechanism.
Optional examples of the remote node include a TCP proxy node and a TCP receiving node. Furthermore, the remote node may be any node in the mobile network.
The parameter relating to conditions in the mobile network optionally comprises any of cell load, number of active UEs, buffer load, load on a mobile network node and Channel Quality Indicator.
According to a third aspect, there is provided a TCP sending node for use in a communication network. The TCP sending node is provided with a receiver arranged to receive from a remote node a TCP request message requesting a TCP data stream to be sent to a TCP receiving node via a mobile network. The TCP request message includes a parameter relating to any of conditions in the mobile network and the presence of a TCP proxy node. A processor is provided, arranged to use the parameter to determine an initial permissible window size for a TCP slow start mechanism. A transmitter is provided, arranged to send a TCP data stream towards the TCP receiving node using the slow start mechanism, and starting with the initial permissible window size.
The TCP sending node is optionally selected from any of a TCP server, a TCP proxy node and a UE.
As an option, the parameter relating to conditions in the mobile network comprises any of cell load, number of active UEs, buffer load, load on a mobile network node and Channel Quality Indicator.
As an option, the TCP sending node further comprises a database containing data mapping parameter values to corresponding initial permissible window sizes.
According to a fourth aspect, there is provided a node for use in a communication network method, the node arranged to provide information to a TCP sending node for controlling a TCP window size for TCP data sent via a mobile network. The node is provided with a transmitter arranged to send to a TCP sending node a request message, the request message including a parameter relating to any of conditions in the mobile network and the presence of a TCP proxy node.
As an option, the node is selected from any of a TCP proxy node and a TCP receiving node.
As an option, the node is located in the mobile network.
According to a fifth aspect, there is provided a computer program comprising computer readable code which, when run on a computer device, causes the computer device to perform the steps described above in any of the first and second aspects.
According to a sixth aspect, there is provided a computer program product comprising a non-transitory computer readable medium and a computer program described above in the fifth aspect, wherein the computer program is stored on the computer readable medium.
The terms TCP sending node 1 and TCP receiving node 2 are used herein to describe the endpoints for a TCP data stream. Note that in most cases, the TCP receiving node 2 will be attached to a mobile network 4 but it is envisaged that the TCP sending node 1 may be attached to a mobile network. It should also be noted that the TCP sending node 1 may be a TCP proxy 5 splitting the TCP connection into two or more legs.
The term “mobile network” is used herein to refer to both the Radio Access Network (RAN) and parts of the core network that are responsible for actions relating to access such as establishing bearers, handling QoE and QoS requirements, allocating IP addresses, handling subscription data and charging, and so on. While congestion is more likely to be encountered in the RAN rather than the core network, core network nodes may be able to monitor conditions in the RAN or other factors that may affect the initial permissible window size.
The TCP sending node 1 is provided with information so that it can select a permissible initial permissible congestion window size for a slow start mechanism when sending TCP data. This allows the slow start mechanism to select an initial permissible congestion window size that allows the initial data bit rate to be higher than a standard initial window size if conditions allow this. This is illustrated in
There are various types of information that can allow the TCP sending node 1 to select a different permissible initial window size. The TCP sending node 1 may be informed about conditions in the mobile network 4 or at the TCP receiving node 2 (for example, a UE). Where the conditions are favorable, the TCP sending node 1 may select a higher initial permissible congestion window size allowing the slow start mechanism to start sending TCP data at a higher bit rate. There may be other factors that affect whether or not the TCP sending node 1 uses the initial permissible congestion window size.
The TCP sending node 1 may elect to ignore the information and start a standard slow-start mechanism.
Furthermore, the presence of a TCP proxy 5 may allow the initial permissible congestion window size to be larger, as the TCP proxy 5 can buffer data packets. In this case it may be sufficient to inform the TCP sending node 1 of the existence of the TCP proxy 5.
Note that the initial permissible congestion window size may be determined on the basis of a combination of both the conditions in the mobile network/TCP receiving node 2, and the presence of the TCP proxy 5.
An exemplary way to provide the TCP sending node 1 with information relating to conditions in the mobile network/TCP receiving node 2 and/or the presence of a TCP proxy 5 located between the TCP sending node 1 and the TCP receiving node is to include the information in a TCP option that is understood by the TCP sending node 1.
S1. A remote node (which may be, for example, a TCP proxy, a node in the mobile network or another node that provides service aware functions between the mobile network and the network in which the TCP sending node 1 is located) sends a request message to the TCP sending node 1. The request message includes a parameter indicating conditions in the mobile network/TCP receiving node 2 and/or the presence of a TCP proxy 5. Examples of conditions in the mobile network include cell load, number of active UEs, buffer load, total eNB load, and a Channel Quality Indicator (CQI). It will be appreciated that other indications of conditions in the mobile network can be used. These exemplary conditions may be provided in the parameter alone or in any combination, or abstracted as a value usable by the TCP sending node 1.
S2. The TCP sending node 1 receives the request message including the parameter.
S3. The TCP sending node 1 uses the parameter to determine an initial permissible congestion window size for the slow start mechanism. The determination may be made in a number of ways. For example, the parameter value may be mapped to a predetermined initial permissible congestion window size.
S4. The TCP sending node 1 starts sending TCP data towards the TCP receiving node 2 using the slow start algorithm, but starting at the determined initial permissible congestion window size.
The above description refers to adjusting the TCP initial congestion window size in any type of network. For example, mobile network conditions in other types of network, such networks using Wideband Code Division Multiple Access (WCDMA) or Wi-Fi may use the same principles to optimize the TCP initial congestion window.
S5. The TCP sending node 1 receives from a remote node a TCP request message requesting a TCP data stream. The request message includes a parameter relating to any of conditions in the mobile network and the presence of a TCP proxy node.
S6. Using the parameter, the TCP sending node 1 determines an initial permissible window size for a TCP slow start mechanism.
S7. The TCP sending node 1 sends a TCP data stream towards the TCP receiving node 2 using the TCP slow-start mechanism, and starting with the initial permissible window size.
By way of example, consider the case where the TCP sending node 1 is a TCP server 6 and the TCP receiving node 2 is a UE 7. The UE attaches using an LTE network via an eNodeB (eNB) 8. A TCP proxy 5 is located between the TCP server 6 and the eNB 8, although it will be appreciated that while the remote node in this example is a TCP proxy 5, it could alternatively be another node that provides service aware functions between the eNB 8 and the TCP server 6. In this example, the TCP server 6 is informed about conditions in the mobile network.
S8. The UE 7 connects to the eNB 8 and a bearer is established with the mobile network 4.
S9. The UE 7 initiates a TCP connection by sending a TCP SYN towards the TCP server 6 via the TCP proxy 5. The TCP proxy 5 intercepts this TCP SYN message. If the TCP proxy 5 is operating in transparent mode, then it intercepts the TCP SYN message without the UE 7 being aware of the interception. Alternatively, the TCP proxy 5 may have an address to which the UE 7 addresses the TCP SYN.
S10. The TCP proxy 5 initiates a TCP connection towards the TCP server 6.
S11. At the first user plane message involving the UE, the eNB 8 obtains the UE IP address, which is a common identifier between the mobile network 4 and the TCP proxy 5 in this example. In this example, this message is a TCP message, but need not be. For example, it could be a DNS query from the UE to obtain the IP address for the TCP server 6. The eNB 8 is aware of the UE 7 radio conditions from earlier communication with the UE 7, e.g. reporting from the UE 7 as part of the Radio Resource Control (RRC) or/and from CQI reporting.
S12. The TCP server 6 acknowledges the TCP SYN.
S13. The eNB 8 sends a parameter to the TCP proxy 5, informing it about UE 7 radio conditions and status on the eNB 8 (e.g. cell load, number of active UEs in the scheduler). Note the parameter may be mapped to, say, three values, good/average/bad, meaning that there are three different sizes for the initial transmit window.
S14. The TCP proxy 5 stores the parameter.
S15. The TCP proxy acknowledges the UE 7 TCP SYN.
S16. The UE 7 completes the three-way handshake and requests TCP data from the TCP server 6.
S17. The TCP proxy 5 includes the parameter relating to the initial permissible congestion window size as a TCP option when building up a TCP message to send to the TCP server 6.
S18. The TCP server 6 uses the received parameter to determine an appropriate initial permissible congestion window size for sending TCP data towards the UE 7.
S19. The TCP server 6 sends TCP data towards the UE 7 via the TCP proxy 5, using a TCP slow start mechanism but starting with the determined initial permissible congestion window size.
The order of TCP messages shown in
There are several ways that information from the mobile network 4 to the TCP proxy 5 (or other remote node that communicates the parameter to the TCP server 6) can be sent. Examples include using a new protocol between the mobile network 4 and TCP proxy 5 on a dedicated outband signaling connection, using a new protocol between the mobile network 4 and the TCP proxy 5 inserted on the actual user plane flow, and using a new protocol using existing unused flags and bits in the IP and TCP headers, e.g. using the IP options in the IP header. The skilled person will appreciate that these examples are not exhaustive, and there are other methods to convey the information.
Consider now the case where the initial permissible congestion window size is determined only on the basis that the TCP proxy 5 is present. Exemplary signalling is illustrated in
S20. The UE 7 connects to the eNB 8 and a bearer is established with the mobile network.
S21. The UE 7 initiates a TCP connection by sending a TCP SYN towards the TCP server 6 via the TCP proxy 5. The TCP SYN is intercepted by the TCP proxy 5. If the TCP proxy 5 is operating in transparent mode, then it intercepts the TCP SYN message without the UE 7 being aware of the interception. Alternatively, the TCP proxy 5 may have an address to which the UE 7 addresses the TCP SYN.
S22. The TCP proxy 5 initiates a TCP connection towards the TCP server 6 and includes in the TCP SYN a TCP option that includes a parameter indicating the presence of the TCP proxy 5.
S23. The TCP server 6 uses the received parameter to determine an appropriate initial permissible congestion window size for sending TCP data towards the UE 7.
S24. The TCP proxy 5 acknowledges the UE 7 TCP SYN.
S25. The TCP server 6 acknowledges the TCP SYN of S22.
S26. The UE 7 completes the three-way handshake and requests TCP data from the TCP server 6.
S27. The TCP proxy 5 completes the three-way handshake with the TCP server 6 including an HTTP GET.
S28. The TCP server 6 sends TCP data towards the UE 7 via the TCP proxy 5, using a TCP slow start mechanism but starting with the initial permissible congestion window size that was determined in step S23.
As was the case for
Note also that it is possible to combine the signalling of
The description of
A non-transitory computer readable medium in the form of a memory 13 may also be provided. The memory 13 may be used to store information such as the database 12, or a program 14 which, when executed by the processor 10, causes the TCP sending node 1 to behave as described above. Note that the program may be provided on an external non-transitory computer readable medium 15, such as a disk or flash drive.
Assuming that the node is a TCP proxy 5, it is provided with a transmitter 16 arranged to send to a TCP sending node a request message, the request message including a parameter relating to conditions in the mobile network and/or the presence of the TCP proxy 5. A processor 17 is also provided for controlling the node. A non-transitory computer readable medium in the form of a memory 18 may also be provided. The memory 18 may be used to store a program 19 which, when executed by the processor 17, causes the node to behave as described above. Note that the program 19 may be provided on an external non-transitory computer readable medium 20, such as a disk or flash drive.
The techniques and apparatus described above allow the initial congestion window size when sending TCP data using a slow start mechanism to be increased if conditions allow. This improves TCP performance and has a positive impact on the end user's QoE. Conditions that might lead to a larger initial permissible congestion window size include the presence of one or more TCP proxies, and favourable conditions in the mobile network 4 or at the TCP receiving node 2.
It will be appreciated by a person skilled in the art that various modifications may be made to the embodiments described above without departing from the scope of the present invention as defined by the appended claims.
The following abbreviations have been used in the description:
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2013/074820 | 11/27/2013 | WO | 00 |