01.12.2012 Views

Fleksibilni Internet servisi na bazi kontrole kašnjenja i

Fleksibilni Internet servisi na bazi kontrole kašnjenja i

Fleksibilni Internet servisi na bazi kontrole kašnjenja i

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

UNIVERZITET U BEOGRADU<br />

ELEKTROTEHNIČKI FAKULTET<br />

VLADIMIR V. VUKADINOVIĆ<br />

MAGISTARSKA TEZA<br />

FLEKSIBILNI INTERNET SERVISI NA BAZI<br />

KONTROLE KAŠNJENJA I PROPUSNOSTI<br />

Teza je odbranje<strong>na</strong> 15. oktobra 2004. godine pred komisijom u sastavu:<br />

Prof. Grozdan Petrović, mentor<br />

Elektrotehnički fakultet, Univerzitet u Beogradu<br />

Srbija i Cr<strong>na</strong> Gora<br />

Prof. Ljilja<strong>na</strong> Trajković, mentor<br />

School of Engineering Science, Simon Fraser University<br />

Ca<strong>na</strong>da<br />

Prof. Zoran Petrović<br />

Elektrotehnički fakultet, Univerzitet u Beogradu<br />

Srbija i Cr<strong>na</strong> Gora<br />

Prof. Zoran Bojković<br />

Saobraćajni fakultet, Univerzitet u Beogradu<br />

Srbija i Cr<strong>na</strong> Gora<br />

Beograd, oktobar 2004. godine


Abstrakt<br />

Vladimir V. Vukadinović<br />

<strong>Fleksibilni</strong> <strong>Internet</strong> <strong>servisi</strong> <strong>na</strong> <strong>bazi</strong> <strong>kontrole</strong> <strong>kašnjenja</strong> i propusnosti<br />

<strong>Internet</strong> je transport<strong>na</strong> infrastruktura za aplikacije sa različitim zahtevima u<br />

pogledu kvaliteta servisa. Da<strong>na</strong>šnji <strong>Internet</strong> je međutim samo “best-effort” mreža bez<br />

implementiranih mehanizama za diferencijaciju servisa. Skorašnji <strong>na</strong>pori da se obezbede<br />

takvi mehanizmi usmereni su ka takozvanim fleksibilnim <strong>servisi</strong>ma. Veći<strong>na</strong> predloženih<br />

arhitektura za pružanje fleksibilnih servisa se <strong>bazi</strong>ra <strong>na</strong> principu pružanju servisa malog<br />

<strong>kašnjenja</strong> po cenu povećanja verovatnoće gubitka paketa. Ove arhitekture međutim ne<br />

uzimaju u obzir uticaj diferencijacije <strong>kašnjenja</strong> <strong>na</strong> performanse TCP-a, <strong>na</strong>jčešće<br />

korišćenog transportnog protokola <strong>na</strong> <strong>Internet</strong>u. Prilikom projektovanja mehanizama za<br />

diferencijaciju servisa, neophodno je uzeti u obzir kompleksnost TCP algoritma za<br />

kontrolu zagušenja. U ovoj tezi pretstavljen je nova arhitektura za diferencijaciju<br />

<strong>kašnjenja</strong> i propusnosti zasnova<strong>na</strong> <strong>na</strong> konceptu fleksibilnih servisa. Neophodni uslovi za<br />

ostvarivanje željene diferencijacije servisa između razlicitih klasa mrežnog saobraćaja<br />

izvedeni su <strong>na</strong> osnovu a<strong>na</strong>lize kontrolnog sistema sa povratnom spregom koga čine TCP<br />

algoritam za kontrolu zagušenja i mehanizmi za diferencijaciju <strong>kašnjenja</strong> i kontrolu<br />

verovatnoće gubitaka.<br />

Ključne reči—diferencijacija servisa, fleksibilni <strong>servisi</strong>, QoS, aktiv<strong>na</strong> kontrola bafera,<br />

TCP, mrežni saobraćaj.<br />

ii


Abstract<br />

Vladimir V. Vukadinović<br />

Delay and throughput differentiation mechanisms for non-elevated<br />

services<br />

<strong>Internet</strong> is a transport infrastructure intended for applications with various service<br />

requirements. However, <strong>Internet</strong> remains to be a best-effort network without widely<br />

deployed mechanisms for service differentiation and quality of service (QoS)<br />

provisioning. Research efforts to provide service differentiation in the <strong>Internet</strong> have been<br />

recently directed toward non-elevated services. Majority of proposed non-elevated<br />

mechanisms aim to provide low delay service at the expense of increased packet loss<br />

probability. However, these proposals do not consider the influence of delay and loss<br />

differentiation on the behaviour of TCP, the most widely used transport protocol in<br />

today’s <strong>Internet</strong>. Service differentiation mechanisms cannot be properly designed without<br />

taking into account the complexity of TCP’s congestion control algorithm. In this thesis,<br />

we propose a new non-elevated service differentiation architecture and derive necessary<br />

conditions to provide desired service differentiation among traffic classes by considering<br />

TCP’s congestion control algorithm, delay differentiation mechanisms, and proposed<br />

packet loss controller as a feedback control system.<br />

Keywords—non-elevated services, service differentiation, TCP, QoS, queue<br />

ma<strong>na</strong>gement.<br />

iii


Acknowledgements<br />

First and foremost I would like to thank my academic advisors, Dr. Ljilja<strong>na</strong><br />

Trajkovic and Dr. Grozdan Petrovic.<br />

Dr. Ljilja<strong>na</strong> Trajkovic deserves my deepest gratitude and respect for her continued<br />

support during the writing of this thesis. She gave me a wonderful opportunity to spend a<br />

memorable time at Simon Fraser University, Vancouver, Ca<strong>na</strong>da. Special thanks for<br />

teaching me how to write academic papers and encouraging me to continue my studies.<br />

Dr. Grozdan Petrovic has been providing me continuous support for many years,<br />

both during my undergraduate and graduate studies. He showed me different ways to<br />

approach a research problem and the need to be persistent to accomplish any goal.<br />

I would also like to thank all the members of Communication Networks<br />

Laboratory, especially my dear friends Svetla<strong>na</strong> and Bozidar Vujicic, Nikola Cackov,<br />

Ne<strong>na</strong>d Laskovic, Hui (Grace) Zhang, and Hao (Johnson) Chen for their help and<br />

companionship.<br />

iv


Table of Contents<br />

Abstrakt..............................................................................................................................ii<br />

Abstract.............................................................................................................................iii<br />

Acknowledgements........................................................................................................... iv<br />

Table of Contents .............................................................................................................. v<br />

List of Figures..................................................................................................................vii<br />

List of Tables..................................................................................................................... ix<br />

List of Abbreviations and Acronyms............................................................................... x<br />

1. Introduction ................................................................................................................... 1<br />

2. Quality of Service in <strong>Internet</strong>: an overview................................................................ 6<br />

2.1. QoS control mechanisms.......................................................................................... 6<br />

2.2. Proposed QoS architectures...................................................................................... 9<br />

2.2.1. Integrated Services (IntServ) ........................................................................... 10<br />

2.2.2. Differentiated Services (DiffServ)................................................................... 12<br />

2.2.3. Non-Elevated Services..................................................................................... 14<br />

3. Survey of existing proposals for non-elevated services............................................ 16<br />

3.1. Alter<strong>na</strong>tive Best-Effort (ABE)................................................................................ 16<br />

3.2. Best-Effort Differentiated Services (BEDS) .......................................................... 17<br />

3.3. Equivalent Differentiated Services (EDS).............................................................. 22<br />

4. Proposed service differentiation architecture for non-elevated services ............... 26<br />

5. Scheduling for proportio<strong>na</strong>l delay differentiation ................................................... 29<br />

5.1. Backlog-Proportio<strong>na</strong>l Rate scheduler (BPR).......................................................... 30<br />

5.2. BPR + : an optimized BPR scheduler ....................................................................... 31<br />

5.2.1. A heuristic approximation of BPR + ................................................................. 34<br />

5.3. Performances of BPR and BPR + ............................................................................. 37<br />

5.3.1. Influence of traffic load ................................................................................... 38<br />

5.3.2. Influence of load distribution........................................................................... 39<br />

5.3.3. Influence of buffer size.................................................................................... 40<br />

5.3.4. Influence of timescale...................................................................................... 41<br />

5.4. Influence of proportio<strong>na</strong>l delay differentiation on TCP throughput....................... 43<br />

6. Packet Loss Controller................................................................................................ 46<br />

6.1. No-loss region: q ≤ q min ........................................................................................ 52<br />

6.2. Early-drop region: q min < q < qmax<br />

.......................................................................... 52<br />

v


6.3. Forced-drop region: q ≥ qmax<br />

................................................................................. 54<br />

7. Simulation results........................................................................................................ 56<br />

7.1. Influence of delay differentiation parameter δ ....................................................... 58<br />

7.2. Influence of UDP load............................................................................................ 60<br />

7.3. Multi-hop topology sce<strong>na</strong>rio .................................................................................. 62<br />

8. Conclusions and open issues....................................................................................... 65<br />

Appendix A ......................................................................................................................68<br />

Appendix B ......................................................................................................................70<br />

Appendix C ......................................................................................................................73<br />

Appendix D ......................................................................................................................75<br />

References ........................................................................................................................ 85<br />

vi


List of Figures<br />

Fig. 1. Traffic control mechanisms employed in a QoS capable router.............................. 7<br />

Fig. 2. QoS guarantees vs. complexity of existing QoS service models........................... 10<br />

Fig. 3. DSD architecture: duplicates of all incoming packets are sent to a virtual<br />

queue. Origi<strong>na</strong>l packets are classified according to their colours into the<br />

blue or green queue. ........................................................................................ 17<br />

Fig. 4. RED’s drop probability p is a function of the average queue size q . ................... 18<br />

Fig. 5. The intersections of RED control functions and queue law determine<br />

average queuing delays and average loss probabilities of traffic classes<br />

in BEDS............................................................................................................ 19<br />

Fig. 6. Traffic classes in EDS model receive asymmetric loss and delay<br />

performance...................................................................................................... 23<br />

Fig. 7. The proposed architecture for service differentiation: throughput-sensitive<br />

(TCP) and delay-sensitive (UDP) queues are ma<strong>na</strong>ged by RED with<br />

PLC controller. Packets are scheduled by BPR. .............................................. 28<br />

Fig. 8. Example of an input and output curves: vertical and horizontal distances<br />

between the curves are current backlog and delay, respectively...................... 32<br />

Fig. 9. Input and output curves for throughput-sensitive and delay-sensitive class:<br />

average delay is a sum of experienced and residual delays.............................. 32<br />

Fig. 10. The heuristic approximation of BPR+ uses timestamps to calculate the<br />

average experienced delay of backlogged packets........................................... 35<br />

Fig. 11. Simulated topology used for evaluating the performances of BPR and<br />

BPR + ................................................................................................................. 37<br />

Fig. 12. Average delay ratio achieved by BPR and BPR + for various traffic loads<br />

and delay differentiation parameters δ. ............................................................ 38<br />

Fig. 13. Average delay ratio achieved by BPR and BPR + for various traffic load<br />

distributions and delay differentiation parameters δ. ....................................... 39<br />

Fig. 14. Average delay ratio achieved by BPR and BPR + for various buffer sizes<br />

and delay differentiation parameters δ. ............................................................ 40<br />

Fig. 15. Queuing delays of throughput-sensitive and delay-sensitive packets<br />

averaged over 1,000 packet time constants for BPR (left) and BPR +<br />

scheduler (right) and δ=4.................................................................................. 41<br />

Fig. 16. Percentiles for average delay ratio on four different timescales for BPR<br />

(left) and BPR + scheduler (right) and δ=4........................................................ 42<br />

Fig. 17. An ns-2 sce<strong>na</strong>rio: TCP and UDP packets are served by a scheduler for<br />

proportio<strong>na</strong>l delay differentiation..................................................................... 44<br />

vii


Fig. 18. Achieved delay ratio between TCP and UDP packets for various delay<br />

differentiation parameters δ.............................................................................. 44<br />

Fig. 19. Throughput achieved by TCP flows for various delay differentiation<br />

parameters δ...................................................................................................... 45<br />

Fig. 20. TCP, RED, and PLC as a feedback control system. ............................................ 47<br />

Fig. 21. Simulated network topology used for performance evaluation of the<br />

proposed service differentiation mechanism.................................................... 56<br />

Fig. 22. Average queuing delay for TCP and UDP packets in the presence of<br />

service differentiation and in the best-effort (FIFO) case. ............................... 57<br />

Fig. 23.Throughput of TCP and UDP flows in the presence of delay<br />

differentiation (with and without PLC) and in the best-effort (FIFO)<br />

case. .................................................................................................................. 58<br />

Fig. 24. Average delay ratio for TCP and UDP traffic as a function of specified<br />

delay ratio δ. ..................................................................................................... 59<br />

Fig. 25. Influence of delay differentiation parameter δ on TCP and UDP<br />

throughput in the presence of delay differentiation (with and without<br />

PLC) and in the best-effort (FIFO) case........................................................... 60<br />

Fig. 26. Average delay ratio for TCP and UDP traffic for various UDP loads.<br />

Delay differentiation parameter δ=8. ............................................................... 61<br />

Fig. 27. Influence of UDP load on TCP throughput in the presence of delay<br />

differentiation (with and without PLC) and in the best-effort (FIFO)<br />

case. .................................................................................................................. 62<br />

Fig. 28. Simulation topology used for end-to-end performance evaluation of the<br />

proposed architecture for service differentiation.............................................. 63<br />

Fig. 29. Simulation sce<strong>na</strong>rio used for identification of parameters a and b...................... 71<br />

Fig. 30. TCP throughput as a function of round-trip time R and loss probability p.......... 72<br />

Fig. 31. Structure of ns2 source-code directories and position of the code that<br />

implements the proposed service differentiation architecture.......................... 75<br />

viii


List of Tables<br />

Table 1. Comparison of various service differentiation models. ...................................... 15<br />

Table 2. Achieved delay ratios and throughput for four groups of TCP flows in<br />

the case of FIFO scheduling and BPR scheduling with and without<br />

PLC................................................................................................................... 64<br />

Table 3. Goodness of fit: ns-2 simulation results vs. predicted throughput for<br />

selected round-trip times and loss probabilities. .............................................. 72<br />

ix


ABE Alter<strong>na</strong>tive Best-Effort<br />

AF Assured Forwarding<br />

AQM Active Queue Ma<strong>na</strong>gement<br />

List of Abbreviations and Acronyms<br />

BEDS Best-Effort Differentiated Services<br />

BPR Backlog-Proportio<strong>na</strong>l Rate<br />

BPR + Optimized Backlog-Proportio<strong>na</strong>l Rate<br />

CAC Call Admission Control<br />

CLS Controlled Load Service<br />

DiffServ Differentiated Services<br />

DS Delay-Sensitive<br />

DSD Duplicate Scheduling with Deadlines<br />

DSCP DiffServ Codepoint<br />

EDS Equivalent Differentiated Services<br />

EF Expedited Forwarding<br />

FIFO First-In First-Out<br />

FTP File Transfer Protocol<br />

GS Guaranteed Service<br />

HOL Head-of-Line<br />

HTTP Hypertext Transfer Protocol<br />

IETF <strong>Internet</strong> Engineering Task Force<br />

x


IntServ Integrated Services<br />

IP <strong>Internet</strong> Protocol<br />

ISP <strong>Internet</strong> Service Provider<br />

LHT Loss History Table<br />

NNTP Network News Transfer Protocol<br />

PLC Packet Loss Controller<br />

PHB Per-Hop Behaviour<br />

PLR Proportio<strong>na</strong>l Loss Rate<br />

QoS Quality of Service<br />

RED Random Early Detection<br />

RSVP Resource Reservation Protocol<br />

SMTP Simple Mail Transfer Protocol<br />

SLA Service Level Agreement<br />

TCA Traffic Conditioning Agreement<br />

TCP Transport Control Protocol<br />

TDP Time-Dependent Priorities<br />

TS Throughput-Sensitive<br />

UDP User Datagram Protocol<br />

WFQ Weighted Fair Queuing<br />

WTP Waiting-Time Priority<br />

xi


1. Introduction<br />

Current <strong>Internet</strong> applications have diverse service requirements. Real time<br />

applications, such as IP telephony and video on demand, require low delay and delay<br />

jitter while being relatively insensitive to packet losses. To the contrary, applications<br />

dealing with bulk data transfer, such as File Transfer Protocol (FTP), Simple Mail<br />

Transfer Protocol (SMTP), and Network News Transfer Protocol (NNTP), require<br />

sufficient throughput and reliability while being tolerant to network delay. Current<br />

<strong>Internet</strong> is a best-effort network and offers no guarantees with respect to delay,<br />

throughput, and loss probability [1], [2]. All packets are treated equally, regardless of<br />

their service requirements. Numerous research efforts have been devoted recently to<br />

providing distinct levels of service to applications. As a result, two paradigms for quality<br />

of service (QoS) provisioning emerged in the 90’s: Integrated Services (IntServ) and<br />

Differentiated Services (DiffServ). More recent approaches [3]-[5] are based on the<br />

concept of non-elevated services.<br />

The IntServ model [6], [7] provides absolute end-to-end QoS guarantees for<br />

throughput, packet delay, and packet loss probability. It is focused on individual flows<br />

because each flow in IntServ is able to request a specific level of service from the<br />

network. However, IntServ suffers from several major drawbacks. It is not scalable<br />

because each router has to maintain per-flow states. Routers in the core of the <strong>Internet</strong> are<br />

usually traversed by thousands of traffic flows. Furthermore, implementation complexity<br />

of IntServ is substantial because IntServ requires major changes to ma<strong>na</strong>gement and<br />

accounting policies currently deployed in the <strong>Internet</strong>.<br />

1


The DiffServ model [8]-[10] offers per-hop QoS guarantees to flow aggregates<br />

called classes, as opposed to end-to-end per-flow guarantees offered by IntServ. Since the<br />

large number of traffic flows in the network core does not permit implementation of<br />

complex QoS mechanisms, DiffServ model bundles flows with similar QoS requirements<br />

into traffic classes. DiffServ model is more scalable than IntServ because routers<br />

maintain only per-class states. Furthermore, network ma<strong>na</strong>gement in DiffServ is similar<br />

to the ma<strong>na</strong>gement currently employed in IP networks. However, DiffServ cannot be<br />

deployed incrementally because it requires all-or-nothing network upgrade. It also<br />

requires pricing different from the flat-rate, which is widely employed in <strong>Internet</strong> today.<br />

Focus has been recently shifted toward simpler, lightweight QoS architectures. A<br />

concept of non-elevated services emerged as a promising framework for QoS<br />

provisioning because it retains the simplicity of the current best-effort <strong>Internet</strong>. Non-<br />

elevated service models assume that all traffic classes receive “different but equal”<br />

quality of service. These models offer weak QoS guarantees, which are rather qualitative,<br />

as opposed to quantitative guaranties offered by IntServ and DiffServ. No policing and<br />

only limited operatio<strong>na</strong>l changes to the current <strong>Internet</strong> architecture are required. They<br />

can be deployed incrementally and flat pricing can be preserved because none of the<br />

classes receives better QoS than the other.<br />

In non-elevated service models, service differentiation between classes is usually<br />

