17
Short Survey A survey of TCP-friendly router-based AQM schemes Gwyn Chatranon a , Miguel A. Labrador b, * , Sujata Banerjee c a Department of Information Science and Telecommunications, University of Pittsburgh, Pittsburgh, PA 15260, USA b Department of Computer Science and Engineering, University of South Florida, Tampa, FL 33620, USA c Hewlett-Packard Laboratories, Palo Alto, CA 94304, USA Received 26 December 2003; revised 9 April 2004; accepted 5 May 2004 Available online 28 May 2004 Abstract Although the majority of the traffic over the Internet is still TCP-based, applications such as voice over IP and video-conferencing are changing this very rapidly. While TCP-based applications react to network congestion, UDP-based streaming applications usually do not have any type of flow and congestion control mechanisms. UDP, the transport layer protocol used by audio and video streaming applications, does not react to network congestion thus stealing bandwidth from the responsive TCP-based connections. Several solutions have been suggested to combat this TCP-friendliness problem, mostly applied either in the end systems (end-to-end) at the transport layer of the protocol stack or inside the network (routers) at the network layer. This article surveys the state-of-the-art in router-based mechanisms to address the TCP-friendliness problem and presents a description of the most important algorithms, design issues, advantages and disadvantages, and a performance evaluation. The article also describes ways to estimate the number of active flows traversing a core router and points to further sources on this subject, which is widely used by many mechanisms, including several described in this survey. q 2004 Elsevier B.V. All rights reserved. Keywords: Fairness; Active queue management; TCP-friendly; Congestion control 1. Introduction The majority of the traffic in the Internet today is carried by the Transmission Control Protocol (TCP). TCP is the protocol of choice for the widely used World Wide Web (HTTP), file transfer (FTP), TELNET, and email (SMTP) applications, because it provides a reliable transmission service. In practice, TCP has been widely deployed because of its Congestion Avoidance algorithm, introduced by Jacobson [1]. This mechanism helps a traffic source to determine how much bandwidth is available in the network and adjust its transmission rate accordingly. The basic idea of this approach is to have the source gradually increase its transmission rate until the available bandwidth is consumed, and reduce its transmission rate when congestion is detected. TCP uses a congestion window to regulate its transmission rate and normally increases this window in a linear manner but decreases it in a multiplicative manner to quickly alleviate network congestion. This flow and congestion control strategy, referred to as Additive Increase/Multiplicative Decrease (AIMD), keeps the net- work from being overloaded and has become a crucial factor in the robustness and stability of the Internet. Lately, different types of applications, especially multi- media and audio/video streaming applications, are being increasingly deployed over the Internet. Such applications utilize the User Datagram Protocol (UDP) instead, which does not employ end-to-end flow and congestion control. Rather, the sending rate is set by the application and normally no or little consideration of network congestion is taken into account during the transmission. The lack of end-to-end flow and congestion control from these applications could result in two major problems already identified in the Internet: unfairness and congestion collapse [2]. The problem of congestion collapse occurs when senders with no end-to-end flow and congestion control keep transmitting packets even though they will be discarded downstream, e.g. by a bottleneck link, before reaching their final destinations [2]. This could become a major problem as Computer Communications 27 (2004) 1424–1440 www.elsevier.com/locate/comcom 0140-3664/$ - see front matter q 2004 Elsevier B.V. All rights reserved. doi:10.1016/j.comcom.2004.05.001 * Corresponding author. Tel.: þ1-813-974-3260; fax: þ 1-813-974-5456. E-mail addresses: [email protected] (M.A. Labrador), gwync@ mail.sis.pitt.edu (G. Chatranon), [email protected] (S. Banerjee).

A survey of TCP-friendly router-based AQM schemes

Embed Size (px)

Citation preview

Page 1: A survey of TCP-friendly router-based AQM schemes

Short Survey

A survey of TCP-friendly router-based AQM schemes

Gwyn Chatranona, Miguel A. Labradorb,*, Sujata Banerjeec

aDepartment of Information Science and Telecommunications, University of Pittsburgh, Pittsburgh, PA 15260, USAbDepartment of Computer Science and Engineering, University of South Florida, Tampa, FL 33620, USA

cHewlett-Packard Laboratories, Palo Alto, CA 94304, USA

Received 26 December 2003; revised 9 April 2004; accepted 5 May 2004

Available online 28 May 2004

Abstract

Although the majority of the traffic over the Internet is still TCP-based, applications such as voice over IP and video-conferencing are

changing this very rapidly. While TCP-based applications react to network congestion, UDP-based streaming applications usually do not

have any type of flow and congestion control mechanisms. UDP, the transport layer protocol used by audio and video streaming

applications, does not react to network congestion thus stealing bandwidth from the responsive TCP-based connections. Several solutions

have been suggested to combat this TCP-friendliness problem, mostly applied either in the end systems (end-to-end) at the transport layer

of the protocol stack or inside the network (routers) at the network layer. This article surveys the state-of-the-art in router-based

mechanisms to address the TCP-friendliness problem and presents a description of the most important algorithms, design issues,

advantages and disadvantages, and a performance evaluation. The article also describes ways to estimate the number of active flows

traversing a core router and points to further sources on this subject, which is widely used by many mechanisms, including several

described in this survey.

q 2004 Elsevier B.V. All rights reserved.

Keywords: Fairness; Active queue management; TCP-friendly; Congestion control

1. Introduction

The majority of the traffic in the Internet today is carried

by the Transmission Control Protocol (TCP). TCP is the

protocol of choice for the widely used World Wide Web

(HTTP), file transfer (FTP), TELNET, and email (SMTP)

applications, because it provides a reliable transmission

service. In practice, TCP has been widely deployed because

of its Congestion Avoidance algorithm, introduced by

Jacobson [1]. This mechanism helps a traffic source to

determine how much bandwidth is available in the network

and adjust its transmission rate accordingly. The basic idea

of this approach is to have the source gradually increase its

transmission rate until the available bandwidth is consumed,

and reduce its transmission rate when congestion is

detected. TCP uses a congestion window to regulate its

transmission rate and normally increases this window in a

linear manner but decreases it in a multiplicative manner to

quickly alleviate network congestion. This flow and

congestion control strategy, referred to as Additive

Increase/Multiplicative Decrease (AIMD), keeps the net-

work from being overloaded and has become a crucial factor

in the robustness and stability of the Internet.

Lately, different types of applications, especially multi-

media and audio/video streaming applications, are being

increasingly deployed over the Internet. Such applications

utilize the User Datagram Protocol (UDP) instead, which

does not employ end-to-end flow and congestion control.

Rather, the sending rate is set by the application and

normally no or little consideration of network congestion is

taken into account during the transmission. The lack of

end-to-end flow and congestion control from these

applications could result in two major problems already

identified in the Internet: unfairness and congestion

collapse [2].

The problem of congestion collapse occurs when senders

with no end-to-end flow and congestion control keep

transmitting packets even though they will be discarded

downstream, e.g. by a bottleneck link, before reaching their

final destinations [2]. This could become a major problem as

Computer Communications 27 (2004) 1424–1440

www.elsevier.com/locate/comcom

0140-3664/$ - see front matter q 2004 Elsevier B.V. All rights reserved.

doi:10.1016/j.comcom.2004.05.001

* Corresponding author. Tel.: þ1-813-974-3260; fax: þ1-813-974-5456.

E-mail addresses: [email protected] (M.A. Labrador), gwync@

mail.sis.pitt.edu (G. Chatranon), [email protected] (S. Banerjee).

Page 2: A survey of TCP-friendly router-based AQM schemes

a large amount of bandwidth can be wasted by these

undelivered packets. In a worst-case scenario, some

applications may even increase their transmission rates in

response to a higher packet drop rate, which would severely

worsen the situation. Currently, without the cooperation of

traffic sources and routers with an appropriate rate-

adaptation mechanism, there is yet no effective way to

regulate the unresponsive flows from causing this problem

in the current Internet [3]. Furthermore, per-flow scheduling

mechanisms, that were initially thought to be the solution to

the congestion collapse problem, have been shown to fail

under fairly common scenarios [2].

The problem of unfairness occurs when traffic sources

with no end-to-end flow and congestion control, e.g. UDP

sources, unfairly consume a larger amount of the bottleneck

bandwidth than competing well-behaved responsive

sources, such as TCP sources. During congestion, TCP

sources back off their transmission rates according to the

AIMD strategy, leaving a new portion of available

bandwidth for the non-congestion-controlled traffic. Under

persistent congestion, this situation continues and at some

point, unresponsive flows can actually consume the entire

channel capacity, if needed. Although some streaming

media applications deploy some level of responsive

mechanisms to handle network congestion, they are still

much more aggressive than TCP sources, and the unfairness

problem still occurs. The unfairness problem is being

addressed using router-based and end-system-based sol-

utions. These are solutions that are implemented either in

routers or in the end systems. In this article, we survey the

state-of-the-art in router-based approaches, providing a

