An apparatus, method, and computer-readable medium encoded with executable instructions for transmission control protocol (tcp) flow control in a communication system are provided. According to embodiments of the invention. tcp flow control includes determining delay in a transmit buffer of the system; and modifying tcp window size based on the determined delay and a target transmit buffer delay. An indication of a modified tcp window size is sent to a tcp server of the system in an acknowledge packet. Embodiments of the invention are particularly suitable for tcp flow control in wireless communication systems (e.g., UTRA) systems, and has the advantage that RTT (i.e., the latency of the system) can be substantially guaranteed, irrespective of the throughput that a user is allocated.

Patent
   RE44715
Priority
Jun 27 2003
Filed
Oct 13 2011
Issued
Jan 21 2014
Expiry
Jun 25 2024
Assg.orig
Entity
Large
2
22
EXPIRED
26. A non-transitory computer-readable medium encoded with executable instructions that when executed will:
determine delay in the a transmit buffer; and
modify an advertised tcp window size associated with a receiving end based on the determined delay and a target transmit buffer delay.
0. 28. A user equipment for providing transmission control protocol (tcp) flow control of data from the user equipment to a base station in a wireless communication system, the user equipment comprising:
circuitry configured to:
determine delay in a transmit buffer of the user equipment; and
modify an advertised tcp window size associated with the base station based on the determined delay and a target transmit buffer delay.
1. An apparatus for transmission control protocol (tcp) flow control of data from a transmitting end to a receiving end via an intermediate element comprising a transmit buffer in a communication system, the apparatus comprising:
a processor for:
determining delay in the transmit buffer; and
modifying an advertised tcp window size associated with the receiving end based on the determined delay and a target transmit buffer delay.
14. A method for transmission control protocol (tcp) flow control of data from a transmitting end to a receiving end via an intermediate element comprising a transmit buffer in a communication system, the method comprising:
determining, by a processor, delay in the transmit buffer; and
modifying, by the processor, an advertised tcp window size associated with the receiving end based on the determined delay and a target transmit buffer delay.
2. The apparatus of claim 1, wherein the processor for modifying tcp window size comprises sending an indication of modified tcp window size to the transmitting end of the communication system.
3. The apparatus of claim 2, wherein the transmitting end of the communication system is a tcp server.
4. The apparatus of claim 2, wherein the processor for sending an indication of modified tcp window size is configured to send the indication of modified tcp window size in an acknowledge packet.
5. The apparatus of claim 1, wherein the processor for modifying tcp window size modifies the tcp window size as a function of the determined transmit buffer delay and a previously determined tcp window size.
6. The apparatus of claim 1, wherein the processor for modifying tcp window size modifies the tcp window size as a function of the determined transmit buffer delay and a function of control loop gain.
7. The apparatus of claim 1, wherein the processor for modifying tcp window size comprises means for determining a number of received acknowledge packets.
8. The apparatus of claim 7, wherein the processor for modifying tcp window size is configured to further modify tcp window size in response to determining a number of received acknowledge packets determining a number of acknowledge packets is equal to half of a current number of data units in the system.
9. The apparatus of claim 1, wherein the processor for determining delay in the transmit buffer comprises determining mean buffer delay of a plurality of data units passing through the transmit buffer and modifying tcp window size modifies tcp window size as a function of the mean buffer delay.
10. The apparatus of claim 9, wherein the processor for modifying tcp window size is arranged to modify tcp window size if the mean buffer delay is within a predetermined range about a target delay, by an amount related to a difference between the mean buffer delay and the target delay.
11. The apparatus of claim 9, wherein the processor for modifying tcp window size is arranged to modify tcp window size if the mean buffer delay is outside a predetermined range about a target delay, by an amount related to a difference between a current mean buffer size and a predetermined value.
12. The apparatus of claim 1, wherein the communication system is a wireless communication system and the intermediate element is a network controller of the system.
13. The apparatus of claim 12, wherein the wireless communication system comprises a UTRAN system.
15. The method of claim 14, wherein modifying tcp window size comprises sending an indication of modified tcp window size to a transmitting end of the communication system.
16. The method of claim 15, wherein sending the indication of modified tcp window size is sent in an acknowledge packet.
17. The method of claim 14, wherein modifying tcp window size comprises determining a new tcp window size as a function of the determined transit buffer delay and a previously determined tcp window size.
18. The method of claim 14, wherein modifying tcp window size comprises modifying the tcp window size as a function of the determined transmit buffer delay and a function of control loop gain.
19. The method of claim 14, further comprising determining a number of received acknowledge packets.
20. The method of claim 19, wherein further modifying the tcp window size is performed in response to determining the number of received acknowledge packets is equal to half of a current number of data units in the communication system.
21. The method of claim 14, wherein determining delay in the transmit buffer comprises determining mean buffer delay of a plurality of data units passing through the transmit buffer and modifying tcp window size as a function of the mean buffer delay.
22. The method of claim 21, comprising modifying tcp window size if the mean buffer delay is within a predetermined range about a target delay, by an amount related to a difference between the mean buffer delay and the target delay.
23. The method of claim 21, comprising modifying tcp window size if the mean buffer delay is outside a predetermined range about a target delay, by an amount related to a difference between a current mean buffer size and a predetermined value.
24. The method of claim 14, wherein the intermediate element is a network controller of a wireless communication system.
25. The method of claim 24, wherein the wireless communication system comprises a UTRAN system.
27. An integrated circuit comprising the apparatus of claim 1.