achieved by employing a trade-off between various QoS metrics (delay, loss rate, and<br />

throughput). For instance, class A may receive lower delay but higher loss rate than class<br />

B. In that case, service received by the class A is qualitatively different, but not better<br />

than service received by the class B, and vice versa. A number of mechanisms for delay<br />

2


[12]-[23] and loss rate differentiation [15], [24]-[27] among classes emerged recently.<br />

However, combined service differentiation across multiple QoS metrics is still an open<br />

issue because these mechanisms are not applicable to flows whose performance depends<br />

both on delay and loss rate, such as TCP flows. In case of TCP flows, delay and loss rate<br />

differentiations cannot be performed independently because their combined effect on<br />

TCP throughput might be unpredictable. Introduction of a low-delay service for delay-<br />

sensitive packets might increase the queuing delay and round-trip time for TCP packets<br />

that are used for bulk data transfer. Since the throughput of TCP flows depends on the<br />

round-trip time, delay differentiation might have negative effect on TCP applications.<br />

Since TCP traffic represents up to 95 % of the total traffic in today’s <strong>Internet</strong> [28],<br />

approaches that do not consider the interaction between service differentiation<br />

mechanism and TCP are not likely to be successful in practice.<br />

In this thesis, we propose a new non-elevated service differentiation architecture<br />

that provides delay and throughput differentiation between delay-sensitive and<br />

throughput-sensitive traffic classes. An <strong>Internet</strong> application may choose to mark its<br />

packets either as throughput-sensitive or delay-sensitive by setting a field in packets’ IP<br />

headers. Both classes benefit from the proposed architecture because delay-sensitive<br />

(real-time) applications receive low-delay service, while throughput-sensitive (TCP)<br />

applications are guarantied at least the same throughput as they would receive in a best-<br />

effort network. In addition to the new algorithm <strong>na</strong>med Packet Loss Controller (PLC)<br />

[30], the proposed architecture employs two existing router algorithms: a scheduling<br />

algorithm for proportio<strong>na</strong>l delay differentiation called Backlog-Proportio<strong>na</strong>l Rate (BPR)<br />

[12] and an active queue ma<strong>na</strong>gement (AQM) called Random Early Detection (RED)<br />

3


[29]. Detailed description of these algorithms is given in Sections 5 and 6. Relative delay<br />

ratio between classes is controllable and may be set by a network administrator as a<br />

parameter of the BPR algorithm. Even though other scheduling algorithms [12]-[23] can<br />

provide proportio<strong>na</strong>l delay differentiation, we selected the BPR scheduler because it<br />

explicitly allocates service rates for traffic classes (queues) in an output buffer of a router.<br />

Service rates allocated by the BPR to the throughput-sensitive and delay-sensitive classes<br />

are used by the PLC controller to perform packet loss differentiation that ensures that<br />

performance of TCP applications will not be degraded by the presence of the low-delay<br />

traffic. Hence, our approach is different from existing service differentiation mechanisms<br />

because it considers the interaction between the delay differentiation algorithm and TCP.<br />

We describe this interaction as a feedback control system, which is used for designing the<br />

PLC controller in Section 6. By a<strong>na</strong>lyzing this system, we derive conditions that need to<br />

be satisfied by PLC in order to provide predictable throughput of TCP flows. Even<br />

though our a<strong>na</strong>lysis was intended to solve a specific problem (the design of the PLC<br />

controller), it also contributes to better understanding of the interaction between TCP and<br />

service differentiation mechanisms. We implemented and tested the proposed service<br />

differentiation architecture using ns-2 network simulator [31]. We evaluated PLC’s<br />

ability to provide consistent and controllable delay differentiation between classes and to<br />

protect the throughput of TCP flows in the presence of delay-sensitive traffic. Our<br />

conclusion is that the proposed architecture achieves the objectives of the non-elevated<br />

service model: it provides “different but equal” quality of service to its traffic classes, it is<br />

scalable since it does not maintain any per-flow state, and it does not require admission<br />

control, traffic policing, or major operatio<strong>na</strong>l modifications in the current <strong>Internet</strong>.<br />

4


This thesis is organized as follows: Section 2 is an overview of QoS fundamentals<br />

and existing service models. A brief survey of existing proposals for non-elevated<br />

services is given in Section 3. Section 4 describes the proposed service differentiation<br />

architecture. Scheduling algorithms for proportio<strong>na</strong>l delay differentiation and their<br />

influence on TCP throughput are discussed in Section 5. We describe the Packet Loss<br />

Controller in Section 6 and evaluate its performance in Section 7 using various<br />

simulation sce<strong>na</strong>rios. Our conclusions are presented in Section 8.<br />

5


2. Quality of Service in <strong>Internet</strong>: an overview<br />

Quality of Service (QoS) is usually defined as the ability of an application to<br />

obtain the required network service for successful operation. In order to provide QoS, a<br />

network has to offer predictable QoS parameters, such as throughput, packet loss<br />

probability, delay, and delay jitter. Supporting such guarantees requires cooperation<br />

between the sending and receiving hosts and network devices in intermediate nodes<br />

(switches and routers). Appropriate QoS control mechanisms need to be designed and<br />

implemented in these nodes in order to support QoS.<br />

2.1. QoS control mechanisms<br />

QoS control mechanisms can be classified as network-level mechanisms<br />

(employed in core routers) and application-level mechanisms (employed on network<br />

edges). We focus our attention on router mechanisms because the proposed new solution<br />

to service differentiation in the <strong>Internet</strong> relies on traffic control mechanisms employed in<br />

routers. An architecture of a QoS capable router is shown in Fig. 1. It includes several<br />

traffic control mechanisms: packet classification, admission control, traffic policing,<br />

traffic shaping, buffer ma<strong>na</strong>gement, and packet scheduling.<br />

Packet classification mechanisms provide the capability to partition network<br />

traffic into multiple classes of service. Packets from different classes can be marked with<br />

distinct codes in their IP headers and, hence, receive different treatment. Proper design of<br />

packet classification mechanisms is important because, as the routers’ speed increases,<br />

these mechanisms could easily become performance bottlenecks.<br />

6


Fig. 1. Traffic control mechanisms employed in a QoS capable router.<br />

Admission control implements a decision algorithm that a router employs to<br />

determine whether an incoming request for service can be accepted without disrupting the<br />

service guarantees to established data flows. Unlike in a best-effort network, where a new<br />

connection request is accepted from any source anytime, a Call Admission Control<br />

(CAC) algorithm is executed in a QoS-e<strong>na</strong>bled network. It decides whether to accept or<br />

reject a new connection. The CAC algorithm estimates whether the available resources<br />

meet the set of QoS parameters requested by the connection [32].<br />

Traffic policing ensures that an accepted connection conforms to the QoS<br />

parameters negotiated during the admission control phase. For each packet entering the<br />

network, the policing mechanism detects whether it conforms to the “QoS contract”. If<br />

conforming, the packet is admitted to the router. Otherwise, the policing mechanism can<br />

either drop the packet or decide to accept it as a lower priority packet that will be dropped<br />

if congestion occurs. Policing is necessary only in access routers. There is no need to<br />

police the traffic in core routers [33].<br />

Traffic shaping is used to smooth out packets bursts in cases when incoming<br />

traffic does not conform to negotiated “QoS contract”. Unlike policing mechanisms,<br />

7


whose sole purpose is to detect and discard violating packets, traffic shaping mechanisms<br />

store packets in buffers in order to smooth out the bursts that might affect the<br />

performance of the network. Leaky bucket is a well-known mechanism that can be used<br />

both as a traffic policing and a traffic shaping mechanism.<br />

Buffer ma<strong>na</strong>gement algorithm defines the buffer sharing policy and decides<br />

whether an incoming packet should be accepted to the queue or discarded. Most widely<br />

implemented buffer ma<strong>na</strong>gement policy is Drop-Tail, which drops all incoming packets<br />

when the buffer overflows. More sophisticated algorithms react to incipient congestion<br />

and act before the buffer overflows. These algorithms are called Active Queue<br />

Ma<strong>na</strong>gement (AQM) algorithms.<br />

Packet scheduling specifies the packet serving discipline in a node. Incoming<br />

packets are organized by a buffer ma<strong>na</strong>gement algorithm into different logical queues.<br />

Different queuing strategies are possible, such as per-flow queuing (each flow has its own<br />

logical queue) or per-class queuing (an aggregate of flows with similar QoS requirements<br />

shares a single logical queue). After a packet has been transmitted from the buffer, the<br />

packet scheduling algorithm decides which queue should be served next. Since QoS<br />

parameters of a traffic flow are significantly affected by the choice of scheduling<br />

mechanism, considerable research efforts have been focused on designing various<br />

scheduling schemes.<br />

In addition to described network-level mechanisms in routers, application-level<br />

mechanisms for QoS monitoring, network ma<strong>na</strong>gement, pricing, and billing also need to<br />

be employed. Furthermore, in order to make use of a QoS-e<strong>na</strong>bled architecture, an<br />

application must possess a level of QoS awareness so that it could request certain service<br />

8


guarantees (QoS parameters). An application may request the service guarantees<br />

explicitly by a QoS sig<strong>na</strong>lling protocol or implicitly by marking its packet to belong to<br />

certain traffic class.<br />

2.2. Proposed QoS architectures<br />

We use the term QoS architecture to encompass a combi<strong>na</strong>tion of mechanisms<br />

that cooperatively provide a specific QoS level to application traffic traversing a network.<br />

Today’s <strong>Internet</strong> is not a QoS architecture because of the lack of widely implemented<br />

QoS mechanisms. It provides a best-effort service without any guarantees on QoS<br />

parameters. Nevertheless, majority of existing <strong>Internet</strong> applications obtain required<br />

network services for a successful operation because backbone <strong>Internet</strong> links are currently<br />

overprovisioned. Major drawback for possible deployment of new QoS architectures is<br />

their cost. Overprovisioning of link’s capacities still remains to be more cost-effective<br />

than deployment of new QoS architectures. However, future bandwidth-hungry (also<br />

called “killer” applications) and existing applications with diverse service requirements<br />

will eventually force major <strong>Internet</strong> Service Providers (ISPs) to consider the deployment<br />

of certain QoS mechanisms.<br />

Proposed QoS architectures can be classified based on various criteria. Based on<br />

the granularity of QoS guarantees, a QoS architecture may provide QoS guarantees to<br />

individual flows or to flow aggregates, called classes. Based on the type of QoS<br />

differentiation, the guarantees on QoS parameters (throughput, loss probability, delay,<br />

and delay jitter) may be absolute (deterministic) or relative (proportio<strong>na</strong>l to QoS<br />

parameters of other flows or traffic classes). Based on the scope of the guarantees, a QoS<br />

architecture may provide local (per-hop) or end-to-end QoS guarantees. Existing QoS<br />

9


architectures (implemented or proposed) are generally classified into three service<br />

models: Non-Elevated Services, Differentiated Services, and Integrated Services. A basic<br />

difference between these service models is in the level of QoS guarantees that they offer<br />

and their implementation complexity, as illustrated in Fig. 2. In the reminder of this<br />

Section, we discuss the advantages and disadvantages of the proposed models.<br />

Fig. 2. QoS guarantees vs. complexity of existing QoS service models.<br />

2.2.1. Integrated Services (IntServ)<br />

The Integrated Services (IntServ) model has been proposed in the early 90s by the<br />

<strong>Internet</strong> Engineering Task Force (IETF) [6], [7]. IntServ model focuses on providing<br />

absolute QoS guarantees to individual flows. Its key building blocks are Resource<br />

Reservation Protocol (RSVP) and admission control. RSVP defines sig<strong>na</strong>lling procedures<br />

used by a sender to reserve sufficient resources at each router on the path to the receiver<br />

and to ensure that its QoS requirements are satisfied. In order to reserve the resources,<br />

RSVP maintains flow-state information (e.g., throughput requirements, maximum<br />

tolerable delay) in routers. in addition to existing best-effort class ,IntServ model defines<br />

two traffic classes: guaranteed service (GS) [6] and controlled load service (CLS) [7].<br />

10


Guaranteed service (GS) class provides firm bounds on throughput and maximum<br />

end-to-end packet delay. This service is designed for real-time applications that are<br />

intolerable to delay, such as <strong>Internet</strong> telephony. A GS flow is characterized by peak rate<br />

and leaky bucket parameters (token generation rate and buffer size). GS provides zero<br />

loss probability for policed flows.<br />

Controlled load service (CLS) class provides a level of QoS to a flow that closely<br />

approximates the QoS level that the flow would receive in a non-congested node of a<br />

best-effort network. CLS class is designed for real-time applications that can tolerate<br />

variations in packet delay and delay jitter, such as audio/video streaming. A receiver uses<br />

a playout buffer to smooth out the delay jitter. CLS class does not provide maximum<br />

delay bounds such as the GS class. Traffic flows belonging to CLS class do not negotiate<br />

their rate during the admission phase. When the limited amount of bandwidth allocated<br />

for the CLS class gets exhausted, additio<strong>na</strong>l packets are likely to receive only the best-<br />

effort service.<br />

Major reason for abandoning the IntServ model is scalability problem. In addition<br />

to the admission control, RSVP sig<strong>na</strong>lling, and per-flow state mainte<strong>na</strong>nce, IntServ<br />

model requires packet scheduling and buffer ma<strong>na</strong>gement on per-flow basis. Backbone<br />

routers are usually traversed by an enormous number of flows. Hence, the amount of state<br />

information that has to be processed imposes an u<strong>na</strong>cceptable overhead on the routers.<br />

Furthermore, every network node must implement QoS mechanisms required by the<br />

IntServ model. Hence, the IntServ can not be deployed incrementally and, hence, requires<br />

substantial initial infrastructural investments.<br />

11


2.2.2. Differentiated Services (DiffServ)<br />

The Differentiated Services (DiffServ) model is a more recent approach proposed<br />

by the IETF [8]-[10]. It provides scalable QoS differentiation by avoiding the<br />

mainte<strong>na</strong>nce of per-flow state in core routers and by shifting the complexity to the<br />

network edges. In the DiffServ model, edge routers are responsible for traffic policing<br />

and shaping according to the traffic conditioning agreement (TCA) established between a<br />

user and an ISP as a part of a service level agreement (SLA). The TCA typically includes<br />

traffic characteristics (leaky bucket parameters) enforced by the ISP and QoS parameters<br />

requested by the user. Edge routers are also responsible for packet classification into<br />

traffic aggregates called classes. Each class is associated with a specific Per-Hop<br />

Behaviour (PHB) descriptor that provides the class with a specific treatment by network<br />

nodes. In the network core, packets are forwarded based on PHB descriptors indicated by<br />

DiffServ codepoints (DSCPs) in their IP headers. Since QoS differentiation in the core is<br />

provided on packet level, there is no need to maintain per-flow states. Unlike in the<br />

IntServ model, DiffServ routers employ per-class buffer ma<strong>na</strong>gement and packet<br />

scheduling, where the number of classes is significantly lower than the number of flows.<br />

Multiple classes (PHBs) are grouped together to form a PHB group. Currently, two PHB<br />

groups are defined by the IETF: Expedited Forwarding PHB group (EF) [9] that provides<br />

premium service and Assured Forwarding PHB group (AF) [10] that provides assured<br />

service.<br />

The Expedited Forwarding (EF) provides users with an abstraction of a leased<br />

line. In a DiffServ router, the EF traffic should receive specified rate irrespective of any<br />

other traffic transiting the router. To enforce this specified rate, edge routers must police<br />

12


all incoming traffic. User is not allowed to exceed the peak rate specified by the SLA.<br />

Hence, premium service provided by EF is low-delay, low-jitter, and nearly constant bit<br />

rate service suitable for <strong>Internet</strong> telephony and video conferencing.<br />

The Assured Forwarding (AF) defines four forwarding classes with three drop<br />

priorities within each class. Each combi<strong>na</strong>tion of AF service class and drop priority is<br />

associated with distinct DSCP code. In every DiffServ node, certain amount of buffer<br />

space and bandwidth is allocated to each class. In case of congestion, the drop priority of<br />

a packet determines its relative importance within its class. In order to protect packets<br />

with lower drop priority from being discarded, a DiffServ router preferentially discards<br />

packets with higher drop priorities. Hence, in the case of network congestion, the assured<br />

traffic with lower priority may still experience packet losses and high delay as in a best-<br />

effort network.<br />

Even though DiffServ model elimi<strong>na</strong>tes certain drawbacks of IntServ, such as the<br />

scalability problem, it has not been widely accepted and deployed. Since DiffServ<br />

provides per-hop QoS differentiation on a class level, it is difficult to ensure end-to-end<br />

performance defined by a SLA contract. From a commercial viewpoint, this is a major<br />

disadvantage because it implies that it is impossible to charge the service defined by the<br />

SLA. Furthermore, DiffServ model cannot be deployed incrementally because all<br />

network nodes are required to support DiffServ mechanisms in order to provide specified<br />

QoS parameters. In 2001, <strong>Internet</strong>2 QoS Working Group discontinued deployment and<br />

testing of the premium service because of the lack of demand and support from major<br />

router vendors [11].<br />

13


2.2.3. Non-Elevated Services<br />

Non-Elevated Services model is a recently proposed framework for service<br />

differentiation in the <strong>Internet</strong> [11]. This model provides a set of traffic classes with<br />

asymmetrically differentiated QoS parameters (throughput, delay, loss probability). For<br />

instance, one class may receive lower packet delay but higher loss probability compared<br />

to the best-effort class, while another class may receive higher delay but lower loss<br />

probability. Neither class is absolutely better than the other: each class has a set of QoS<br />

parameters that make it more appropriate for certain applications but less appropriate for<br />

the other. Hence, the non-elevated model provides “different but equal” QoS to traffic<br />

classes. Pricing and billing may remains the same as in the current <strong>Internet</strong> because there<br />

is no need to price the classes differently. Applications are free to choose the class that<br />

best suits their performance requirements by setting a marker in packets’ IP headers. No<br />

admission control, traffic policing, or shaping are required. In addition to an application-<br />

level algorithm used to choose the traffic class, non-elevated architectures rely solely on<br />

buffer ma<strong>na</strong>gement and packet scheduling mechanisms.<br />

Non-elevated architectures usually provide relative per-hop guarantees, although<br />

different solutions are possible. Service guarantees provided by these architectures are<br />

weak. Instead of QoS provisioning, service differentiation is a more appropriate <strong>na</strong>me to<br />

describe the functio<strong>na</strong>lity of non-elevated architectures. Unlike IntServ and DiffServ<br />

architectures, non-elevated architectures cannot provide absolute guarantees on QoS<br />

parameters. However, low implementation complexity and flat pricing are strong<br />

incentives for their deployment. Non-elevated mechanisms can be deployed<br />

incrementally because they provide local, per-hop service differentiation. In a non-<br />

14


elevated network, a real-time application has high probability to actually receive lower<br />

delay than in a best-effort network even though not every router in the network supports<br />

the non-elevated mechanisms. Moreover, price for this service is the same as for the best-<br />

effort service. Various properties of Integrated, Differentiated, and Non-elevated Services<br />

are summarized in Table 1.<br />

Granularity of<br />

service<br />

guarantees<br />

Type of service<br />

guarantees<br />

Scope of service<br />

guarantees<br />

Table 1. Comparison of service differentiation models.<br />

Integrated<br />

Services<br />