comprehensive explanation, comparison and analysis of the

most important algorithms that can be used to address the

unfairness problem.

The rest of the article is organized as follows. Section 2

introduces basic concepts about TCP and presents an

important formula commonly used in both router-based

and end-system-based solutions. In Section 3, our motiv-

ation for focusing on router-based approaches is included

along with the description and evaluation of the most

important mechanisms. These mechanisms are compared in

Section 4. A brief explanation and evaluation of several

ways to estimate the number of actives flows utilized by

some of these mechanisms is also included at the end of

Section 4. Finally, a summary of this article is provided in

Section 5.

2. TCP flow and congestion control fundamentals

Transmission Control Protocol (TCP), the de-facto

standard transport layer protocol, is designed to provide a

reliable, in-order, connection-oriented communication

between a pair of hosts over diverse reliable and unreliable

internetworks. The TCP flow and congestion control

mechanisms are designed to determine the capacity

available in the network and vary its transmission rate

accordingly. The sender maintains a congestion window

(cwnd) state variable, which represents the amount of data

that can be transmitted at a given time according to the

congestion in the network. The maximum window size,

indicating the maximum number of bytes that can be sent at

any given time, is then set to be the minimum between the

congestion window and the advertised window, which

reflects the capacity of the receiver.

Initially, since there is no direct way for the TCP

source to have any knowledge about the congestion level

in the network, the sender slowly probes the network by

setting the congestion window to one segment and

exponentially increasing the window size until either a

timeout occurs, the advertised window is reached, or the

Slow Start threshold (setthresh) is reached. This phase is

referred to as the Slow Start phase, where the TCP

source doubles the congestion window size every round

trip time (RTT). Once the setthresh is reached, TCP

enters the Congestion Avoidance phase, where the sender

increases its congestion window by 1/(current congestion

window) for each received acknowledgment (ACK)

packet. If congestion occurs, which is detected by a

time out (ACK for a packet sent never received or

received too late), a source sets the Slow Start threshold

to half the value of the current congestion window, sets

the congestion window to 1, and begins the Slow Start

phase again. To date, there are several well-known

variants of TCP, such as Tahoe, Reno [4,5], Newreno

[6], Sack [7] and Vegas [8] versions, among the most

important ones. However, these variants still preserve the

following two fundamental components of their conges-

tion control mechanism [9]:

(1) The TCP source uses a packet drop as an indication

of congestion inside the network, and responds by

decreasing the congestion window at least by half.

This congestion window reduction is meant to

reduce the effective sending rate in order to relieve

the congestion.

(2) In the congestion avoidance phase, or linear phase,

the TCP sender increases the congestion window by

at most one packet per round trip time.

Some TCP variants may be more responsive in reacting

to congestion and less aggressive than others in obtaining a

bigger share of the available bandwidth. For example, the

TCP Tahoe version decreases the congestion window down

to one, instead of decreasing it to half the current value.

Some TCP implementations may send an ACK packet for

every two data packets, increasing the congestion window

by less than one packet per round trip time during the

congestion avoidance phase. Nonetheless, these two com-

ponents usually give us an upper bound on the sending rate

of TCP.

G. Chatranon et al. / Computer Communications 27 (2004) 1424–1440 1425

Page 3: A survey of TCP-friendly router-based AQM schemes

Several TCP models have been proposed to explain

TCP’s flow and congestion control mechanisms [9–13].

The simplest one is The Stationary Behavior of Ideal TCP

Congestion Avoidance [9] which has been used as a

fundamental concept in several mechanisms that aim to

solve the unfairness problem. In this model, a number of

simplified assumptions are made, such as

† Only a single packet is dropped when the congestion

window reaches W packets.

† Uniform (non-bursty) average packet drop rate of p:

† TCP segments of size B bytes.

† TCP runs over a path with sufficient bandwidth and a

fairly constant round trip time of RTT seconds.

† The sender always has data to transmit and the receiver

has infinite buffers.

† The details of TCP data recovery and retransmission are

neglected.

Under these assumptions the congestion window goes

through a periodic saw-tooth shape as shown in Fig. 1.

From the figure, once the congestion window reaches W

packets, it is cut back by the sender to half, or W=2: If the

receiver acknowledges every segment, the congestion

window increases by one packet per round trip, therefore

each cycle of the saw-tooth shape equals to W=2 round trips,

or RTTðW=2Þ s. The total data delivered are the area under

the saw tooth which is equal to ðW=2Þ2 þ 1=2ðW=2Þ2 ¼

ð3=8ÞW2 packets per cycle. An alternative way to calculate

this number is by observing that, in each cycle the

congestion window starts at W=2 and increases by at most

one per round trip time until it reaches W : Therefore, the

sender transmits at least W=2 þ ððW=2Þ þ 1Þ þ ððW=2Þ þ

2Þ þ · · · þ W < ð3=8ÞW2 packets per cycle. Hence, the

fraction p of the packets that are dropped is then bounded

by p # ð8=3W2Þ, which yields

W #

ffiffiffiffiffi8

3p

s: ð1Þ

As Eq. (1) provides an upper bound on the congestion

window W of a TCP connection when single packets are

dropped, the maximum throughput over a single cycle of

the steady-state model is then given as below

T ¼Data per cycle

Time per cycle¼

B3

8W2

RTTW

2

¼B=p

RTT

ffiffiffiffi2

3p

s ¼1:5

ffiffiffiffi2=3

pB

RTTffiffip

p :

ð2Þ

In Ref. [10], the authors use stochastic analysis for a more

precise model of TCP congestion control behavior in steady

state, which includes the effect of timeouts and retransmis-

sions as shown below.

T <minWmax

RTT;

1

RTT

ffiffiffiffiffiffi2Bp

3

rþT0min 1;3

ffiffiffiffiffiffi3Bp

8

r !pð1þ32p2Þ

0BBBB@

1CCCCA:

ð3Þ

In this case, T0 is a retransmission timeout, and Wmax is the

maximum congestion window when it is limited by the buffer

size at the receiver.

In the case of a TCP connection with delayed acknowl-

edgments, i.e. the receiver sends only one ACK for every two

received packets, the sender will increase its congestion

window more slowly. This is because the sender uses an ACK

as a trigger to increase its window, then for a delayed-ACK

the sender receives ACK packets at a slower rate, which

results in a slower congestion window increasing rate. In this

case, the fraction p of the sender’s packet drop rate is then

p ¼1XW

i¼0

ðW=2 þ i=2Þ

<1

ð3=4ÞW2: ð4Þ

With the same method to get the throughput equation from

Eq. (4), the upper bound on the arrival rate when the receiver

uses delayed-ACK is

T ¼1:5

ffiffiffiffi1=3

pB

RTTffiffip

p : ð5Þ

The importance of these models is that they provide a way to

calculate the theoretical throughput of a TCP connection

under these particular assumptions and compare it against the

actual measured throughput of a specific flow to draw

conclusions about its friendliness to TCP. These formulas

therefore, have been used in the design of TCP-friendly

protocols for streaming media applications [14,15], and

router-based mechanisms that provide fairness between TCP

and non-TCP traffic.

3. Router-based solutions

During the last several years, a number of mechanisms

have been proposed to solve the problem of unfairness.

Some of them are aimed at solving the problem from insideFig. 1. TCP congestion window behavior in steady state of a simplified

model.

G. Chatranon et al. / Computer Communications 27 (2004) 1424–14401426

Page 4: A survey of TCP-friendly router-based AQM schemes

the network, and some of them are focusing on developing a

responsive or a TCP-congestion-control-compatible proto-

col to be employed at traffic sources and destinations. These

mechanisms can be classified in different possible ways.

In this article, we classify the algorithms based on the

implementation placement as either router-based or end-

system-based.

A router-based algorithm is deployed inside the network,

i.e. in the routers, to regulate the flows causing the

unfairness problem. Some schemes may also introduce a

level of punishment on these flows to provide an incentive

for a protocol implementer to deploy end-to-end congestion

control mechanisms, which is a crucial factor to solve the

congestion collapse problem. End-system-based mechan-

isms are aimed at defining an end-to-end flow and

congestion control mechanism to be implemented at the

end systems. If the protocol is designed to be compatible

with TCP, it is called a TCP-friendly protocol. Although

both of these approaches are important, we consider that

router-based solutions are more appropriate, at least from

the unfairness problem point of view, since we do not leave

it up to the end user to decide to whether use flow and

congestion control or not. We do believe that to solve the

unfairness and congestion collapse problems simul-

taneously, both approaches might be necessary. However,

the focus of this article is the unfairness problem.

Many different protocols and algorithms have been

proposed so far. As part of end-system-based solutions

several TCP-friendly protocols have been proposed using

Eqs. (2) or (3) to adjust the sender’s transmission rate or

using other strategies to increase or decrease the congestion

window of TCP. Rate-based examples of TCP-friendly

transport layer protocols are TCP-Friendly Rate Control

Protocol (TFRC) [15], Rate Adaptation Protocol (RAP)

