Encolamiento
por espera equitativa ponderada (WFQ - Weighted Fair Queuing)
Este
método de encolamiento clasifica paquetes en flujos. Un flujo es un conjunto de
paquetes que tienen la misma dirección IP origen y destino y los mismos números
de puerto tanto origen como destino. Dado que WFQ es basado en flujos, cada
flujo utiliza diferentes colas FIFOS separadas, el número de colas alcanza las
4096 colas por interface.
Es
un método automatizado que provee una justa asignación de ancho de banda para
todo el tráfico de la red. Como se mencionó, WFQ ordena el tráfico en flujos
utilizando una combinación de parámetros. Por ejemplo, para una conversación
TCP/IP, se utiliza el protocolo IP (dirección origen y destino), etc. Una vez
distinguidos estos flujos el router determina cuáles son de uso intensivo o
sensible al retardo, priorizándolos y asegurando que los flujos de alto volumen
sean empujados al final de la cola, y los volúmenes bajos, sensibles al retardo,
sean empujados al principio de la cola.
Esta
técnica es apropiada en situaciones donde se desea proveer un tiempo respuesta
consistente ante usuarios que generan altas y bajas cargas en la red, ya que se
adapta a las condiciones cambiantes del tráfico en ésta.
A
manera de resumen, mostramos las características más importantes:
WFQ tiene algunas limitantes de escalamiento, ya que la implementación del
algoritmo se ve afectada a medida que el tráfico por enlace aumenta, colapsa
debido a la cantidad numerosa de flujos que analizar. CBWFQ fue desarrollada
para evitar esas limitaciones, tomando el algoritmo de
WFQ y expandiéndolo, permitiendo la definición de clases definidas por el
usuario, que permiten un mayor control sobre las colas de tráfico y asignación
de ancho de banda.Algunas veces es necesario garantizar una determinada tasa de transmisión para cierto
tipo de tráfico, lo cual no es posible mediante WFQ pero sí con CBWFQ. Las
clases que son posibles implementar con CBWFQ pueden ser determinadas según
protocolo ACL, valor DSCP o interfaz de ingreso. Cada clase posee una cola
separada y todos los paquetes que cumplen con el criterio definido para una
clase en particular son asignados a dicha cola. Una vez que se establecen los criterios
para las clases, es posible determinar cómo los paquetes pertenecientes a dicha
clase serán manejados. Si una clase no utiliza su porción de ancho de banda,
otras pueden hacerlo. Se pueden configurar específicamente el ancho de banda y
el límite de paquetes máximos (o profundidad de cola) para cada clase. El peso
asignado a la cola de la clase es determinado mediante el ancho de banda
asignado a dicha clase.