Noticias

Aprende cómo funciona el QoS y control de ancho de banda

Con la creciente incorporación de Internet y las redes a nuestra vida en todas sus facetas, se han generado diversas clases de aplicaciones, y con ellas existen en la actualidad múltiples tipo de tráfico que demandan diferente ancho de banda para circular por nuestras redes y por Internet. Puesto que siempre exigimos al máximo la capacidad de nuestra red, especialmente la conexión a Internet, es que termina siendo importante controlar el uso que se hace de ese “factor escaso”, para administrarlo adecuadamente según nuestras necesidades. Para estos fines, diversas herramientas que hasta hace poco estaban reservadas a entornos corporativos, ahora se hacen accesibles como funcionalidades nuevas de nuestros routers domésticos, por lo que resulta interesante comprender en general cómo funcionan para poder obtener el máximo provecho de ellas.

Vemos frecuentemente una función denominada QoS, una sigla por Quality of Service o Calidad de Servicio, que se refiere a diversos mecanismos destinados a asegurar el flujo ágil de datos en la red, valiéndose de mecanismos de asignación de prioridades a diferentes tipos de tráfico que requieran tratamiento más especial. Manejaremos el concepto de QoS como diferenciado y comprensivo de Control de Ancho de Banda, o sea, este último como una parte dentro del Quality of Service.

El propósito de este artículo es hacer una breve descripción de los elementos principales de estos sistemas para comprender su funcionamiento general y que, puestos a configurar nuestro router, abordemos esa tarea mejor posicionados para poder obtener el mejor rendimiento que aquel puede darnos.

Elementos

Factor Escaso

La idea subyacente detrás de todos estos sistemas de QoS es un déficit en el ancho de banda necesario para lograr lo que queremos en cuanto a la velocidad, la latencia o el “jitter” (variaciones en la latencia). Si no existiera esta escasez (en nuestra red, en nuestra conexión o en otras redes por las que transiten nuestros paquetes) y el ancho de banda fuera ilimitado, todos los tipos de tráfico obtendrían sobradamente lo que necesitan para lograr su calidad y no estaríamos hablando de la manera de lograr una mejor calidad de servicio.

Privilegios

Debido a que este déficit no puede ser remediado en el momento, nos vemos obligados a definir diferentes grados de importancia o prioridad para diferentes tipos de tráfico, de manera que un tipo resulte privilegiado en perjuicio de otro tipo. Siempre se intentará minimizar este detrimento para que sea lo menos perceptible posible y si es muy notorio, que solamente incida sobre los tipos de tráfico donde menos nos moleste.

notasqos1

Por ejemplo, si estoy sirviendo un archivo en una red P2P que me consume gran parte del ancho de banda de subida de mi conexión y debo iniciar una llama con mi teléfono IP que corre sobre la misma conexión a Internet, entonces pretendo que mi llamada no tenga problemas de conexión, aunque esto implique que el archivo que estoy subiendo se demore algo más de lo previsto. Esto me lleva a decidir que mi tráfico VoIP debe tener mayor privilegio que mi tráfico P2P. Otro ejemplo: si estoy realizando una descarga grande de datos hacia mi PC u otra de mi red, y necesito revisar el correo, pretendo que la operación de correo resulte fluida aunque esto conlleve ralentizar la descarga. Definir qué tráfico deseamos priorizar en desmedro de qué otro, es la definición política que debemos hacer para luego poner manos a la obra con lo técnico.

Clasificación

Para poder asignar los privilegios o hacer otro tipo de operaciones con determinado tráfico, debe haber una manera inequívoca de clasificarlo, en el sentido de catalogarlo e identificarlo dentro de toda la maraña de tráfico que pasa por el router. Identificar correctamente por parte del router el tráfico que nos interesa es una operación vital para luego poder hacer que se le otorgue o se le quite prioridad. Todos los paquetes que cumplen con determinado criterio serán considerados como pertenecientes a una determinada “Clase” de tráfico y no a otra.