[16], Loss-Delay Based Adaptation Algorithm (LDA) [17],

and TCP Emulation At Receivers (TEAR) [18] among the

most important ones. The main goal of them is to transmit

data in a smoother manner so users from streaming

applications perceive a better quality than using TCP

while being TCP friendly. Window-based TCP-friendly

end-to-end protocols have also been devised, such as the

family of Binomial algorithms, like Inverse-Increase/

Additive-Decrease (IIAD) and SQRT [19], and the General

Additive Increase Multiplicative Decrease (GAIMD) [20]

algorithm that generalizes the same TCP protocol using

different values for the parameters a and b that define the

increase and decrease strategy.1 These end-to-end solutions

will not be further described in this article. For a detailed

description of these schemes the reader is directed to the

references cited and survey papers that already exist on the

topic, such as in Ref. [21].

Router-based solutions are the main focus of this survey.

In Sections 3.1 and 3.2 we will explain the main issues to

consider when designing such algorithms and describe the

most important proposed schemes. In particular, we will

include the TCP Model-based Identification Scheme [2],

Longest Queue Drop (LQD) [22], Fair Random Early

Detection (FRED) [23], Balanced RED (BRED) [24],

Stabilized RED (SRED) [25], CHOose and Keep for

responsive flows (CHOKe) [26], Stochastic Fair Blue

(SFB) [27], BLACKlisting unresponsive flows (BLACK)

[28], and Capture–REcapture (CARE) [29]. Then, in

Section 4, we include a thorough evaluation of the most

important ones.

3.1. Main design issues and goals

One of the most important objectives of a router-based

scheme is its ability to achieve fairness among competing

flows, particularly in the case where unresponsive high-

bandwidth best-effort flows share the bottleneck link. For

instance, this can be done by identifying those flows and

applying some sort of preferential dropping policy or similar

buffer management scheme, or a unique technique of its

own, as will be shown in Section 3.2. Some schemes also

restrict or punish identified unresponsive flows that

consume more bandwidth than their fair share, certainly at

the time of congestion, or even during light loads as a mean

of promoting the use of end-to-end congestion control

mechanisms. From this discussion, it can be inferred that

two important issues are the identification of unresponsive

flows and the calculation of the fairshare. A router has to

accurately identify which flows should be regulated so that

it does not accidentally punish well-behaved flows, and

once identified, the flows should be penalized fairly. These

and other important issues to consider in the design of a

router-based mechanism are explained next.

† Ability to identify and regulate unresponsive flows.

Identification of the unresponsive flows may or may

not be necessary to solve the unfairness problem.

Nonetheless, the ability to identify the traffic that is

harmful to the other traffic provides extra flexibility and

usually better results than otherwise. For example, one

may want to punish unresponsive traffic intensely to

provide an incentive to use a well-behaved end-to-end

congestion control, and not punishing well-behaved

flows at all. As another example, one may want to

place the flows in a lower priority queue, and put a rate

limitation or use any other restriction method, so that

they can co-exist well with good-behaved flows. Flow

identification is not for free though and care must be

taken to make the scheme simple and scalable.

† Fairness. Although achieving fairness is desirable for all

of the schemes of this kind, the meaning of fairness need

not be as strict and complex as that of a fair scheduling

mechanism. Since flows with no end-to-end congestion

control could gain more bandwidth and might even

completely shut down all responsive flows on the link,

1 For TCP, a ¼ 1 (additive increase) and b ¼ 0:5 (multiplicative

decrease).

G. Chatranon et al. / Computer Communications 27 (2004) 1424–1440 1427

Page 5: A survey of TCP-friendly router-based AQM schemes

putting some regulation or preferential dropping on this

type of flows may be enough to reduce the effect of this

problem. This could be done without using any complex

scheduling algorithm. In other words, we need to solve

the problem and be as fair as possible but we can also

relax the degree of fairness, allowing unresponsive flows

that need more bandwidth to obtain the resources they

need, or close to, as long as they are not harmful to

other flows.

† Need to estimate the number of active flows. Several

schemes need to have an accurate estimation of the

number of active flows traversing the router, without a

large amount of memory space required, in order to

calculate the fair share and achieve other goals. This is an

important area of active research very related to router-

based schemes. In Section 4.6 we provide a brief

overview of the most important mechanisms to estimate

the number of active flows along with an evaluation.

† Simplicity of operation. One approach to solve the

unfairness problem is to use per-flow scheduling

mechanisms that separately regulate the bandwidth of

each flow as stated in Ref. [30]. However, as demon-

strated through a series of simulations in Ref. [2],

although this mechanism may be able to alleviate the

problem of unfairness, the congestion collapse problem

can still occur regardless of the scheduling type. Per-flow

scheduling also introduces a high cost in terms of state

information and complexity in order to achieve fairness.

As opposed to a computationally complex scheme, a

simple, yet effective mechanism becomes one of the

most important goals in a router-based approach. This is

one of the main reasons why most schemes still use First-

Come First-Serve (FCFS) as the scheduling discipline.

† Scalability. Scalability is another important issue. Since

these schemes are part of the packet forwarding process

and core routers handle thousands or even millions of

flows, the mechanisms must scale well. For instance, the

complexity of the algorithm and the use of router

resources should not be proportional to the number of

flows. Simplicity and scalability are related and are both

very important issues to consider in order to implement

the algorithms in practice.

3.2. Description of the most important schemes

Router-based AQM schemes can be categorized into

schemes that need full per-flow state information and

schemes that do not need per-flow state information or

require only partial state information. At the same time, the

schemes that need no per-flow state information can be

further divided in two groups depending on whether they

need to estimate the number of active flows or not. A

diagram showing this classification is presented in Fig. 2. In

this work we focus our attention on the mechanisms that

don’t need full state information mainly for scalability

reasons. Even though the state-full schemes usually have

less computational complexity than fair scheduling mech-

anisms, they still have a high space complexity. As a result,

these mechanisms have rarely been implemented in practice

in a high speed or backbone router.

The rest of this section provides a description of each of

these AQM schemes and Table 1 summarizes a qualitative

comparison according to the main design issues discussed in

the previous section. Then, in Section 4, we include a

performance evaluation of the schemes that do not require

complete state information along with a short evaluation of

the most important methods utilized to estimate the number

of active flows.

3.2.1. TCP model-based identification scheme

The paper ‘Promoting the Use of End-to-End Congestion

Control in the Internet’ [2] is well-known for its extensive

demonstration of the danger of unfairness and congestion

collapse. A router-based solution is proposed to identify

unresponsive flows and punish them by limiting their rates or

putting them in a low priority class of queue. Unresponsive

flows are identified comparing the flow’s arrival rate with

the throughput ðTÞ obtained from the Eq. (6), which

Fig. 2. Classification of router-based solutions.

G. Chatranon et al. / Computer Communications 27 (2004) 1424–14401428

Page 6: A survey of TCP-friendly router-based AQM schemes

represents an approximation of the throughput that a TCP

connection would have received under the same circum-

stances as the flow under consideration.

T #1:5

ffiffiffiffi2=3

pB

RTTffiffip

p : ð6Þ

This equation is derived from a simple TCP model that

captures the behavior of the TCP congestion window in

steady state as shown in Fig. 1 [9]. The variable W in the

picture represents the size of the congestion window when a

packet is dropped with probability p: Note that in order to

determine the TCP throughput from this equation, the flow’s

round-trip time ðRTTÞ; packet size ðBÞ; as well as the

flow’s dropping probability ðpÞ should be known. If the

flow’s arrival rate, as estimated from RED’s packet drop

history, is greater than that obtained from the equation, it is

identified as an unresponsive flow and should be punished

by putting it into another class of queue. In this case, the

authors suggest Class Based Queue (CBQ) as a method to

partition the buffer space into a queue for responsive traffic

and a queue for unresponsive traffic. The flow’s rate

restriction is then removed once the flow’s arrival rate

decrease to less than 1:22B=ðRTTffiffip

pÞ for a new packet drop

probability p:

This mechanism is quite simple and can identify

unresponsive flows if the router knows the value of the

required parameters. However, there is no easy way for the

router to determine the flow’s round-trip time and hence, it

is unlikely that it will calculate the bandwidth from the

equation precisely. This may lead to mis-identification of

unresponsive flows in several circumstances. In addition, it

also needs an extra mechanism such as CBQ to take care of

identified unresponsive flows.

3.2.2. Longest queue drop (LQD)

In Ref. [22], a buffer management scheme to solve to

unfairness problem is proposed. The basic concept of LQD

is that the flow with the largest number of packets waiting in

the queue should be the first to be penalized. With this

scheme, the buffer space is partitioned so that each flow has

the same normalized buffer to achieve fair sharing of

bandwidth. If the size of the entire buffer is denoted as B;

each connection i has a nominal buffer allocation bi; which

can be thought of as connection i‘s guaranteed buffer size.

Initially, we can set bi to B=n for all i; where n is the number