individual flows<br />

absolute<br />

Differentiated<br />

Services<br />

flow aggregates<br />

(classes)<br />

absolute or<br />

relative<br />

15<br />

Non-Elevated<br />

Services<br />

flow aggregates<br />

(classes)<br />

relative<br />

end-to-end per-hop per-hop<br />

State in routers per-flow per-class not required<br />

Admission<br />

control<br />

Resource<br />

reservation<br />

All-or-nothing<br />

upgrade<br />

required<br />

required<br />

required for<br />

absolute<br />

differentiation<br />

required for<br />

absolute<br />

differentiation<br />

not required<br />

not required<br />

required required not required<br />

Before presenting a new architecture for non-elevated services, in Section 3 we<br />

describe several existing proposals.


3. Survey of existing proposals for non-elevated services<br />

There are currently three proposed architectures for non-elevated services:<br />

Alter<strong>na</strong>tive Best-Effort (ABE) [3], Best-Effort Differentiated Services (BEDS) [4], and<br />

Equivalent Differentiated Services (EDS) [5]. We describe here mechanisms employed in<br />

these architectures and address some of their drawbacks.<br />

3.1. Alter<strong>na</strong>tive Best-Effort (ABE)<br />

ABE [3] introduced two traffic classes: a low delay class <strong>na</strong>med “green” and a<br />

“blue” class that corresponds to the best-effort class. Green packets are guarantied low<br />

bounded delay, while blue traffic receives at least as much throughput as it would receive<br />

in a flat best-effort network. In order to ensure that “green does not hurt blue”, two<br />

conditions must hold: local transparency and throughput transparency for blue packets.<br />

Local transparency assumes that the delay experienced by blue packets in ABE is not<br />

higher than the delay they would experience in a best-effort network. Furthermore, a blue<br />

packet is not discarded if it would not be discarded in a best-effort network. Throughput<br />

transparency implies that blue flows receive at least the same throughput as they would<br />

receive in a best-effort network. ABE provides local transparency for blue, while<br />

throughput transparency condition is considered to be loose.<br />

A router implementation of ABE called Duplicate Scheduling with Deadlines<br />

(DSD) [3] is illustrated in Fig. 3. Duplicates of all incoming packets are sent to a virtual<br />

queue and accepted if the virtual buffer is not full. The duplicates in the virtual queue are<br />

served according to the first-in first-out (FIFO) discipline, as they would be served in a<br />

16


est-effort network. If its duplicate is accepted into the virtual queue, a blue packet is<br />

assigned a deadline based on the expected finish time of the duplicate and it is placed in<br />

the blue queue. A green packet is accepted into the green queue if it passes the so-called<br />

“green acceptance test”. A green packet arriving to the queue passes the test if there is a<br />

possibility that it will be served before a specified delay bound d expires, and fails<br />

otherwise. This possibility is evaluated based on the number of green and blue packets<br />

that are already waiting in queues. Blue packets are always served no later than their<br />

deadline. Green packets are served in the meantime if they have been in the queue for<br />

less than the specified delay bound d and are dropped otherwise. A control loop is used to<br />

decide which packet should be served first if the deadlines of both head-of-line packets<br />

still can be met, even if the other queue is served beforehand.<br />

Fig. 3. DSD architecture: duplicates of all incoming packets are sent to a virtual queue. Origi<strong>na</strong>l<br />

packets are classified according to their colours into the blue or green queue.<br />

3.2. Best-Effort Differentiated Services (BEDS)<br />

BEDS [4] defines two types of services: drop-conservative for TCP and delay-<br />

conservative for UDP flows. TCP and UDP packets are queued in two Random Early<br />

Detection (RED) [29] queues with distinct sets of parameters.<br />

17


RED [29] is an active queue ma<strong>na</strong>gement (AQM) mechanism recommended by<br />

IETF. RED has been widely accepted and implemented by major router manufacturers.<br />

Unlike in Drop Tail mechanism, which drops incoming packets when buffer overflows,<br />

drop probability p in RED is calculated as an increasing function of an average queue<br />

size q :<br />

⎧ 0<br />

if q ≤ qmin<br />

⎪ q − qmin<br />

p : = H ( q)<br />

= ⎨ pmax<br />

if qmin<br />

< q < q , (1)<br />

max<br />

⎪qmax<br />

− qmin<br />

⎪⎩<br />

1<br />

if q ≥ qmax<br />

where qmin and qmax are minimum and maximum queue thresholds and pmax is a maximum<br />

drop probability. The function of the drop probability p is shown in Fig. 4. The average<br />

queue size q is calculated as a weighted moving average of the instantaneous queue size<br />

q. It is updated upon each packet arrival to the queue as:<br />

q ( + wq , (2)<br />

k = 1 − w)<br />

qk<br />

−1<br />

where k is the packet number and w is an averaging weight.<br />

Fig. 4. RED’s drop probability p is a function of the average queue size q .<br />

18<br />

k


RED has been designed to cooperate with TCP’s congestion control algorithm.<br />

TCP flows recognize packet losses as a sign of congestion and reduce their sending rate.<br />

RED begins to drop packets before the buffer overflows and, thus, provides an early<br />

feedback about congestion level on the output link and allows TCP flows to react in a<br />

timely manner. The interval where average queue sizes lie between qmin and qmax is called<br />

early drop region.<br />

In [4], two types of RED control have been defined depending on the slope of the<br />

function p = H (q)<br />

in the early drop region: drop-conservative and delay-conservative. A<br />

drop-conservative RED control results in lower packet loss probability and larger delay.<br />

To the contrary, a delay-conservative RED control results in higher packet loss<br />

probability and lower delay. In the case of FCFS scheduling, queuing delay is always<br />

proportio<strong>na</strong>l to the average queue size q . The idea employed in BEDS is illustrated in<br />

Fig. 5.<br />

Fig. 5. The intersections of RED control functions and queue law determine average queuing delays<br />

and average loss probabilities of traffic classes in BEDS.<br />

19


The intersections of the RED control functions and a queue law in Fig. 5 determine the<br />

operating points for drop-conservative (TCP) and delay-conservative (UDP) traffic in<br />

BEDS. The queue law describes a relationship between queue length and packet loss<br />

probability. In case of n identical TCP flows and m identical UDP flows, the queue law<br />

q = G(<br />

p)<br />

is implicitly defined by:<br />

nT ( p,<br />

R0<br />

+ q / C)<br />

+ m(<br />

1−<br />

p)<br />

U = C , (3)<br />

where T ( p,<br />

R0<br />

+ q / C)<br />

is the average throughput of TCP flows derived in [34]:<br />

T ( p,<br />

R<br />

0<br />

3 M<br />

+ q / C)<br />

=<br />

, (4)<br />

2 ( R + q / C)<br />

p<br />

R0 is the round-trip propagation delay of packets, C is the capacity of the output link, U is<br />

UDP rate, and M is the average packet size.<br />

In addition to the RED buffer ma<strong>na</strong>gement, BEDS employs a scheduling<br />

mechanism to decide which RED queue should be served next. Based on results of the<br />

packet scheduling, three versions of BEDS have been defined: BEDS with forced delay<br />

ratio, BEDS with forced loss ratio, and BEDS with forced delay and loss ratio [4].<br />

BEDS with forced delay ratio employs Weighted Fair Queuing (WFQ) scheduler<br />

[36] to provide services to the drop-conservative (TCP) and delay-conservative (UDP)<br />

queues such that the ratio of queuing delays in these two queues is close to a specified<br />

value δ. In order to describe the WFQ scheduler, let us assume an ideal fluid flow system<br />

where queues are served by a bit-by-bit round-robin scheduler. A certain queue weight is<br />

assigned to each queue. Let a packet finishing time denote the time when the last bit of<br />

the packet is served in such an idealized system. Finishing times of head-of-line packets<br />

20<br />

0


in each queue are scaled by corresponding queue weights. WFQ can be then implemented<br />

by serving the head-of-line packets in the increasing order of their scaled finishing times.<br />

In BEDS with forced delay ratio, WFQ’s weights wTCP and wUDP are adjusted at each<br />

packet arrival so that:<br />

w<br />

w<br />

UDP<br />

TCP<br />

q<br />

= δ , (5)<br />

q<br />

+<br />

where q TCP = max( qTCP<br />

, 1)<br />

. If the queue weights for TCP and UDP queues satisfy (5), the<br />

ratio of queuing delays in these two queues will be close to the specified value δ [4].<br />

The deficiency of BEDS with forced delay ratio is that only UDP traffic benefits from the<br />

proposed mechanism. TCP traffic suffers from increased queuing delay and,<br />

consequently, lower throughput compared to the throughput achieved in a best-effort<br />

network. This type of service differentiation does not comply with the concept of non-<br />

elevated services because traffic classes do not receive “different but equal” quality of<br />

service.<br />

21<br />

UDP<br />

+<br />

TCP<br />

BEDS with forced loss ratio employs strict priority scheduling, with UDP queue<br />

having higher priority. Drop probability for a packet is calculated on every packet arrival<br />

to the TCP or UDP queue. For TCP packets, drop probability pTCP is calculated based on<br />

the drop-conservative RED control function in the TCP queue. For UDP packets, the<br />

drop probability pUDP is calculated from the TCP drop probability pTCP as:<br />

p = λ p , (6)<br />

UDP<br />

where λ is the desired loss rate ratio. However, enforcing the loss ratio λ might be futile,<br />

considering the different effect of packet losses on the performance of TCP and UDP<br />

TCP


flows. Quality of services received by TCP and UDP applications can not be compared<br />

with certitude based on the ratio of their packet loss probabilities. UDP applications are<br />

usually less affected by occasio<strong>na</strong>l packet losses than TCP applications. Furthermore,<br />

combined effect of strict priority scheduling and proportio<strong>na</strong>l loss rate differentiation on<br />

TCP throughput is neither controllable nor predictable when UDP load varies.<br />

BEDS with forced delay and loss ratio is a combi<strong>na</strong>tion of the previous two<br />

versions of BEDS. In this case, relationship between delay ratio δ and loss ratio λ is an<br />

important issue that has not been discussed in [4]. Since the throughput of TCP flows<br />

depends both on delay (round-trip time) and loss probability, parameters δ and λ cannot<br />

be set independently. Furthermore, no results have been presented to illustrate the<br />

influence of the proposed mechanism on throughput of TCP and UDP flows.<br />

3.3. Equivalent Differentiated Services (EDS)<br />

EDS [5] defines a set of classes with asymmetric delay and loss differentiation.<br />

Delay and loss differentiation parameters are set to provide lower delay and higher loss<br />

probability to class i and higher delay and lower loss probability to class j, as illustrated<br />

in Fig. 6. EDS relies on delay and loss differentiation mechanisms proposed in [12] and<br />

[24]: Waiting-Time Priority (WTP) scheduler and Proportio<strong>na</strong>l Loss Rate (PLR) dropper.<br />

WTP [12], [24] is a priority scheduler where the priority of a packet is<br />

proportio<strong>na</strong>l to its waiting time in a queue. The priority of the head-of-line packet in<br />

queue (class) i at time t is:<br />

p ( t)<br />

= w ( t)<br />

s<br />

(7)<br />

i<br />

22<br />

i<br />

i


where wi(t) is the waiting time of the packet and si is the delay differentiation parameter<br />

of class i. Setting the delay differentiation parameter si to a larger value results in a lower<br />

delay experienced by packets in class i. It has been shown [12], [24] that average waiting<br />

time for any two classes i and j serviced by WTP satisfies:<br />

di j<br />

→ (8)<br />

d<br />

j<br />

under heavy-load conditions. Therefore, choice of delay differentiation parameters si and<br />

sj determines the ratio of average queuing delays in these two classes.<br />

Fig. 6. Traffic classes in EDS model receive asymmetric loss and delay performance.<br />

23<br />

s<br />

s<br />

i<br />

PLR dropper [24] is a packet dropping mechanism that closely approximates<br />

proportio<strong>na</strong>l loss rate differentiation between classes. PLR maintains estimates of loss<br />

rates li in each class. When an active queue ma<strong>na</strong>gement (AQM) algorithm in a router<br />

decides that a packet should be dropped, PLR selects the backlogged class with the<br />

minimum normalized loss rate li/σi, where σi is the loss differentiation parameter of class<br />

i, and drops a packet from class i. Dropping a packet from class i tends to equalize


normalized loss rates among classes. Therefore, for any two classes i and j, PLR ensures<br />

that:<br />

l<br />

l<br />

i<br />

j<br />

σ j<br />

→ , (9)<br />

σ<br />

where l i , l and j σ i , σ are average loss rates and loss differentiation parameters for<br />

j<br />

classes i and j, respectively. Therefore, the choice of loss differentiation parameters σi and<br />

σj determines the ratio of average loss rates in classes i and j. Two versions of PLR<br />

introduced in [24], PLR(M) and PLR(∞), differ in the duration of time intervals over<br />

which loss rates li are estimated. In the PLR(M) dropper, the loss rate of class i is<br />

estimated as a fraction of dropped packets from class i for the last M packet arrivals. A<br />

cyclic queue with M entries, called Loss History Table (LHT), contains records of the<br />

drop status of each packet for the last M arrivals. Based on the information stored in the<br />

LHT, the PLR(M) dropper calculates the number of arrivals and drops from class i in the<br />

last M arrivals [24]. The PLR(∞) dropper estimates the loss rates li using simple counters<br />

for arrivals and drops in every class. For 32-bit counters, length of the time interval over<br />

which the loss rates li are estimated is over four billion packet arrivals. Hence, we may<br />

assume that the PLR(∞) dropper has “infinite” memory. Estimation of the loss rates<br />

based on long history of packet arrivals makes PLR(∞) more precise, but less adaptive to<br />

changes in class load distributions [24].<br />

24<br />

i<br />

Tuning WTP’s delay differentiation parameters si and PLR’s loss differentiation<br />

parameters σi is not performed by the EDS mechanism itself, but rather by an upper layer<br />

protocol. Another option, suggested by authors in [5], is to offer a set of classes with


fixed delay and loss differentiation parameters and let senders decide which class satisfies<br />

their service requirements.<br />

Major problem with EDS is that it does not consider the behaviour of transport<br />

protocols employed by various applications. For instance, TCP flows are responsive and<br />

they decrease their sending rate if a packet loss has been detected. Furthermore, sending<br />

rate of a TCP flow depends on the round-trip time of its packets. Therefore, in order to<br />

achieve predictable performance of TCP flows, loss and delay differentiation parameters<br />

in EDS cannot be set arbitrarily. In [5] authors suggest that complexity of TCP may lead<br />

them to design a new transport protocol, rather than to adapt TCP to EDS. However,<br />

since TCP is already widely deployed, the only feasible solution is to adapt service<br />

differentiation mechanisms to TCP, not the opposite.<br />

In the Section 4, we introduce a new service differentiation mechanism for non-<br />

elevated services that alleviates this problem. We define the objectives of the proposed<br />

mechanism and describe its architecture.<br />

25


4. Proposed service differentiation architecture for non-elevated<br />

services<br />

In this Section, we propose a new solution to service differentiation in <strong>Internet</strong>.<br />

Proposed architecture relies entirely on router mechanisms to provide weak service<br />

guaranties. In addition to existing scheduling and buffer ma<strong>na</strong>gement algorithms,<br />

proposed architecture employs a new algorithm <strong>na</strong>med Packet Loss Controller (PLC) to<br />

ensure that traffic classes receive “different but equal” quality of service.<br />

<strong>Internet</strong> applications can be classified as delay-sensitive (DS) and throughput-<br />

sensitive (TS). Delay-sensitive applications, such as IP Telephony and Video on Demand,<br />

employ UDP or similar unresponsive protocols. Throughput-sensitive applications, such<br />

as File Transfer Protocol (FTP), Hypertext Transfer Protocol (HTTP), and Simple Mail<br />

Transfer Protocol (SMTP), employ TCP as a transport protocol. Therefore, service<br />

differentiation problem can be considered as a problem of providing different treatment<br />

to TCP and UDP flows. An application may use last two bits of DS field in the IP header,<br />

which are not yet assigned, to mark its packets as delay-sensitive or throughput-sensitive<br />

[37]. Two objectives of a new service differentiation architecture that we propose in this<br />

thesis are to provide:<br />

1) proportio<strong>na</strong>lly lower delay to delay-sensitive class (UDP), compared to the delay<br />

experienced by throughput-sensitive class (TCP);<br />

2) at least the same throughput to throughput-sensitive flows (TCP) as they would<br />

receive in a best-effort network.<br />

The first objective is accomplished by using a Backlog-Proportio<strong>na</strong>l Rate (BPR)<br />

scheduler, introduced in [12]. The BPR classifies the throughput-sensitive and delay-<br />

26


sensitive flows into two different queues and assignees service rates to these queues that<br />

will ensure that the ratio of average queuing delays for throughput-sensitive and delay-<br />

sensitive classes is equal to the ratio specified by a network operator. In Section 5, we<br />

present an ideal rate assignment strategy for proportio<strong>na</strong>l delay differentiation <strong>na</strong>med<br />

Optimized BPR (BPR + ) in order to evaluate the performance of BPR scheduler. BPR +<br />

[38] is an extension of BPR. It employs more complete information about backlogged<br />

traffic to assign service rates to TS and DS queues in order to more precisely approximate<br />

the specified delay ratio δ. Even though BPR + is to complex to warrant practical<br />

implementations, it is useful as a benchmark for evaluating other possible rate assignment<br />

strategies for proportio<strong>na</strong>l delay differentiation. Detailed description and performance<br />

comparison of BPR + and BPR is given in Section 5.<br />

The second objective is accomplished using a new algorithm, <strong>na</strong>med Packet Loss<br />

Controller (PLC). Since BPR scheduler is work-conserving, average queuing delay is<br />

identical as in the case of FCFS scheduling employed in a best-effort network. If the total<br />

number of packets accepted in the buffer is maintained to be the same as it would be in a<br />

best-effort network, lower delay for delay-sensitive packets can be achieved only by<br />

increasing the queuing delay for throughput-sensitive packets. Since throughput of a TCP<br />

flow depends on its round-trip time, introduction of low-delay service for delay-sensitive<br />

class will deteriorate the performance of throughput-sensitive applications that use TCP<br />

as a transport protocol. The PLC controller is used to overcome this problem by<br />

protecting the throughput of TCP flows. It guarantees that the TCP throughput in the<br />

presence of delay differentiation is not lower than in a best-effort network. PLC<br />

27


controller can be considered as an addition to the well-known RED algorithm [29].<br />

Details of the PLC controller are given in Section 6.<br />

The proposed architecture for service differentiation is shown in Fig. 7.<br />

Fig. 7. The proposed architecture for service differentiation: throughput-sensitive (TCP) and delaysensitive<br />

(UDP) queues are ma<strong>na</strong>ged by RED with PLC controller. Packets are scheduled by BPR.<br />

The new architecture differs from other proposals because it considers the interaction<br />

between the delay differentiation algorithm and TCP’s congestion control algorithm.<br />

Negative effect of proportio<strong>na</strong>l delay differentiation on TCP throughput is elimi<strong>na</strong>ted by<br />

the PLC controller. Even though router mechanisms [12]-[23] are also able to provide<br />

proportio<strong>na</strong>l delay differentiation, they are only applicable to protocols whose throughput<br />

does not depend on round-trip time, such as UDP. Since the majority of <strong>Internet</strong><br />