This application is a National Phase filing under 35 U.S.C. 371 of International Application No. PCT/GB2004/002728 filed on Jun. 25, 2004, and which claims priority to Great Britain Patent Application No. 0315009.1 filed on Jun. 27, 2003, the contents of each of which are incorporated herein by reference in their entirety.

This invention relates to TCP (Transmission Control Protocol) flow control, and particularly (though not exclusively) to TCP flow control in wireless communication systems.

TCP is a transport protocol in the internet protocol suite (see for example, the publication by W. R. Stevens, ‘TCP/IP illustrated, Volume 1: The protocols’, Addison-Wesley, Reading, Mass., November 1994). It is used in applications such as telnet FTP (File Transfer Protocol) and HTTP (HyperText Transfer Protocol). TCP is designed for wire networks which have very low error rates.

Flow control in TCP is governed by two windows: the sender's congestion window (‘cwnd’) and the receiver's advertised window (‘awnd’). Flow control is based on the minimum of these 2 windows. The ‘cwnd’ is modified dynamically to match the capacity in the network. Most importantly it is reduced whenever packets are lost as this is an indication of congestion in the network. The ‘awnd’ is based on the receiver's ability to buffer data that it receives and it can be dynamically reduced if the receiver is unable to cope with the rate of reception of data. The initial value of ‘awnd’ is controlled by parameters configured in the TCP protocol stack.

As mentioned above, TCP is designed for low error rate networks. Therefore any packet losses which occur in TCP are regarded as due to network congestion and are therefore followed by a reduction in ‘cwnd’ and consequently in the data rate of the sender as mentioned above. However, this is not appropriate to wireless networks which are inherently high error rate systems. Therefore, the 3GPP (3rd Generation Partnership Project) standard provides ARQ (Automatic Repeat Request) functionality, known as RLC (Radio Link Control—see, for example, the 3GPP technical specification 3GPP TS 25.322) that allows packets to be re-transmitted which have been subjected to error due to transmission over the air interface. However, the use of ARQ schemes result in the packets arriving out of order, so they have to be buffered before they can be passed on to TCP. The use of buffering introduces increased delay and this can result in increased RTT (Round Trip Time).

Assuming that the highest rate services are provided in the downlink, this means that large buffering is likely to be required in the network node, i.e., the RNC (Radio Network Controller) in the case of 3GPP systems. The following considers this downlink (DL) problem. However the present invention is also appropriate for controlling uplink TCP flows.