of backlogged connections. When a connection i needs

more than bi buffers, two scenarios are possible. First, if the

global buffer occupancy is less than B; the connection i is

allocated space from the available buffer space, given that

the new global buffer occupancy does not exceed B: Second,

if the global buffer occupancy at that time is equal to B; and

connection i has a current occupancy qi that is less than bi;

then LQD makes room for the incoming packet by dropping

the front packet from a connection whose current occupancy

exceeds its allocation. The packets chosen are dropped from

the front because this triggers TCP’s fast retransmit/

recovery mechanisms faster, helping TCP in increasing its

throughput [31]. Three methods are proposed for choosing

the connection to drop the packet from:

(1) Longest queue drop (LQD). This option picks the

connection that obtains a higher share of the bandwidth

unused by other connections. This can be done by

choosing the connection j with the largest value of

ðqj 2 bjÞ over all connections. This method also helps

the router with some level of isolation and protection

since if there is only one misbehaving flow, only this

flow should experience a higher loss rate.

(2) Dynamic soft partitioning with random drop (RND).

This option selects a connection to be pushed-out at

random from amongst the connections for whom

qj . bj: The goal of this scheme is to reduce the amount

of bursty loss, as some TCP versions, e.g. TCP Reno, are

known to behave badly in presence of bursty losses.

Table 1

Queue management schemes comparison

Schemes Holds

per-flow

information

Estimates

number of

active flows

Explicitly

identifies

unresponsive flows

Penalizes

unresponsive

flows

Removes penalty

if the flow

becomes responsive

Early

congestion

notification

Factors of mis-identification

TCP model-based [2]

identification scheme

No No Yes Yes Yes N/A Unknown parameters

especially flow’s RTTs.

Very simplified TCP model

LQD [22] Yes Yes No Yes Yes No N/A

FRED [23] Yes No No Yes Yes Yes N/A

BRED [24] Yes No No Yes Yes Yes N/A

SRED [25] No Yes Yes No N/A Yes Its probabilistic mechanism

CHOKe [26] No No No Yes Yes Yes N/A

SFB [27] No No Yes Yes Yes Yes Size of bins and

number of flows

BLACK [28] No Yes Yes Yes Yes Yes Estimation of number

of flows

CARE [29] No Yes Yes Yes Yes No Large amount of

memory for CR model

G. Chatranon et al. / Computer Communications 27 (2004) 1424–1440 1429

Page 7: A survey of TCP-friendly router-based AQM schemes

(3) Approximated longest queue drop (ALQD). One draw-

back of LQD method is that it requires a searching

operation through the backlogged queues in order to

determine which connection has the longest queue.

ALQD improves this issue by having a register holding

the length and identity of the longest queue.

It has been shown through simulations that LQD works

quite well for flow isolation even with TCP flows with

different round trip delays. The drawback of this scheme is

that a router needs to keep state information for every

backlogged flow, otherwise a searching procedure through

the entire buffer space is needed every time a push-out

decision is to be made. Although the ALQD method was

designed to reduce this cost, it may lead to bursty losses since

it tends to drop only the packets from the flow with the

longest queue. In addition, LQD drops packets only when the

global buffer is full. This results in a lack of early congestion

notification which is a prominent feature of active queue

management schemes such as RED and its derivations.

3.2.3. Fair random early detection (FRED)

Fair Random Early Detection (FRED)[23] is a modified

version of RED meant to solve the unfairness problem.

Basically, FRED works in the same way as the very well-

known RED scheme [32] but with the following additions.

Two global parameters, minq and maxq; are added for the

minimum and maximum number of packets that each flow

allowed to queue at the router. For each active flow, two

pieces of information need to be maintained—the number of

packets buffered (qlen) and the number of times the flow has

failed to respond to congestion notification (strike). Lastly,

FRED introduces an average per-flow queue size, avgcq, as

a global variable is.

FRED uses minq to protect low-speed flows guaranteeing

them a minimum buffer space. Arriving packets are always

buffered if the connection has fewer number of packets

(qlen) than minq; and the average buffer size is less than

maxth: In order to manage unresponsive flows, FRED

enforces per-flow queueing limits. This could be done by

keeping a flow buffer occupancy at maximal maxq; and

counting the number of times each flow tries to go beyond

maxq in the per-flow strike variable. The number of buffered

packets from flows with high values of strike are not

allowed to be more than the average per-flow queue size

avgcq; thus preventing unresponsive flows from consist-

ently dominating the buffer space.

Overall, FRED can achieve fairness in several situations,

with minimal modifications to RED. However, the main

drawback of FRED is the amount of per-flow state

information that needs to be maintained, limiting its

scalability.

3.2.4. Balanced-RED (BRED)

The fundamental idea of Balanced-RED or BRED [24] is

to provide fairness having a RED-like mechanism that acts

upon each active flow passing through the router. BRED

maintains qleni as the number of packets of each active flow

i inside the global buffer of size B; and Nactive as the

number of total active flows. Three thresholds are set on the

size of each qleni in order to perform their own dropping

policy as follows:

(1) t1; minimum number of packets that a flow is allowed

to have in the buffer before its packets start being

dropped with a probability p1:

(2) t2; number of packets that a flow is allowed to have in

the buffer before its packets start being dropped with a

probability p2; where p2 . p1:

(3) Wm; the maximum number of packets that the flow

is allowed to have in the buffer.

Then for each arriving packet, if the flow state from this

connection is not present, it is initialized with qleni ¼ 0; and

the number of active flows, Nactive, is incremented by one.

If the information of this flow is already in memory, then

preferential dropping is applied to the arriving packet

according to the number of packets from this flow already in

the queue, or qleni; as shown above. Then, for any departing

packet from flow i; its qleni is decremented by one packet. If

qleni reaches zero, the number of active flows is decreased

by one.

BRED has shown to have the ability to isolate

unresponsive flows quite well. However, unresponsive

flows still can get much higher bandwidth than responsive

flows. This effect is significant when the buffer size is not

enough to make the effective buffer size for each flow less

than its bandwidth-delay product. There are many par-

ameters that may have an effect on the performance of

BRED in a similar way as RED. Yet, the article did not

explore whether those parameters would have significant

impact on different types of scenarios. Lastly, BRED also

requires per-flow state information to make decisions about

which packet to be dropped.

3.2.5. Stabilized RED (SRED)

Stabilized RED or SRED [25] is aimed at stabilizing the

occupancy of a FCFS buffer, independent of the number of

active flows. Therefore, the dropping probability depends on

both the buffer occupancy and the estimate of the number of

active flows.

The TCP bandwidth equation (Eq. (6)) shows that

cwnd , p2ð1=2Þ: ð7Þ

where cwnd is the flow’s congestion window, and p is the

packet drop probability. With N flows, the sum of the N

congestion windows will be in the order of N £ p2ð1=2Þ

(MSSs, assuming all flows have the same MSS—Maximum

Segment Size). The authors argue that the target buffer

occupation, Q0; must be of the same magnitude as

N £ p2ð1=2Þ; and they assume Q0 ¼ N £ p2ð1=2Þ MSSs.

Therefore, p must be of the order of N2: This becomes

G. Chatranon et al. / Computer Communications 27 (2004) 1424–14401430

Page 8: A survey of TCP-friendly router-based AQM schemes

a part of the dropping policy of SRED as follows

pzap ¼ psredðqÞ £ min 1;1

ð256 £ ðPðtÞÞ2

�; ð8Þ

with

psredðqÞ ¼

pmax if ð1=3ÞB # q , B;

ð1=4Þ £ pmax if ð1=6ÞB # q , ð1=3ÞB;

0 if 0 # q , ð1=6ÞB:

8>><>>:

where 1=PðtÞ is an estimate of the effective number of active

flows in the time shortly before the arrival of packet t; B is

the buffer size, and q is the instantaneous buffer occupancy.

From the dropping policy, as long as the number of active

flows N does not exceed 256 (arbitrary picked number), the

dropping probability also depends on the number of active

flows to maintain the target buffer occupancy. That is

pzap ¼psred

2562£

1

ðPðtÞÞ2,

psred

65; 536£ ðnumber of flowsÞ2:

Once N exceeds 256, the dropping probability is equal to

psred in order to prevent TCP sources to spend much time in

time-out due to an excessive dropping probability.

In order to estimate the number of active flows, SRED

maintain a data structure, called the Zombie List, of the M

recently seen flows, as opposed to maintaining per-flow

state. Each flow in the Zombie list contains a variable

Count; that represents how often the packets of this flow

arrive. If the Zombie list is empty, as a packet arrives its

flow identifier is added to the list, with the Count variable

set to zero. If the Zombie list is full, whenever a packet

arrives, it is compared with a randomly chosen item in the

Zombie list:

† If they match, the Count of that flow in the list is

increased by one. This event is called a Hit.

† If they do not match, the flow identifier that is randomly

picked from the list is replaced with that of the arriving

packet with the Count reset to zero, with probability p:

This event is called a No Hit.