applications employ TCP as a transport protocol, practical value of these mechanisms is<br />

questio<strong>na</strong>ble. Work presented in this thesis contributes to better understanding of<br />

requirements that need to be satisfied in order to extend router mechanisms for service<br />

differentiation to the “real world” sce<strong>na</strong>rios.<br />

28


5. Scheduling for proportio<strong>na</strong>l delay differentiation<br />

Proportio<strong>na</strong>l delay differentiation assumes that the ratio of average queuing delays<br />

of throughput-sensitive and delay-sensitive packets should be approximately equal to a<br />

specified delay differentiation parameter. We consider a work-conserving scheduler<br />

serving two FIFO queues ma<strong>na</strong>ged by an active queue ma<strong>na</strong>gement (AQM) algorithm,<br />

which makes drop decisions upon packet arrivals (once being admitted, the packet is<br />

never dropped from the queue). The work-conserving property assumes that the scheduler<br />

does not idle when there are packets in a queue waiting to be transmitted.<br />

Scheduling algorithms for proportio<strong>na</strong>l delay differentiation provide relative per-<br />

hop delay guarantees. One may argue that real-time applications require absolute end-to-<br />

end guarantees because their performance depends on probability of being bellow certain<br />

end-to-end delay threshold [13]. Proportio<strong>na</strong>l delay differentiation decreases the<br />

probability of exceeding the threshold for the delay-sensitive class. This makes it more<br />

suitable for real-time applications than the existing best-effort service. It has been also<br />

shown that per-hop proportio<strong>na</strong>l delay differentiation easily translates into proportio<strong>na</strong>l<br />

end-to-end delay differentiation [23]<br />

In this Section, we discuss two schedulers for proportio<strong>na</strong>l delay differentiation:<br />

the well-known Backlog-Proportio<strong>na</strong>l Rate scheduler (BPR) scheduler [12] and a newly<br />

proposed idealized scheduler <strong>na</strong>med Optimized Backlog-Proportio<strong>na</strong>l Rate (BPR + )<br />

scheduler [38] that we introduced in order to evaluate the performance of BPR compared<br />

29


to a close-to-optimal rate assignment strategy that considers waiting times of individual<br />

packet in queues.<br />

5.1. Backlog-Proportio<strong>na</strong>l Rate scheduler (BPR)<br />

Backlog Proportio<strong>na</strong>l Rate (BPR) scheduler for proportio<strong>na</strong>l delay differentiation<br />

has been introduced in [12]. It is also known as Proportio<strong>na</strong>l Queue Control Mechanism<br />

(PQCM) [22].The basic idea used in BPR is to assign class service rates (rTS and rDS)<br />

proportio<strong>na</strong>lly to queue lengths (qTS and qDS) and a desired delay differentiation<br />

parameter δ ≥ 1 :<br />

r<br />

r<br />

1<br />

δ<br />

TS<br />

TS = . (10)<br />

DS qDS<br />

If C = rTS + rDS is the output link’s capacity, service rates rTS and rDS can be calculated<br />

from (10). According to Little’s law, average queuing delays of throughput-sensitive and<br />

delay-sensitive packets are dTS = qTS / rTS and dDS = qDS / rDS, respectively. The ratio of<br />

these delays approaches δ, as shown in [12]:<br />

d<br />

d<br />

TS<br />

DS<br />

30<br />

q<br />

→ δ<br />

. (11)<br />

BPR scheduler is based on the fluid server model and, hence, can be only approximated<br />

in practice. One possible way to approximate BPR is given in [12].<br />

BPR provides predictable and controllable proportio<strong>na</strong>l delay differentiation. The<br />

differentiation is predictable in the sense that it is consistent regardless of variations in<br />

traffic load. It is also controllable in the sense that network administrator is able to adjust<br />

average delay ratio between classes.


5.2. BPR + : an optimized BPR scheduler<br />

Optimized Backlog-Proportio<strong>na</strong>l Rate (BPR + ) is a new scheduler that considers<br />

not only the lengths of throughput-sensitive and delay-sensitive queues, but also the<br />

arrival times of individual packets when it assigns service rates to the queues [38]. We<br />

were motivated by the need to know the form of an optimal scheduler for proportio<strong>na</strong>l<br />

delay differentiation, even if it might be to complex to be practical. In our simulation<br />

study, we use BPR + as a benchmark for evaluating BPR performance.<br />

BPR + is based on a fluid traffic model. We provide here a set of definitions that<br />

are used to characterize the fluid traffic model.<br />

We say that a server is busy if there are packets in queues waiting to be<br />

transmitted. The input curve R in (t) is defined as a cumulative amount of traffic that has<br />

entered a queue since the beginning of the current busy period. The output curve R out (t) is<br />

the cumulative amount of traffic that has been transmitted from the queue since the<br />

beginning of the current busy period [39], [40]. An example of input and output curves is<br />

shown in Fig. 8. At every moment, service rate of a queue is equal to the slope of its<br />

output curve. Vertical and horizontal distance between input and output curve are current<br />

backlog and delay, respectively.<br />

Input and output curves for throughput-sensitive class ( R (t)<br />

in<br />

TS and R (t)<br />

out<br />

TS ) and<br />

delay-sensitive class ( R (t)<br />

in<br />

DS and R (t)<br />

out<br />

DS ) are shown in Fig. 9. If TS queue is served with<br />

out<br />

rate R (τ ) at time τ, the average delay of TS backlog d TS can be calculated as a sum of<br />

TS<br />

experienced delay<br />

E<br />

d TS and expected residual delay<br />

31<br />

R<br />

d TS :<br />

E<br />

R<br />

d ( τ ) = d ( τ ) + d ( τ ) . (12)<br />

TS<br />

TS<br />

TS


Fig. 8. Example of an input and output curves: vertical and horizontal distances between the curves<br />

are current backlog and delay, respectively.<br />

Fig. 9. Input and output curves for throughput-sensitive and delay-sensitive class: average delay is a<br />

sum of experienced and residual delays.<br />

The average experienced delay of TS backlog is:<br />

d<br />

E<br />

TS<br />

1<br />

in out<br />

( τ ) = ( RTS<br />

( t)<br />

− RTS<br />

( τ )) dt<br />

in<br />

out<br />

R ( τ ) − R ( τ ) ∫ , (13)<br />

'<br />

TS<br />

TS<br />

32<br />

τ<br />

τ<br />

TS


where<br />

τ is obtained from the condition ( ) ( )<br />

' in<br />

out<br />

R τ = R τ . The average residual delay<br />

'<br />

TS<br />

of TS backlog is:<br />

d<br />

R<br />

TS<br />

TS<br />

33<br />

TS<br />

1<br />

( τ ) = ( R<br />

out<br />

RD<br />

'<br />

( τ )( τ −τ<br />

) ∫'<br />

TS<br />

TS<br />

τ<br />

τ<br />

TS<br />

in<br />

TS<br />

TS<br />

( t)<br />

− R<br />

out<br />

TS<br />

( τ )) dt . (14)<br />

From (12), (13), and (14), expected average queuing delay for throughput-sensitive class<br />

is:<br />

in<br />

out<br />

where B ( τ ) R ( τ ) − R ( τ )<br />

TS<br />

1 1<br />

dTS ( τ )<br />

ITS<br />

( τ ) dt<br />

out<br />

'<br />

BTS<br />

( τ ) RTS<br />

( τ )( τ τ TS ) ⎟ ⎛<br />

⎞<br />

=<br />

⎜ +<br />

, (15)<br />

D<br />

⎝<br />

− ⎠<br />

τ<br />

in out<br />

= TS TS and ITS<br />

( τ ) = ∫ ( RTS<br />

( t)<br />

− RTS<br />

( τ ) )<br />

Using a similar procedure, expected average queuing delay for the delay-sensitive class<br />

can be expressed as:<br />

d<br />

DS<br />

in<br />

out<br />

where B ( τ ) R ( τ ) − R ( τ )<br />

DS<br />

τ<br />

'<br />

TS<br />

dt .<br />

⎛ 1<br />

1 ⎞<br />

( τ ) =<br />

⎜ +<br />

I ( τ )<br />

out<br />

' DS<br />

BDS<br />

( τ ) RDS<br />

( τ )( τ τ DS ) ⎟ , (16)<br />

D<br />

⎝<br />

− ⎠<br />

τ<br />

in<br />

out<br />

= DS<br />

DS , I ( τ ) = ∫(<br />

RDS<br />

( t)<br />

− RDS<br />

( τ ) )<br />

DS dt , and ( ) ( )<br />

' in<br />

out<br />

R τ = R τ .<br />

τ<br />

'<br />

DS<br />

out<br />

Service rates RTS (τ ) D out<br />

and RDS (τ ) D dTS<br />

that satisfy = δ and RD<br />

out<br />

out<br />

TS ( τ ) + RD<br />

DS ( τ ) = C can be<br />

d<br />

calculated from:<br />

RD<br />

RD<br />

out 2<br />

TS<br />

out<br />

DS<br />

⎛ out<br />

RD<br />

⎜<br />

1 ⎛ 1<br />

+ TS ⎜ BTS<br />

Z B ⎜ '<br />

⎝ ( τ ) −δ<br />

( τ ) DS ( τ ) ⎝τ<br />

TS<br />

= C − RD<br />

δ Z(<br />

τ ) ⎞ ⎞<br />

C<br />

+ − C ⎟<br />

1<br />

⎟<br />

⎟<br />

−<br />

'<br />

'<br />

τ DS ⎠ ⎠ BTS<br />

( τ ) −δZ<br />

( τ ) BDS<br />

( τ ) τ TS<br />

= 0<br />

, (17)<br />

out<br />

TS<br />

DS<br />

DS<br />

DS<br />

DS


where<br />

I DS ( τ )<br />

Z ( τ ) = . If (17) is satisfied for every τ, the ratio of average queuing delays<br />

I ( τ )<br />

TS<br />

for throughput-sensitive and delay-sensitive class during busy periods will be δ.<br />

Since the described BPR + server is based on a fluid model of <strong>Internet</strong> traffic, it<br />

cannot be implemented in practice. Therefore, a heuristic approximation is used.<br />

5.2.1. A heuristic approximation of BPR +<br />

We describe a heuristic approximation of BPR + fluid server that reflects the<br />

packet <strong>na</strong>ture of <strong>Internet</strong> traffic.<br />

A timestamp is associated with every packet accepted to TS or DS queues. These<br />

timestamps are used to calculate the average experienced delay of backlogged packets.<br />

For throughput-sensitive packets, the average experienced delay is:<br />

d<br />

E<br />

TS<br />

1<br />

=<br />

N<br />

NTS<br />

∑<br />

TS k = 1<br />

34<br />

( t − t ) , (18)<br />

where NTS is number of the packets in TS queue and tk is the arrival time of the k th packet.<br />

If served with rate rTS, the average residual time of throughput-sensitive packets is:<br />

d<br />

R<br />

TS<br />

1<br />

=<br />

N<br />

NTS<br />

q<br />

k<br />

k<br />

∑<br />

TS k = 1 rTS<br />

, (19)<br />

where qk is the amount of traffic in TS queue that has to be served before the k th packet<br />

(Fig. 10).<br />

Therefore, expected average delay of throughput-sensitive packets is:<br />

d<br />

TS<br />

1<br />

= DTS<br />

+ QTS<br />

, (20)<br />

r<br />

TS


NTS<br />

1<br />

where DTS<br />

= t − ∑ t<br />

N k = 1<br />

TS<br />

k<br />

NTS<br />

1<br />

and QTS<br />

= ∑ q<br />

N k = 1<br />

Similarly, expected average delay of delay-sensitive packets is:<br />

N DS 1<br />

where DDS<br />

= t − ∑ t<br />

N k = 1<br />

DS<br />

k<br />

d<br />

DS<br />

TS<br />

N DS 1<br />

and QDS<br />

= ∑ q<br />

N k = 1<br />

k<br />

35<br />

.<br />

1<br />

= DDS<br />

+ QDS<br />

, (21)<br />

r<br />

DS<br />

Fig. 10. The heuristic approximation of BPR+ uses timestamps to calculate the average experienced<br />

delay of backlogged packets.<br />

dTS<br />

On each packet departure, service rates rTS and rDS that satisfy = δ and rTS + rDS<br />

= C<br />

d<br />

are calculated from:<br />

r<br />

2 TS DS<br />

TS<br />

TS +<br />

⎜<br />

TS<br />

DTS<br />

D ⎟<br />

0<br />

−δ<br />

DS DTS<br />

−δ<br />

DDS<br />

r<br />

DS<br />

⎛ Q + δ Q<br />

⎜<br />

⎝<br />

= C − r<br />

TS<br />

⎞<br />

− C ⎟r<br />

⎠<br />

k<br />

DS<br />

.<br />

−<br />

Q<br />

C<br />

=<br />

DS<br />

. (22)<br />

Packets are scheduled based on virtual service functions VTS(t) and VDS(t). These<br />

functions approximate the difference between an amount of traffic that would have been<br />

transmitted from TS and DS queues during the current busy period if these queues were<br />

serviced by rates rTS and rDS, respectively and an amount of traffic that has been actually<br />

transmitted from these queues. The virtual service functions are updated upon every


packet departure as:<br />

V<br />

V<br />

TS<br />

DS<br />

d<br />

⎧0<br />

if aTS<br />

≥ t<br />

( t)<br />

= ⎨<br />

(23)<br />

− d<br />

d<br />

⎩VTS<br />

( t ) + rTS<br />

( t)(<br />

t − t ) if aTS<br />

< t<br />

d<br />

⎧0<br />

if aDS<br />

≥ t<br />

( t)<br />

= ⎨<br />

, (24)<br />

− d<br />

d<br />

⎩VDS<br />

( t ) + rDS<br />

( t)(<br />

t − t ) if aDS<br />

< t<br />

where rTS(t) and rDS(t) are service rates obtained from (22), t d is the time of the previous<br />

departure, and aTS and aDS are arrival times of head-of-line packets in TS and DS queues,<br />

respectively. On each packet departure from TS queue, VTS(t) is updated as:<br />

−<br />

V ( t)<br />

= V ( t ) − l , (25)<br />

TS<br />

TS<br />

where lTS is the length of the departed packet. Similarly, on each departure from DS<br />

queue, VDS(t) is updated as:<br />

where lDS is the length of the departed packet.<br />

DS<br />

DS<br />

36<br />

TS<br />

−<br />

V ( t)<br />

= V ( t ) − l , (26)<br />

After the virtual service functions have been updated, BPR + scheduler chooses the<br />

next packet to be transmitted. If LTS and LDS are lengths of the head-of line packets in TS<br />

and DS queues, respectively, TS queue is serviced if:<br />

DS<br />

LTS TS DS DS<br />

− V ( t)<br />

< L −V<br />

( t)<br />

. (27)<br />

Otherwise, DS queue is serviced. Pseudocode for the heuristic approximation of BPR + is<br />

given in Appendix A.<br />

There are other options for packet scheduling that may not use the virtual service<br />

functions VTS(t) and VDS(t). One solution would be to randomly choose between TS and


DS queue with probabilities rTS/C and rDS/C, respectively.<br />

5.3. Performances of BPR and BPR +<br />

In the following simulation sce<strong>na</strong>rios, we evaluate the ability of BPR scheduler to<br />

provide proportio<strong>na</strong>l delay differentiation between the throughput-sensitive and delay-<br />

sensitive class. We compare its performance with the performance of BPR + in order to<br />

evaluate the performance improvement that could be achieved by considering arrival<br />

times of backlogged packets.<br />

The simulated topology in ns-2 network simulator [31] is shown in Fig. 11. There<br />

are NTS=5 throughput-sensitive sources and NDS=5 delay-sensitive sources sending their<br />

packets to the sink. All sources are ON/OFF Pareto sources with average packet size of<br />

500 bytes, average durations of ON and OFF periods 50 ms, and shape parameter 1.5.<br />

Capacities and propagation delays of links are indicated in Fig. 11. BPR and BPR + are<br />

implemented in the access router R. The capacity of the output buffer in the router is 250<br />

packets, except for the sce<strong>na</strong>rio where we vary the buffer size.<br />

Fig. 11. Simulated topology used for evaluating the performances of BPR and BPR + .<br />

37


5.3.1. Influence of traffic load<br />

In this simulation sce<strong>na</strong>rio we varied the traffic load by changing the sending rate<br />

of Pareto traffic sources during ON periods. The traffic load has been varied from 70 %<br />

to 120 % of the output link’s capacity. Results for various delay differentiation<br />

parameters δ are shown in Fig. 12.<br />

Fig. 12. Average delay ratio achieved by BPR and BPR + for various traffic loads and delay<br />

differentiation parameters δ.<br />

BPR + is able to provide more precise delay differentiation than BPR for large<br />

values of δ (δ>8). Ratio of average delays in TS and DS queues is proportio<strong>na</strong>l to the<br />

ratio of queue lengths. Hence, for large δ number of packets in the DS queue is relatively<br />

small compared to the number of packet in the TS queue. The lesser the number of<br />

packets in a queue, the more important is when those packets arrived. Since, unlike BPR,<br />

BPR + considers the arrival times of packets to make a scheduling decision, it performs<br />

better for large values of δ. For δ


expected since both BPR and BPR + rely on the information about the backlogged packets<br />

to make a scheduling decision. When a network is underutilized, buffers in routers are<br />

empty most of the time and schedulers are not able to provide desired delay<br />

differentiation. However, in the case of an underutilized network delay differentiation is<br />

not needed because all packets experience low delay.<br />

5.3.2. Influence of load distribution<br />

In this sce<strong>na</strong>rio we varied the load distribution between throughput-sensitive and<br />

delay-sensitive classes while maintaining the total load constant and equal to 100 % of<br />

the output link’s capacity. Achieved average delay ratios are shown in Fig. 13.<br />

Fig. 13. Average delay ratio achieved by BPR and BPR + for various traffic load distributions and<br />

delay differentiation parameters δ.<br />

It would be ideal if the achieved average delay ratio would not depend on the load<br />

distribution between classes. However, both BPR and BPR + are, to a certain degree,<br />

dependant on the traffic load distribution. The traffic class that constitutes larger portion<br />

of the total traffic load is likely to experience higher delay than in the case of ideal delay<br />

39


differentiation. Similar result has been reported in [12]. The most likely reason for this is<br />

certain bias toward the class with a smaller number of packets in the buffer, which is<br />

inherent to approximations that are introduced in order to adapt BPR and BPR + to<br />

packetized traffic. For larger values of δ (δ>8), BPR + is able to provide a steady delay<br />

ratio over a wider range of load distributions than BPR. Reasons for better performance<br />

of BPR + for large values of δ have been discussed in Section 5.3.1.<br />

5.3.3. Influence of buffer size<br />

In this sce<strong>na</strong>rio, we varied the buffer size from 150 packets (60 ms of buffering on<br />

a 10 Mb/s link) to 350 packets (140 ms). Current trend in dimensioning buffers in<br />

<strong>Internet</strong> routers is to provide approximately 100 ms of buffering. Simulation results<br />

shown in Fig. 14 indicate that the buffer size does not affect the performance of BPR and<br />

BPR + .<br />

Fig. 14. Average delay ratio achieved by BPR and BPR + for various buffer sizes and delay<br />

differentiation parameters δ.<br />

40


