WO1999022477A1 - Transmission control for minimizing congestion in digital communications networks - Google Patents

Transmission control for minimizing congestion in digital communications networks Download PDF

Info

Publication number
WO1999022477A1
WO1999022477A1 PCT/US1997/019207 US9719207W WO9922477A1 WO 1999022477 A1 WO1999022477 A1 WO 1999022477A1 US 9719207 W US9719207 W US 9719207W WO 9922477 A1 WO9922477 A1 WO 9922477A1
Authority
WO
WIPO (PCT)
Prior art keywords
estimate
maintaining
bandwidth
receiver
sender
Prior art date
Application number
PCT/US1997/019207
Other languages
French (fr)
Inventor
Stephen Jacobs
Alexandros Eleftheriadis
Original Assignee
The Trustees Of Columbia University In The City Of New York
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 The Trustees Of Columbia University In The City Of New York filed Critical The Trustees Of Columbia University In The City Of New York
Priority to CA002308027A priority Critical patent/CA2308027A1/en
Priority to PCT/US1997/019207 priority patent/WO1999022477A1/en
Publication of WO1999022477A1 publication Critical patent/WO1999022477A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • 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]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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]
    • H04L69/164Adaptation or special uses of UDP protocol
    • 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 transmissions in a digital communications network and, more specifically, to transmission control for minimizing network congestion.
  • TCP Transmission Control Protocol
  • TCP is based on the notion of fair sharing of transmission resources among users.
  • TCP is reliable, in the sense that the data received at a destination are an exact duplicate of the data that was sent. Such reliability may be at the expense of transmission delays, however.
  • a transmission technique For congestion control in a digital communications network such as the Internet or corporate "Intranets", and especially for real-time transmissions in such networks, a transmission technique is preferred which is not perfectly reliable, but which makes it more likely that the data arrive on time.
  • the technique uses an estimate of the bandwidth which is available in a network, from a sender to a receiver. The estimate is increased or decreased, by the sender, depending on monitoring of acknowledgments from the receiver.
  • the technique is compatible with TCP, and its use by a sender in a connection results in fair sharing of network resources with all other connections. It can be used, e.g., with well-established protocols such as File Transfer Protocol (FTP) and Hyper Text Transfer Protocol (HTTP) .
  • FTP File Transfer Protocol
  • HTTP Hyper Text Transfer Protocol
  • FIG. 1 is a representation of packet format for a preferred embodiment of the invention.
  • Fig. 2 is a flow chart for processing at a network server, in accordance with a preferred embodiment of the invention.
  • Figs. 3a and 3b are schematics of communications systems in accordance with preferred embodiments of the invention, with fixed and adaptable bandwidth requirements, respectively.
  • Fig. 4 is a flow chart for exemplary rate control processing in a system according to Fig. 3b.
  • Fig. 5a is a graphic representation of system behavior for an example in a system in accordance with Fig. 3a.
  • Fig. 5b is a graphic representation of system behavior for an example in a system in accordance with Fig. 3b.
  • Fig. 6 is a representation of packet format for a preferred embodiment of the invention in a wireless or hybrid wired-wireless network.
  • inventive technique also includes systems embodiments, e.g. involving a programmed processor.
  • a prototype implementation uses a Unix Workstation as network server and a PC as client server, both programmed in C++. Use of special -purpose firmware or hardware is not precluded.
  • the technique is window-based in the sense that a sender maintains a count of the number of outstanding packets, i.e., packets which have been sent, but for which an acknowledgment has not yet been received from the receiver.
  • the sender maintains current an upper bound on the number of outstanding packets allowed in the network, called the "congestion window" (CWND) and providing an indication of the available bandwidth from sender to receiver. Congestion is detected when a packet is lost in the network.
  • CWND can be maintained in units of bytes rather than units of packets . If the number of outstanding packets is less than CWND, the sender can continue to send data into the network.
  • the sender must stop transmitting data until either CWND increases or the number of outstanding packets decreases. If acknowledgments are received, CWND will increase, and the number of outstanding packets will decrease. If no acknowledgments are returned, packets will timeout and be deemed lost by the protocol, thus decreasing the number of outstanding packets .
  • selective retransmission can be provided for.
  • a current estimate is maintained of the round trip time, i.e. the time elapsed between sending a packet and receiving an acknowledgment .
  • the protocol sends the estimate to the receiver in each packet header.
  • the receiver determines that a packet has been lost, it then determines if there is enough time to receive the retransmitted packet before it is needed. If so, the receiver can request a retransmission; otherwise, no request is made.
  • a data packet includes the standard User Datagram Protocol (UDP) header, a 2 -byte sequence number, a 4-byte time stamp, and a 4-byte round- trip time estimate measured in milliseconds.
  • the sequence number is for packet reordering at the receiver, in case packets arrive out of order.
  • the time stamp is media dependent and generally provides an indication of the presentation time of the packet.
  • Fig. 2 illustrates preferred packet processing by a server system.
  • There is a main loop which continually checks whether (i) data can be sent out, (ii) an acknowledgment has arrived, (iii) a timeout has occurred, or (iv) a retransmission was requested.
  • CWND is set to the size of the first packet to be transmitted, ensuring that the first packet can be sent out.
  • ACK Outstanding acknowledgments
  • TO timeout
  • CWND is the size of the first packet
  • the first packet is sent into the network.
  • ACK is then increased by the size of the packet sent, representing the number of bytes currently in the network that have not yet been acknowledged.
  • RTT Round Trip Time
  • RTT avg The system maintains an estimate of the round trip time, RTT avg , by using the measured RTT, RTT., for each acknowledgment.
  • RTT avg The system maintains an estimate of the round trip time, RTT avg , by using the measured RTT, RTT., for each acknowledgment.
  • CWND CWND + size
  • CWND is increased by the square of the size divided by the current value of CWND:
  • CWND CWND + sizeVCWND. Slow Start calls for increasing the value of CWND each time an acknowledgment is received. In the case of variable length packets, with CWND being the number of bytes of outstanding packets, Slow Start calls for increasing the value of CWND by the size of the packet to which the acknowledgment refers.
  • Timeout (TO) milliseconds after it was sent the packet is determined to be lost in the network and the appropriate action is taken. This includes (i) setting SSThresh to half of the current CWND, (ii) setting CWND to the value of the next packet to be sent out (i.e. resetting CWND), (iii) setting Phase to Slow Start, (iv) decreasing the outstanding acknowledgment by the size of the packet which timed out, and (v) doubling the Timeout period (TO) .
  • Fig. 3a shows a system with non- adaptable media, such as MPEG.
  • the server reads the media from a file or obtains it from a live source and fills a buffer.
  • the media pump sends the data to the client from the buffer, taking into account the current value of CWND determined in accordance with Fig. 2, and the media pump supplies the size values for congestion control. In case of significant congestion, CWND will be less than ACK, and this will stop the media pump from sending further data for a period of time, thereby reducing the media pump transmission rate.
  • Buffering provides for variation in the available bandwidth: the larger the buffer, the more variation can be accommodated. But there is an initial start-up delay while a client buffer is being filled, so that increased buffering results in a longer start-up delay.
  • the server finds the picture header in the MPEG stream and stops sending data until it finds the next picture header in the stream. This has the effect of dropping one frame from the media stream, and thereby reducing the bandwidth requirements.
  • a frame should not be dropped if other frames depend on it, i.e. an I -frame cannot be dropped if the stream contains P- or B- frames which depend on it .
  • DRS Dynamic Rate Shaping
  • Another technique for bandwidth reduction is known as Dynamic Rate Shaping (DRS) as described by A. Eleftheriadis et al . , "Constrained and General Dynamic Rate Shaping of Compressed Digital Video", Proceedings, 2 nd IEEE International Conference on Image Processing, Washington, D.C., October 1995, pp. III.396- 399. This involves identifying, frame by frame, those coefficients in the MPEG stream which are least important in terms of image quality, and removing them from the stream.
  • Fig. 3b shows an adaptable media system.
  • the original media either is stored locally or is supplied by a live source. But, in this case the data enters a media adaptation module which shapes the media into an estimate of the available bandwidth. The shaped media enters the buffer, which is then read by the media pump. Again, the media pump sends out data so as to comply with the CWND.
  • the data is buffered for presentation to the user. The client provides feedback information for congestion control.
  • the status of the buffer between the media adaptation module and the media pump is critical for this system. If the buffer is filling, then the media pump is sending data out more slowly than the media adaptation module is filling the buffer. In this case, the system should decrease the bandwidth requirements of the media so that the buffer does not overflow, by dropping frames or assigning a lower rate to DRS.
  • the media pump Conversely, if the buffer is emptying, the media pump is sending data out faster than the buffer is being filled by the media adaptation module. In this case, the system should increase the bandwidth requirements of the media so that the user gets the best quality possible. Since rate control provides information to the media adaptation module, it is highly dependent on the time of media being adapted.
  • the media pump operates as in the non-adaptable case, sending data only when CWND > ACK.
  • the adaptable media module is instructed to change the rate of the media. For example, for rate control in MPEG video by frame dropping, a frame can be dropped when the buffer is more than half full; otherwise, the video is passed unaltered to the buffer.
  • DRS and more sophisticated rate control may be implemented. For example, if the buffer is filling, the transmission rate may be reduced in inverse relationship to the rate of buffer filling.
  • Occupancy 1 Occupancy des;Lred , where Occupancy desired is the buffer occupancy which rate control tries to maintain. Otherwise,
  • Centering ! 2 - (Occupancy ! /Occupancy deS!red ) , the goal being to keep the Centering factor between 0 and 2.
  • Beta ! is determined as a direct indication of how much demand varies in the network, using the Coefficient of Variation of the past and current values of the average occupancy.
  • the coefficient of variation is defined as
  • Beta is then multiplied by 10. If Beta is less than 0.1, it is assigned the value 0.1, if it is greater that 1.0, it is assigned the value 1.0.
  • the new transmission rate is calculated by subtracting, from the previous rate, the value Beta-Centering-Diff-8, where the factor 8 is due to Diff being in bytes and the rate being in bits. These steps are repeated every 5 seconds.
  • Adaptable media can cope with more drastic variations in network resources, as compared with non-adaptable media.
  • a decrease in network resources results in less data reaching the receiver than is needed, and the receiver can rely only on its initial buffering to continue playback.
  • Fig. 5a shows an example of using a non-adaptive media.
  • the rate of the media is 300 kbps
  • the final buffering is 5 seconds (1500 kb) .
  • the available bandwidth is continually changing. In the beginning there is just enough bandwidth for the media and no buffering is used. But as soon as the available bandwidth decreases to 200 kbps, the receiver must begin using its buffering. If the bandwidth stays low for an extended period of time, the buffer may become completely depleted, at which time the user will experience an interruption in playback. This occurs at around 40 seconds. The available bandwidth then increases to 350 kbps, at which time the buffer can accumulate again.
  • the initial buffering has to be used only when the bandwidth requirements of the media cannot be reduced further.
  • the bandwidth requirements of the media can be reduced down to a minimum of 150 kbps.
  • the available bandwidth drops to 200 kbps
  • the media also is reduced to this rate, so that no receiver buffering is used to compensate for the network.
  • the available bandwidth decreases to 100 kbps
  • the media can only be reduced to 150 kbps, and so the receiver buffer begins to be depleted. This scenario is more robust, as the available bandwidth can drop to 150 kbps and receiver buffering is not used.
  • Congestion control in accordance with the invention is applicable wherever some degree of loss can be tolerated, including most video and audio codecs, with adaptable codecs being preferred. Most video codecs can be adapted by using frame dropping. Even still images can be adapted for real-time applications.
  • JPEG and MPEG have similarities in the way they are coded, so that a technique like DRS can be used on JPEG as well.
  • a new standard known as Flashpix has the capability to be displayed at different resolutions, and hence different bandwidth requirements when sending a picture across the Internet .
  • IP Internet Protocol
  • the receiver system has the option of instructing the sender system not to put error checking in packets. This is on a system-wide basis, so that all UDP packets coming from the sender system will not use error checking, which is undesirable when other applications expect UDP error checking.
  • the receiver can distinguish whether a packet is lost due to congestion or error, in an application-specific fashion.
  • Fig. 6 illustrates a packet constructed from an IP packet provided with the shaded area by the operating system. Error checking will be over the IP header only, so that a bit error there still results in the packet being dropped without notification. However, without error checking over the payload, a bit error in the payload does not result in the packet being dropped.
  • the sender constructs a UDP header inside the payload of the IP packet, for the packet to appear as a regular UDP packet at the receiver. In the UDP header, the sender sets the Cyclic Redundancy Code (CRC) field to zero, indicating that no error checking is used.
  • CRC Cyclic Redundancy Code
  • the UDP module of the receiver system will not do any error checking, leaving it to the application to check for errors. So that packets received with errors are not used, the sender must insert its own error checking functionality into the payload of the UDP packet it constructs. In Fig. 6, this is shown as Application Defined CRC. If, using Application Defined CRC, the receiver determines that there is an error, the receiver application drops the packet and sends a request for retransmission to the sender— without invoking congestion avoidance to reduce the transmission rate at the sender. If there is no error, the packet is used by the receiver application, with regular acknowledgment.