When packet t arrives, let

HitðtÞ ¼0 if no hit;

1 if hit;

(

and PðtÞ; an estimate for the hit frequency around the time of

arrival of the t-th packet at the buffer, according to

PðtÞ ¼ ð1 2 aÞPðt 2 1Þ þ aHitðtÞ; ð9Þ

with 0 , a , 1: Finally, the number of active flows N is

estimated by 1=PðtÞ as proposed by the authors.

One of the drawbacks of SRED is that it assumes that all

N flows have the same traffic intensity. In addition, although

it can use this hit mechanism to identify unresponsive flows,

it does not provide an effective penalizing scheme.

3.2.6. CHOKe

A design goal of CHOKe [26] is to keep the mechanism

as simple as possible while controlling unresponsive flows.

A small modification is proposed over a plain FCFS queue

with RED active queue management to achieve this goal.

The algorithm of CHOKe is as shown in Fig. 3 with CHOKe

functions being the shaded items while RED functions being

the rest.

When a packet arrives, if the average queue size is

greater than minth; CHOKe draws a packet randomly from

the buffer (drop candidate) and compares it with the

arriving packet. If they are from the same flow, then they are

both dropped, otherwise the arriving packet is accepted in

the queue with a drop probability that is computed by RED.

The basic idea behind CHOKe is that a FIFO queue is more

likely to have packets that belong to unresponsive flows

more than those of responsive ones, and they are more likely

to be chosen for comparison. Therefore, packets from

unresponsive flows are likely to be dropped more often.

Fig. 3. The CHOKe algorithm [26].

G. Chatranon et al. / Computer Communications 27 (2004) 1424–1440 1431

Page 9: A survey of TCP-friendly router-based AQM schemes

Since this scheme might work well only if there is only

one unresponsive flow, the authors also proposed a

modification to deal with multiple unresponsive flows.

One way to do this is to partition the buffer between minth

and maxth into k regions, and the number of drop candidates

ðmÞ is set to 2·i ði ¼ 1;…; kÞ according to the region that the

average buffer occupancy falls in.

CHOKe is very simple to implement, maintains mini-

mum state information, and controls unresponsive flows,

especially for CHOKe with multiple drop candidates.

However, CHOKe can control unresponsive flows only if

there are more packets from those flows in the buffer at the

time of congestion. This is due to the fact that CHOKe does

not keep track of those unresponsive flows. In addition,

some responsive flows might be punished unnecessarily as a

result of its probabilistic algorithm.

3.2.7. Stochastic fair blue (SFB)

The main novelty of the Stochastic Fair Blue (SFB)[27]

scheme is that it attempts to manage unresponsive flows

without using queue occupancy statistics (Fig. 4). SFB

maintains a data structure as a set of L hash tables of

different hash functions, with N items in each table. Each

item, which is referred to as a bin, keeps the number of times

flows are hashed into that item, and a marking or dropping

probability pm: Each arriving packet will be hashed, using

some form of string such as the flow ID, into one of the N

bins in each of L hash tables, and the number of packets

stored in that bin is increased by one. If the number of

packets in a particular bin is higher than a certain number,

the dropping probability pm for the bin is increased by some

amount. On the other hand, pm is decreased when the

number of packets in a bin drops to zero. Here, for each

flow, we have L values of pm from L tables it is hashed to.

The final marking or dropping probability is, however,

determined as the minimum value of these pm:

With this algorithm, an unresponsive flow that consumes

high bandwidth would ramp up pm to 1 in all of the bins of

L tables. In this way, this flow is then identified as a high-

bandwidth unresponsive flow and should be penalized by

limiting its rate. And because multiple hash tables are used,

it is unlikely that two different flows would be hashed into

the same items on every table. In other words, a perfect

hashing for every active flow passing through the router is

not required. Consequently, the possibility of penalizing a

responsive flow that hashed into the same item as any

unresponsive flow is reduced. Even with multiple hash

tables, however, SFB can still mis-identify a responsive

flow if there are more unresponsive flows at the router. In

addition, the identified unresponsive flow that later become

responsive, as well as those responsive flows that are mis-

identified, would be continually penalized without reclassi-

fying. To correct these problems, the authors propose SFB

with moving hash, where the hash function is changed and

reset every certain time, e.g. two seconds in the paper. The

authors also suggest double sets of tables that work at

different times, so that one set of tables can warm up a

mechanism before another set is reset. This would prevent

the unresponsive flows from getting higher share of

bandwidth at the time after the resetting.

Nonetheless, the size of the tables should be well pre-

determined because the higher the number of unresponsive

flows, the higher the probability of mis-identification. Also,

the higher the number of responsive flows, even short-lived

ones, the higher the number of responsive flows being

hashed into the same bins as unresponsive flows and

penalized. Another drawback is that since the mechanism is

independent of the queue occupancy, some unresponsive

flows could still be punished even though there is plenty of

buffer space available.

3.2.8. BLACKlisting unresponsive flows (BLACK)

The fundamental idea of the BLACK scheme is to detect

and control high bandwidth unresponsive flows as well as

achieve fairness among different types of flows [28]. A

buffer occupancy fraction is used as an indicator of

bandwidth share at a network link, based on the idea that,

under a FCFS queue, if the router allocates the buffer evenly

among all active flows, fair bandwidth allocation can be

achieved at a high degree [22].

To reduce the number of per-flow state information,

BLACK uses a sampling technique to approximate the

buffer occupancy fraction of only large flows. This is based

on the fact that most of the bytes of Internet traffic are

actually coming from only a small number of connections,

while the remaining huge number of connections are low

bandwidth flows [33,34]. When congestion occurs, the

packets from these flows should be held responsible and

thus dropped first.

For each packet arrival, if the queue size exceeds a

threshold, BLACK randomly samples one packet from the

queue. If this flow has never been recorded in a limited-size

cache memory, this flow ID is stored2 and a Hit for that flow

is declared. Next time, if a sampled packet is from that

particular flow again, its Hit value is increased by one. After

m samplings, the buffer occupancy fraction Hit Fraction of

Fig. 4. Example of SFB data structure [27].

2 A flow ID could be a combination of source and destination address,

source port and destination port, or only a FlowID field for an IPv6 packet.

G. Chatranon et al. / Computer Communications 27 (2004) 1424–14401432

Page 10: A survey of TCP-friendly router-based AQM schemes

the recorded flows is estimated by dividing Hit by m; which

is called a Hit Fraction: A flow with a larger Hit Fraction

than the fair buffer occupancy fraction, or 1/(number of

active flows), is considered a candidate of being a high

bandwidth flow and should be dropped according to the

dropping probability below.

p̂i ¼�Hi 2 1=Nact

1=Nact; ð10Þ

where

�Hi ¼Hiti þ ðHimÞ

m0 þ m; ð11Þ

and m0 is the current number of sampling packets in this

period, and m0 # m: BLACK estimates the number of active

flows Nact; in a similar way to the one utilized by SRED.

Based on the same assumption that all flows have the same

traffic intensity, BLACK computes Pmatch (PðtÞ in SRED)

and estimates it by counting the number of match events

over m packet arrivals. Hence, the estimated number of

active flows during the m arriving packets interval is Nact ¼

E½1=Pmatch� ¼ m=ðnumber of match eventsÞ: BLACK also

works on top of RED [32] to keep the average queue size

low, and thus the queueing delay, and to provide an early

congestion notification back to the responsive traffic

sources.

BLACK has been shown to provide a good fairness

performance not only in those scenarios with high

bandwidth unresponsive flows but also in environments

where TCP flows with different round trip times are

competing for the bottleneck bandwidth. One of the

drawbacks of BLACK is its simplified estimation of the

number of flows, which is not accurate in all cases such as

when the traffic intensity of flows are very different and

when the buffer size is not large enough compared to the

bandwidth delay-product. In order to fix these problems,

the authors suggest the Bitmap Approach to estimate the

number of active flows as discussed in Section 4.6.

3.2.9. CApture–REcapture (CARE)

CARE [29] is based on a Capture–Recapture (CR)

model that has been widely used to estimate a number of

animals in the population by ecologists and biologists, and

to estimate the number of defects in software inspection

processes. This model is applied here to estimate the arrival

rate of traffic flows and the number of active flows using the

M0 CR model and the Mh CR model, respectively.

The basic idea of the M0 model is that the proportion of

packets from flow i (m2) among t captured packets is the

same as the proportion of the total number of packets from

flow i (n2) in a buffer of size B: If CARE captures t incoming

packets, the incoming rate of flow i can be estimated from

the proportion Bðm2=tÞ: On the other hand, the Mh model is

more suitable to an scenario where the capture probabilities

are different among flows, thus it is chosen for estimating

the number of active flows ðNÞ: For this task, CARE uses

the Jackknife estimator as the method to estimate N:

Because the derivation of the Jackknife estimator is rather

difficult, the estimation of the number of active flows is

briefly summarized as follows:

(1) Capture an incoming packet with probability pcap and

store the packet in the capture list, which can store t

packets.

(2) After capturing t packets, construct the capture

frequency to see how many unique flows have been

seen once ðf1Þ; twice ðf2Þ; and up to t times ðftÞ:

(3) Based on these capture frequencies, use the Jackknife

estimator to estimate the number of active flows ðNJKÞ

using the following equation

NJK ¼ aðt;KÞ1f1 þ aðt;KÞ2f2 þ · · · þ aðt;KÞtft; ð12Þ

where aðt;KÞi are the coefficients in terms of the

number of capture occasions ðtÞ and the order of

estimation ðKÞ: An optimum value of K has to

determined because as K increases, the bias of NJK

will decrease while the variance of NJK will increase.

To determine the optimal K; the coefficients for K ¼

1–5 have to be derived. Then, combined with

frequency data, NJ1; NJ2;…;NJ5 are calculated. Next,

an interpolated estimator between m 2 1 and m; where

m is the first order of estimation that the significance

level Pm . 0:05 is computed. If m ¼ 1; then NJ1 can be

taken as the estimator, otherwise the interpolation

between NJðm21Þ and NJm is used to estimate the

number of active flows.

(4) Once the estimated number of active flows is obtained,

CARE can drop packets from the flows that consume

more than a fairshare with a dropping probability of

1:0 2 ðt=ðNJK·m2ÞÞ:

CARE has several drawbacks. First, in order to increase

the accuracy of the estimation, the model has to make a

large amount of captures (parameter t), compared to a

number of flows. This has a direct impact on the scalability

and simplicity of operation of the scheme. A large t means

running the capture process t times, building a capture

frequency table of up to t values, and calculating the

coefficients to finally apply Eq. (12) and find the estimated

number of flows. This might imply more CPU processing

power making CARE not suitable for high-speed routers.

Second, there is no mechanism described in Ref. [29] that

reduces the size of the capture list, which can then grow up

to the number of flows (not a scalable solution). Finally, no

evaluation is done to assess the performance of CARE under

the assumption that the number of flows is considerably

bigger than the size of the capture list. In other words,

CARE works well when the memory space available is large

enough although it does not require full per-flow state

information, otherwise, the estimation of the number of

active flows could be inaccurate (see Section 4.6 for further

discussion about estimation of the number of active flows).

G. Chatranon et al. / Computer Communications 27 (2004) 1424–1440 1433

Page 11: A survey of TCP-friendly router-based AQM schemes

A qualitative comparison of the surveyed schemes is

shown in Table 1 where the mechanisms are compared

according to the main design issues discussed in Section 3.1.

4. Performance evaluation

In this section, we evaluate the performance of the most

important AQM schemes under consideration. As explained

before, the mechanisms that require full per-flow state

information are not included here because of their practical

limitations due to scalability problems, especially in high-

speed routers that handle several thousands of flows.

However, of the schemes on the right side of Fig. 2 only

CHOKe, SFB, BLACK and CARE, are evaluated. SRED

and the TCP equation-based mechanism are not evaluated

because, although both of them could identify misbehaving

flows, SRED does not provide a mechanism to control them

and the TCP equation-based mechanism requires an extra

mechanism such as a separate CBQ queue to handle those

identified flows. As a base for comparison, we also included

RED since it is the most widely AQM scheme utilized in

practice. In addition, at the end of this section, we include an

evaluation of the most important techniques utilized to

estimate the number of active flows passing through a

router, which is a crucial mechanism to achieve fairness in

several of the AQM mechanisms above.

4.1. Simulation setup

We use the NS-2 [35] simulation tool and the dumbbell

topology shown in Fig. 5 to assess the performance of RED,

SFB, CHOKe, BLACK and CARE under four different

scenarios. In the first scenario, we compare the effectiveness

of the AQM schemes in achieving fairness when TCP

sources compete with one unresponsive flow. In the second

scenario, we repeat the first scenario but include multiple

unresponsive flows. In the third set of simulations, we

consider only TCP sources but with different round-trip

times. The fourth scenario compares the effect of the AQM

mechanisms on TCP-friendly protocols. Common simu-

lation settings are as follows. Constant-bit-rate UDP flows

compete against a number of TCP flows over a 5-Mbps

R1–R2 link and end nodes are connected to the routers at

100 Mbps. Both UDP and TCP flows transmit data with

a packet size of 1 Kbyte. The maximum buffer space at the

router R1 is set to 300 packets. Each experiment lasts for

150 s of simulation time, and it is repeated 20 times. SFB is

configured with two levels of hash functions of 23 bins, with

the NS code provided by Ref. [36]. The minth and maxth

threshold settings for BLACK, CHOKe, and RED are 100

and 200 packets, respectively, according to the configur-

ation in Ref. [26]. CHOKe is implemented with its self-

adjusting mechanism to handle multiple unresponsive flows,

where the region between minth and maxth are divided into

k ¼ 8 subregions and the number of drop candidates is set to

f ðiÞ ¼ 2·i (i ¼ 1;…; k). For the case of CARE, the number

of capture occasions ðtÞ is 200, where 50 out of 200 can be

used for the estimation of the number of flows, and the

probability pcap is 0.04 according to Ref. [29].

4.2. Single unresponsive flow

In the first experiment, only one UDP source transmits

packets at the rate of the bottleneck link (5 Mbps) from node

N5 to S5. 100 TCP connections are randomly selected to be

originated from one of the source nodes N0–N4 to one of

the sink nodes S0–S4. The propagation delays on all the

links are 10 ms. The BLACK queue is equipped at the router

R1 with a cache size of 26 with a value of m and moving

average weight ðaÞ of 3000 and 0.3, respectively. For SFB,

according to Ref. [27], the only suggested mechanism to

handle misbehaving flows is to limit the rate not to exceed a

certain defined level. Thus, we set two rate limit thresholds

for SFB as twice the fair rate and at the fair rate, for

reference.

Table 2 summarizes the results of the individual

throughput of each of the 100 TCP connections and the

UDP traffic. Under RED, the unresponsive UDP flow still

grabs a large amount of bandwidth leaving the remaining

TCP connections with an inferior performance in terms of

throughput. CHOKe provides better fairness but it is still far

from the fair share because there are not enough packet

matchings to control the unresponsive flow effectively.

BLACK and CARE provide a much lower throughput for

the UDP flow, although not as equal to the TCP throughput,

Table 2

Single unresponsive flow scenario

Average UDP

throughput

(Kbps)

Average TCP

throughput

(Kbps)

Jain’s fairness

index among

TCP flows

RED 3 397.25 15.957 0.9079

CHOKe 1 124.03 38.260 0.9868

SFB, rate limit <twice the fair rate

98.73 48.627 0.9184

SFB, rate limit <fair rate

49.24 46.254 0.9189

BLACK 74.04 49.033 0.9871

CARE 191.59 46.831 0.9775Fig. 5. Simulation topology.

G. Chatranon et al. / Computer Communications 27 (2004) 1424–14401434

Page 12: A survey of TCP-friendly router-based AQM schemes

showing superior performance than the other schemes.

For SFB, the UDP flow receives a fair throughput only with

a good adjustment of the rate limiting. Note that, in practice,

the inability to set up the fair rate limit automatically is a big

disadvantage of SFB. And for CARE, although it usually

performs well, the estimation of the number of active flows

is not as good in this scenario with a high bandwidth UDP

source.

4.3. Multiple unresponsive flows

To demonstrate how each scheme handles multiple

unresponsive flows, we performed an experiment using the

same topology but now including five 5-Mbps unresponsive

UDP sources sending traffic through the bottleneck R1–R2

link. The results are tabulated in Table 3. Both CHOKe and

RED show the inability to protect responsive TCP flows

causing a low average TCP throughput. However, BLACK

handles all the unresponsive flows quite well while

providing reasonably large throughput to the TCP connec-

tions, even with a small cache size. Besides, the fairness

among TCP connections with BLACK is shown to be better

than the other schemes, even under the impact of multiple

UDP traffic flows. CARE on the other hand, is not able to

cope with the unresponsive flows as they still obtain a huge

portion of the bandwidth.

Table 3

Multiple unresponsive flows scenario

Average UDP

throughput

(Kbps)

Average TCP

throughput

(Kbps)

Jain’s fairness

index among

TCP flows

RED 654.46 16.424 0.9516

CHOKe 516.71 22.857 0.9022

SFB, rate limit <twice the fair rate

96.58 42.875 0.9063

SFB, rate limit <fair rate

47.21 45.216 0.9069

BLACK 67.02 44.402 0.9799

CARE 974.39 9.4444 0.9458

Fig. 6. Per-flow TCP throughput for 200 TCP connections with different RTTs over a 45-Mbps link; plotted with 95% confidence interval.

G. Chatranon et al. / Computer Communications 27 (2004) 1424–1440 1435

Page 13: A survey of TCP-friendly router-based AQM schemes

4.4. TCP Sources with different round trip times

We also include results showing how these schemes

behave with TCP sources that do not share a bottleneck link

fairly because they have different round-trip times ðRTTsÞ:

Using the topology in Fig. 5, but with the propagation delay

of the access links as 1, 2, 5, 10 and 20 ms, the bottleneck

link R1–R2 set at 45-Mbps and 20 ms propagation delay,

we performed an experiment with two hundred TCP sources

randomly selected to originate from nodes N0–N4 and

terminate at randomly selected sink nodes S0–S4. To

conduct a fair comparison with SFB that maintains two

levels of hash functions of 23 bins, the BLACK scheme is

configured with a cache size of 46, and CARE is set up with

200 capture size. The results, shown in Fig. 6 with 95%

confidence intervals, indicate the better fairness achieved by

BLACK over RED, SFB, CHOKe, and CARE. In Table 4,

we include the standard deviation and Jain’s fairness index

[37] achieved by the four schemes. It can be seen that the

BLACK scheme presents better fairness results than the

other schemes. Note that although CARE provides a closer

fairness to BLACK, CARE needs a larger memory space to

store information. For reference, Jain’s fairness index is

calculated by

f ¼

Xn

i¼1xi

� �2

nXn

i¼1x2

i

; ð13Þ

where 0 # f # 1; given flow throughputs x:

4.5. Effect of AQM mechanisms on TCP-friendly protocols

In this section, we include an evaluation commonly

overlooked: the effect of AQM mechanisms on TCP-

friendly protocols. The AQM mechanisms included in this

article have been designed to address the TCP-friendliness

problem and provide fairness to all flows sharing the same

bottleneck link. On the other hand, several end-to-end

transport layer protocols have been designed to satisfy the

requirements of streaming applications while being friendly

to TCP. However, these two approaches have been studied

and proposed separately and no research has been done on

assessing the effect of AQM mechanisms on TCP-friendly

protocols when they work together. In other words, if we use

proved TCP-friendly transport layer protocols, will fairness

still be achieved if the system also includes these

router-based AQM mechanisms? Also, assuming that

the transport layer protocols are not completely fair,

do the AQM mechanisms actually help improving fairness

or on the contrary they produce more unfairness?

There are many TCP-friendly protocols proposed in the

literature and this evaluation can easily fill an entire research

paper. Therefore, our intention is to make the reader aware

of this issue and show some results that actually answer the

questions above for particular cases. In particular, in this set

of experiments we show the effect of RED, CHOKe, SFB,

BLACK, CARE and Drop Tail when TCP Reno sources

compete against a TFRC sources. Fig. 7 shows the

simulation results where we plot the normalized throughput

of individual sources as well as the average normalized

throughput achieved by all the sources of the same type.

This case is very simple to analyze. It is well known that

TFRC is friendly to TCP over long term when TCP SACK is

used. However, TFRC is considerably less responsive than

TCP Reno to network congestion and as a result, TFRC

obtains more bandwidth than Reno. This can be seen in the

Drop Tail case that we included as the basis for comparison.

However, when we change Drop Tail and use RED, SFB,

CHOKe, BLACK, and CARE, we observe that connections

are sometimes more unfair and sometime more fair to each

other, saying that AQM mechanisms can make things better

or worse. For instance, RED and BLACK improve fairness,

CHOKe and CARE produce more unfairness, and SFB does

not have an appreciable effect. In this case, CHOKe and

CARE degrade the performance because they drop both

incoming and sampled packets, and we know that TCP Reno

does not handle very well multiple packet drops within the

same congestion window. Note that, on the other hand,

CHOKEe and CARE provide much better fairness in other

cases with other TCP versions, even when TCP is

competing with aggressive TCP-friendly protocol (not

shown here). This is an active area of research where

more analysis is still needed.

4.6. Estimation of the number of active flows

A mechanism that estimates the number of active flows

without maintaining full per-flow state information is

crucial to a number of router-based mechanisms such as

SRED, BLACK and CARE. This mechanism has a direct

impact on the overall fairness provided by the AQM scheme

because the calculation of the fairshare usually depends on a

good estimation on the number of active flows. In this

section, we provide a brief description and evaluation of the

existing estimation methods.

The estimation techniques can be classified into three

categories: (1) Probabilistic approach (SRED and BLACK);

(2) CR model approach (CARE); and (3) Bitmap approach.

The probabilistic approach, as discussed with SRED and

BLACK in Section 3.2, although very simple and performs

well in various scenarios, still presents two problems.

First, the model assumes the same traffic intensity for

the incoming flows, and inaccuracies can occur when the

traffic intensity is very different. Second, problems might

Table 4

TCP connections with different round-trip time scenario

Flow throughput

(Kbps)

RED CHOKe SFB BLACK CARE

Standard deviation 43.725 38.268 41.996 22.054 30.194

Jain’s fairness index 0.9769 0.9721 0.9665 0.9905 0.9815

G. Chatranon et al. / Computer Communications 27 (2004) 1424–14401436

Page 14: A survey of TCP-friendly router-based AQM schemes

Fig. 7. Reno competing with TFRC, with Drop Tail, RED, CHOKe (first row), BLACK, SFB and CARE (second row).

Fig. 8. Estimated number of active flows for the experiment with 150, 450, and 300 TCP flows over 0–200, 200–400, and 400–600 seconds respectively, given

that t ¼ 100 and b ¼ 100:

G. Chatranon et al. / Computer Communications 27 (2004) 1424–1440 1437

Page 15: A survey of TCP-friendly router-based AQM schemes

occur when the buffer size is not large enough compared to

the bandwidth-delay product, where correlations between

the sampled and incoming packets might exist. The CR

model approach, such as the Jackknife estimator that is used

by CARE, is more accurate but usually much more

complex, as shown in Section 3.2.9. Finally, for the Bitmap

approach, the technique relies on a probabilistic algorithm

in conjunction with hashing at the bit level. The simplest

form of the Bitmap scheme is known as Direct Bitmap

[38,39] based on a technique as follows. Initially, all of the

bits in the bitmap of size b are reset to zero. For each

incoming packet, the flow ID is hashed to a bit of the bitmap

and that particular bit is set to one. At the end of the

measurement interval, the estimation of the number of

active flows is calculated using a formula that takes into

account collisions from hashing. For a bitmap of size b bits,

the probability that a given flow hashes to a particular bit is

p ¼ 1=b: For n number of active flows, the probability that

no flow hashes to a particular bit is then pz ¼ ð1 2 pÞN <ð1=eÞN=b: Therefore, the expected number of bits not set

during the interval is given by E½z� ¼ bpz < bð1=eÞN=b; and

the estimated number of active flows is n̂ ¼ b lnðb=zÞ for z

zero bits. An evaluation of these estimation techniques is

shown below.

The same dumbbell topology was used for these

experiments. n TCP flows compete for the bandwidth of

the 10 Mbps bottleneck link with 5 ms propagation delay,

all the access links are 2 ms, and the queueing discipline is

tail dropping. One important aspect in the performance of

these methods is the amount of memory space they need to

provide an accurate estimation. In that regard, we found that

all the schemes perform well when the number of actual

flows is not much larger than the required memory space—

that is when the capture size t of CR model or the bitmap

size b is less than the number of active flows n: The

estimation begins to be unstable when t and b are larger than

n; and the results are unpredictable when t p n and b p n;

which is shown in Fig. 8, for reference.

The performance provided by these mechanisms

becomes significantly different when unresponsive traffic

is mixed along with TCP traffic. BLACK’s estimation

technique underestimates the number of flows considerably

even when the UDP traffic consumes only 33% of the

bottleneck bandwidth. The Jackknife estimator performs

well with a small portion of UDP traffic but begins to be

inaccurate with large UDP traffic, such as in the case shown

in Fig. 9 where a UDP flow consumes 66% of the link

bandwidth. Direct Bitmap shows a superior performance

Fig. 9. Estimated number of active flows for the experiment with 30, 90, and 60 TCP flows over 600 seconds, with UDP traffic consuming 66% of bottleneck

link bandwidth starting at 300 s.

G. Chatranon et al. / Computer Communications 27 (2004) 1424–14401438

Page 16: A survey of TCP-friendly router-based AQM schemes

even in the presence of large UDP traffic because the bit that

a flow hashes to is irrelevant to the number of packets

injected to the network by this flow.

In terms of computational complexity, the Jackknife

estimator clearly requires a much larger amount of

computations. As previously described in Section 3.2.9, a

large capture size is needed for an accurate estimation.

However, a large capture size results in a much higher

complexity since it has to build the capture frequency table

and calculate the coefficients with complex equations. This

leaves the Direct Bitmap approach as the better choice for

high-speed routers. However, further research is needed to

determine the effect of memory limitations (reduced buffer

space), algorithm complexity, scalability regarding the

number of flows (thousands, millions of flows), different

traffic intensities, short and long lasting flows together, TCP

sources with different RTTs, and other important factors.

5. Conclusions

This article surveys the state-of-the-art in router-based

AQM mechanisms used to address the TCP-friendliness

problem. The most important issues to design one of these

algorithms are first described. Then, the most important

algorithms are described and compared against these issues.

A qualitative comparison is included to compare all the

existing schemes. Then, a quantitative performance evalu-

ation is included to show the advantages and disadvantages

of only those schemes that don’t require full per-flow state

information since they are more likely to be implemented in

practice. We found that RED is not able to handle

unresponsive flows while CHOKe, although better than

RED, still is not capable of dealing with these flows. SFB is

perhaps the best performing scheme in terms of throughput

control but it has the major drawback that to achieve that

performance it requires a pre-determined knowledge of the

fair share to adjust the rate limit, which is not practical.

CARE is a very complex scheme and in addition it performs

worse than SFB and BLACK. Overall, BLACK is the best

performing scheme offering simplicity and good

performance.

The problem of estimating the number of active flows in

core routers is also described and investigated in this article.

Current solutions are described and a performance evalu-

ation is included. We found that the algorithms used to

estimate the number of flows in BLACK and CARE do not

provide a good estimation under certain scenarios such as

when irresponsible flows consume a large portion of the

bottleneck link. We show that the Direct Bitmap estimator

responds quite nicely to sudden changes in the number of

flows and also when unresponsive flows are present. This is

still an active area of research and needs further investi-

gation since several mechanisms besides the ones described

in this article rely on this type of estimation.

References

[1] V. Jacobson, Congestion Avoidance and Control, in: Proceedings of

ACM SIGCOMM, 1988, pp. 314–329.

[2] S. Floyd, K. Fall, Promoting the use of end-to-end congestion control

in the Internet, IEEE/ACM Transactions Networking 7 (4) (1999)

458–472.

[3] D.P. Hong, C. Albuquerque, C. Oliveira, T. Suda, Evaluating the

Impact of Emerging Streaming Media Applications on TCP/IP

performance, IEEE Communications 39 (4) (2001) 76–82.

[4] V. Jacobson, Berkeley TCP Evolution from 4.3-tahoe to 4.3-reno, in:

Proceedings of the 18th Internet Engineering Task Force, 1990, p.

365.

[5] W. Stevens, TCP Slow Start, Congestion Avoidance, Fast Retransmit,

and Fast Recovery Algorithms, IETF RFC 2001, 2001.

[6] S. Floyd, T. Henderson, The NewReno Modification to TCP’s Fast

Recovery Algorithm, RFC 2582.

[7] M. Mathis, J. Mahdavi, S. Floyd, A. Romanow, TCP Selective

Acknowledgement Options, RFC 2018.

[8] L. Brakmo, S. O’Malley, L. Peterson, TCP Vegas: New Techniques

for Congestion Detection and Avoidance, in: Proceedings of ACM

SIGCOMM, 1994, pp. 24–35.

[9] M. Mathis, J. Semke, J. Mahdavi, and T. Ott, The Macroscopic

Behavior of the Congestion Avoidance Algorithm, Computer

Communications Review 27 (3), July (1997).

[10] J. Padhye, V. Firoiu, D. Towsley, J. Kurose, Modeling TCP

Throughput: A Simple Model and its Empirical Validation, in:

Proceedings of ACM SIGCOMM’98, Vancouver, BC, 1998, pp. 303–

314.

[11] E. Altman, K. Avrachenkov, C. Barakat, Model of TCP/IP with

Stationary Random Losses, in: Proceedings of SIGCOMM, 2000, pp.

231–242.

[12] I. Yeom, A.L.N. Reddy, Modeling TCP Behavior in a Differentiated

Services Network, IEEE/ACM Transactions on Networking 9 (1)

(2001) 31–46.

[13] B. Sikdar, S. Kalyanaraman, K. Vastola, Analytic Models for the

Latency and Steady-state Throughput of TCP Tahoe, Reno and

SACK, in: Proceedings IEEE GLOBECOM, 2001.

[14] J. Mahdavi, S. Flyod, TCP-friendly Unicast Rate-based Flow Control,

Note Sent to End-to-End Mailing List.

[15] S. Floyd, M. Handley, J. Padhye, J. Widmer, Equation-based

Congestion Control for Unicast Applications, in: Proceedings of

ACM SIGCOMM, Stockholm, Sweden, 2000, pp. 43–56.

[16] R. Rejaie, M. Handley, D. Estrin, RAP: End-to-End Rate-Based

Congestion Control Mechanism for Realtime Streams in the Internet,

in: Proceedings of IEEE INFOCOM, 1999, pp. 1337–1345.

[17] D. Sisalem, A. Wolisz, LDA þ TCP-Friendly Adaptation: A

Measurement and Comparison Study, in: The 10th International

Workshop on Network and Operating Systems Support for Digital

Audio and Video (NOSSDAV’2000), Chapel Hill, NC, USA, 2000.

[18] I. Rhee, V. Ozdemir, Y. Yi, TEAR: TCP Emulation at Receivers—

Flow Control for Multimedia Streaming, Tech. rep., NCSU Technical

Report, 1999.

[19] D. Bansal, H. Balakrishnan, Binomial Congestion Control Algor-

ithms, in: Proceedings of IEEE INFOCOM, 2001, pp. 631–640.

[20] Y. Yang, S. Lam, General AIMD Congestion Control, Tech. Rep. TR-

200009, Department of Computer Science, University of Texas at

Austin, 2000.

[21] J. Widmer, R. Denda, M. Mauve, A Survey on TCP-Friendly

Congestion Control, IEEE Network 15 (3) (2001) pp. 28–37.

[22] B. Suter, T. Lakshman, D. Stiliadis, A. Choudhury, Design

Considerations for Supporting TCP with Per-Flow Queuing, in:

Proceedings of IEEE INFOCOM, 1998, pp. 299–306.

[23] D. Lin, R. Morris, Dynamics of Random Early Detection, in:

Proceedings of SIGCOMM, 1997, pp. 127–137.

G. Chatranon et al. / Computer Communications 27 (2004) 1424–1440 1439

Page 17: A survey of TCP-friendly router-based AQM schemes

[24] F. Anjum, L. Tassiulas, Fair Bandwidth Sharing Among Adaptive and

Non-Adaptive Flows in the Internet, in: Proceedings of IEEE

INFOCOM, 1999, pp. 1412–1420.

[25] T. Ott, T. Lakshman, L. Wong (Eds.), SRED: Stabilized RED, IEEE

INFOCOM, 1999.

[26] R. Pan, B. Prabhakar, K. Psounis, CHOKe—A Stateless Active

Queue Management Scheme For Approximating Fair Band-

width Allocation, in: Proceedings of IEEE INFOCOM, 2000,

pp. 942–951.

[27] W. Feng, D. Kandlur, D. Saha, K. Shin, Stochastic Fair Blue: A Queue

Management Algorithm for Enforcing Fairness, in: Proceedings of

IEEE INFOCOM, 2001, pp. 1520–1529.

[28] G. Chatranon, M.A. Labrador, S. Banerjee, BLACK: Detection and

Preferential Dropping of High Bandwidth Unresponsvie Flows, in:

Proceedings of IEEE ICC, 2003, pp. 664–668.

[29] M. Chan, M. Hamdi, An Active Queue Management Scheme Based

on a Capture–Recaptured Model, IEEE J. Select. Areas Commun. 21

(4), May 2003.

[30] S. Keshav, An Engineering Approach to Computer Networking: ATM

Networks, the Internet, and the Telephone Network, Addison-Wesley,

Massachusetts, 1997.

[31] T.V. Lakshman, A. Neidhardt, T. Ott, The Drop from Front Strategy

in TCP and in TCP over ATM, in: Proceedings of IEEE Infocom,

1996, pp. 1242–1250.

[32] S. Floyd, V. Jacobson, Random Early Detection Gatewas for Conges-

tion Avoidance, IEEE/ACM Trans. Networking 1 (4) (1993) 397–413.

[33] L. Guo, I. Matta, The War Between Mice and Elephants, Tech. Rep.

2001-005, Computer Science Department, Boston University, May

2001.

[34] I. Kim, Analyzing Network Traces To Identify Long-Term High Rate

Flows, Master’s Thesis, Texas A and M University, May 2001.

[35] NS Network Simulator. URL http://www.isi.edu/nsnam/ns

[36] The Network Simulator: Contributed Code. URL http://www.isi.edu/

nsnam/ns/ns-contributed.html

[37] R. Jain, A. Durresi, G. Babic, Throughput Fairness Index: An

Explanation, ATM Forum/99-0045.

[38] C. Estan, G. Varghese, M. Fisk, Bitmap Algorithms for Counting

Active Flows on High Speed Links, Tech. Rep. CS2003-0738, UCSD,

Mar. 2003.

[39] C. Estan, G. Varghese, M. Fisk, Counting the Number of Active Flows

on a High Speed Link, ACM SIGCOMM Computer Communication

Review 32.

G. Chatranon et al. / Computer Communications 27 (2004) 1424–14401440