Extremely small buffer sizes might affect the ability of these schedulers to provide<br />

desired delay differentiation because both schedulers rely on information about backlog<br />

to make a scheduling decision. We did not include such an unrealistic sce<strong>na</strong>rio in our<br />

simulations.<br />

5.3.4. Influence of timescale<br />

The results in the previous sce<strong>na</strong>rios are obtained by averaging achieved delay<br />

ratios over entire simulation run. In order to evaluate the performance of BPR and BPR +<br />

on shorter timescales, we created an additio<strong>na</strong>l sce<strong>na</strong>rio where the timescales are<br />

expressed in terms of packet time constants. In our case, one packet time constant is<br />

equal to the transmission time of a 500-byte packet on a 10 Mb/s link. For example, Fig.<br />

15 shows queuing delays for throughput-sensitive and delay-sensitive classes averaged<br />

over 1,000 packet time constants (0.4 s) for δ=4 and 100 % utilization. On this timescale,<br />

both BPR and BPR + are able to provide consistent delay differentiation, i.e., throughput-<br />

sensitive traffic always experiences higher delay than delay-sensitive traffic.<br />

Fig. 15. Queuing delays of throughput-sensitive and delay-sensitive packets averaged over 1,000<br />

packet time constants for BPR (left) and BPR + scheduler (right) and δ=4.<br />

41


In order to investigate the performance of the schedulers on various timescales,<br />

the entire simulation run is divided to a number of intervals whose duration is equal to the<br />

monitoring timescale. Average delay ratios are calculated for each interval. The<br />

procedure has been repeated for four different timescales, corresponding to 10, 100,<br />

1,000, and 10,000 packet time constants. Fig. 16 shows 5 %, 25 %, 50 %, 75 %, and 95 %<br />

percentiles for calculated ratios.<br />

As the monitoring timescale increases, the percentiles for average delay ratio<br />

converge to the specified value δ=4. Both BPR and BPR + provide more precise delay<br />

differentiation on coarser timescales because these schedulers aim to provide specified<br />

ratio of average delays. Certain schedulers, such as Waiting-Time Priority (WTP) [12],<br />

aim to provide specified delay ratio on packet-by-packet basis. For shorter timescales,<br />

BPR + performs better than BPR because it uses more complete information about<br />

backlogged packets to make a scheduling decision.<br />

Fig. 16. Percentiles for average delay ratio on four different timescales for BPR (left) and BPR +<br />

scheduler (right) and δ=4.<br />

42


Previous simulation results imply that BPR is able to provide proportio<strong>na</strong>l delay<br />

differentiation between throughput-sensitive and delay-sensitive class. Also, since the<br />

performance of BPR is very close to BPR + , considering arrival times of backlogged<br />

packets would not improve the performance of BPR significantly. We believe that BPR<br />

may be improved by exploring new approaches to “packetize” the fluid BPR server rather<br />

than by adding more complexity to its rate assignment mechanism.<br />

5.4. Influence of proportio<strong>na</strong>l delay differentiation on TCP throughput<br />

TCP is a complex protocol whose performance depends both on packet delay<br />

(round-trip time) and packet loss probability. Packet schedulers for proportio<strong>na</strong>l delay<br />

differentiation are able to provide low delay service for delay-sensitive flows at the<br />

expense of increasing delay for throughput-sensitive TCP flows. Consequently, the<br />

round-trip time of TCP flows will be increased as well. A simple steady-state model for<br />

TCP throughput has been derived in [34], [35]:<br />

3 M<br />

T(<br />

p,<br />

R)<br />

= , (28)<br />

2 R p<br />

where M is the average packet size, R is the round-trip time, and p is the loss probability<br />

of a TCP connection. Hence, throughput of TCP flows is affected by proportio<strong>na</strong>l delay<br />

differentiation because round-trip time of TCP packets increases.<br />

We illustrate the problem in a simple ns-2 sce<strong>na</strong>rio. In this sce<strong>na</strong>rio, an equal<br />

number of TCP and UDP flows share the output link of a router (Fig. 17). We assume<br />

that the router employs Random Early Detection (RED) [29] as a buffer ma<strong>na</strong>gement<br />

algorithm. In addition to the Backlog-Proportio<strong>na</strong>l Rate (BPR), we consider several<br />

43


schedulers for proportio<strong>na</strong>l delay differentiation: Dy<strong>na</strong>mic Weighted Fair Queuing<br />

(DWFQ) [14], Mean-Delay Proportio<strong>na</strong>l (MDP) [13], Proportio<strong>na</strong>l Average Delay (PAD)<br />

[12], and Waiting-Time Priority (WTP) [12], [24]. Delay differentiation parameters of<br />

these schedulers have been varied from 1 to 16. Achieved delay ratio between TCP and<br />

UDP packets and throughput of TCP flows are shown in Fig. 18 and Fig. 19,<br />

respectively. In Fig. 19, the TCP throughput achieved in the absence of delay<br />

differentiation (i.e., FIFO scheduling) has been also indicated.<br />

Fig. 17. An ns-2 sce<strong>na</strong>rio: TCP and UDP packets are served by a scheduler for proportio<strong>na</strong>l delay<br />

differentiation.<br />

Fig. 18. Achieved delay ratio between TCP and UDP packets for various delay differentiation<br />

parameters δ.<br />

While all these scheduling schemes are able to provide desired delay<br />

differentiation, they all reduce the throughput achieved by TCP flows. Significant<br />

44


esearch efforts have been focused on making buffer ma<strong>na</strong>gement algorithms more TCP-<br />

friendly (i.e., RED has been widely accepted and implemented by major router vendors).<br />

Nevertheless, existing packet schedulers for delay differentiation are still not aware of<br />

specific requirements that arose from ubiquitous deployment of TCP protocol. They are<br />

not able to deal with performance deterioration that TCP applications may experience in<br />

the presence of delay differentiation. In Section 6, we present the Packet Loss Controller<br />

(PLC), a new mechanism that interacts with RED in order to alleviate this problem.<br />

Fig. 19. Throughput achieved by TCP flows for various delay differentiation parameters δ.<br />

45


6. Packet Loss Controller<br />

Packet Loss Controller (PLC) is a new mechanism that regulates the throughput<br />

of TCP flows in the presence of proportio<strong>na</strong>l delay differentiation by controlling the<br />

packet loss probability of these flows. By adjusting the packet loss probability, PLC is<br />

able to compensate for increase in round-trip time that might affect the throughput of<br />

TCP flows. PLC interacts with Random Early Drop (RED) and Backlog Proportio<strong>na</strong>l<br />

Rate (BPR) to ensure that the second objective of the proposed architecture for service<br />

differentiation is satisfied. Its role is to provide at least the same throughput to<br />

throughput-sensitive (TCP) flows, as they would receive in a best-effort network.<br />

Before we present the details of PLC algorithm, we introduce two assumptions.<br />

Let us assume that TCP throughput is a function of round-trip time R and packet loss<br />

probability p similar to (28). Suppose that loss probability<br />

p tcp<br />

= σ p , (29)<br />

where 0 ≤σ ≤1<br />

is a PLC’s loss differentiation parameter and p is the loss probability<br />

calculated by RED, compensates for the effect of increased round-trip time R. PLC<br />

interacts with RED in order to provide the desired loss probability ptcp. After a packet has<br />

been marked for dropping by RED algorithm, PLC drops the packet with probability σ<br />

( 0 ≤σ ≤1).<br />

Otherwise, if PLC decides to rescue the packet, it is admitted to the TCP<br />

queue regardless of being marked by RED and a packet from the UDP queue is dropped<br />

instead. If UDP queue is empty, the TCP packet has to be dropped. PLC decreases the<br />

loss probability for TCP packets and increases the loss probability for UDP packets,<br />

46


while maintaining the total loss probability p to be the same as without PLC. Hence, total<br />

number of dropped packets remains the same as it would be without PLC.<br />

TCP congestion control algorithm, RED, BPR, and PLC are shown in Fig. 20 as a<br />

feedback control system.<br />

Fig. 20. TCP, RED, and PLC as a feedback control system.<br />

While described PLC mechanism seems to be simple, choosing parameter σ is not so<br />

straightforward. Before we present an algorithm for setting the PLC parameter σ, we<br />

describe the elements of the system shown in Fig. 20.<br />

We model the relationship between TCP throughput T, round-trip time R, and<br />

packet loss probability p as:<br />

1<br />

T ( R,<br />

ptcp<br />

) ~ , (30)<br />

a<br />

R p<br />

where a and b are model parameters. A procedure used for identification of these<br />

parameters is presented in Appendix B. Random Early Detection (RED) algorithm tends<br />

to randomize packet losses and spreads them uniformly over a time period (“Method 2”<br />

47<br />

b<br />

tcp


described by Floyd and Jacobson [29]). Hence, in Appendix B we assume uniformly<br />

distributed random packet losses when deriving parameters a and b.<br />

Why do we introduce a new model when (28) proved to be fairly successful in<br />

modelling the steady-state throughput of TCP flows? In order to identify the parameter σ<br />

that compensates for the effect of increased round-trip time, we need mathematical<br />

relationships among various elements and variables of the system shown in Fig. 20.<br />

Finding a relationship between steady-state TCP throughput and packet loss probability<br />

requires a TCP model in terms of packet loss probability. However, the well-known TCP<br />

model (28) is given in terms of probability of congestion events. Parameter p in (28) is<br />

not a packet loss probability, but rather a number of congestion events per acknowledged<br />

packet [34], [35]. A group of subsequent packet losses that causes a reduction of the<br />

window size is considered to be a congestion event. Finding the relationship between<br />

packet loss probability and the probability of congestion events is not a trivial problem.<br />

Hence, instead of (28), we use an empirical model of TCP throughput. Variable ptcp (30)<br />

corresponds to the packet loss probability observed in the system. Appendix B provides<br />

details how to derive (30). We briefly describe here remaining elements shown in Fig. 20.<br />

As mentioned in Section 5.1, BPR assigns class service rates (rtcp and rudp)<br />

proportio<strong>na</strong>lly to queue lengths (qtcp and qudp) and a desired delay differentiation<br />

parameter δ ≥ 1:<br />

r<br />

r<br />

tcp<br />

udp<br />

1 qtcp<br />

= . (31)<br />

δ q<br />

48<br />

udp


Since C=rtcp+ rudp is the link capacity, service rates rtcp and rudp can be calculated<br />

from (31). The ratio of delays experienced by TCP and UDP packets approaches δ, as<br />

shown in [12]:<br />

d<br />

d<br />

tcp<br />

udp<br />

→ δ . (32)<br />

The total queue size q indicated in Fig. 20. is the sum of TCP and UDP queue<br />

sizes. Average total queue size q k = A(<br />

qk<br />

) is a weighted moving average of the total<br />

queue size:<br />

A ( q ) ( 1 ) + wq , (33)<br />

k<br />

= − w qk<br />

−1<br />

where w is the queue weight and k is packet number. RED calculates drop probability<br />

p = H (q ) as:<br />

49<br />

k<br />

⎧ 0<br />

if q ≤ qmin<br />

⎪ q − qmin<br />

p = ⎨ pmax<br />

if qmin<br />

< q < qmax<br />

, (34)<br />

⎪qmax<br />

− qmin<br />

⎪⎩<br />

1<br />

if q ≥ qmax<br />

where qmin, qmax, and pmax are control parameters of the RED algorithm. The drop<br />

probability p is modified by PLC and the loss probability experienced by TCP flows<br />

becomes ptcp=σ p.<br />

In order to provide at least the same throughput for TCP traffic as in a best-effort<br />

network, σ should satisfy:<br />

≥<br />

1<br />

a b a b<br />

R σp<br />

R′<br />

p′<br />

(<br />

1<br />

)<br />

, (35)


where R’ and p’ are round-trip time and loss probability, respectively, in the absence of<br />

service differentiation. Rearranging (35) gives:<br />

50<br />

x<br />

p′<br />

⎛ R′<br />

⎞<br />

σ ≤ ⎜ ⎟ , (36)<br />

p ⎝ R ⎠<br />

where x=a/b. Hence, the relationship between p, p’, R, and R’ defines a range of σ that<br />

satisfy our service differentiation requirements.<br />

The round-trip time R=P(q,δ) of a TCP flow is a sum of transmission,<br />

propagation, and queuing delays along the path. We introduce two assumptions: we<br />

consider mixed TCP and UDP flows sharing a single bottleneck link and we assume that<br />

transmission and propagation delay are negligible compared to the queuing delay. This is<br />

a realistic assumption in a high-speed network during congestion periods. Service<br />

differentiation is not an issue if the network is underutilized. As a result of these<br />

assumptions, round-trip times of TCP flows approximated by the queuing delay are:<br />

q<br />

tcp<br />

R ≈ , (37)<br />

rtcp<br />

where qtcp is the length of the TCP queue and rtcp is the service rate assigned to TCP<br />

flows by BPR. Since the service rate allocation in BPR satisfies (31) and q=qtcp+qudp, the<br />

round-trip time R is:<br />

q<br />

R ≈ . (38)<br />

rudp<br />

rtcp<br />

+<br />

δ<br />

Similarly, the round-trip time of TCP flows in a best-effort network that employs FIFO<br />

scheduling is:


q′<br />

R′<br />

≈ , (39)<br />

C<br />

where q’ is the length of RED queue in the absence of service differentiation.<br />

Substituting (38) and (39) in (36) gives:<br />

where:<br />

p′ ⎛q′ ⎞ x<br />

σ ≤ ⎜ ⎟ η ,<br />

p ⎝ q ⎠<br />

51<br />

x<br />

(40)<br />

rudp<br />

rtcp<br />

+<br />

η = δ . (41)<br />

C<br />

Let σ0 be the value of σ that provides identical throughput to TCP flows as in a best-effort<br />

network:<br />

x<br />

p′<br />

⎛ q′<br />

⎞ x<br />

0 = ⎜ η . (42)<br />

σ ⎟<br />

p ⎝ q ⎠<br />

Next step in deriving σ0 is finding the relationship between p and p’. If λ is the<br />

aggregate sending rate of UDP flows, pudp loss probability of UDP packets, and T<br />

throughput of TCP flows, then:<br />

Similarly, in a best-effort network:<br />

T + ( 1−<br />

pudp<br />

) λ = C . (43)<br />

T ′ + ( 1−<br />

p′<br />

) λ = C . (44)


Since σ=σ0 ensures that T=T’, it follows from (43) and (44) that pudp=p’. In order to<br />

maintain the same overall loss probability as calculated by RED, PLC drops one UDP<br />

packet for each “rescued” TCP packet. Hence:<br />

Taking into account that p’=pudp gives:<br />

r<br />

tcp<br />

udp<br />

( p − ptcp)<br />

= ( pudp<br />

− p)<br />

. (45)<br />

1−<br />

ptcp<br />

1−<br />

pudp<br />

52<br />

r<br />

rudp<br />

( 1−σ<br />

0 p)<br />

+ rtcp<br />

( 1−<br />

σ 0 )<br />

p′<br />

= p<br />

. (46)<br />

r ( 1−σ<br />

p)<br />

+ r ( 1−σ<br />

) p<br />

udp<br />

0<br />

In order to simplify (46), we consider three cases based on the average total queue size<br />

q .<br />

6.1. No-loss region: q ≤ q min<br />

In this case p=0, which makes value of σ irrelevant based on (29).<br />

6.2. Early-drop region: q min < q < qmax<br />

Average queue sizes between qmin and qmax indicate that RED operates in a “early<br />

drop” region. In that case, drop probability p satisfies p


queue sizes can be approximated by the ratio of average queue sizes, which is true for<br />

small values of the queue weight w:<br />

q ′ q′<br />

≈ . (48)<br />

q q<br />

The relation between the average queue sizes can be derived from (34):<br />

where:<br />

q′<br />

p′<br />

+ ξ<br />

≈ , (49)<br />

q p + ξ<br />

p<br />

q<br />

max min<br />

ξ = . (50)<br />

max<br />

53<br />

q<br />

− q<br />

After substituting (47) and (49) into (42), σ 0 becomes:<br />

σ<br />

⎛<br />

⎜<br />

⎝<br />

r<br />

⎞⎛<br />

⎟⎜<br />

⎠⎝<br />

min<br />

r<br />

tcp<br />

tcp<br />

x<br />

0 = 1 + ( 1 − σ + γ − σ η<br />

⎜<br />

0 ) 1 ( 1 )<br />

r ⎟⎜<br />

0 , (51)<br />

udp<br />

r ⎟<br />

udp<br />

where γ = p /( p + ξ ) . Equation (51) can be reduced to a first order equation because<br />

several of its parameters are constrained. Rule of thumb for setting RED thresholds is<br />

q q = 3 [41]. In that case, (50) reduces to ξ = p / 2 . Hence:<br />

max / min<br />

We prove in Appendix C that:<br />

max<br />

⎞<br />

⎟<br />

⎠<br />

x<br />

2<br />

0 ≤ γ ≤ . (52)<br />

3<br />

rtcp<br />

0 ≤ ( 1−<br />

σ 0 ) <<br />

r<br />

Therefore, using Taylor’s theorem we obtain:<br />

udp<br />

2<br />

3<br />

. (53)


⎛<br />

⎜<br />

⎝<br />

Based on (51) - (54), σ0 becomes:<br />

Fi<strong>na</strong>lly:<br />

6.3. Forced-drop region: q ≥ qmax<br />

obtain:<br />

x<br />

rtcp<br />

⎞ rtcp<br />

+ γ ( 1−<br />

σ 0 ) ⎟ ≈1<br />

+ γ x ( 1−σ<br />

) . (54)<br />

r ⎟<br />

udp ⎠ rudp<br />

1 0<br />

σ<br />

⎛ r<br />

⎞<br />

⎜<br />

x<br />

1 ( 1+<br />

γ x)(<br />

1−σ<br />

) ⎟η<br />

. (55)<br />

⎟<br />

⎝<br />

⎠<br />

tcp<br />

0 ≈ +<br />

⎜<br />

0<br />

rudp<br />

rtcp<br />

1+<br />

( 1+<br />

γ x)<br />

rudp<br />

σ 0 ≈ . (56)<br />

1<br />

rtcp<br />

+ ( 1+<br />

γ x)<br />

x<br />

η<br />

r<br />

In this case, the drop probability is p=1 (34). By substituting p=1 in (46), we<br />

54<br />

udp<br />

p ′ = p . (57)<br />

Therefore, the average queue size in the absence of service differentiation is q′ ≥ qmax<br />

.<br />

This interval of average queue sizes is called “forced-drop” region. It is not a steady-state<br />

operating region of RED because drop probability p=1 (p’=1) causes a rapid decrease of<br />

the average queue size q ( q′ ) below q max.<br />

Hence:<br />

q q′<br />

≈ q < q + ε , (58)<br />

max ≤ max<br />

where ε → 0 . From (42), (57), and (58) it follows that:<br />

σ ≈η<br />

x<br />

0 . (59)


In summary, PLC parameter σ that provides at least the same throughput to TCP<br />

flows in the presence of proportio<strong>na</strong>l delay differentiation as in a best-effort network is<br />

set by the router based on the operating region of RED: σ is given by (56) in the early-<br />

drop region and (59) in the forced-drop region.<br />

Implementation complexity introduced by the proposed PLC mechanism,<br />

compared to the case of BPR scheduling without PLC, is in frequent recalculations of the<br />