En general se definen varias clases y se especifica qué criterios se usarán para incluir cada paquete en una u otra. La cantidad de criterios que pueden usarse para clasificar e identificar el tráfico es enorme, aunque depende de cada router. El tráfico de red está basado siempre en un flujo de paquetes de datos y los clasificadores siempre analizan ciertas características de estos paquetes en forma individual, clasificándolos uno por uno. No es propósito de este artículo ahondar en estos detalles, pero vale mencionar como ejemplos de criterios por los que se identifica el tráfico: MAC Address, IP, o puerto, tanto de origen como de destino, protocolo, tamaño del paquete, boca física por la que ingresa al router, SSID (en caso de routers con múltiples SSIDs), diversas marcas que trae el paquete que le pudieron haber asignado otros sistemas por los que ha pasado previamente, como identificadores de VLAN o de prioridad, etc.

Acciones

Una vez que el paquete ha sido clasificado, el router le asigna el tratamiento que le hemos configurado para la clase específica a la que resultó perteneciendo el paquete. La principal acción que realiza el router a los efectos de controlar el ancho de banda es meter el paquete en una de sus “colas” de salida. Debido a que el ancho de banda de salida del que dispone el router para enviar los paquetes es limitado, lo que hace es planificar la salida obligando a los paquetes a formar diversas filas o colas para poder salir, y todos deben salir por la misma “puerta” (la cola de transmisión de la interface de salida).

Por cada Interface de Salida (luego veremos que solamente se puede controlar el tráfico que “sale”) el router tiene predefinidas estas diferentes colas de salida que hace avanzar a distinta velocidad, enviando los paquetes uno a uno, utilizando diversos esquemas de priorización para cada cola, con lo que logra que los diferentes “flujos” se muevan a diferente ritmo, en un proceso que tiene por objetivo asignar el ancho de banda escaso a los flujos más privilegiados. Este proceso es conocido como Gestión del Ancho de Banda, Bandwidth Shapping o Bandwidth Management y son la parte principal de los sistemas de Quality of Service. En general, la configuración del router nos permite elegir una “prioridad” para cada clase que definimos y con eso se encarga de meter el paquete en la cola que cumpla nuestra prioridad.

notasqos2

Con el mayor poder de procesamiento que se logra con el avance de la tecnología, algunos routers han agregado, como parte integral del proceso de QoS, algunas otras funciones, además de la gestión de ancho de banda mencionada, considerando que gran parte del trabajo pesado (que es clasificar los paquetes de acuerdo a los diversos criterios) ya está hecho. De esta forma, se aprovecha para “marcar” el paquete de diversas maneras que sean interpretadas por las siguientes redes y dispositivos por los que vaya a transitar el paquete cuando salga del router. No ahondaremos en los distintos protocolos involucrados, pero valga mencionar algunas marcas comunes como las de TOS (Type of Service) y DSCP (Differentiated Services Code Point) en la cabecera IP de los paquetes, y marcas VLAN en la cabecera Ethernet.

Estas marcas tienen como objetivo el de establecer prioridades diferenciadas en las redes subsiguientes, para que esos otros dispositivos traten al paquete de la misma manera que lo ha hecho nuestro router, o establecer condiciones especiales de enrutamiento. Por supuesto, cuando nuestro router envía paquetes a las redes de nuestros ISPs en conexiones domiciliarias domésticas, éstos ignoran completamente estas marcas y les asignan sus propia prioridad en vez de respetar la que nosotros pretendemos, por lo que estas marcas terminan cumpliendo su función circunscriptas solamente a redes corporativos o en dispositivos que nosotros mismos configuremos en nuestras propias redes.

Límite de potestad del router

