Académique Documents
Professionnel Documents
Culture Documents
Facultad de Ingeniera
9 de julio de 2010
1 ejortegau@unal.edu.co
Director: Alexis Irlande Autor: Eduardo J. Ortega
Takeourdogmaandshoeit...
ndice general
Agradecimientos iii
1 Introduccin 1
2 Revisin de los algoritmos existentes 5
2.1 Justicia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Metodologa de estudio . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Algoritmos de encolamiento existentes . . . . . . . . . . . . . . . . . . . 10
5 Conclusiones y perspectivas 47
ndice de guras
2.1 Topologa de red para experimentos de competencia entre dos ujos . . . 8
2.2 Clasicacin de los algoritmos de encolamiento de paquetes de acuerdo
con la cantidad de informacin de estado del trco que almacenan. . . . 11
2.3 Genealoga de los algoritmos de encolamiento de paquetes en enrutadores. 11
i
NDICE DE FIGURAS ii
2.4 Consumo de canal como funcin del tiempo para dos ujos UDP CBR
empleando FIFO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5 Consumo de canal como funcin del tiempo para un ujo UDP CBR y un
ujo TCP FTP empleando FIFO. . . . . . . . . . . . . . . . . . . . . . 13
2.6 Consumo de canal como funcin del tiempo para dos ujos UDP CBR
empleando FQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.7 Consumo de canal como funcin del tiempo para un ujo UDP CBR y un
ujo TCP FTP empleando FQ. . . . . . . . . . . . . . . . . . . . . . . 16
2.8 Consumo de canal como funcin del tiempo para dos ujos UDP CBR
empleando SFQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.9 Consumo de canal como funcin del tiempo para un ujo UDP CBR y un
ujo TCP FTP empleando SFQ. . . . . . . . . . . . . . . . . . . . . . 18
2.10 Consumo de canal como funcin del tiempo para dos ujos UDP CBR
empleando FQ-DRR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.11 Consumo de canal como funcin del tiempo para un ujo UDP CBR y un
ujo TCP FTP empleando FQ-DRR. . . . . . . . . . . . . . . . . . . . 22
2.12 Consumo de canal como funcin del tiempo para dos ujos UDP CBR
empleando FRED. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.13 Consumo de canal como funcin del tiempo para un ujo UDP CBR y un
ujo TCP FTP empleando FRED. . . . . . . . . . . . . . . . . . . . . 24
2.14 Consumo de canal como funcin del tiempo para dos ujos UDP CBR
empleando CHOKe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.15 Consumo de canal como funcin del tiempo para un ujo UDP CBR y un
ujo TCP FTP empleando CHOKe. . . . . . . . . . . . . . . . . . . . . 28
2.16 Consumo de canal como funcin del tiempo para dos ujos UDP CBR
empleando RED-PD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.17 Consumo de canal como funcin del tiempo para un ujo UDP CBR y un
ujo TCP FTP empleando RED-PD. . . . . . . . . . . . . . . . . . . . 30
2.18 Consumo de canal como funcin del tiempo para dos ujos UDP CBR
empleando RED-NB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.19 Consumo de canal como funcin del tiempo para un ujo UDP CBR y un
ujo TCP FTP empleando RED-NB. . . . . . . . . . . . . . . . . . . . 32
3.1 Diagrama de ujo para la etapa de ingreso de QOBQ. . . . . . . . . . . 38
3.2 Diagrama de ujo para las etapas de ingreso y egreso de FQ (izquierda) y
QOBQ (derecha). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.1 Consumo de canal como funcin del tiempo para dos ujos UDP CBR
empleando QOBQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2 Consumo de canal como funcin del tiempo para un ujo UDP CBR y un
ujo TCP FTP empleando QOBQ. . . . . . . . . . . . . . . . . . . . . 45
AGRADECIMIENTOS
iii
CAPTULO 1
INTRODUCCIN
La explosin que ha tenido lugar durante las dos ltimas dcadas, y que an con-
tinua, del uso de las redes de computadores corporativas as como de Internet, ha sido
fuente de desafos en la computacin y las telecomunicaciones. La aparicin de nuevos
usuarios, con diversos intereses en cuanto a contenido, formato y ubicacin de ste,
ha obligado a las empresas y a la academia a adelantar investigacin en diferentes
campos, incluyendo el procesamiento local de contenido multimedia, la codicacin de
imgenes, audio y sonido, la necesidad de realizacin de transacciones sincronizadas en
sistemas de software distribuidos, la interoperabilidad de sistemas de software, entre
otros. Para hacer posible lo anterior, un esfuerzo considerable se ha invertido en lograr
que las redes de computadores sean ms rpidas (por ejemplo, para lograr streaming de
video en lnea), predecibles (por ejemplo, en trminos de variacin de la latencia, para
las comunicaciones de voz en tiempo real) y conables (por ejemplo, en aplicaciones
bancarias, para garantizar que las transacciones realizadas por un cliente en un sitio
de compras en lnea efectivamente lleguen a los servidores del banco para el dbito de
la cuenta). Parte de la investigacin en este campo llev al desarrollo del concepto de
Calidad de Servicio.
La calidad de servicio (o QoS por sus siglas en ingls), puede ser denida como
la capacidad para la red de atender las peticiones de los clientes satisfaciendo ciertos
umbrales denidos para mtricas dadas (comunmente denominados niveles de servicio),
como la tasa de transmisin efectiva o throughput, la latencia o delay, la variacin de la
latencia o jitter, la probabilidad de prdida de paquetes, etc. [1]. En este marco, varias
capas o componentes para lograr estos niveles de servicio han sido denidas [2]:
1
CAPTULO 1. INTRODUCCIN 2
comunicacin de nodo a nodo para, por ejemplo, clustering. Veanse, por ejemplo,
[3, 4, 5].
2. QoS del sistema nal: estos trabajos estudian la capacidad de hardware y software
en un servidor para proveer respuestas en tiempo real en sus aplicaciones y la
transmisin de datos de las mismas a travs de la red[6, 7].
1 Es de anotar que el modelo de referencia TCP/IP recibe su nombre de sus dos protocolos principales.
Sin embargo, el trco que emplea en la capa de transporte el protocolo UDP en vez de TCP tambin se
considera enmarcado en el modelo TCP/IP.
2 De ahora en adelante, por ujos nos referiremos a una nica comunicacin entre dos nodos, identicada,
2.1. Justicia
Como se indic en la introduccin, el problema de la asignacin justa de la capacidad
de canal ha sido atacado desde varios frentes, incluyendo el uso de algoritmos de enco-
lamiento en los enrutadores de la red. De ah que las siglas de varios de los algortimos
incluyan las letras FQ, por fair queueing. Si bien intuitivamente podemos identicar
cierto algoritmo como justo o injusto evaluando qu fraccin del canal pretenden em-
plear los ujos que por el enrutador circulan, y compararla con qu fraccin realmente
5
CAPTULO 2. REVISIN DE LOS ALGORITMOS EXISTENTES 6
obtiene cada ujo, para realizar un estudio riguroso es necesario contar con una mtrica
formal que permita calicar los algoritmo en trminos de su nivel de justicia.
En el estudio de los QA se ha empleado con frecuencia la denicin de justicia
mxima-mnima ( Max-Min Fairness o MMF)[14], que establece que:
1. Ningn ujo recibe una asignacin mayor del canal que la que solicita.
2. Ningn otro esquema de asignacin del canal que satisfaga la condicin anterior
garantiza una asignacin mnima mayor.
3. La condicin anterior sigue siendo cierta cuando se elimina el ujo que recibe
la menor asignacin de la capacidad del canal y la misma es disminuida en una
cantidad equivalente a dicha asignacin mnima.
N 2
P
xi
J= i=1
N
, (2.1)
x2i
P
N
i=1
L0 L3
R0 R1
SRC0 DST0
L2
L1 L4
SRC1 DST1
Figura 2.1: Topologa de red para experimentos de competencia entre dos ujos
L0 100 1 FIFO
L1 100 1 FIFO
L2 (bottleneck) 1 10 QA en estudio
L3 100 1 FIFO
L4 100 1 FIFO
Tabla 2.1: Parmetros de enlaces para el experimento de competencia entre dos ujos.
Los nodos SRC0 y SRC1 transmiten trco a los nodos DST0 y DST1 respectiva-
mente.
El objetivo del experimento es determinar si el QA en estudio realiza una asignacin
aproximadamente justa del enlace L2 cuando varios ujos cruzan a travs del mismo.
Para ello, se denieron dos transmisiones 0 y 1 que uyen de SRC0 a DST0 y SRC1
a DST1 respectivamente.
En el primer experimento (de ahora en adelante denominado experimento 1 ), tanto
0 como 1 son ujos UDP con tasa de transmisin constante (CBR). En el segundo
experimento ( experimento 2 ), 0 es tambin un ujo UDP CBR, pero 1 es un ujo
TCP de trco FTP (i.e. un ujo con trasmisin contnua de paquetes que intenta
emplear una fraccin tan elevada del canal como le es posible, segn los mecanismos
de control de ujo y de congestin de TCP). Las caractersticas de transmisin de los
ujos se presentan en la tabla 2.2.
CAPTULO 2. REVISIN DE LOS ALGORITMOS EXISTENTES 9
Tabla 2.2: Parmetros de ujos para los experimentos. r representa la tasa de transmisin
de los ujos, y s el tamao de paquete.
Para los parmetros de transmisin antes mencionados, resulta claro que el enlace
L2 no cuenta con la capacidad suciente para transmitir los paquetes que se encuentran
en la cola a la misma velocidad que los recibe, y por tanto se empiezan a acumular.
Eventualmente la cola se llena y el enrutador se ve obligado a descartar paquetes. La
seleccin de qu paquetes son descartados, junto con la decisin de cundo se transmite
un paquete de la cola, corresponde al QA propiamente dicho. El objetivo de estos
experimentos es determinar si dicha seleccin y decisin garantiza una asignacin justa
de la capacidad del enlace L2 , de acuerdo con el ndice de justicia de Jain. Es el momento
de anotar que, para los parmetros de enlaces y trco arriba denidos, los derechos
de uso mximo de los ujos son du0 = du1 = 0.5 Mb/s.
Los experimentos se llevan a cabo en un intervalo de tiempo de simulacin T =
100 s. Entre t = 0 s y t = 75 s el ujo 0 transmite, mientras que 1 lo hace entre
t = 15 s y t = 100 s. Esto dene tres intervalos de tiempo bien diferenciados, a saber:
2.3.1. Clasicacin
Los algoritmos que presentaremos pueden ser clasicados teniendo en cuenta sus
requerimientos de almacenamiento de informacin para llevar a cabo su trabajo. En
este sentido, distinguiremos tres categoras de algoritmos, a saber:
Algoritmos de estado parcial ( partial state algorithms ): son aquellos que mantienen
informacin de clasicacin o estadsticas slo para un subconjunto de los ujos
que atraviesan el enrutador. Dicho subconjunto se determina, por ejemplo, te-
niendo en cuenta la tasa de llegada de paquetes de dicho ujo al enrutador.
Algoritmos sin estado ( stateless algorithms) : son aquellos que operan sin alma-
cenar ningn tipo de informacin asociada a ujos particulares. Pueden, sin em-
bargo, llevar estadsticas globales.
1
De acuerdo con estas categoras, los algoritmos seleccionados para estudio en este
trabajo se clasican segn se muestra en la gura 2.2.
FIFO
RED
Sin estado
CHOKe
SFQ
n
Algoritmos de encolamiento Estado total FQ / PGPS
de paquetes en el enrutador
RED-PD
RED-NB
Estado parcial CSFQ
FQ-DRR
FRED
Algoritmos de encolamiento
de paquetes en routers
FQDRR
Las siguientes subsecciones describen los algoritmos a estudiar, as como los resul-
tados experimentales obtenidos de las simulaciones empleando cada uno de ellos.
CAPTULO 2. REVISIN DE LOS ALGORITMOS EXISTENTES 12
Resultados experimentales
1200 Phi0
Phi1
1000 Total
800
r (Kb/s)
600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.4: Consumo de canal como funcin del tiempo para dos ujos UDP CBR empleando
FIFO.
de los anchos de banda empleados por cada conexin, y es claro que tan pronto la
demanda total se hace r = r0 + r1 = 1300 Kb/s, el consumo de canal alcanza el valor
total de la capacidad de L2 , que es rL2 = 1 Mb/s. Los 0.3 Mb/s restantes corresponden
a trco que el enrutador no puede colocar en la cola y, por tanto, es descartado.
Por otro lado, es claro que la asignacin de canal a cada ujo no es justa; si lo
fuera, en el intervalo t2 la asignacin de cada ujo sera cercana a su derecho de
uso mximo. En su lugar, la asignacin media obtenida por 0 es a0 = 590.31 Kb/s,
mientras que la obtenida por 1 es a1 = 409.73 Kb/s.
1200 Phi0
Phi1
1000 Total
800
r (Kb/s)
600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.5: Consumo de canal como funcin del tiempo para un ujo UDP CBR y un ujo
TCP FTP empleando FIFO.
1. Requiere almacenar informacin acerca de cada ujo para poder clasicar y ma-
pear cada paquete que llega a la cola correspondiente.
2. Requiere realizar clculos sobre los tamaos de cada paquete atendido en cada
cola para aproximar el round robin bit a bit.
Resultados experimentales
1200 Phi0
Phi1
1000 Total
800
r (Kb/s)
600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.6: Consumo de canal como funcin del tiempo para dos ujos UDP CBR empleando
FQ.
1. El mapeo de los paquetes de cada ujo a una cola independiente aisla efectiva-
mente el trco de un ujo de los dems. Esto signica que los ujos que cuentan
con una alta tasa de transmisin slo se causan congestin, y por tanto prdida
de paquetes, a s mismos.
2. La aproximacin del round robin bit a bit, que asegura que la cantidad de infor-
macin (en bits o bytes) por unidad de tiempo retransmitida por el enrutador es
aproximadamente la misma para cada cola, y por tanto, para cada ujo.
CAPTULO 2. REVISIN DE LOS ALGORITMOS EXISTENTES 16
1200 Phi0
Phi1
1000 Total
800
r (Kb/s) 600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.7: Consumo de canal como funcin del tiempo para un ujo UDP CBR y un ujo
TCP FTP empleando FQ.
canal originados por colisiones al garantizanr que ningn ujo se superpone con otro
de manera sistemtica en la misma cola.
Adicionalmente, y con el n de disminuir los costos de procesamiento en la aproxi-
macin del round robin bit a bit, McKenney propuso una poltica de servicio en la que
que cada cola es atendida en un round robin paquete a paquete, y no, como en FQ,
una aproximacin de round robin bit a bit.
Resultados experimentales
1200 Phi0
Phi1
1000 Total
800
r (Kb/s)
600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.8: Consumo de canal como funcin del tiempo para dos ujos UDP CBR empleando
SFQ.
Experimento 1 La gura 2.8 muestra el consumo de canal por parte de cada ujo,
as como la utliizacin completa del mismo, como funcin del tiempo. Como se observa
en la misma, la asignacin obtenida por 0 es cercana a la demanda (a0 = 786.73 Kb/s
versus d0 = 800 Kb/s y lejana del derecho de uso mximo du0 = 500 Kb/s. Esto se
ve reejado en el bajo uso de canal por parte de 1 . La causa de este pobre desempeo
radica que 0 cuenta con dos ventajas sobre 0 , a saber:
2. El mayor tamao de los paquetes. Dado que SFQ transmite en un round robin
paquete por paquete, los ujos que envan consistentemente paquetes de mayor
tamao obtienen una participacin mayor en el canal que los que envan paquetes
de tamao inferior.
CAPTULO 2. REVISIN DE LOS ALGORITMOS EXISTENTES 18
1000 Phi0
Phi1
800 Total
r (Kb/s)
600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.9: Consumo de canal como funcin del tiempo para un ujo UDP CBR y un ujo
TCP FTP empleando SFQ.
ujos), sino que se permite que algunos tengan ms prioridad que otros (por esto, a
esta variedad de FQ se le denomina Weighted Fair Queuing, o WFQ).
El trabajo de Parekh despert amplio inters para el desarrollo de redes que garan-
tizaran ciertos servicios (las denominadas redes de servicios integrados). Sin embargo,
presentaba los mismos problemas de (W)FQ; elevado costo computacional para su
implementacin.
No presentamos resultados experimentales sobre PGPS, dado que es equivalente a
FQ.
Resultados experimentales
1200 Phi0
Phi1
1000 Total
800
r (Kb/s)
600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.10: Consumo de canal como funcin del tiempo para dos ujos UDP CBR emple-
ando FQ-DRR.
1200 Phi0
Phi1
1000 Total
800
r (Kb/s) 600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.11: Consumo de canal como funcin del tiempo para un ujo UDP CBR y un ujo
TCP FTP empleando FQ-DRR.
Experimento 2 Al igual que en el caso anterior, la gura 2.11 evidencia que la asig-
nacin obtenida empleando FQ-DRR es cercana al derecho de uso mximo. En este
caso, los valores medios en el intervalor t2 son a0 = 500.7 Kb/s y a1 = 499.21 Kb/s.
Este comportamiento es equivalente, por las mismas razones, al observado en el exper-
imento 1. Por tanto, FQ-DRR es independiente del protocolo de transporte empleado.
FRED impone una cota cmax al nmero de paquetes que cada ujo puede tener
en la cola. Si un ujo intenta encolar ms de cmax paquetes, son descartados.
CAPTULO 2. REVISIN DE LOS ALGORITMOS EXISTENTES 23
Dado que FRED mantiene contadores para cada ujo activo (es decir, para cada ujo
que tiene paquetes en la cola), se le considera un algoritmo de estado parcial.
Resultados experimentales
1200 Phi0
Phi1
1000 Total
800
r (Kb/s)
600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.12: Consumo de canal como funcin del tiempo para dos ujos UDP CBR emple-
ando FRED.
1200 Phi0
Phi1
1000 Total
800
r (Kb/s) 600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.13: Consumo de canal como funcin del tiempo para un ujo UDP CBR y un ujo
TCP FTP empleando FRED.
Experimento 2 En este caso, FRED presenta una excesiva proteccin del ujo 1 ,
es decir, del ujo T CP , que cuenta con mecanismos de deteccin de congestin y por
0
tanto se adapta a las condiciones de la red. Segn se observa en la gura 2.13, el ujo
en el intervalo t2 recibe una asignacin considerablemente ms baja que su derecho de
uso mximo, y por tanto, mucho ms baja que su demanda. El resultado de la medicin
indica que las asignaciones son a0 = 174.83 Kb/s y a1 = 824.81 Kb/s. Esto se debe
principalmente al control ejercido por FRED en el nmero mximo de paquetes que
cada ujo puede mantener en la cola cmax , y en la sancin realizada a los ujos que
intentan exceder este lmite. Es este sentido, FRED es un algoritmo til si el objetivo
deseado no es lograr una asignacin justa del canal sino limitar y castigar los ujos que
intentan usar ms de su derecho de uso mximo.
Dado que este comportamiento diere sustancialmente del presentado en el exper-
imento 1, FRED no es independiente del protocolo de transporte.
CSFQ opera de la siguiente manera: cuando un paquete llega a uno de los enruta-
dores de borde, ste determina a qu ujo pertenece y calcula su tasa de transferencia
promedio (por tanto, los enrutadores de borde mantienen informacin del estado de
todos los ujos, en contraposicin a los enrutadores de nucleo que como el nombre de
CSFQ lo indica, no mantienen informacin del estado en ellos). Los enrutadores de
borde marcan los paquetes que reciben con esta informacin. Por otro lado, todos los
enrutadores (de borde y ncleo) calculan la tasa promedio total a la que reciben y acep-
tan paquetes (donde aceptarlos signica que no son descartados probabilsticamente,
segn explicaremos a continuacin). Con esta informacin, as como con la capacidad
total del canal, los enrutadores estiman , la porcin justa del enlace que debe tener
cada ujo. Cada vez que un paquete es recibido por un enrutador (de borde o de n-
cleo), es descartado con probabilidad proporcional al exceso de la tasa de llegada del
mismo (almacenada en la etiqueta colocada por los enrutadores de ncleo al paquete)
sobre .
Dado que tras atravesar varios enrutadores es probable que los ujos hayan perdido
varios paquetes, la etiqueta de los paquetes no es una medida adecuada de la tasa de
recepcin de estos paquetes; por tal motivo, los enrutadores de ncleo la reescriben
como el mnimo entre y el valor actual de la etiqueta.
El costo de CSFQ es relativamente bajo, excepto en los enrutadores de borde, en los
que tiene lugar la clasicacin y clculo de tasas de llegada por ujo. En los enrutadores
de borde CSFQ se considera aproximadamente igual de costoso que FRED y en los de
ncleo, cercano a RED.
Dado que CSFQ requiere para poder ser implementado la modicacin de la pila
de protocolos TCP/IP con el n de introducir el marcado de paquetes con la tasa de
llegada actual, y por tanto su despliegue en una red requiere del cambio de todos los
enrutadores de la misma, no presentaremos resultados experimentales del mismo en
este documento. As mismo, no lo consideraremos para comparacin con los dems
algoritmos.
CAPTULO 2. REVISIN DE LOS ALGORITMOS EXISTENTES 26
Resultados experimentales
1200 Phi0
Phi1
1000 Total
800
r (Kb/s)
600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.14: Consumo de canal como funcin del tiempo para dos ujos UDP CBR emple-
ando CHOKe.
1200 Phi0
Phi1
1000 Total
800
r (Kb/s) 600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.15: Consumo de canal como funcin del tiempo para un ujo UDP CBR y un ujo
TCP FTP empleando CHOKe.
Resultados experimentales
1200 Phi0
Phi1
1000 Total
800
r (Kb/s)
600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.16: Consumo de canal como funcin del tiempo para dos ujos UDP CBR emple-
ando RED-PD.
1200 Phi0
Phi1
1000 Total
800
r (Kb/s) 600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.17: Consumo de canal como funcin del tiempo para un ujo UDP CBR y un ujo
TCP FTP empleando RED-PD.
Resultados experimentales
1200 Phi0
Phi1
1000 Total
800
r (Kb/s)
600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.18: Consumo de canal como funcin del tiempo para dos ujos UDP CBR emple-
ando RED-NB.
441.65Kb/s. Por tanto, para este experimento en particular, RED-NB logra una asig-
nacin ms justa que varios de los algoritmos arriba presentados, aunque no supera a
RED-PD.
1200 Phi0
Phi1
1000 Total
800
r (Kb/s)
600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 2.19: Consumo de canal como funcin del tiempo para un ujo UDP CBR y un ujo
TCP FTP empleando RED-NB.
Algoritmo J1 ( %) J2 ( %)
FIFO 96.84 79.67
FQ 100.00 100.00
SFQ 75.26 69.58
FQ-DRR 100.00 100.00
FRED 76.38 70.29
CHOKe 94.23 94.44
RED-PD 99.76 73.24
RED-NB 98.74 99.81
Tabla 2.3: ndice de justicia de Jain calculado para cada experimento y algoritmo de la
seccin 2.3.
De la tabla es claro que los algoritmos que mejor desempeo presentan en trminos
del ndice de justicia de Jain son FQ, FQ-DRR y RED-NB. Sin embargo, como se
indic previamente, RED-NB presenta un comportamiento no deseado pues no hace
uso pleno de la capacidad del canal en el experimento 2.
Por otro lado, FQ-DRR hace uso de una funcin de hash para mapear cada paquete
entrante a la cola correspondiente. Esto lo hace susceptible a colisiones cuando el
nmero de ujos que circulan por la red es relativamente alto.
Experimento 3
Para ilustrar esta debilidad de FQ-DRR, diseamos un experimento adicional, que
denominaremos experimento 3, y que pretende estudiar el comportamiento de los QA
en presencia de un nmero considerable de ujos con tasas de transmisin y tamaos
de paquetes diferentes. La topologa de red es similar a la mostrada en la gura 2.1, sin
CAPTULO 2. REVISIN DE LOS ALGORITMOS EXISTENTES 34
embargo, en este caso no hay slo dos nodos transmitiendo y dos nodos recibiendo; en
su lugar, el nmero de transmisores y de receptores es N = 64. Seai = 1, 2, 3, ..., 128
un ndice del nmero de nodo. Haciendo uso de la misma notacin, el ujo i va del
nodo SRCi al nodo DST i, y en todos los casos se trata de una transmisin sobre UDP
con tasa constante (CBR). Los parmetros del ujo i se muestran en la tabla 2.4:
2. Los algoritmos que emplean mltiples colas de salida (FQ, SFQ, FQ-DRR) re-
quieren un nmero arbitrario de colas (FQ requiere una para cada ujo), o realizan
mapeos a un nmero jo de colas propensos a colisiones (casos SFQ y FQ-DRR)
que causan una asignacin injusta de acuerdo con el ndice de Jain. Por tanto, es
deseable disear un algoritmo que cuente con una nica cola de salida.
35
CAPTULO 3. DISEO DEL NUEVO ALGORITMO 36
4. El algoritmo a disear debe hacer uso mximo de la capacidad del enlace disponible.
Es decir, no debe presentar un comportamiento como el exhibido por RED-NB
en el experimento 2.
el paquete llega al nodo, y la salida, que tiene lugar cuando el paquete deja el mis-
mo. Algoritmos como RED o CHOKe slo dieren de FIFO en el ingreso, pues son
ejecutados en la llegada, pero la salida se realiza en el orden en que se encuentran los
paquetes en la cola. Por otro lado, algoritmos como FQ, FQ-DRR o SFQ operan tanto
en el ingreso (clasicacin de paquetes y mapeo a la cola correspondiente) como en el
egreso (determinacin de qu cola ser atendida a continuacin). Desde este punto de
vista, cada algoritmo de encolamiento cuenta con dos etapas, una de ingreso y otra de
egreso, tambin denominada de programacin o scheduling.
QOBQ fue diseado de manera que realice el trabajo en el ingreso a la cola; su egreso
es igual al de FIFO, que consiste en tomar el primer paquete de la cola y entregarlo a
la red, ms la actualizacin de la informacin de estado. Para operar, QOBQ mantiene
informacin de estado sobre: el uso total actual en bytes de la cola UT ; una estructura
O que mapea cada ujo al nmero de bytes de la cola empleados actualmente por el
mismo, y otra estructura Q que mapea cada ujo a una lista de apuntadores a los
1
paquetes de cada ujo que estn en la cola de salida ; y la fraccin justa FS (denida
ms abajo) de uso actual de la cola. Adicionalmente, QOBQ cuenta con un parmetro
jo, denominado el umbral de congestin o (cth ), que es una fraccin entre 0 y 1.
La gura 3.1 muestra el diagrama de ujo de la etapa de ingreso de QOBQ. La
etapa de egreso no es mostrada, dado que consiste simplemente en tomar el primer
paquete de la cola y retransmitirlo. A continuacin describimos cada paso:
1 La
implementacin ms sencilla de estos dos mapeos es un arreglo, empleando las direcciones IP del
transmisor y receptor como ndice
CAPTULO 3. DISEO DEL NUEVO ALGORITMO 38
Llegada
paquete
Calcular FS
Clasificar
SI Congestionado?
NO NO
Ambicioso?
SI
Cabe en NO
cola?
Descartar
SI Robo de
buffer
Aceptar
Fin
Los algoritmos que ms inuencia tuvieron en el diseo de QOBQ son FRED y FQ,
presentados en el captulo 2. A continuacin sealamos los elementos comunes y las
diferencias.
1. FRED limita el uso de la cola contando el nmero de paquetes del ujo. QOBQ,
por su parte, limita a partir del nmero de bytes. Esto previene dar tratamientos
similares a ujos con tamaos de paquetes muy diferentes.
Por otro lado, tanto FRED como QOBQ requieren contar con informacin de estado
por cada ujo activo (ujo con paquetes en el enrutador). Por tanto, en trminos de
cantidad de informacin de estado, QOBQ y FRED son similares.
calculada para aproximar un round robin bit a bit. En su lugar, estas estructuras se
emplean para simplicar la realizacin de robo de buer; una vez identicado el ujo
que ms bytes de la cola se encuentra ocupando, basta acceder a su cola y eliminar el
primer paquete. Si no se contara con estas colas por ujo, sera necesario recorrer la cola
de salida hasta encontrar un paquete del ujo correspondiente para poderlo eliminar.
Por tanto, QOBQ es ms econmico en trminos de tiempo de cmputo que FQ en la
etapa de egreso de paquetes, dado que no requiere calcular cul debe ser el siguiente
paquete a transmitir para aproximar el round robin bit a bit. Esto puede evidenciarse
ms claramente comparando los diagramas de ujo de FQ y QOBQ, como se muestra
en la gura 3.2.
Retransmitir Fin
O(1)
Fin
Figura 3.2: Diagrama de ujo para las etapas de ingreso y egreso de FQ (izquierda) y QOBQ
(derecha).
que los dems pasos de la etapa de ingreso son de complejidad constante, es claro que
en la etapa de ingreso, FQ y QOBQ tienen complejidades OF Q (max(c(n)), O(d(n)))
y OF Q (max(c(m)), O(d(m))). As mismo, y teniendo en cuenta que m n, podemos
armar que la complejidad de FQ es mayor o, a lo sumo, igual a la de QOBQ en la
etapa de ingreso.
Por otro lado, en la etapa de egreso, la complejidad de FQ es O(log(n)), con n el
nmero de colas de salida (que para FQ es igual al nmero de ujos que atraviesan la
red), correspondiente al acceso y extraccin del primer elemento de una estructura de
tipo montculo o heap [16, 31], empleada como implementacin de una cola de prioridad
o priority queue. En contraste, en QOBQ, el egreso consiste simplemente en obtener
el primer elemento de la cola y retransmitirlo en la red, operacin de complejidad
constate.
Teniendo en cuenta lo anterior, resulta claro que desde el punto de vista terico,
QOBQ es similar a FRED en trminos de cantidad de informacin de estado que
requiere, y superior a FQ en trminos de complejidad computacional. En el siguiente
captulo comparamos desde el punto de vista experimental el desempeo de QOBQ
frente a los dems algoritmos.
CAPTULO 4
COMPARACIN DE RESULTADOS
EXPERIMENTALES DEL NUEVO
ALGORITMO DE ENCOLAMIENTO CON
LOS EXISTENTES
Con el algoritmo denido segn se indic arriba, se realizaron los experimentos de-
scritos en la seccin 2.2 empleando QOBQ en el enlace L2 . A continuacin presentamos
los resultados experimentales.
4.1. Experimento 1
La gura 4.1 presenta la asignacin ai recibida por cada ujo como funcin del
tiempo en el experimento 1. En el intervalo de inters t2 , la medicin de las asigna-
ciones determina un ndice de Jain de J = 99.97 %, lo que es evidente en la gura 4.1
teniendo en cuenta que ambos ujos emplean una porcin del canal aproximadamente
igual a su derecho de uso mximo.
43
CAPTULO 4. COMPARACIN DE RESULTADOS EXPERIMENTALES 44
1200 Phi0
Phi1
1000 Total
800
r (Kb/s) 600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 4.1: Consumo de canal como funcin del tiempo para dos ujos UDP CBR empleando
QOBQ.
Esto evidencia que el mecanismo de limitacin del nmero de bytes de cada ujo
en la cola, unido con la dinmica de robo de buer, efectivamente logra una asignacin
justa de la capacidad del enlace y evita que ujos ambiciosos ocupen la mayora de la
cola.
4.2. Experimento 2
Para el experimento 2, cuyo resultado se ilustra en la gura 4.2, la medicin de las
asignaciones logradas por cada ujo nos permite calcular que para el caso de compe-
tencia de un ujo TCP y un ujo UDP, el ndice de Jain toma un valor de 99.38 %. Por
tanto, el comportamiento de QOBQ no depende fuertemente del protocolo de trans-
porte empleado, lo que es consistente con la consideracin de diseo 6.
CAPTULO 4. COMPARACIN DE RESULTADOS EXPERIMENTALES 45
1200 Phi0
Phi1
1000 Total
800
r (Kb/s) 600
400
200
0
0 10 20 30 40 50 60 70 80 90100
t (s)
Figura 4.2: Consumo de canal como funcin del tiempo para un ujo UDP CBR y un ujo
TCP FTP empleando QOBQ.
La diferencia observada en las guras para cada experimento se explica por los
mecanismos de control de ujo y congestin de TCP. En efecto, QOBQ protege al
ujo TCP hasta que este intenta acceder a una fraccin de la cola que supera a F S,
momento en el que el enrutador decide empezar a descartar paquetes de dicho ujo.
Consecuentemente, el emisor SRC1 opta por transmitir a una tasa ms baja. Esto
genera un menor consumo de la cola por parte de 1 , y el espacio cedido es tomado
por 0 .
4.3. Experimento 3
Con el n de comparar QOBQ con FQ-DRR, ejecutamos el experimento 3 (ver la
seccin 2.3.14) empleando QOBQ como algoritmo de encolamiento en L2 . La medicin
de las asignaciones obtenidas por cada ujo determina un valor para el ndice de justicia
de Jain de J = 91.27 %, lo que muestra que el desempeo de QOBQ no se ve impactado
tan negativamente como el de DRR, dado que no emplea funciones de hash, y por
tanto, bajo un nmero elevado de ujos, no se presentan colisiones en el mecanismo de
clasicacin.
47
BIBLIOGRAFA
http://www.cisco.com/
[1] Quality of service - cisco website, retrieved 2010-03-05.
en/US/docs/internetworking/technology/handbook/QoS.html.
[2] C. Aurrecoechea, A. T. Campbell, and L. Hauw. A Survey of QoS Architectures.
Multimedia Systems, 6(3):138151, 1998.
[3] D. Hutchison, G. Coulson, A. Campbell, and G. Blair. Quality of Service Man-
agement in Distributed Systems, chapter 11. M. Sloman Ed., 1994.
[4] G. Coulson, G. Blair, N. Davies, and N. Williams. Extensions to ANSA for Mul-
timedia Computing. Computer Networks and ISDN Systems, 11(25), 1992.
[5] L. Hazard, F. Horn, and J. B. Stefani. Towards the Integration of Real Time and
QoS Handling in ANSA. Technical report, CNET, June 1993.
[9] S. Floyd and V. Jacobson. Random Early Detection for Congestion Avoidance.
IEEE transactions on networking, 1(4):397413, 1993.
48
BIBLIOGRAFA 49
[10] K. Seal and S. Singh. Loss Proles: A Quality of Service Measure in Mobile
Computing. J. Wireless Networks, 2(1), 1996.
[11] W. A. Doeringer, D. Dykeman, M. Kaiserwerth, H. Rudin, and R. Williamson.
A Survey of Lightweight Transport Protocols for High Speed Networks. IEEE
Trans. on Commun., 3(11), 1990.
[12] Lixia Zhang, Stephen Deering, and Deborah Estrin. RSVP: A New Resource
ReSerVation Protocol. IEEE network, 7(5):8?, 1993.
[13] P. Paul and S. V. Raghavan. Survey on QoS Routing. In Proc. 15th International
Conference on Computer Communications, 2002.
[14] A. Demers, S. Keshav, and S. Shenker. Analysis and Simulation of a Fair Queueing
Algorithm. In SIGCOMM'89, 1989.
[15] J. Nagle. On Packet Switches with Innite Storage. IEEE transactions on com-
munications, 35, 1987.
[16] P. McKenney. Stochastic Fairness Queueing. Internetworking: Research and Ex-
perience, 2:113131, 1991.
[17] M. Shreedhar and G. Varghese. Ecient Fair Queueing Using Decit Round
Robin. In SIGCOMM'95, pages 231242, 1995.
[18] D. Lin and R. Morris. Dynamics of Random Early Detection. In SIGCOMM'97,
pages 127137, September 1997.
[22] R. Pan, B. Prabhakar, and K. Psounis. CHOKe : A stateless active queue man-
agement scheme for approximating fair bandwidth allocation. In Infocom 2000,
March 2000.
[23] T. Wang, I. Matta, and A. Bestavros. Eciently and Fairly Allocating Bandwidth
at a Highly Congested Router. Technical Report BUCS-TR-2003-27, Computer
Science Department - Boston university, 2003.
BIBLIOGRAFA 50
[25] T. Lan, D. Kao, M. Chiang, and A. Sabharwal. .an axiomatic theory of fairness
for resource allocation". In Proceedings of IEEE INFOCOM, 2010.
[26] The Network Simulator - ns-2. http://www.isi.edu/nsnam/ns/.
[27] S. Keshav. REAL Network Simulator. http://www.cs.cornell.edu/home/
skeshav/real/overview.html.
[28] W. Stevens. Request for Comments (RFC) 2001: TCP Slow Start, Congestion
Avoidance, Fast Retransmit, and Fast Recovery Algorithms, January 1997.
[29] K. Parekh. A Generalized Processor Sharing Approach to Flow Control in In-
tegrated Services Networks. PhD thesis, Massachusetts Institute of Technology,
February 1992.
[30] Rade Stanojevic and Robert Shorten. Beyond choke: stateless fair queueing. In
NET-COOP'07: Proceedings of the 1st EuroFGI international conference on Net-
work control and optimization, pages 4353, Berlin, Heidelberg, 2007. Springer-
Verlag.