The maximum DL rate specified in the 3GPP technical specification 3GPP TS 34.108 is 2 Mbps. Assuming that it is not possible to alter the TCP protocol stack at the receiver (i.e., UE), it is therefore necessary that the UE must advertise a window at least equal to the bandwidth delay product appropriate for the 2 Mbps service. If the UE is to support the maximum rate of 2 Mbps then the advertised window must be extremely large. If a smaller rate is then provided to the UE (due, for example, to the fact that many UE's are requesting service at the same time) then buffer overflow might occur. If buffer overflow does not occur the round trip time (RTT) will be very high since data will spend a long time buffered at the network node.

High RTT will have a negative impact on performance perceived by the user. This is particularly true in the case of the user wishing to continue web browsing while downloading a large file via FTP; the web browsing session will appear to be extremely slow. Therefore we wish to provide a flow control technique to maintain a target RTT for any rate provided by the network while maintaining the ability to download data at rates up to the maximum 2 Mbps rate.

As mentioned previously, flow control is provided by the sender's ‘cwnd’ and the receiver's ‘awnd’. Since control of the sender's ‘cwnd’ resides in the server, it can be located remotely and is not in any way controllable. It is therefore necessary that flow control is provided by the ‘awnd’.

A number of schemes (discussed briefly below) for flow control have been suggested for TCP over 3G wireless systems. However, the issue with which these are most concerned is preventing the buffer at the network node from overflowing (i.e., the sending node in the case of data download).

In the publication by Koga, Kawahara and Oie, “TCP flow control using link layer information in mobile networks”, Proceedings of SPIE Conference of Internet Performance and Control of Network Systems III, Boston, Mass. 7, 2002, it is proposed that the receiver, i.e., the UE in the most likely case of file download, modifies the TCP window that it advertises based not on the capacity of the receivers buffers as is conventionally the case but on measures obtained from the RLC. This approach is extremely problematic since it means modification of the TCP protocol stack at the UE and it may not be possible to obtain control of this stack. This is particularly true in the case where a PC (Personal Computer) is connected to a UE (which acts effectively as a modem) and the TCP protocol stack resides in the PC.

The publication by Seok, Joo and Kang, “A-TCP: A mechanism for improving TCP performance in wireless environments”, IEEE broadband wireless summit, May 2001 suggests a scheme whereby two entirely split connections are made, one between the server and the network node and another between the network node and the UE. This requires considerable additional complexity and may not be of any benefit for transfers using UDP (User Datagram Protocol).

The publication by Bakre and Badrinth, “I-TCP: indirect TCP for mobile hosts”, Proceedings of the 15th International conference on distributed computer systems, May 1995, suggests modifying the TCP window size in TCP ACKs (ACKnowledge packets). However in this publication the goal is simply to modify the TCP window size to the available buffer size at the network node. Limiting the buffer occupancy as in this publication does not guarantee a specified RTT.

A need therefore exists for method and arrangement for TCP flow control wherein the abovementioned disadvantage(s) may be alleviated.

In accordance with a first aspect of the present invention there is provided an arrangement for TCP flow control as claimed in claim 1.

In accordance with a second aspect of the present invention there is provided a method for TCP flow control as claimed in claim 15.

One method and arrangement for TCP flow control incorporating the present invention will now be described, by way of example only, with reference to the accompanying drawing(s), in which:

FIG. 1 shows a block schematic diagram illustrating a 3GPP radio communication system in which the present invention may be used;

FIG. 2 shows a block schematic diagram illustrating protocol architecture for U-plane showing functional location of a TCP window modification function based on the present invention; and

FIG. 3 shows a block schematic diagram illustrating steps performed in the TCP flow control method between a server and a user equipment client terminal via a radio network controller.

Embodiments of the present invention will be described in the context of a UMTS Radio Access Network (UTRAN) system operating in TDD mode. Referring firstly to FIG. 1, a typical, standard UMTS Radio Access Network (UTRAN) system 100 is conveniently considered as comprising: a terminal/user equipment domain 110; a UMTS Terrestrial Radio Access Network domain 120; and a Core Network domain 130.

In the terminal/user equipment domain 110, terminal equipment (TE) 112 is connected to mobile equipment (ME) 114 via the wired or wireless R interface. The ME 114 is also connected to a user service identity module (USIM) 116; the ME 114 and the USIM 116 together are considered as a user equipment (UE) 118. The UE 118 communicates data with a Node B (base station) 122 in the radio access network domain 120 via the wireless Uu interface. Within the radio access network domain 120, the Node B 122 communicates with a radio network controller (RNC) 124 via the Iub interface. The RNC 124 communicates with other RNC's (not shown) via the Iur interface. The Node B 122 and the RNC 124 together form the UTRAN 126. The RNC 124 communicates with a serving GPRS service node (SGSN) 132 in the core network domain 130 via the Iu interface. Within the core network domain 130, the SGSN 132 communicates with a gateway GPRS support node (GGSN) 134 via the Gn interface; the SGSN 132 and the GGSN 134 communicate with a home location register (HLR) server 136 via the Gr interface and the Gc interface respectively. The GGSN 134 communicates with public data network 138 via the Gi interface.

Thus, the elements RNC 124, SGSN 132 and GGSN 134 are conventionally provided as discrete and separate units (on their own respective software/hardware platforms) divided across the radio access network domain 120 and the core network domain 130, as shown the FIG. 2.

The RNC 124 is the UTRAN element responsible for the control and allocation of resources for numerous Node B's 122; typically 50 to 100 Node B's may be controlled by one RNC. The RNC also provides reliable delivery of user traffic over the air interfaces. RNC's communicate with each other (via the Iur interface) to support handover and macrodiversity.

The SGSN 132 is the UMTS Core Network element responsible for Session Control and interface to the HLR. The SGSN keeps track of the location of an individual UE and performs security functions and access control. The SGSN is a large centralised controller for many RNCs.

The GGSN 134 is the UMTS Core Network element responsible for concentrating and tunnelling user data within the core packet network to the ultimate destination (e.g., internet service provider—ISP).

Such a UTRAN system and its operation are described more fully in the 3GPP technical specification documents 3GPP TS 25.401, 3GPP TS 23.060, and related documents, available from the 3GPP website at www.3gpp.org, and need not be described in more detail herein.

In the present example, all functionality of the invention resides in the RNC 124 but can alternatively be applied at the UE 118.

Referring now to FIG. 2, as will be explained in greater detail below, in order to improve TCP flow for download of data to a UE 118 a modification 210 of the TCP window occurs at the radio bearer level, and is functionally located in the protocol architecture for the user plane (U-plane). In the RNC 124 and Node B 122 of the UTRAN 126 TCP window modification 210 (which will be explained in greater detail below) is followed by PDCP (Packet Data Convergence) processing 220, RLC (Radio Link Control) processing 230, MAC (Medium Access Control) processing 240 and PHY (Physical Layer) processing 250. It will be understood that the PDCP processing 220, RLC processing 230, the MAC processing 240 are performed in accordance with the known 3GPP technical specifications TS 25 323, TS 25 322 and TS 25 321 respectively. PHY processing is described in 3GPP technical specifications TS 25 2xx (e.g., 221, 222, 223, 224 & 225 for TDD). In all cases there is no need to describe these in further detail herein.

The processed information is communicated across the wireless Uu interface to the UE 118, where complementary PHY processing 260, MAC processing 270, RLC processing 280 and PDCP processing 290 are performed. As above, it will be understood that the PDCP processing 290, RLC processing 280, the MAC processing 270, and the PHY processing 260 are performed in accordance with the known 3GPP technical specifications TS 25 323 TS 25 322 and TS 25 321 respectively. PHY processing is described in 3GPP technical specifications TS 25 2xx (e.g., 221, 222, 223, 224 & 225 for TDD). In all cases there is no need to describe these in further detail herein.

Referring now also to FIG. 3, TCP window modification 210 is based on the following steps:

No more changes to the TCP window are made until all current data in the system has been ACKed (this can be measured conveniently by waiting until the number of ACKs reaches half the current number of SDUs in the system when the delayed ACK function is implemented in the TCP protocol stack).

It will be appreciated that since the RLC buffer delay parameters must be signaled through PDCP, the PDCP protocol layer could be considered a suitable location for this functionality to reside.

It will be understood that ideally it would be desirable to measure overall round trip time (RTT) for a packet and accordingly implement flow control. However, in practice measuring the RTT based on ACK and SEQ numbering can be difficult since there are typically multiple TCP streams at any one moment. The total RTT is made up of the components shown in the following equation:
RTT=sender RLC buffer delay+sender to receiver air interface delay+receiver buffer delay+receiver to sender air interface delay.

The inventors of the present invention have realised that, assuming the volume of data associated with ACKs is low compared to data sent from sender to receiver, the receiver buffer delay can be affected by flow controlling the sender. Also, the time taken over the air interface (although variable due to retransmissions, etc.) can also be regarded as not affected by flow control. Therefore, all that needs to be monitored is the time an SDU spends in the RLC transmit queue.

Also, simply measuring the time to traverse RLC transmit queue may be problematic since even when no new SDUs are added to the back of the queue the traverse time will be high for the last SDU. The following method is therefore conveniently used:

It will be appreciated that the process for TCP flow control described above will typically be carried out in software running on a processor (not shown), and that the software may be provided as a computer program element carried on any suitable data carrier (not shown) such as a magnetic or optical computer disc. It will also be appreciated that the TCP flow control scheme described above may alternatively be fabricated in an integrated circuit for use in a terminal or RNC of a communication system.

It will be appreciated that although the TCP flow control scheme has been described above in the context of a downlink data transfer in a UTRA TDD system, the invention is not limited to such an application and may be used in downlink and/or uplink data transfer in communication systems generally.

It will be understood that the method and arrangement for TCP flow control described above provides the advantage that RTT (i.e., the latency of the system) can be substantially guaranteed, irrespective of the throughput that the user is allocated. In comparison, it should be noted that using target buffer occupancy—as in the above-mentioned prior art publication “I-TCP: indirect TCP for mobile hosts”—does not allow the above condition to be met because buffer occupancy varies with throughput for a given RTT.

Jelbert, Nicholas, Speight, Timothy J.

Patent Priority Assignee Title
10004019, Sep 08 2015 Parallel Wireless, Inc RAN for multimedia delivery
9967077, Oct 22 2015 HARRIS GLOBAL COMMUNICATIONS, INC Communications device serving as transmission control protocol (TCP) proxy
Patent Priority Assignee Title
5748901, May 21 1996 Ramot University Authority Ltd. Flow control algorithm for high speed networks
6310857, Jun 16 1998 AT&T Corp Method and apparatus for smoothing and multiplexing video data flows
6370114, Dec 31 1997 AVAYA Inc Apparatus and method for optimizing congestion control information in a multi-protocol network
6535515, May 25 1998 KDD Corporation TCP communication speed improving system
6831912, Mar 09 2000 Raytheon Company Effective protocol for high-rate, long-latency, asymmetric, and bit-error prone data links
6901593, May 08 2001 AVAYA MANAGEMENT L P Active queue management with flow proportional buffering
6965943, Jun 05 1999 WSOU Investments, LLC End-to-end internet control
7054317, May 14 1999 Korea Telecommunication Authority; Jae Il Jung Method for controlling transmission control protocol window size in asynchronous transfer mode network
20020199008,
20030174700,
20040015591,
20040052234,
20040071086,
20050005024,
20050141419,
20050255850,
20070081561,
20070248005,
20070280111,
JP10023064,
WO284920,
WO2002084920,
/
Executed onAssignorAssigneeConveyanceFrameReelDoc
Oct 13 2011Sony Corporation(assignment on the face of the patent)
Date Maintenance Fee Events
Sep 18 2014ASPN: Payor Number Assigned.
May 26 2017REM: Maintenance Fee Reminder Mailed.
Nov 13 2017EXP: Patent Expired for Failure to Pay Maintenance Fees.


Date Maintenance Schedule
Jan 21 20174 years fee payment window open
Jul 21 20176 months grace period start (w surcharge)
Jan 21 2018patent expiry (for year 4)
Jan 21 20202 years to revive unintentionally abandoned end. (for year 4)
Jan 21 20218 years fee payment window open
Jul 21 20216 months grace period start (w surcharge)
Jan 21 2022patent expiry (for year 8)
Jan 21 20242 years to revive unintentionally abandoned end. (for year 8)
Jan 21 202512 years fee payment window open
Jul 21 20256 months grace period start (w surcharge)
Jan 21 2026patent expiry (for year 12)
Jan 21 20282 years to revive unintentionally abandoned end. (for year 12)