Es muy importante remarcar que el router solamente puede actuar (lo que sea que vaya a hacer con el paquete) sobre paquetes que ya ha recibido, independientemente de si los recibió desde la LAN o desde Internet o WAN. Comprender esto es importante para poder configurar los sistemas de QoS porque significa que el router nunca puede controlar el tráfico que recibe, sino el que envía, sin importar por cuál interface (WAN o LAN) lo recibe ni por cuál lo envía. Hay una errónea tendencia a asumir que el concepto de “recibido” equivale a “proveniente de Internet” y que “enviado” significa “enviado hacia Internet”, lo que, desde el punto de vista del router, no es completamente cierto. Para verlo gráficamente analicemos el siguiente esquema. Asumiremos una conexión ADSL, pero es igual para cable, fibra o cualquier tecnología.

Por los puntos 1 y 2 el router envía tráfico sobre los tramos B y D, y desde el punto de vista del router, ambos son “enviados”, siendo el B hacia nuestra red interna o LAN y el D hacia Internet o WAN. El segmento D es el que conocemos comúnmente como “Upstream” o Subida. El tráfico que recorre el segmento A es el que el router “recibe” proveniente de Internet, y el que recorre el segmento C es el que el router “recibe” proveniente de nuestra LAN.

El router no puede controlar lo que ocurre en A ni lo que ocurre en C, porque no es él, sino otro aparato, quien toma la decisión de transmitir y ocupar el ancho de banda. El router solamente tiene poder de decisión en los puntos 1 y 2, controlando el ancho de banda que se ocupa en los segmentos B y D. O sea, solamente puede controlar lo que él mismo transmite (B para la interface LAN; D para la interface WAN), es decir, únicamente el tráfico que fluye «hacia afuera» del router, ya que estos son los únicos casos donde el mismo router toma las decisiones de transmitir o no, o usar determinada velocidad. Cuando asignamos el ancho de banda disponible para cada una de las interfaces, siempre nos estamos refiriendo a B o a D, nunca a A o C, simplemente porque estos dos últimos son segmentos que están fuera del control del router.

notasqos3

Cuando intentamos regular lo que llamamos la velocidad de DESCARGA del PC, donde están involucrados los segmentos A+B, lo hacemos regulando el caudal en el punto 1, o sea en el punto donde el tráfico SALE del router (el único punto donde el router es soberano en ese sentido del tráfico). En ese punto, según los criterios fijados para el manejo de ancho de banda, el router puede, para cada paquete, decidir entre FORWARD (enviar), DELAY (demorar) o DROP (descartar). Puede decidirse por DELAY si es que tiene capacidad de almacenamiento libre para el paquete, ya que debe mantenerlo en memoria hasta el momento de permitirle salir. Si no puede almacenarlo, ya que su capacidad de retenerlo es muy poca, debe decidirse por DROP (descartar).

El problema que se presenta en este momento es que para el momento cuando el router puede tomar la decisión de descartar el paquete (porque si no, se excede del ancho de banda asignado al destinatario, y tampoco puede almacenarlo), el ancho de banda que a nosotros nos interesa optimizar, por lo escaso, que es el segmento A (no el del segmento B) ya ha sido ocupado cuando el DSLAM envió el paquete, y si el router lo descarta, lo que habremos logramos es que el paquete tenga que volver a ser enviado desde el DSLAM, volviendo a ocupar el ancho de banda de ese segmento crítico (el A). Aquí podemos hacer una consideración especial. Si el tráfico es de tipo TCP, sabemos que el destinatario deberá enviar una confirmación (ACK) al emisor a medida que va recibiendo los envíos, y que si el emisor no recibe la confirmación de paquetes enviados anteriormente (porque el destinatario no los recibió ya que el router los descartó), entonces volverá a enviar los mismos paquetes otra vez (volviendo a ocupar el ancho de banda escaso con la misma información), solamente que se habrá demorado la recepción de los mismos por parte del destinatario, pero sin ahorro de tráfico en el segmento crítico, sino todo lo contrario.