parameter σ. However, this may not be an issue with today’s RISC processors with clock<br />

rates of ~ 300 MHz.<br />

55


7. Simulation results<br />

We evaluated the performance of the proposed architecture for service<br />

differentiation in <strong>Internet</strong> by using the ns-2 network simulator [31]. Simulated topology is<br />

shown in Fig. 21. The number of TCP and UDP sources is NTCP=10 and NUDP=10,<br />

respectively. Packet sizes for all sources are M=500 bytes. We consider TCP New Reno,<br />

the most common flavour of TCP in today’s <strong>Internet</strong>. UDP traffic consists of Pareto<br />

ON/OFF traffic generators with ON and OFF periods set to 50 ms and shape parameter<br />

1.5. Parameters of RED deployed in routers R1 and R2 are (unless stated otherwise):<br />

buffer size B=250 packets, minimum threshold qmin=60 packets, maximum threshold<br />

qmax=180 packets, queue weight w=0.002, and maximum drop probability pmax=0.1. The<br />

capacities and propagation delays of links are indicated in Fig. 21.<br />

Fig. 21. Simulated network topology used for performance evaluation of the proposed service<br />

differentiation mechanism.<br />

In the first simulation sce<strong>na</strong>rio, the aggregate UDP load is 5 Mb/s. BPR delay<br />

differentiation parameter is δ=8. We consider three cases based on scheduling mechanism<br />

56


employed in routers: FIFO scheduling (best-effort), BPR scheduling, and the proposed<br />

BPR scheduling with PLC.<br />

As shown in Fig. 22, in the case of FIFO scheduling, average delays of TCP and<br />

UDP packets are identical (43 ms). In the case of BPR scheduling, the average queuing<br />

delays of TCP and UDP packets are 65 ms and 8 ms, respectively. Hence, achieved delay<br />

ratio is close to the specified parameter δ=8. PLC controller does not affect packet delay,<br />

as shown in the case of BPR scheduling with PLC. Low delay service for real-time UDP<br />

flows is achieved at the expense of increasing the delay for TCP packets from 43 ms to<br />

65 ms. Consequently, round-trip times of TCP packets are increased as well. The effect<br />

of proportio<strong>na</strong>l delay differentiation on aggregate throughput of TCP and UDP flows is<br />

shown in Fig. 23.<br />

Fig. 22. Average queuing delay for TCP and UDP packets in the presence of service differentiation<br />

and in the best-effort (FIFO) case.<br />

Proportio<strong>na</strong>l delay differentiation increases the average queuing delay and round-<br />

trip time of TCP packets, as shown in Fig. 22. Hence, according to (28), in the case of<br />

57


BPR scheduling without PLC, TCP flows achieve lower throughput then in the best-<br />

effort (FIFO) case. Average TCP throughput is 5.13 Mb/s in the FIFO case, compared to<br />

5.08 Mb/s in the case of BPR without PLC. Not only that UDP flows experience lower<br />

delay, but they also consume more bandwidth. The average UDP throughput is 4.87 Mb/s<br />

in the best-effort, compared to 4.93 Mb/s in the case of BPR without PLC. This<br />

behaviour contradicts the basic concept of non-elevated services, aiming to provide<br />

“different but equal” service to both traffic classes. However, in the presence of PLC, the<br />

throughput of TCP flows is approximately equal to the throughput achieved in the case of<br />

FIFO scheduling. Hence, BPR with PLC provides low delay service to UDP flows and<br />

“protects” the throughput of TCP flows.<br />

Fig. 23.Throughput of TCP and UDP flows in the presence of delay differentiation (with and without<br />

PLC) and in the best-effort (FIFO) case.<br />

7.1. Influence of delay differentiation parameter δ<br />

In the second simulation sce<strong>na</strong>rio, we evaluate the performance of PLC controller<br />

for various delay differentiation parameters δ. Achieved average delay ratio for various<br />

58


specified δ is shown in Fig. 24. BPR maintains the specified ratio of delays for δ8, indicating that BPR is<br />

u<strong>na</strong>ble to accurately provide desired delay ratio. For instance, achieved average delay<br />

ratio is 12.4 for δ=14. However, this discrepancy is acceptable because non-elevated<br />

service differentiation model is a lightweight approach that does not offer strict<br />

guarantees. Also, feasibility of the proportio<strong>na</strong>l delay differentiation becomes an issue for<br />

large values of δ. Minimal possible delay for UDP packets would be achieved if UDP<br />

packets were given strict priority over TCP packets. It has been shown [42] that average<br />

delay ratio δ between two traffic classes is feasible if the corresponding average delay<br />

ratio provided by a strict priority scheduler is not larger than the δ.<br />

Fig. 24. Average delay ratio for TCP and UDP traffic as a function of specified delay ratio δ.<br />

Throughput of TCP and UDP flows for various δ is shown in Fig. 25. TCP flows<br />

achieve lower throughput in the case of BPR scheduling than in the best-effort (FIFO)<br />

case. Hence, the throughput of TCP flows is affected by proportio<strong>na</strong>l delay<br />

differentiation. They receive lower throughput with higher delay ratio δ because the round-trip<br />

59


time of TCP packets continually increases with δ. The negative effect of delay differentiation<br />

is elimi<strong>na</strong>ted in the case of BPR with PLC. PLC consistently provides approximately<br />

identical throughput to TCP flows as in the best-effort case, as shown in Fig. 25. This<br />

result confirms the effectiveness of the PLC controller for various δ.<br />

Fig. 25. Influence of delay differentiation parameter δ on TCP and UDP throughput in the presence<br />

of delay differentiation (with and without PLC) and in the best-effort (FIFO) case.<br />

7.2. Influence of UDP load<br />

In this simulation sce<strong>na</strong>rio, we varied the sending rate of UDP sources from 1<br />

Mb/s to 12 Mb/s. BPR delay differentiation parameter is δ=8. As shown in Fig. 26, BPR<br />

approximates the specified ratio more closely for heavier UDP loads. Since BPR assigns<br />

service rates to traffic classes based on their buffer occupancy (10), it is not surprising<br />

that BPR performs better in a congested network when UDP load is heavy and packets<br />

are backlogged in queues. When a network is underutilized, delay differentiation is not<br />

necessary because queues are empty most of the time and queuing delay is zero.<br />

60


Fig. 26. Average delay ratio for TCP and UDP traffic for various UDP loads. Delay differentiation<br />

parameter δ=8.<br />

Throughput of TCP flows for various UDP loads is shown in Fig. 27. BPR with<br />

PLC consistently provides at least the same throughput to TCP flows as in the FIFO case.<br />

PLC controller elimi<strong>na</strong>tes the negative effect of delay differentiation on TCP throughput<br />

that is present in case of BPR without PLC. We also observed the well-known problem of<br />

unfair bandwidth sharing between responsive TCP and unresponsive UDP flows. Since<br />

UDP flows do not decrease their sending rate in response to congestion, they tend to<br />

monopolize the link capacity as their load increases. In order to solve this problem,<br />

additio<strong>na</strong>l mechanisms are needed [43]-[50]. Even though not designed to deal with the<br />

unfairness problem, PLC controller attenuates the starving effect on TCP flows. As<br />

shown in Fig. 27, when UDP load is 12 Mb/s, TCP flows still achieve approximately 1<br />

Mb/s in the case of BPR with PLC. In the case of BPR without PLC, TCP flows receive<br />

no throughput.<br />

61


Fig. 27. Influence of UDP load on TCP throughput in the presence of delay differentiation (with and<br />

without PLC) and in the best-effort (FIFO) case.<br />

7.3. Multi-hop topology sce<strong>na</strong>rio<br />

The proposed architecture is designed to provide local (per-hop) service<br />

differentiation. However, from the user’s perspective, end-to-end performance of an<br />

application is the only relevant indicator of the QoS received from the network. In this<br />

sce<strong>na</strong>rio, we evaluate the end-to-end performance of the proposed architecture.<br />

Simulation topology is shown in Fig. 28. Traffic load consists of four groups of<br />

TCP flows and four groups of UDP flows, with 25 flows in each group. The UDP flows<br />

follow the Pareto distribution with the same parameters as in the previous simulation<br />

sce<strong>na</strong>rios (Sections 7.1 and 7.2) , except for the average sending rate during the ON<br />

period, which is 100 Kb/s. Capacities and propagation delays of all access links are 100<br />

Mb/s and 0.1 ms, respectively. Propagation delays of all backbone links are 1 ms, while<br />

their capacities are indicated in the Fig. 28. The BPR delay differentiation parameter δ=4<br />

62


in all routers. We measured the average end-to-end delay and throughput of TCP flows in<br />

each group. Results are shown in Table 2.<br />

Fig. 28. Simulation topology used for end-to-end performance evaluation of the proposed<br />

architecture for service differentiation.<br />

The achieved delay ratio is very close to the specified δ in all groups of flows.<br />

This result illustrates the fact that the per-hop proportio<strong>na</strong>l delay differentiation directly<br />

translates to end-to-end proportio<strong>na</strong>l delay differentiation, even in the case of non-<br />

homogeneous link capacities and cross traffic along the path. Similar observations have<br />

been reported in the case of Waiting-Time Priority (WTP) scheduler [12], [23]. In [12],<br />

authors noticed that the achieved end-to-end delay ratio becomes even closer to the<br />

specified ratio δ as the number of hops increases because the deviations from different<br />

hops tend to cancel-out.<br />

The presented results also confirm that PLC is able to protect the throughput of<br />

TCP flows in presence of proportio<strong>na</strong>l delay differentiation. Although we derived the<br />

expression for PLC’s parameter σ under the assumption of a single bottleneck in the<br />

network, our simulation results indicate that PLC provides desired service differentiation<br />

63


even in the case of multiple bottlenecks. For instance, the first group of flows traverses<br />

three bottlenecks, as shown in Fig. 28. The link between routers R1 and R2 is the first<br />

bottleneck for these flows because its capacity is smaller than the capacity of access<br />

links. The link between routers R2 and R3 is the second bottleneck because its capacity is<br />

only one half of the previous link’s capacity. Fi<strong>na</strong>lly, these flows are additio<strong>na</strong>lly<br />

constrained by the capacity of the link between routers R3 and R4 because of the cross<br />

traffic from the fourth group of flows (Fig. 28). As shown in Table 2, throughput of the<br />

first group of TCP flows is higher in the case of BPR scheduling with PLC than in the<br />

FIFO case. However, performance a<strong>na</strong>lysis of the proposed architecture in case of<br />

multiple bottlenecks is a rather challenging problem. A<strong>na</strong>lytically proving that the PLC<br />

provides consistent and predictable result in case of multiple bottlenecks is still an open<br />

issue.<br />

Table 2. Achieved delay ratios and throughput for four groups of TCP flows in the case of FIFO<br />

scheduling and BPR scheduling with and without PLC.<br />

dtcp/dudp<br />

FIFO BPR BPR with PLC<br />

T<br />

(Mb/s)<br />

dtcp/dudp<br />

T<br />

(Mb/s)<br />

64<br />

Diff.<br />

(%)<br />

dtcp/dudp<br />

T<br />

(Mb/s)<br />

Diff.<br />

(%)<br />

TCP1 0.9961 0.3594 3.7970 0.3312 -7.8464 3.9255 0.3748 +4.2849<br />

TCP2 0.9957 0.4166 3.8391 0.3753 -9.9136 3.9682 0.4331 +3.9606<br />

TCP3 0.9937 0.5979 3.8683 0.5801 -2.9771 4.0134 0.6159 +3.0105<br />

TCP4 0.9992 5.6269 3.7073 5.5189 -1.9194 3.7402 5.6940 +1.1925


8. Conclusions and open issues<br />

Non-elevated service models emerged recently as new proposals for introducing<br />

service differentiation in <strong>Internet</strong>. These architectures aim to provide “different but<br />

equal” service to traffic classes and usually employ a trade-off between delay and loss<br />

probability to achieve desired service differentiation. However, existing mechanisms for<br />

delay and loss differentiation are not directly applicable to TCP, whose performance<br />

depends on both packet delay and loss rate.<br />

In this thesis, we presented a new non-elevated service differentiation architecture<br />

that alleviates this problem and provides predictable and controllable performance of<br />

TCP flows in the presence of low-delay UDP traffic. Objectives of the proposed<br />

architecture are to provide low delay to delay-sensitive UDP applications and at least the<br />

same throughput to throughput-sensitive TCP applications as they would receive in a<br />

best-effort network. Hence, both throughput-sensitive (TCP) and delay-sensitive (UDP)<br />

classes benefit from the proposed mechanism. The new mechanism employs two basic<br />

elements: Backlog Proportio<strong>na</strong>l Rate (BPR) scheduler and Packet Loss Controller (PLC).<br />

BPR scheduler provides proportio<strong>na</strong>l delay differentiation between throughput-sensitive<br />

and delay-sensitive classes. PLC controller interacts with TCP’s congestion control<br />

algorithm in order to protect the throughput of throughput-sensitive flows. We presented<br />

a procedure for setting the PLC’s drop differentiation parameter σ in case of mixed TCP<br />

and UDP flows sharing a single bottleneck link. In order to derive the parameter σ that<br />

guarantees that the throughput of TCP flows will not be decreased in the presence of<br />

proportio<strong>na</strong>l delay differentiation, we considered BPR scheduler, RED queue<br />

65


ma<strong>na</strong>gement, PLC controller and TCP’s congestion control algorithm as a feedback<br />

control system. Using ns-2 simulation with various delay differentiation parameters δ,<br />

UDP loads, and topologies, we confirmed that the proposed differentiation architecture<br />

achieves the specified objectives. Since the traffic classes receive “different but equal”<br />

quality of service, proposed architecture can be classified as non-elevated. The proposed<br />

architecture is simple because it does not require admission control, traffic policing, and<br />

substantial operatio<strong>na</strong>l changes in current <strong>Internet</strong>. Moreover, flat pricing currently used<br />

in <strong>Internet</strong> can be preserved.<br />

In summary, contribution of this thesis has three aspects. First, it promotes non-<br />

elevated approach to service differentiation as a viable solution for QoS provisioning in<br />

<strong>Internet</strong>. Low implementation complexity, possibility of incremental deployment and flat<br />

pricing make non-elevated architectures especially appealing. Second, this thesis<br />

contributes to better understanding of interaction between delay and loss differentiation<br />

mechanisms and TCP’s congestion control algorithm. Since <strong>Internet</strong> traffic is domi<strong>na</strong>ted<br />

by TCP, any solution that does not take into account TCP performance degradation is not<br />

likely to be accepted. Fi<strong>na</strong>lly, this thesis presents a new architecture that e<strong>na</strong>bles<br />

predictable and controllable service differentiation between delay-sensitive (UDP) and<br />

throughput-sensitive (TCP) flows. The proposed architecture provides new services that<br />

are expected to replace current best-effort <strong>Internet</strong> service.<br />

A number of open issues and areas for future work arise from this thesis. We<br />

particularly note the following:<br />

The first and the most important concern is the ability of the proposed architecture<br />

to provide desired service differentiation in case of multiple bottlenecks in a network.<br />

66


Although our simulation results are encouraging, further research is needed to confirm<br />

these results. Performance a<strong>na</strong>lysis of the proposed architecture in the case of multiple<br />

bottlenecks is a rather challenging problem.<br />

A network administrator’s strategy for setting the BPR’s delay differentiation<br />

parameter δ is an open issue that requires knowledge of delay requirements of real-time<br />

applications used by a network. In addition to users’ requirements, network<br />

administrator’s strategy has to consider that not all values of δ are feasible. A feasibility<br />

study for BPR scheduler is necessary, similar to the study presented in [23] for the case<br />

of Time-Dependent Priorities (TDP) scheduler.<br />

Fi<strong>na</strong>lly, exploring other rate assignment strategies for proportio<strong>na</strong>l delay<br />

differentiation may elimi<strong>na</strong>te some shortcomings of BPR, such as dependence on traffic<br />

load distribution between classes and inferior performance on short timescales.<br />

Furthermore, other AQM algorithms may be considered in addition to RED, especially<br />

those algorithms that aim to elimi<strong>na</strong>te unfairness problem in <strong>Internet</strong>. In that case, the<br />

algorithm for setting the PLC’s parameter σ should be revised.<br />

67


Appendix A<br />

The pseudocode for the heuristic approximation of fluid BPR + server [38]<br />

presented in Section 5 includes two functions. The first function is executed for each<br />

packet accepted to the buffer. It appends the current timestamp to the packet and places it<br />

to a corresponding queue. The second function is executed for each packet leaving the<br />

buffer and it decides which packet will be next serviced.<br />