Abstract

In congestion control in a digital communications network such as the Internet or corporate 'Intranets', and especially in real-tine transmissions in such networks, perfect reliability may not be required. For increased likelihood that data arrive on time, an estimate is used of the bandwidth which is available from a sender to a receiver. The estimate is increased or decreased, by the sender, depending on monitoring of acknowledgemnts from the receiver. The technique coexists well with protocols based on TCP (Transmission Control Protocol), such as FTP (File Transfer Protocol) and HTTP (Hyper Text Transfer Protocol), by sharing the available bandwidth equally.

Description

TRANSMISSION CONTROL FOR MINIMIZING CONGESTION IN DIGITAL COMMUNICATIONS NETWORKS
Technical Field
The invention relates to transmissions in a digital communications network and, more specifically, to transmission control for minimizing network congestion.
Background of the Invention
For preventing loss of data due to congestion in digital network communications, a protocol known as Transmission Control Protocol (TCP) has been proposed for the Internet; see Information Sciences Institute,
"Transmission Control Protocol - Request for Comments
793", September 1981 and W. Stevens, "TCP Slow Start,
Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms - Request for Comments 2001", January 1997.
TCP is based on the notion of fair sharing of transmission resources among users.
TCP is reliable, in the sense that the data received at a destination are an exact duplicate of the data that was sent. Such reliability may be at the expense of transmission delays, however.
For some transmissions, e.g. real-time audio and video, reliability is less important, and the primary concern is with the data arriving on time. Specifically, for example, it is more acceptable to lose an occasional frame of video than to have the video start and stop repeatedly.
Summary of the Invention
For congestion control in a digital communications network such as the Internet or corporate "Intranets", and especially for real-time transmissions in such networks, a transmission technique is preferred which is not perfectly reliable, but which makes it more likely that the data arrive on time. The technique uses an estimate of the bandwidth which is available in a network, from a sender to a receiver. The estimate is increased or decreased, by the sender, depending on monitoring of acknowledgments from the receiver.
The technique is compatible with TCP, and its use by a sender in a connection results in fair sharing of network resources with all other connections. It can be used, e.g., with well-established protocols such as File Transfer Protocol (FTP) and Hyper Text Transfer Protocol (HTTP) .
Brief Description of the Drawing Fig. 1 is a representation of packet format for a preferred embodiment of the invention.
Fig. 2 is a flow chart for processing at a network server, in accordance with a preferred embodiment of the invention. Figs. 3a and 3b are schematics of communications systems in accordance with preferred embodiments of the invention, with fixed and adaptable bandwidth requirements, respectively.
Fig. 4 is a flow chart for exemplary rate control processing in a system according to Fig. 3b.
Fig. 5a is a graphic representation of system behavior for an example in a system in accordance with Fig. 3a.
Fig. 5b is a graphic representation of system behavior for an example in a system in accordance with Fig. 3b. Fig. 6 is a representation of packet format for a preferred embodiment of the invention in a wireless or hybrid wired-wireless network.
Detailed Description of Preferred Embodiments While preferred embodiments are described in the following primarily in method terms, the inventive technique also includes systems embodiments, e.g. involving a programmed processor. A prototype implementation uses a Unix Workstation as network server and a PC as client server, both programmed in C++. Use of special -purpose firmware or hardware is not precluded.
The technique is window-based in the sense that a sender maintains a count of the number of outstanding packets, i.e., packets which have been sent, but for which an acknowledgment has not yet been received from the receiver. The sender maintains current an upper bound on the number of outstanding packets allowed in the network, called the "congestion window" (CWND) and providing an indication of the available bandwidth from sender to receiver. Congestion is detected when a packet is lost in the network. Alternatively, and especially in transmissions of variable-length packets, CWND can be maintained in units of bytes rather than units of packets . If the number of outstanding packets is less than CWND, the sender can continue to send data into the network. Otherwise, the sender must stop transmitting data until either CWND increases or the number of outstanding packets decreases. If acknowledgments are received, CWND will increase, and the number of outstanding packets will decrease. If no acknowledgments are returned, packets will timeout and be deemed lost by the protocol, thus decreasing the number of outstanding packets .
Optionally, selective retransmission can be provided for. A current estimate is maintained of the round trip time, i.e. the time elapsed between sending a packet and receiving an acknowledgment . The protocol sends the estimate to the receiver in each packet header. When the receiver determines that a packet has been lost, it then determines if there is enough time to receive the retransmitted packet before it is needed. If so, the receiver can request a retransmission; otherwise, no request is made. In real-time audio or video, for example, if the receiver has 100 milliseconds worth of data buffered for playback when detecting loss of a packet, and if the estimate for the round-trip time is less than 100 milliseconds, a request for retransmission is likely to result in timely retransmission of the lost packet. Thus, a best -effort attempt is made at reliability. As illustrated by Fig. 1, a data packet includes the standard User Datagram Protocol (UDP) header, a 2 -byte sequence number, a 4-byte time stamp, and a 4-byte round- trip time estimate measured in milliseconds. The sequence number is for packet reordering at the receiver, in case packets arrive out of order. The time stamp is media dependent and generally provides an indication of the presentation time of the packet.
Fig. 2 illustrates preferred packet processing by a server system. There is a main loop which continually checks whether (i) data can be sent out, (ii) an acknowledgment has arrived, (iii) a timeout has occurred, or (iv) a retransmission was requested. Initially, CWND is set to the size of the first packet to be transmitted, ensuring that the first packet can be sent out. "Outstanding acknowledgments" (ACK) is set to zero. "Timeout" (TO) is set to 3 seconds, for example, indicating the amount of time not to be exceeded between sending a packet and receiving its acknowledgment. If an acknowledgment is not received in time, the packet is assumed to be lost. The system starts out in a "Slow- Start Phase" indicated by Phase=SS .
Since CWND is the size of the first packet, ACK=0, and there is data available to send (namely the first packet) , the first packet is sent into the network. ACK is then increased by the size of the packet sent, representing the number of bytes currently in the network that have not yet been acknowledged. The system then checks whether acknowledgments have arrived. If so, Outstanding Acknowledgments is decreased by the size of the packet to which the acknowledgment refers : ACK = ACK- size. The system then calculates the Round Trip Time (RTT), i.e. the difference between when a packet was sent and when the acknowledgment was received. RTT is used in the calculation of Timeout (TO) .
The system maintains an estimate of the round trip time, RTTavg, by using the measured RTT, RTT., for each acknowledgment. Following D. Comer, "Internetworking with TCP/IP", 3rd Edition, Simon & Schuster, 1995, pp. 191-230, RTTavg and Timeout (for future use) are calculated as follows :
Diff = RTT. - RTTavg RTTavg= RTTavg + Diff/8 Dev. = 0.25-(|Diff| - Dev Timeout = RTT + 0.25 + 3-Dev.L
Now, in Slow Start Phase, CWND is increased by size : CWND = CWND + size; later, in Congestion Avoidance Phase (Phase≠SS) , CWND is increased by the square of the size divided by the current value of CWND:
CWND = CWND + sizeVCWND. Slow Start calls for increasing the value of CWND each time an acknowledgment is received. In the case of variable length packets, with CWND being the number of bytes of outstanding packets, Slow Start calls for increasing the value of CWND by the size of the packet to which the acknowledgment refers.
After increasing CWND, there follows checking of CWND > SSThresh, the Slow Start Threshold. If true, Phase = CA, for Congestion Avoidance.
Then, concerning timeouts, if an acknowledgment is not received within Timeout (TO) milliseconds after it was sent, the packet is determined to be lost in the network and the appropriate action is taken. This includes (i) setting SSThresh to half of the current CWND, (ii) setting CWND to the value of the next packet to be sent out (i.e. resetting CWND), (iii) setting Phase to Slow Start, (iv) decreasing the outstanding acknowledgment by the size of the packet which timed out, and (v) doubling the Timeout period (TO) .
Finally, the system checks for receipt of a retransmission request. If so, it resends the appropriate data and resets SSThresh and CWND to half the current value of CWND. This is known as Fast Recovery. The system then returns to check for further data to send, and whether CWND > ACK. As described, the technique does not depend on whether the bandwidth requirements of the media can be changed or adapted. Fig. 3a shows a system with non- adaptable media, such as MPEG. The server reads the media from a file or obtains it from a live source and fills a buffer. At the server, the media pump sends the data to the client from the buffer, taking into account the current value of CWND determined in accordance with Fig. 2, and the media pump supplies the size values for congestion control. In case of significant congestion, CWND will be less than ACK, and this will stop the media pump from sending further data for a period of time, thereby reducing the media pump transmission rate.
So long as the average available bandwidth of a connection is greater than or equal to the bandwidth requirements of the media, and so long as there is sufficient buffering, the media can be played back without interruption. With congestion-minimizing processing as described above, few packets will be lost, and can be retransmitted if there is enough time.
Buffering provides for variation in the available bandwidth: the larger the buffer, the more variation can be accommodated. But there is an initial start-up delay while a client buffer is being filled, so that increased buffering results in a longer start-up delay.
As to adaptable media, there are several ways of changing bandwidth requirements. In the case of MPEG, for example, one way involves dropping frames as described by Z . Chen et al . , "Real Time Video and Audio in the World Wide Web", World Wide Web Journal, Vol. 1,
January 1996. The server finds the picture header in the MPEG stream and stops sending data until it finds the next picture header in the stream. This has the effect of dropping one frame from the media stream, and thereby reducing the bandwidth requirements. As frames are interdependent in MPEG, a frame should not be dropped if other frames depend on it, i.e. an I -frame cannot be dropped if the stream contains P- or B- frames which depend on it . For MPEG video, another technique for bandwidth reduction is known as Dynamic Rate Shaping (DRS) as described by A. Eleftheriadis et al . , "Constrained and General Dynamic Rate Shaping of Compressed Digital Video", Proceedings, 2nd IEEE International Conference on Image Processing, Washington, D.C., October 1995, pp. III.396- 399. This involves identifying, frame by frame, those coefficients in the MPEG stream which are least important in terms of image quality, and removing them from the stream.
Fig. 3b shows an adaptable media system. Again, the original media either is stored locally or is supplied by a live source. But, in this case the data enters a media adaptation module which shapes the media into an estimate of the available bandwidth. The shaped media enters the buffer, which is then read by the media pump. Again, the media pump sends out data so as to comply with the CWND. At the client, the data is buffered for presentation to the user. The client provides feedback information for congestion control.
The status of the buffer between the media adaptation module and the media pump is critical for this system. If the buffer is filling, then the media pump is sending data out more slowly than the media adaptation module is filling the buffer. In this case, the system should decrease the bandwidth requirements of the media so that the buffer does not overflow, by dropping frames or assigning a lower rate to DRS.
Conversely, if the buffer is emptying, the media pump is sending data out faster than the buffer is being filled by the media adaptation module. In this case, the system should increase the bandwidth requirements of the media so that the user gets the best quality possible. Since rate control provides information to the media adaptation module, it is highly dependent on the time of media being adapted. The media pump operates as in the non-adaptable case, sending data only when CWND > ACK. Based on the occupancy of the buffer, the adaptable media module is instructed to change the rate of the media. For example, for rate control in MPEG video by frame dropping, a frame can be dropped when the buffer is more than half full; otherwise, the video is passed unaltered to the buffer. Other scenarios, using DRS and more sophisticated rate control may be implemented. For example, if the buffer is filling, the transmission rate may be reduced in inverse relationship to the rate of buffer filling.
Fig. 4 illustrates an exemplary rate control technique based on measurements of buffer occupancy. Every 5 seconds, an average buffer occupancy is obtained for the previous 5 seconds, Occupancy!. The change in the buffer occupancy since the previous 5 -second interval, Occupancy^, is determined as Diff^ Start-up is with Occupancy0 = 0. The Centering factor provides a weighting for the occupancy to stay close to the desired occupancy at the buffer midpoint. The maximum buffer size is 5 seconds worth of data and depends on the originally encoded rate of the stream. If Diff, < 0,
Centering2 = Occupancy1/Occupancydes;Lred, where Occupancydesired is the buffer occupancy which rate control tries to maintain. Otherwise,
Centering! = 2 - (Occupancy!/OccupancydeS!red) , the goal being to keep the Centering factor between 0 and 2.
Then, Beta! is determined as a direct indication of how much demand varies in the network, using the Coefficient of Variation of the past and current values of the average occupancy. The coefficient of variation is defined as
Variance (samples) /Mean2 (samples) , where the samples are the two values of the average buffer occupancy. Beta is then multiplied by 10. If Beta is less than 0.1, it is assigned the value 0.1, if it is greater that 1.0, it is assigned the value 1.0.
Finally, the new transmission rate is calculated by subtracting, from the previous rate, the value Beta-Centering-Diff-8, where the factor 8 is due to Diff being in bytes and the rate being in bits. These steps are repeated every 5 seconds.
Adaptable media can cope with more drastic variations in network resources, as compared with non- adaptable media. In non-adaptable media, a decrease in network resources results in less data reaching the receiver than is needed, and the receiver can rely only on its initial buffering to continue playback.
Fig. 5a shows an example of using a non-adaptive media. In this case, the rate of the media is 300 kbps, and the final buffering is 5 seconds (1500 kb) . The available bandwidth is continually changing. In the beginning there is just enough bandwidth for the media and no buffering is used. But as soon as the available bandwidth decreases to 200 kbps, the receiver must begin using its buffering. If the bandwidth stays low for an extended period of time, the buffer may become completely depleted, at which time the user will experience an interruption in playback. This occurs at around 40 seconds. The available bandwidth then increases to 350 kbps, at which time the buffer can accumulate again.
With adaptable media, the initial buffering has to be used only when the bandwidth requirements of the media cannot be reduced further. As illustrated by Fig. 5b, for the same rate and initial buffering as in Fig. 5a, the bandwidth requirements of the media can be reduced down to a minimum of 150 kbps. When the available bandwidth drops to 200 kbps, the media also is reduced to this rate, so that no receiver buffering is used to compensate for the network. However, once the available bandwidth decreases to 100 kbps, the media can only be reduced to 150 kbps, and so the receiver buffer begins to be depleted. This scenario is more robust, as the available bandwidth can drop to 150 kbps and receiver buffering is not used.
Congestion control in accordance with the invention is applicable wherever some degree of loss can be tolerated, including most video and audio codecs, with adaptable codecs being preferred. Most video codecs can be adapted by using frame dropping. Even still images can be adapted for real-time applications. JPEG and MPEG have similarities in the way they are coded, so that a technique like DRS can be used on JPEG as well. A new standard known as Flashpix has the capability to be displayed at different resolutions, and hence different bandwidth requirements when sending a picture across the Internet .
While preferred embodiments have been described above under the assumption of a wired network, composed of fiber-optic or coaxial physical cables, techniques of the invention can be used to advantage with wireless networks as well . As digital communications protocols were originally devised with wired networks in mind, most congestion-aware protocols, TCP included, assume that a lost packet indicates congestion. This is practicable in wired networks, where bit errors are uncommon. Bit errors are more common in a wireless environment, however, so that a packet is more likely to become "lost" due to an error in the packet, regardless of congestion. But known systems do not include facilities for informing the receiver when a packet has arrived containing an error. Internet Protocol (IP) packets are simply dropped at the receiver if there is an error in the header.
Currently, with UDP, the receiver system has the option of instructing the sender system not to put error checking in packets. This is on a system-wide basis, so that all UDP packets coming from the sender system will not use error checking, which is undesirable when other applications expect UDP error checking. Preferably, in accordance with a preferred embodiment of the invention, the receiver can distinguish whether a packet is lost due to congestion or error, in an application-specific fashion.
Fig. 6 illustrates a packet constructed from an IP packet provided with the shaded area by the operating system. Error checking will be over the IP header only, so that a bit error there still results in the packet being dropped without notification. However, without error checking over the payload, a bit error in the payload does not result in the packet being dropped. In this embodiment of the invention, the sender constructs a UDP header inside the payload of the IP packet, for the packet to appear as a regular UDP packet at the receiver. In the UDP header, the sender sets the Cyclic Redundancy Code (CRC) field to zero, indicating that no error checking is used. Accordingly, when the receiver reads the packet, the UDP module of the receiver system will not do any error checking, leaving it to the application to check for errors. So that packets received with errors are not used, the sender must insert its own error checking functionality into the payload of the UDP packet it constructs. In Fig. 6, this is shown as Application Defined CRC. If, using Application Defined CRC, the receiver determines that there is an error, the receiver application drops the packet and sends a request for retransmission to the sender— without invoking congestion avoidance to reduce the transmission rate at the sender. If there is no error, the packet is used by the receiver application, with regular acknowledgment. In this fashion, the likelihood of a packet being dropped by the receiver operating system due to packet error is minimized, and greater throughput is realized on wireless networks without impairing the performance on wired networks. No changes are required to the operating system nor the underlying network link layer, so long as the link layer does not perform error checking over the entire link layer packet.
This preferred technique can be used with all proprietary client-server protocols which are congestion- aware. Such protocols must be proprietary because of changes to both the client and the server. Accordingly, adaptable media applications are preferred.

Claims

Claims
1. A method for transmitting data from a sender to a receiver in a digital communications network, comprising: maintaining an estimate of bandwidth available from the sender to the receiver; and adjusting transmission based on the estimate.
2. The method according to claim 1, wherein transmission is in real time.
3. The method according to claim 1, wherein maintaining the estimate of bandwidth comprises monitoring of packet loss based on acknowledgments from the receiver.
4. The method according to claim 1, wherein, in maintaining the estimate of bandwidth, the sender maintains a count of packets outstanding.
5. The method according to claim 4, wherein, in maintaining the estimate of bandwidth, the sender maintains current an upper bound on how many packets are allowed to be outstanding.
6. The method according to claim 5, wherein the upper bound is as specified by the TCP congestion window.
7. The method according to claim 1, wherein, in maintaining the estimate of bandwidth, the sender maintains a count of bytes outstanding.
8. The method according to claim 7, wherein, in maintaining the estimate of bandwidth, the sender maintains current an upper bound on how many bytes are allowed to be outstanding.
9. The method according to claim 8, wherein the upper bound is as specified by the TCP congestion window.
10. The method according to claim 1, further comprising retransmitting a packet which has been determined by the receiver as having been lost in transmission or received with an error.
11. The method according to claim 1, further comprising adapting bandwidth required by the data.
12. The method according to claim 1, further comprising discriminating between packets lost due to congestion in the network and packets received with at least one bit error.
13. A system for transmitting data from a sender to a receiver in a digital communications network, comprising: means for maintaining an estimate of bandwidth available from the sender to the receiver; and means for adjusting transmission based on the estimate.
14. The system according to claim 13, wherein transmission is in real time.
15. The system according to claim 13, wherein the means for maintaining the estimate of bandwidth comprises means for monitoring of packet loss based on acknowledgments from the receiver.
16. The system according to claim 13, wherein the means for maintaining the estimate of bandwidth comprises means for maintaining a count of packets outstanding.
17. The system according to claim 16, wherein the means for maintaining the estimate of bandwidth comprises means for maintaining current an upper bound on how many packets are allowed to be outstanding.
18. The system according to claim 17, wherein the upper bound is as specified by the TCP congestion window.
19. The system according to claim 13, wherein the means for maintaining the estimate of bandwidth comprises means for maintaining a count of bytes outstanding.
20. The system according to claim 19, wherein the means for maintaining the estimate of bandwidth comprises means for maintaining current an upper bound on how many bytes are allowed to be outstanding.
21. The system according to claim 20, wherein the upper bound is as specified by the TCP congestion window.
22. The system according to claim 13, further comprising means for retransmitting a packet which has been determined by the receiver as having been lost in transmission or received with an error.
23. The system according to claim 13, further comprising means for adapting bandwidth required by the data.
24. The system according to claim 13, further comprising means for discriminating between packets lost due to congestion in the network and packets received with at least one bit error.
25. A system for transmitting data from a sender to a receiver in a digital communications network, comprising a processor which is instructed for: maintaining an estimate of bandwidth available from the sender to the receiver; and adjusting transmission based on the estimate.
26. The system according to claim 25, wherein transmission is in real time.
27. The system according to claim 25, wherein maintaining the estimate of bandwidth comprises monitoring of packet loss based on acknowledgments from the receiver.
28. The system according to claim 25, wherein, in maintaining the estimate of bandwidth, the sender maintains a count of packets outstanding.
29. The system according to claim 28, wherein, in maintaining the estimate of bandwidth, the sender maintains current an upper bound on how many packets are allowed to be outstanding.
30. The system according to claim 29, wherein the upper bound is as specified by the TCP congestion window.
31. The system according to claim 25, wherein, in maintaining the estimate of bandwidth, the sender maintains a count of bytes outstanding.
32. The system according to claim 31, wherein, in maintaining the estimate of bandwidth, the sender maintains current an upper bound on how many bytes are allowed to be outstanding.
33. The system according to claim 32, wherein the upper bound is as specified by the TCP congestion window.
34. The system according to claim 25, wherein the processor is instructed further for retransmitting a packet which has been determined by the receiver as having been lost in transmission or received with an error.
35. The system according to claim 25, wherein the processor is instructed further for adapting bandwidth required by the data.
36. The system according to claim 25, wherein the processor is instructed further for discriminating between packets lost due to congestion in the network and packets received with at least one bit error.
PCT/US1997/019207 1997-10-24 1997-10-24 Transmission control for minimizing congestion in digital communications networks WO1999022477A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CA002308027A CA2308027A1 (en) 1997-10-24 1997-10-24 Transmission control for minimizing congestion in digital communications networks
PCT/US1997/019207 WO1999022477A1 (en) 1997-10-24 1997-10-24 Transmission control for minimizing congestion in digital communications networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1997/019207 WO1999022477A1 (en) 1997-10-24 1997-10-24 Transmission control for minimizing congestion in digital communications networks

Publications (1)

Publication Number Publication Date
WO1999022477A1 true WO1999022477A1 (en) 1999-05-06

Family

ID=22261930

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1997/019207 WO1999022477A1 (en) 1997-10-24 1997-10-24 Transmission control for minimizing congestion in digital communications networks

Country Status (2)

Country Link
CA (1) CA2308027A1 (en)
WO (1) WO1999022477A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001045332A1 (en) * 1999-12-18 2001-06-21 Roke Manor Research Limited Improvements in or relating to internet access
GB2360669A (en) * 1999-12-18 2001-09-26 Roke Manor Research Improvements in or relating to internet access
WO2002034002A1 (en) * 2000-10-17 2002-04-25 Telefonaktiebolaget Lm Ericsson (Publ) Method of improving the performance between one mobile station and a base station by selective setting of the retransmission time-out values
EP1225735A1 (en) * 2000-07-07 2002-07-24 Matsushita Electric Industrial Co., Ltd. Data communication system
FR2834847A1 (en) * 2002-01-17 2003-07-18 Cit Alcatel NETWORK OR SERVICE MANAGEMENT SYSTEM FOR DETERMINING SYNCHRONIZATION BETWEEN TWO PACKET FLOWS
US7428595B2 (en) 2002-09-30 2008-09-23 Sharp Laboratories Of America, Inc. System and method for streaming TCP messages in an enterprise network
US9729594B2 (en) 2000-09-12 2017-08-08 Wag Acquisition, L.L.C. Streaming media delivery system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5115309A (en) * 1990-09-10 1992-05-19 At&T Bell Laboratories Method and apparatus for dynamic channel bandwidth allocation among multiple parallel video coders
US5490252A (en) * 1992-09-30 1996-02-06 Bay Networks Group, Inc. System having central processor for transmitting generic packets to another processor to be altered and transmitting altered packets back to central processor for routing
US5526350A (en) * 1994-03-09 1996-06-11 British Telecommunications Public Limited Company Communication network with bandwidth managers for allocating bandwidth to different types of traffic
US5627970A (en) * 1994-08-08 1997-05-06 Lucent Technologies Inc. Methods and apparatus for achieving and maintaining optimum transmission rates and preventing data loss in a processing system nework

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5115309A (en) * 1990-09-10 1992-05-19 At&T Bell Laboratories Method and apparatus for dynamic channel bandwidth allocation among multiple parallel video coders
US5490252A (en) * 1992-09-30 1996-02-06 Bay Networks Group, Inc. System having central processor for transmitting generic packets to another processor to be altered and transmitting altered packets back to central processor for routing
US5526350A (en) * 1994-03-09 1996-06-11 British Telecommunications Public Limited Company Communication network with bandwidth managers for allocating bandwidth to different types of traffic
US5627970A (en) * 1994-08-08 1997-05-06 Lucent Technologies Inc. Methods and apparatus for achieving and maintaining optimum transmission rates and preventing data loss in a processing system nework

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2360669A (en) * 1999-12-18 2001-09-26 Roke Manor Research Improvements in or relating to internet access
WO2001045332A1 (en) * 1999-12-18 2001-06-21 Roke Manor Research Limited Improvements in or relating to internet access
US7315513B2 (en) 1999-12-18 2008-01-01 Roke Manor Research Limited Method for controlling data flow rate in an internet connection
EP1225735A4 (en) * 2000-07-07 2003-08-06 Matsushita Electric Ind Co Ltd Data communication system
EP1225735A1 (en) * 2000-07-07 2002-07-24 Matsushita Electric Industrial Co., Ltd. Data communication system
US9742824B2 (en) 2000-09-12 2017-08-22 Wag Acquisition, L.L.C. Streaming media delivery system
US9729594B2 (en) 2000-09-12 2017-08-08 Wag Acquisition, L.L.C. Streaming media delivery system
US9762636B2 (en) 2000-09-12 2017-09-12 Wag Acquisition, L.L.C. Streaming media delivery system
US10298638B2 (en) 2000-09-12 2019-05-21 Wag Acquisition, L.L.C. Streaming media delivery system
US10298639B2 (en) 2000-09-12 2019-05-21 Wag Acquisition, L.L.C. Streaming media delivery system
US10567453B2 (en) 2000-09-12 2020-02-18 Wag Acquisition, L.L.C. Streaming media delivery system
WO2002034002A1 (en) * 2000-10-17 2002-04-25 Telefonaktiebolaget Lm Ericsson (Publ) Method of improving the performance between one mobile station and a base station by selective setting of the retransmission time-out values
EP1330071A2 (en) * 2002-01-17 2003-07-23 Alcatel System for network or sevice management for determining the synchronisation between two packet streams
EP1330071A3 (en) * 2002-01-17 2003-11-12 Alcatel System for network or sevice management for determining the synchronisation between two packet streams
FR2834847A1 (en) * 2002-01-17 2003-07-18 Cit Alcatel NETWORK OR SERVICE MANAGEMENT SYSTEM FOR DETERMINING SYNCHRONIZATION BETWEEN TWO PACKET FLOWS
US7443889B2 (en) 2002-01-17 2008-10-28 Alcatel Network or service management system for determining the synchronization between two streams of packets
US7428595B2 (en) 2002-09-30 2008-09-23 Sharp Laboratories Of America, Inc. System and method for streaming TCP messages in an enterprise network

Also Published As

Publication number Publication date
CA2308027A1 (en) 1999-05-06

Similar Documents

Publication Publication Date Title
US9306708B2 (en) Method and apparatus for retransmission decision making
EP1258104B1 (en) Wireless network system and method
US7599402B2 (en) Communication device and method
EP2529528B1 (en) A method and apparatus for parsing a network abstraction-layer for reliable data communication
US7607062B2 (en) System for fast recovery from losses for reliable data communication protocols
JP3598110B2 (en) Data transmission method and apparatus
EP1771742B1 (en) High performance tcp for systems with infrequent ack
US20040098748A1 (en) MPEG-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control
KR20030020968A (en) Real-time packetization and retransmission in streaming applications
US20100005178A1 (en) Method and system for firewall friendly real-time communication
JP2007534194A (en) Improved TCP performance when reordering packets
JPH09191314A (en) Continuous data transmission method and its transmitter
EP1787419A1 (en) Signalling a state of a transmission link via a transport control protocol
WO2004047357A1 (en) Data unit sender and method of controlling the same
US8578040B2 (en) Method, system and article for client application control of network transmission loss tolerance
WO1999022477A1 (en) Transmission control for minimizing congestion in digital communications networks
Lai Improving the performance of TCP Vegas in a heterogeneous environment
Asplund et al. Partially Reliable Multimedia Transport
Huston Latency and IP
KR20040091024A (en) Modifications to tcp/ip for broadcast or wireless networks
AU2001232925A1 (en) Wireless network system and method

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA US

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
ENP Entry into the national phase

Ref document number: 2308027

Country of ref document: CA

Ref country code: CA

Ref document number: 2308027

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 09530085

Country of ref document: US