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
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