For each packet accepted to the buffer {<br />

TIME = current time;<br />

setTimestamp(pkt);<br />

if the packet belongs to the TS class {<br />

put packet in the TS queue;<br />

DTS += TIME; QTS += length(pkt);<br />

if the packet belongs to the DS class {<br />

put packet in the DS queue;<br />

DDS += TIME; QDS += length(pkt);<br />

}<br />

}<br />

For each packet leaving the buffer {<br />

TIME = current time;<br />

if the TS queue is empty and the DS queue is not empty {<br />

pkt = get a packet from the DS queue;<br />

DDS -= getTimestamp(pkt); QDS -= NDS * length(pkt);<br />

VDS = 0; VTS = 0;<br />

}<br />

if the TS queue is not empty and the DS queue is empty {<br />

pkt = get a packet from the TS queue;<br />

DTS -= getTimestamp(pkt); QTS -= NTS * length(pkt);<br />

VTS = 0; VDS = 0;<br />

}<br />

if none of the queues is empty {<br />

C = capacity of the output link;<br />

NTS = length of the TS queue;<br />

NDS = length of the DS queue;<br />

QTS = QTS / NTS; QDS = QDS / NDS;<br />

DTS = TIME – DTS / NTS; DDS = TIME – DDS / NDS;<br />

// a, b, and c are the coefficients in (22)<br />

a= DTS - δ *DDS;<br />

b = QTS + δ *QDS – C*a;<br />

68


}<br />

c = - QTS*C;<br />

if (a != 0) {<br />

rTS = (- b + sqrt (b 2 - 4*a*c)) / (2*a);<br />

} else rTS = - c / b;<br />

rDS = C – rTS;<br />

if (timestamp of the HOL packet in the DS queue >= t d ) {<br />

VDS = 0;<br />

} else VDS += rDS * (TIME - t d );<br />

if (timestamp of the HOL packet in the TS queue >= t d ) {<br />

VTS = 0;<br />

} else VTS + = rTS*(TIME - t d );<br />

if (LDS - VDS > LTS - VTS) {<br />

pkt = get a packet from the TS queue;<br />

DTS -= getTimestamp(pkt); QTS -= NTS * length(pkt);<br />

VTS = VTS - length(pkt);<br />

} else {<br />

pkt = get a packet from the DS queue;<br />

DDS -= getTimestamp(pkt); QDS -= NDS * length(pkt);<br />

VDS = VDS - length(pkt);<br />

}<br />

}<br />

t d = TIME;<br />

69


Appendix B<br />

We describe here a procedure used to derive an empirical model of steady-state<br />

throughput for long-lived TCP flows in presence of random independent packet losses.<br />

We assume a nonlinear dependence of TCP throughput on round-trip time (R) and loss<br />

probability (p):<br />

1<br />

T ( R,<br />

p)<br />

~ , (60)<br />

a b<br />

R p<br />

where a and b are model parameters. Although other functions may be used to describe<br />

relationship between T(R, p), R, and p, (60) has been chosen because of its simplicity and<br />

consistency with previous TCP models. Mathis et al., [35] used a procedure similar to the<br />

one that we present to fit the model parameter k:<br />

1<br />

T ( R,<br />

p)<br />

~ , (61)<br />

k<br />

R p<br />

based on ns-2 simulation results. Hence, linear dependence between T(R, p) and R has<br />

been assumed and only one-dimensio<strong>na</strong>l fitting has been performed. In order to better<br />

match empirical results, we use two-dimensio<strong>na</strong>l fitting to determine parameters a and b<br />

of the empirical model (60). This model does not capture timeout events in TCP. We<br />

consider light to moderate loss probabilities (p < 5%). Hence, it is realistic to assume that<br />

packet losses will be detected by triple duplicate ACKs, especially since we consider<br />

uncorrelated packet losses (i.e., low possibility of multiple packet losses from a same<br />

congestion window).<br />

70


In order to identify model parameters (60), we consider ns-2 sce<strong>na</strong>rio presented in<br />

Fig. 29. The sce<strong>na</strong>rio includes four modules: sender, receiver, delay, and loss module.<br />

Sender module consists of 10 identical TCP NewReno sources. Delay module provides<br />

controllable round-trip time of TCP packets by varying propagation delays of links. Loss<br />

module is a random packet dropper with adjustable loss probability p. TCP flows are not<br />

restricted by capacity of the links or window size advertised by receiver. Therefore, there<br />

is no queuing in the system. Purpose of this simulation sce<strong>na</strong>rio is to provide completely<br />

controllable round-trip time and loss probability.<br />

Fig. 29. Simulation sce<strong>na</strong>rio used for identification of parameters a and b.<br />

Results obtained by varying round-trip time from 10 ms to 200 ms and loss<br />

probability from 0.1 % to 5 % are shown in Fig. 30. These results have been averaged<br />

over 15 simulation runs. Based on Levenburg-Marquardt algorithm for minimum least-<br />

squares fitting, values of parameters a and b and their 95% confidence intervals are:<br />

a = 0.9007, a ∈[0.8874,<br />

0.9140]<br />

.<br />

b = 0.7260, b ∈[0.7145,<br />

0.7375]<br />

Table 3 indicates that discrepancy between simulation results and the TCP<br />

throughput predicted by empirical model (60) is within ±15%. We consider these results<br />

good enough for the purpose of designing PLC controller described in Section 6. Model<br />

(60) is an ad-hoc solution driven by the lack of appropriate a<strong>na</strong>lytical TCP model that<br />

could be otherwise used..<br />

71


Fig. 30. TCP throughput as a function of round-trip time R and loss probability p.<br />

Table 3. Goodness of fit: ns-2 simulation results vs. predicted throughput for selected round-trip<br />

times and loss probabilities.<br />

ns-2 Empirical model<br />

R (ms) p (%) T (Mb/s) T (Mb/s) Diff. (%)<br />

20 0.50 32.369 29.682 -8.301<br />

20 1.00 20.974 18.945 -9.671<br />

20 2.00 12.109 10.849 -10.404<br />

20 4.00 6.062 6.559 8.210<br />

50 0.50 13.216 13.004 -1.600<br />

50 1.00 8.863 7.862 -11.290<br />

50 2.00 5.703 4.853 -14.895<br />

50 4.00 3.029 2.874 -5.114<br />

100 0.50 6.702 6.966 3.932<br />

100 1.00 4.511 4.211 -6.636<br />

100 2.00 2.911 2.546 -12.549<br />

100 4.00 1.771 1.589 -10.254<br />

150 0.50 4.472 4.835 8.097<br />

150 1.00 3.000 2.923 -2.564<br />

150 2.00 1.968 1.767 -10.201<br />

150 4.00 1.414 1.268 -10.308<br />

72


Substituting:<br />

in (51), gives:<br />

Appendix C<br />

In this Appendix we prove that relation (53) introduced in Section 6.2 holds.<br />

Its polynomial form is:<br />

f<br />

r<br />

r<br />

tcp<br />

udp<br />

( 0<br />

1−<br />

σ ) = z<br />

(62)<br />

rudp<br />

2 2<br />

1− z = ( 1+<br />

z)(<br />

1+<br />

γ z)<br />

η . (63)<br />

r<br />

tcp<br />

⎛ r 1 ⎞<br />

2 3<br />

z)<br />

: = γ z + γ<br />

z<br />

⎜<br />

2 ⎟<br />

⎝ rtcp<br />

η ⎠<br />

2<br />

udp<br />

( γ + 2)<br />

z + ⎜1+<br />

2γ<br />

+ ⎟ + 1−<br />

= 0<br />

73<br />

1<br />

η<br />