Sin embargo, y debido al comportamiento propio del protocolo TCP (que no tiene nada que ver con el manejo del ancho de banda), puede ocurrir que el emisor haga un alto en el envío del tráfico debido a la demora en la recepción de las confirmaciones de recepción, por parte del destinatario, de los envío previos (esto depende de muchos factores, entre ellos el valor RWIN del protocolo TCP), haciendo que se produzca una interrupción en el flujo de datos antes de que reenvíe los datos no confirmados. Esta pequeña demora en reenviar el tráfico hará que se genere un cierto espacio o ancho de banda disponible para otros tráficos, y constituye una manera INDIRECTA de lograr cierto efecto en el segmento A accionando sobre el segmento B, pero es una manera muy poco fiable, ineficiente y muy cara en términos de ancho de banda, puesto que paquetes que ya habían sido enviado y consumieron en su momento ancho de banda, han sido descartados por el router y ahora deben ser enviados nuevamente, consumiendo ancho de banda otra vez. En resumen, se logra que el destinatario reciba la información más espaciada en el tiempo en el tramo B, pero a expensas de multiplicar el tráfico total en el segmento A, creando la ilusión de que su ancho de banda ha sido optimizado.

Tratándose de tráfico que no es transportado con el protocolo TCP, sino principalmente con UDP, no rige el concepto de “manejo indirecto” mencionado en el párrafo anterior, ya que el protocolo UDP es más rudimentario y no tiene las características de recuperación mencionadas. Es importante mencionar que varios importantes protocolos de streaming se transportan en base a UDP, lo que implica que el manejo inadecuado del ancho de banda puede ocasionar deficiencias en el streaming además de no ahorrar absolutamente nada en el consumo de ancho de banda.

Cuando se trata de regular el UPLOAD, o sea la subida desde el PC hacia Internet, es cuando el mecanismo de manejo de ancho de banda del router es más eficiente, ya que todos los conceptos mencionados para el tráfico de bajada son aplicables al tráfico de subida. En este caso, el segmento crítico para nosotros es el D, que puede ser fácilmente controlado por el router debido a la soberanía que tiene en el punto 2, ya que en ese punto, todo depende de él y no de terceros. Por otra parte, la característica de asimetría de nuestras conexiones domésticas, hacen que el segmento D siempre tenga mucho menos ancho de banda que todos los demás, por lo que resulta particularmente importante usar correctamente el ancho de banda disponible. Esto es así hasta el punto de que gran cantidad de sistemas de QoS en los routers domésticos solamente contemplan el manejo de este segmento. Aquí es particularmente importante recordar el funcionamiento bidireccional del protocolo TCP, que hace uso importante también del canal de subida aunque únicamente se esté realizando una descarga. A diferencia del modelo del tráfico de bajada, en este caso no nos importa que la regulación del ancho de banda del segmento D sea hecha con sobrecosto para el segmento C, ya que este último tiene un ancho de banda muy superior al D y podemos permitirnos ese «desperdicio».

Aquí faltaría representar la interface wireless WLAN, que los routers WiFi incorporan como tercera interface física y tiene su propio ancho de banda, pero valga mencionar que se comporta exactamente igual que la LAN y que la WAN en lo que se refiere a qué tráfico es el que se controla, o sea, el que SALE desde el router por WiFi.

En resumen, para poder diseñar un esquema eficiente de QoS, debemos asimilar el concepto de que el router solamente puede controlar el tráfico que él mismo envía, o sea el que SALE del router por cualquiera de sus interfaces, no el que recibe o ingresa proveniente desde otros lados.

Conclusión

Debido al factor escaso que resulta ser el ancho de banda disponible en diversas condiciones, se han ideado los sistemas de QoS que incorporan los routers modernos para poder paliar de alguna forma esta escasez. Estos sistemas requieren la definición de privilegios para ser asignados a diferentes tipos de tráfico. Para poder asignar estos privilegios diferenciados, el router debe clasificar los paquetes de tráfico en diferentes categorías o clases a las que otorgará diferente ancho de banda y marcará de diversa forma únicamente en el momento en que esos paquetes salen del router.

El artículo Aprende cómo funciona el QoS y control de ancho de banda se publicó en RedesZone.

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.