( 2<br />

. (64)<br />

It can be shown by using Descartes’ rule of signs or by inspecting its determi<strong>na</strong>nt that f(z)<br />

has one positive real root and a pair of complex conjugate. In order to prove (53), we<br />

show that the positive real solution of f(z) belongs to the interval [0, 2/3).<br />

First, we show that f ( 0)<br />

≤ 0 . It follows from (64) that:<br />

1<br />

f ( 0)<br />

= 1 − . (65)<br />

2<br />

η<br />

Since η is defined by (41) and rtcp+rudp=C, it follows that 1/ δ ≤η ≤1.<br />

Hence, f ( 0)<br />

≤ 0 .<br />

Second, we prove that f ( 2 / 3)<br />

> 0 . From (64):


2<br />

⎛ 2 ⎞ 5 ⎛ 2 ⎞ 1 ⎛ ⎞<br />

⎜ ⎟ − ⎜<br />

2 rudp<br />

f ⎜ ⎟ = 1+<br />

γ 1−<br />

⎟ . (66)<br />

2<br />

⎝ 3 ⎠ 3 ⎝ 3 ⎠ η ⎜ ⎟<br />

⎝ 3 rtcp<br />

⎠<br />

Based on (52), the first term on the right hand side of (66) satisfies:<br />

5 ⎛ 2 ⎞ 5<br />

⎜1+<br />

γ ⎟ ≥ . (67)<br />

3 ⎝ 3 ⎠ 3<br />

After substituting / r = y and using (41), the second term on the right hand side of<br />

(66) becomes:<br />

rudp tcp<br />

Since 0 ≤ y < ∞ and 1 ≤ δ < ∞ :<br />

74<br />

2<br />

2 ( 1+<br />

y)<br />

( 1+<br />

y / δ )<br />

1 ⎛ ⎞<br />

⎜<br />

2 rudp<br />

⎟<br />

⎛ 2 ⎞<br />

1−<br />

= ⎜1−<br />

y<br />

⎜ ⎟<br />

⎟ . (68)<br />

2<br />

2<br />

η ⎝ 3 rtcp<br />

⎠<br />

⎝ 3 ⎠<br />

2 ( + y)<br />

( 1 + y / δ )<br />

1 2 ( 1 + y)<br />

2<br />

⎛ 2 ⎞<br />

⎜1<br />

− y⎟<br />

<<br />

⎝ 3 ⎠<br />

From (66), (67), and (69), we conclude that f ( 2 / 3)<br />

> 0 .<br />

⎛ 2 ⎞ 5<br />

⎜1<br />

− y⎟<br />

< . (69)<br />

⎝ 3 ⎠ 3<br />

Since f ( 0)<br />

≤ 0 and f ( 2 / 3)<br />

> 0 , real positive root of f(z) must be in the interval<br />

[0, 2/3). Hence, (53) holds.□


Appendix D<br />

Structure of ns-2 source-code directories and location of the code that implements<br />

the proposed service differentiation architecture are shown in Fig. 31. The code includes<br />

four files: ns-default.tcl that defines default parameters (all inherited from RED, except<br />

for the delay differentiation parameter δ); probe.h and probe.cc that implement the BPR<br />

scheduler and the PLC controller; and definitions.h that contains certain auxiliary<br />

functions used in probe.cc.<br />

Fig. 31. Structure of ns2 source-code directories and position of the code that implements the<br />

proposed service differentiation architecture.<br />

****************************ns-default.tcl****************************<br />

+Queue/PROBE set bytes_ true<br />

+Queue/PROBE set queue_in_bytes_ true<br />

+Queue/PROBE set thresh_ 0<br />

+Queue/PROBE set maxthresh_ 0<br />

+Queue/PROBE set mean_pktsize_ 500<br />

+Queue/PROBE set idle_pktsize_ 100<br />

+Queue/PROBE set q_weight_ -1<br />

75


+Queue/PROBE set wait_ true<br />

+Queue/PROBE set linterm_ 10<br />

+Queue/PROBE set ave_ 0.0<br />

+Queue/PROBE set prob1_ 0.0<br />

+Queue/PROBE set cur_max_p_ 0<br />

+Queue/PROBE set delta_ 1<br />

*****************************definitions.h*****************************<br />

#ifndef ns_definitions_h<br />

#define ns_definitions_h<br />

#define TS 0<br />

#define DS 1<br />

#define HDR_FLAGS(p) (hdr_flags::access(p))<br />

#define isTS(p) (HDR_FLAGS(p)->pri_ == TS)<br />

#define isDS(p) (HDR_FLAGS(p)->pri_ == DS)<br />

#define setTS(p) (HDR_FLAGS(p)->pri_ = TS)<br />

#define setDS(p) (HDR_FLAGS(p)->pri_ = DS)<br />

#define pktSize(p) (HDR_CMN(p)->size())<br />

#define pktClass(p) (HDR_FLAGS(p)->pri_)<br />

#define TIME Scheduler::instance().clock()<br />

#define setTimestamp(p) (HDR_CMN(p)->timestamp_ = TIME)<br />

#define getTimestamp(p) (HDR_CMN(p)->timestamp_)<br />

#endif<br />

*******************************probe.h********************************<br />

#ifndef ns_probe_h<br />

#define ns_probe_h<br />

#include "queue.h"<br />

#include "trace.h"<br />

class LinkDelay;<br />

/* Early drop parameters, supplied by user */<br />

struct edp {<br />

/* User supplied */<br />

int mean_pktsize; /* avg packet size, linked into Tcl */<br />

int idle_pktsize; /* avg packet size used during idle times */<br />

int bytes; /* true if queue in bytes, false if packets */<br />

int wait; /* true for waiting between dropped packets */<br />

double th_min; /* min threshold of average queue size */<br />

double th_min_pkts; /* always maintained in packets */<br />

double th_max; /* max threshold of average queue size */<br />

double th_max_pkts; /* always maintained in packets */<br />

double max_p_inv; /* 1/max_p, for max_p = maximum prob. */<br />

double q_w; /* queue weight given to cur. q size sample */<br />

/* Computed as a function of user supplied parameters. */<br />

double ptc; /* packet time constant in packets/second */<br />

double delay; /* link delay */<br />

76


};<br />

/* Early drop variables, maintained by PROBE */<br />

struct edv {<br />

TracedDouble v_ave; /* average queue size */<br />

TracedDouble v_prob1; /* prob. of pkt drop before "count". */<br />

TracedDouble cur_max_p; /* current max_p */<br />

double v_slope; /* used in computing avg queue size */<br />

double v_prob; /* prob. of packet drop */<br />

double v_a; /* v_prob = v_a * v_ave + v_b */<br />

double v_b;<br />

int count; /* # of packets since last drop */<br />

int count_bytes; /* # of bytes since last drop */<br />

int old; /* 0 when avg queue exceeds thresh */<br />

};<br />

edv() : v_ave(0.0), v_prob1(0.0), v_slope(0.0), v_prob(0.0),<br />

v_a(0.0), v_b(0.0), count(0), count_bytes(0), old(0),<br />

cur_max_p(1.0) { }<br />

class PROBEQueue : public Queue {<br />

public:<br />

PROBEQueue();<br />

protected:<br />

void initialize_params();<br />

void reset();<br />

void enque(Packet* pkt);<br />

void enque(int qos_class, Packet* pkt);<br />

Packet* deque();<br />

Packet* deque(int qos_class);<br />

Packet* getDS();<br />

void setLink(LinkDelay* lk_) {link_=lk_;}<br />

double estimator(int nq, int m, double ave, double q_w);<br />

int drop_early(Packet* pkt);<br />

double modify_p(double p, int count, int count_bytes, int bytes,<br />

int mean_pktsize, int wait, int size);<br />

double calculate_p_new(double v_ave, double th_max,<br />

double v_a, double v_b, double max_p);<br />

int length();<br />

int length(int qos_class);<br />

int byteLength();<br />

int byteLength(int qos_class);<br />

int command(int argc, const char*const* argv);<br />

LinkDelay* link_; /* outgoing link */<br />

PacketQueue tsQueue; /* underlying TS queue */<br />

PacketQueue dsQueue; /* underlying DS queue */<br />

int qib_; /* queue measured in bytes? */<br />

double delta_, plc;<br />

double credits;<br />

double r_ts, r_ds;<br />

double v_ts, v_ds;<br />

double told;<br />

edp edp_; /* early-drop parameters */<br />

edv edv_; /* early-drop variables */<br />

77


};<br />

#endif<br />

int idle_; /* queue is idle? */<br />

double idletime_; /* time since the queue is idle */<br />

int first_reset_; /* first time reset() is called */<br />

*****************************probe.cc*********************************<br />

#include <br />

#include <br />

#include "config.h"<br />

#include "template.h"<br />

#include "random.h"<br />

#include "flags.h"<br />

#include "delay.h"<br />

#include "probe.h"<br />

#include "definitions.h"<br />

static class PROBEClass : public TclClass {<br />

public:<br />

PROBEClass() : TclClass("Queue/PROBE") {}<br />

TclObject* create(int argc, const char*const* argv) {<br />

return (new PROBEQueue());<br />

}<br />

} class_probe;<br />

PROBEQueue::PROBEQueue() : link_(NULL), idle_(1), credits(0){<br />

}<br />

bind_bool("bytes_", &edp_.bytes);<br />

bind_bool("queue_in_bytes_", &qib_);<br />

bind("thresh_", &edp_.th_min_pkts);<br />

bind("maxthresh_", &edp_.th_max_pkts);<br />

bind("mean_pktsize_", &edp_.mean_pktsize);<br />

bind("idle_pktsize_", &edp_.idle_pktsize);<br />

bind("q_weight_", &edp_.q_w);<br />

bind_bool("wait_", &edp_.wait);<br />

bind("linterm_", &edp_.max_p_inv);<br />

bind("ave_", &edv_.v_ave);<br />

bind("prob1_", &edv_.v_prob1);<br />

bind("cur_max_p_", &edv_.cur_max_p);<br />

bind("delta_", &delta_);<br />

void PROBEQueue::initialize_params(){<br />

/* This function is the same as in RED code. */<br />

if (edp_.q_w == 0.0) {<br />

edp_.q_w = 1.0 - exp(-1.0/edp_.ptc);<br />

} else if (edp_.q_w == -1.0) {<br />

double rtt = 3.0*(edp_.delay+1.0/edp_.ptc);<br />

if (rtt < 0.1) rtt = 0.1;<br />

edp_.q_w = 1.0 - exp(-1.0/(10*rtt*edp_.ptc));<br />

}<br />

if (edp_.th_min_pkts == 0) {edp_.th_min_pkts = 5.0;}<br />

78


}<br />

if (edp_.th_max_pkts == 0) edp_.th_max_pkts = 3.0 *<br />

edp_.th_min_pkts;<br />

void PROBEQueue::reset(){<br />

/* This function is the same as in RED code. */<br />

}<br />

if (link_) {<br />

edp_.ptc = link_->bandwidth()/(8. * edp_.mean_pktsize);<br />

initialize_params();<br />

}<br />

if (edp_.th_max_pkts == 0)<br />

edp_.th_max_pkts = 3.0 * edp_.th_min_pkts;<br />

/*<br />

* If queue is measured in bytes, scale min/max thresh<br />

* by the size of an average packet specified by user.<br />

*/<br />

if (qib_) {<br />

edp_.th_min = edp_.th_min_pkts * edp_.mean_pktsize;<br />

edp_.th_max = edp_.th_max_pkts * edp_.mean_pktsize;<br />

} else {<br />

edp_.th_min = edp_.th_min_pkts;<br />

edp_.th_max = edp_.th_max_pkts;<br />

}<br />

edv_.v_ave = 0.0; edv_.v_slope = 0.0;<br />

edv_.count = 0; edv_.count_bytes = 0; edv_.old = 0;<br />

edv_.v_a = 1/(edp_.th_max - edp_.th_min);<br />

edv_.cur_max_p = 1.0/edp_.max_p_inv;<br />

edv_.v_b = - edp_.th_min/(edp_.th_max - edp_.th_min);<br />

idle_ = 1;<br />

if (&Scheduler::instance() != NULL) {<br />

idletime_ = TIME;<br />

} else idletime_ = 0.0; /* scheduler not instantiated yet */<br />

Queue::reset();<br />

/* Compute the average queue size: nq can be in bytes or packets. */<br />

double PROBEQueue::estimator(int nq, int m, double ave, double q_w){<br />

}<br />

double new_ave, old_ave;<br />

new_ave = ave;<br />

while (--m >= 1) new_ave *= 1.0 - q_w;<br />

old_ave = new_ave;<br />

new_ave *= 1.0 - q_w;<br />

new_ave += q_w * nq;<br />

return new_ave;<br />

Packet* PROBEQueue::deque(){<br />

Packet* pkt = 0;<br />

if (dsQueue.head() && !tsQueue.head()) {<br />

pkt = deque(DS);<br />

v_ts = 0; v_ds = 0;<br />

}<br />

79


}<br />

if (!dsQueue.head() && tsQueue.head()) {<br />

pkt = deque(TS);<br />

v_ts = 0; v_ds = 0;<br />

}<br />

if (dsQueue.head() && tsQueue.head()) {<br />

if (getTimestamp(dsQueue.head()) >= told) {<br />

v_ds = 0;<br />

} else v_ds += r_ds * (TIME - told);<br />

if (getTimestamp(tsQueue.head()) >= told) {<br />

v_ts = 0;<br />

} else v_ts += r_ts * (TIME - told);<br />

if ((8*pktSize(dsQueue.head())-v_ds) > (8*pktSize<br />

(tsQueue.head())-v_ts)) {<br />

pkt = deque(TS);<br />

} else pkt = deque(DS);<br />

}<br />

if (length(TS)!=0 && length(DS)!=0) {<br />

double bw = link_->bandwidth();<br />

r_ds = bw/(1 + byteLength(TS)/(byteLength(DS) * delta_));<br />

r_ts = bw - r_ds;<br />

}<br />

if (pkt) {<br />

told = TIME; idle_ = 0;<br />

} else {<br />

idle_ = 1;<br />

if (&Scheduler::instance() != NULL) {<br />

idletime_ = TIME;<br />

} else idletime_ = 0.0;<br />

}<br />

return pkt;<br />

/* Calculate the drop probability. */<br />

double PROBEQueue::calculate_p_new(double v_ave, double th_max, double<br />

v_a, double v_b, double max_p) {<br />

}<br />

double p;<br />

p = v_a * v_ave + v_b;<br />

p *= max_p;<br />

if (p > 1.0) p = 1.0;<br />

return p;<br />

/* Make uniform instead of geometric inter-drop periods. */<br />

double PROBEQueue::modify_p(double p, int count, int count_bytes, int<br />

bytes, int mean_pktsize, int wait, int size) {<br />

double count1 = (double) count;<br />

if (bytes)<br />

count1 = (double) (count_bytes/mean_pktsize);<br />

if (wait) {<br />

if (count1 * p < 1.0) {<br />

p = 0.0;<br />

} else if (count1 * p < 2.0) {<br />

p /= (2 - count1 * p);<br />

80


}<br />

} else p = 1.0;<br />

} else {<br />

if (count1 * p < 1.0) {<br />

p /= (1.0 - count1 * p);<br />

} else p = 1.0;<br />

}<br />

if (bytes && p < 1.0) p = p * size / mean_pktsize;<br />

if (p > 1.0) p = 1.0;<br />

return p;<br />

int PROBEQueue::drop_early(Packet* pkt) {<br />

}<br />

hdr_cmn* ch = hdr_cmn::access(pkt);<br />

edv_.v_prob1 = calculate_p_new(edv_.v_ave, edp_.th_max, edv_.v_a,<br />

edv_.v_b, edv_.cur_max_p);<br />

edv_.v_prob = modify_p(edv_.v_prob1, edv_.count,edv_.count_bytes,<br />

edp_.bytes, edp_.mean_pktsize, edp_.wait, ch->size());<br />

/* Drop probability is computed, pick random number and act. */<br />

double u = Random::uniform();<br />

if (u


* count and count_bytes keeps a tally of arriving traffic<br />

* that has not been dropped (i.e., how long, in terms of traffic,<br />

* it has been since the last early drop). */<br />

hdr_cmn* ch = hdr_cmn::access(pkt);<br />

++edv_.count;<br />

edv_.count_bytes += ch->size();<br />

/* DROP LOGIC:<br />

* q = current q size, ~q = averaged q size<br />

* 1) if ~q > maxthresh, this is a FORCED drop<br />

* 2) if minthresh < ~q < maxthresh, this may be an UNFORCED drop<br />

* 3) if (q+1) > hard q limit, this is a FORCED drop */<br />

register double qavg = edv_.v_ave;<br />

int droptype = DTYPE_NONE;<br />

int qlen = qib_ ? byteLength() : length();<br />

int qlim = qib_ ? (qlim_ * edp_.mean_pktsize) : qlim_;<br />

if (qavg >= edp_.th_min && qlen > 1) {<br />

if (qavg >= edp_.th_max) {<br />

droptype = DTYPE_FORCED;<br />

} else if (edv_.old == 0) {<br />

/* The average queue size has just crossed the<br />

* threshold from below to above "minthresh", or<br />

* from above "minthresh" with an empty queue to<br />

* above "minthresh" with a nonempty queue. */<br />

edv_.count = 1;<br />

edv_.count_bytes = ch->size();<br />

edv_.old = 1;<br />

} else if (drop_early(pkt)) droptype = DTYPE_UNFORCED;<br />

} else {<br />

/* No packets are being dropped. */<br />

edv_.v_prob = 0.0;<br />

edv_.old = 0;<br />

}<br />

if (qlen >= qlim) droptype = DTYPE_FORCED;<br />

if (droptype == DTYPE_UNFORCED || droptype == DTYPE_FORCED) {<br />

if (isTS(pkt)) {<br />

if (droptype == DTYPE_FORCED) {<br />

edv_.v_prob = 1;<br />

} else {<br />

edv_.v_prob = calculate_p_new(edv_.v_ave,<br />

edp_.th_max, edv_.v_a, edv_.v_b,<br />

edv_.cur_max_p);<br />

}<br />

double bw = link_->bandwidth();<br />

double ni = ((r_ts + r_ds/delta_) / bw);<br />

double psi = - edv_.cur_max_p * edv_.v_b;<br />

double eta = 2*edv_.v_prob / (edv_.v_prob + psi);<br />

if (r_ds > 0) {<br />

plc = (1+(eta+1)*r_ts/r_ds) /<br />

(1/(ni*ni)+(eta+1)*r_ts/r_ds);<br />

} else plc = 1;<br />

credits += (1-plc);<br />

if (credits >= 1) {<br />

82


}<br />

int count = 0;<br />

while (count < pktSize(pkt)) {<br />

Packet* ds_pkt = getDS();<br />

if (ds_pkt) {<br />

count += pktSize(ds_pkt);<br />

drop(ds_pkt);<br />

} else break;<br />

}<br />

credits -= count / pktSize(pkt);<br />

if (count >= pktSize(pkt)) {<br />

enque(TS, pkt);<br />

} else drop(pkt);<br />

} else drop(pkt);<br />

} else drop(pkt);<br />

} else {<br />

if isDS(pkt) enque(DS, pkt); else enque(TS, pkt);<br />

}<br />

return;<br />

int PROBEQueue::command(int argc, const char*const* argv) {<br />

}<br />

Tcl& tcl = Tcl::instance();<br />

if (argc == 2) {<br />

if (strcmp(argv[1], "reset") == 0) {<br />

reset();<br />

return (TCL_OK);<br />

}<br />

}<br />

else if (argc == 3) {<br />

if (strcmp(argv[1], "link") == 0) {<br />

LinkDelay* del = (LinkDelay*)<br />

TclObject::lookup(argv[2]);<br />

if (del == 0) {<br />

tcl.resultf("PROBE: no LinkDelay object %s",<br />

argv[2]);<br />

return(TCL_ERROR);<br />

}<br />

link_ = del;<br />

edp_.ptc = link_->bandwidth()/(8.*edp_.mean_pktsize);<br />

edp_.delay = link_->delay();<br />

if (edp_.q_w


int PROBEQueue::length(int qos_class) {<br />

}<br />

if (qos_class == TS) return tsQueue.length();<br />

if (qos_class == DS) return dsQueue.length();<br />

int PROBEQueue::length() {return length(TS)+length(DS);}<br />

Packet* PROBEQueue::deque(int qos_class) {<br />

Packet* pkt=0;<br />

if (qos_class == DS) {<br />

pkt = dsQueue.deque();<br />

v_ds = v_ds - 8*pktSize(pkt);<br />

} else {<br />

pkt = tsQueue.deque();<br />

v_ts = v_ts - 8*pktSize(pkt);<br />

}<br />

return pkt;<br />

}<br />

Packet* PROBEQueue::getDS() {<br />

}<br />

Packet* pkt = dsQueue.deque();<br />

return pkt;<br />

void PROBEQueue::enque(int qos_class, Packet* pkt) {<br />

}<br />

setTimestamp(pkt);<br />

if (qos_class == DS) {<br />

dsQueue.enque(pkt);<br />

} else {<br />

tsQueue.enque(pkt);<br />

}<br />

***********************************************************************<br />

84


References<br />

[1] V. Firoiu, J.-Y. Le Boudec, D. Towsley, and Z.-L. Zhang, “Theories and models for<br />

<strong>Internet</strong> quality of service,” Proc. IEEE, vol. 90, no. 9, pp. 1565–1591, September 2002.<br />

[2] P. Gevros, J. Crowcroft, P. Kirstein, and S. Bhatti, “Congestion control mechanisms and<br />

the best-effort service model,” IEEE Network, vol. 15, no. 3, pp. 16–26, May 2001.<br />

[3] P. Hurley, M. Kara, J. Y. Le Boudec, and P. Thiran, “ABE: providing a low-delay service<br />

within best-effort,” IEEE Network, vol. 15, no. 3, pp. 60–69, May 2001.<br />

[4] V. Firoiu and X. Zhang, “Best-effort Differentiated Services: trade-off service<br />

differentiation for elastic applications,” in Proc. IEEE ICT 2001, Bucharest, Romania,<br />

June 2001.<br />

[5] B. Gaidioz and P. Primet, “EDS: a new scalable service differentiation architecture for<br />

<strong>Internet</strong>,” in Proc. IEEE ISCC, Taormi<strong>na</strong>, Italy, July 2002, pp. 777–782.<br />

[6] S. Shenker, C. Partridge, and R. Guerin, “Specification of guaranteed quality of service,”<br />

RFC 2212, <strong>Internet</strong> Engineering Task Force, September 1997.<br />

[7] J. Wroclawski, “Specification of the controlled-load network element service,” RFC<br />

2211, <strong>Internet</strong> Engineering Task Force, September 1997.<br />

[8] S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, and W. Weiss, “An architecture for<br />

differentiated services,” RFC 2475, <strong>Internet</strong> Engineering Task Force, December 1998.<br />

[9] V. Jacobson, K. Nichols, and K. Poduri, “An expedited forwarding PHB,” RFC 2598,<br />

<strong>Internet</strong> Engineering Task Force, June 1999.<br />

[10] J. Hei<strong>na</strong>nen, F. Baker, W. Weiss, and J. Wroclawski, “Assured forwarding PHB group,”<br />

RFC 2597, <strong>Internet</strong> Engineering Task Force, June 1999.<br />

[11] B. Teitelbaum, “Future priorities for <strong>Internet</strong>2 QoS,” <strong>Internet</strong>2 QoS WG, October<br />

2001:http://www.internet2.edu/qos/wg/papers/qosFuture01.pdf.<br />

[12] C. Dovrolis, D. Stiliadis, and P. Rama<strong>na</strong>than, “Proportio<strong>na</strong>l differentiated services: delay<br />

differentiation and packet scheduling,” in Proc. ACM SIGCOMM 1999, Cambridge MA,<br />

September 1999, pp. 109–120.<br />

85


[13] S. Bodamer, “A new scheduling mechanism to provide relative differentiation for realtime<br />

IP traffic,” in Proc. IEEE GLOBECOM 2000, San Francisco, CA, December 2000,<br />

pp. 646–650.<br />

[14] C. C. Li, S.-L. Tsao, M. C. Chen, Y. Sun, and Y.-M. Huang, “Proportio<strong>na</strong>l delay<br />

differentiation service based on weighted fair queueing,” in Proc. IEEE Inter<strong>na</strong>tio<strong>na</strong>l<br />

Conference on Computer Communications and Networks (ICCCN 2000), October 2000,<br />

pp. 418–423.<br />

[15] J.-S. Li and H.-C. Lai, “Providing proportio<strong>na</strong>l differentiated services using PLQ,” in<br />

Proc. IEEE GLOBECOM 2001, San Antonio, TX, November 2001, pp. 2280–2284.<br />

[16] Y-C. Lai and W-H. Li, “A novel scheduler for proportio<strong>na</strong>l delay differentiation by<br />

considering packet transmission time,” IEEE Communications Letters, vol. 7, no. 4, pp.<br />

189–191, April 2003.<br />

[17] Y. Chen, C. Qiao, M. Hamdi, and D. H. K Tsang, “Proportio<strong>na</strong>l differentiation: a scalable<br />

QoS approach,” IEEE Communications Magazine, vol. 41, no. 6, pp.52–58, June 2003.<br />

[18] H. Saito, C. Lukovzski, and I. Moldovan, “Local optimal proportio<strong>na</strong>l differentiated<br />

services scheduler for relative differentiated services,” in Proc. IEEE Inter<strong>na</strong>tio<strong>na</strong>l<br />

Conference on Computer Communications and Networks (ICCCN 2000), October 2000,<br />

pp. 544–550<br />

[19] H-T. Ngin and C-K. Tham, “Achieving proportio<strong>na</strong>l delay differentiation efficiently,” in<br />

Proc. IEEE Inter<strong>na</strong>tio<strong>na</strong>l Conference on Networks (ICON 2002), Singapore, August<br />

2002, pp. 169–174.<br />

[20] T. Nandagopal, N. Venkitaraman, R. Sivakumar, and V. Bharghavan, “Delay<br />

differentiation and adaptation in core stateless networks,” in Proc. IEEE INFOCOM<br />

2000, Tel-Aviv, Israel, March 2000, pp. 421–430.<br />

[21] S. Sankaran and A. E. Kamal, “A combined delay and throughput proportio<strong>na</strong>l<br />

scheduling scheme for differentiated services,” in Proc. IEEE Globecom, Taipei, Taiwan,<br />

November 2002, pp. 1910–1914.<br />

[22] Y. Moret and S. Fdida, “A proportio<strong>na</strong>l queue control mechanism to provide<br />

differentiated services,” in Proc. Inter<strong>na</strong>tio<strong>na</strong>l Symposium on Computer and Information<br />

Systems (ISCIS 1998), Belek, Turkey, October 1998, pp. 17–24.<br />

[23] M. K. H. Leung, J. C. S. Lui, and D. K. Y. Yau, “Adaptive proportio<strong>na</strong>l delay<br />

differentiated services: characterization and performance evaluation,” IEEE/ACM Trans.<br />

Networking, vol. 9, no. 6, December 2001, pp. 801–817.<br />

86


[24] C. Dovrolis and P. Rama<strong>na</strong>than, “Proportio<strong>na</strong>l differentiated services, part II: Loss rate<br />

differentiation and packet dropping,” in Proc. Inter<strong>na</strong>tio<strong>na</strong>l Workshop on Quality of<br />

Service (IWQoS 2000), Pittsburgh, PA, June 2000, pp. 52–61.<br />

[25] W. Wu, Y. Ren, and X. Shan, “Forwarding the balance between absolute and relative: a<br />

new differentiated services model for adaptive traffic,” in Proc. IEEE Workshop on High<br />

Performance Switching and Routing (HPSR 2001), Dallas, TX, May 2001, pp. 250–254.<br />

[26] A. Striegel and G. Manimaran, “Differentiated services: packet scheduling with delay and<br />

loss differentiation,” in Computer Communications, vol. 25, no. 1, pp.21–31, January<br />

2002.<br />

[27] U. Bodin, A. Jonsson, and O. Schelén, “On creating proportio<strong>na</strong>l loss-rate differentiation:<br />

predictability and performance,” in Proc. Inter<strong>na</strong>tio<strong>na</strong>l Workshop on Quality of Service<br />

(IWQoS 2001), Karlsruhe, Germany, June 2001, pp. 372–388.<br />

[28] S. Floyd, M. Handley, J. Padhye, and J. Widmer, “Equation-based congestion control for<br />

unicast applications,” in Proc. ACM SIGCOMM 2000, Stockholm, Sweden, August 2000,<br />

pp. 43–56.<br />

[29] S. Floyd and V. Jacobson, “Random early detection gateways for congestion avoidance,”<br />

IEEE/ACM Trans. Networking, vol. 1, no. 4, pp. 397–413, August 1993.<br />

[30] V. Vukadinović, G. Petrović, and Lj. Trajković, “TCP-friendly packet loss controller for<br />

proportio<strong>na</strong>l delay differentiation,” submitted for publication.<br />

[31] The Network Simulator - ns-2: http://www-mash.cs.berkeley.edu/ns.<br />

[32] H. J. Chao and X. Guo, Quality of service control in high-speed networks. New York:<br />

John Wiley and Sons, 2002.<br />

[33] S. Jha and M. Hassan, Engineering <strong>Internet</strong> QoS. Boston: Artech House, 2002.<br />

[34] J. Padhye, V. Firoiu, D. Towsley, and J. Kurose, “Modeling TCP Reno performance: a<br />

simple model and its empirical validation,” IEEE/ACM Trans. Networking, vol. 8, no. 2,<br />

pp. 133–145, April 2000.<br />

[35] M. Mathis, J. Semke, J. Mahdavi, and T. Ott, “The macroscopic behavior of the TCP<br />

congestion avoidance algorithm,” ACM Computer Communication Review, vol. 27, no. 3,<br />

pp. 67–82, July 1997.<br />

[36] A. Demers, S. Keshav, and S. Shenker, “A<strong>na</strong>lysis and simulation of a fair queuing<br />

algorithm,” in Proc. ACM SIGCOMM’89, Austin, TX, September 1989, pp. 1–12.<br />

87


[37] K. Nichols, S. Blake, F. Baker, and D. Black, “Definition of the Differentiated Services<br />

field (DS field) in the IPv4 and IPv6 headers,” IETF RFC 2474, December 1998.<br />

[38] V. Vukadinovic. G. Petrovic, and Lj. Trajkovic, “BPR+: a packet scheduling algorithm<br />

for proportio<strong>na</strong>l delay differentiation,” in Proc. YUINFO 2004, Kopaonik, Serbia and<br />

Montenegro, March 2004.<br />

[39] N. Christin and J. Liebeherr, “A QoS architecture for quantitative service differentiation,”<br />

IEEE Communications Magazine, vol. 41, no. 6, pp.38–45 June 2003.<br />

[40] J. Liebeherr and N. Christin, “Rate allocation and buffer ma<strong>na</strong>gement for differentiated<br />

services,” Computer Networks, vol. 40, no. 1, pp. 89–110, September 2002.<br />

[41] S. Floyd, “RED: discussions of setting parameters,” November 1997:<br />

http://www.icir.org/floyd/REDparameters.txt.<br />

[42] C. Dovrolis, D. Stiliadis, and P. Rama<strong>na</strong>than, “Proportio<strong>na</strong>l differentiated services: delay<br />

differentiation and packet scheduling,” IEEE/ACM Trans. Networking, vol. 10, no. 1, pp.<br />

12–26, February 2002.<br />

[43] D. Lin and R. Morris, “Dy<strong>na</strong>mics of random early detection,” in Proc. ACM SIGCOMM<br />

'97, Cannes, France, October 1997, pp. 127–137.<br />

[44] W. Feng, “Stochastic fair BLUE: a queue ma<strong>na</strong>gement algorithm for enforcing fairness,”<br />

in Proc. IEEE INFOCOM’01, Anchorage, AL, April 2001, pp. 1520–1529.<br />

[45] R. Pan, B. Prabhakar, and K. Psounis, “CHOKe: a stateless active queue ma<strong>na</strong>gement<br />

scheme for approximating fair bandwidth allocation,” in Proc. IEEE INFOCOM’00, Tel-<br />

Aviv, Israel, April 2000, pp. 942–951.<br />

[46] R. Pan, L. Breslau, B. Prabhakar, and S. Shenker, “Approximate fairness through<br />

differential dropping,” in ACM Computer Communication Review, vol. 32, no. 1, January<br />

2002, pp. 72.<br />

[47] J. Bruno, B. Ozden, H. Saran, and A. Silberschatz, “Early fair drop: a new buffer<br />

ma<strong>na</strong>gement policy,” in Proc. ACM/SPIE Multimedia Computing and Networking 1999,<br />

San Jose, CA, January 1999, pp. 148–161.<br />

[48] V. Vukadinović and Lj. Trajković, “RED with dy<strong>na</strong>mic thresholds for improved<br />

fairness,” in Proc. ACM Symposium on Applied Computing (SAC 2004), Nicosia, Cyprus,<br />

March 2004, pp. 371–372.<br />

88


[49] G. Chatranon, M. Labrador, and S. Banerjee, “BLACK: detection and preferential<br />

dropping of high bandwidth unresponsive flows,” in Proc. IEEE ICC 2003, Anchorage,<br />

AK, May 2003, pp. 664–668.<br />

[50] G. Hasegawa and M. Murata, “Dy<strong>na</strong>mic threshold control of RED for fairness among<br />

thousands TCP connections," in Proc. 4th Asia-Pacific Symposium on Information and<br />

Telecommunication Technologies (APSITT 2001), Kathmandu, Nepal, November 2001,<br />

pp. 213–217.<br />

89

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!