Identificación de indicadores de rendimiento de la red
Para obtener un análisis fiable sobre el rendimiento es necesario escoger unos buenos Indicadores que aporten Información útil para poder tomar decisiones en base a ellos.
Para el caso de la red, de los muchos posibles indicadores, los más utiliza dos pueden ser: la capacidad del canal, la utilización del canal, el retardo de extremo a extremo, la dispersión del retardo y la pérdida de paquetes y errores.
Capacidad nominal y efectiva del canal
Uno de los indicadores más importantes, en cualquier sistema físico, es el de la capacidad. En este caso servirá para saber la cantidad de Información que podrá utilizarse.
Capacidad nominal del canal
La capacidad nominal de un medio de transmisión es la máxima cantidad de datos transmitidos por unidad de tiempo.
La unidad en que suele medirse es en bits por segundo, y sus múltiplos (kb/s, Mb/s, Gb/s, etc.), aunque hay otras unidades, como baudios, paquetes por segundo, etc.
Importante! El baudio es una unidad en desuso que mide el número de cambios de estado por unidad de tiempo. Hay sistemas que tienen más eficacia con menores cambios de estado. Pero es una unidad menos interesante que el bit/s.
Depende de muchas variables:
- Ancho de banda del medio. La naturaleza del medio impone restricciones físicas, y dentro de cada medio hay diversos tipos y categorías que imponen diferentes calidades. Al final cada categoría o tipo garantiza ciertos anchos de banda y presenta diferentes restricciones de uso. El medio puede ser:
-Cable:
–Fibra óptica
–Cobre
-Inalámbrico:
—Wifi
–Satélite
–Wimax, etc.
- Capacidad de procesamiento de la electrónica de control de los dispositivos de transmisión. Las tarjetas de red necesitan un tiempo para realizar su trabajo. Los repetidores, hubs, antenas, etc., aunque carecen de sistema operativo y no “piensan”, pueden necesitar un tiempo para procesar las señales.
- Eficiencia de los protocolos de acceso a redes. En el nivel inferior del modelo TCP/IP (capa de acceso a redes) se pueden encontrar muchos protocolos como Ethernet, Frame Relay, IEEE 802.11, ATM, etc. Cada uno de ellos introduce los datos en el medio de transmisión de una determinada manera que los diferencia, y que puede tener influencia en la capacidad del canal.
- Procedimientos de señalización y de codificación del canal. La señalización se refiere al método utilizado para representar un bit en el medio de transmisión. Puede ser uno o varios pulsos de luz, o eléctricos, muchas veces depende del medio de transmisión. La codificación consiste en el envío de bits extra de control además de los de Información útil. La manera como se hacen ambas cosas impacta sobre el rendimiento de la red.
- Procedimientos de compresión de datos. Muchos protocolos de acceso a red comprimen los datos para aprovechar mejor el ancho de banda. Unos métodos de compresión son más eficaces que otros, aunque pueden exigir más esfuerzo de cálculo para usarlos.
Importante! Cuando se transmiten datos por una red no se envían los bits tal cual. Dependiendo del sistema de codificación de señales, los bits de Información se codifican para poder establecer códigos de control que identifiquen eventos, como inicio de transmisión, fin de transmisión, posibles errores, etc. Por ejemplo, una codificación sencilla es la 4B/5B. Se debe tener en cuenta que a veces los términos señalización y codificación se utilizan como si fueran sinónimos.
Capacidad efectiva del canal
Podría decirse que la capacidad nominal es una medida teórica del máximo que se podría obtener en un determinado medio. Pero ese máximo teórico estará limitado por otros factores.
La capacidad efectiva será siempre una fracción de la capacidad nominal.
Se puede ver limitada por los siguientes elementos:
- Características de los dispositivos intermedios: la CPU (unidad central de proceso) del dispositivo, la memoria RAM, las interfaces, el dispositivo que debe realizar cálculos para tomar decisiones de envío de datos. Todos estos elementos introducen retardos en la transmisión. A esto se le llama Latencia.
- Carga adicional de procesamiento de las diversas capas (internet, transporte y aplicación): para construir la trama a enviar por la red los protocolos de las capas superiores deben procesar la Información e introducir sus datos de control. Hay protocolos que pueden “pesar” más que otros por introducir más datos de control.
- Eficiencia del Protocolo de transmisión: independientemente de la carga introducida, los protocolos de las capas superiores pueden ser más o menos eficientes por añadir ciertas funcionalidades. Es algo característico en los protocolos UDP y TCP, por ejemplo.
- Control de flujo: una característica por la que se aumenta o reduce la velocidad de transmisión en función de las necesidades del momento.
- Confiabilidad: por acuses de recibo se puede garantizar que los datos han llegado bien a su destino, y si no es así, se reenvían.
- Establecimiento de conexión: por la que se garantiza que receptor y emisor se ponen de acuerdo para transmitir.
- Enrutamiento: es una función del Protocolo IP por la que se envían los datos por el mejor camino posible.
Curiosidad! Los elementos intermedios de la comunicación, como routersy switches, introducen una cierta Latencia en la transmisión. Cuanto más “inteligente” es el dispositivo, mayor es la Latencia que produce (más decisiones puede tomar, más cálculos realizar, etc.) pero transmite Información con más eficacia.
Aplicación práctica
En una empresa de software se decidió cambiar todos los hubs de la red a sugerencia de un experto en redes, y sustituirlos por switches. A pesar de que los hub apenas producían efectos de Latencia se pudo comprobar que mejoró el rendimiento de la red. ¿A qué puede deberse esa aparente contradicción?
Solución:
Los switches son elementos intermedios que toman decisiones sobre el envío de los datos, a eso se debe su mayor Latencia frente a los hub.
Pero a su vez, las decisiones que toman les permiten mejorar los resultados de envío. Serán necesarias menos retransmisiones, se gestiona mejor el ancho de banda, etc. Todo eso al final mejora el rendimiento de la red.
Utilización del canal
El canal nunca va a alcanzar el máximo de su capacidad teórica. Por eso se establecen diversas métricas teniendo en cuenta esto, identificándose con el Indicador llamado “utilización del canal”.
La utilización del canal dará una idea de lo que realmente se está aprovechando de la capacidad total.
Este Indicador es crítico para planificar el crecimiento de la red:
- Se puede hacer un estudio de tendencia de utilización y ver si va a ser necesario en un futuro cercano aumentar el ancho de banda.
- También se puede observar si hay zonas donde la utilización alcance niveles excesivos, donde se pueden producir cuellos de botella. Para ello, el estudio de tendencias puede ir por zonas.
Al final se puede saber dónde y cuándo habrá que ampliar la velocidad de la red.
Se suele medir en bps (bits por segundo y sus múltiplos) aunque también se puede encontrar en pps (paquetes por segundo).
95-Percentil
Es el Indicador más usado para valorar el nivel de utilización del canal.
Se considera que de todos los valores de velocidad que se están obteniendo puede haber algunos que se deban a efectos puntuales del medio o a circunstancias difíciles de ponderar, como las señaladas en el apartado anterior.
Cuando se escoge el 95-Percentil, el 95 % de los valores de muestra están por debajo (a lo sumo igual) de ese valor, lo que quiere decir que se desechan el 5 % de los valores que están por encima de esa medida. Así se eliminan valores que pueden exceder mucho de lo normal, y se evita su influencia en los resultados de análisis.
Ejemplo de gráfico con el 95-Percentil marcado
Se considera que es una medida que da una idea del consumo estable de la red. Muchos proveedores de servicios de internet (ISP) lo utilizan como medida de facturación por consumos a sus clientes.
Retardo de extremo a extremo
Es el tiempo transcurrido entre que se transmite un paquete desde el origen hasta el destino. También se le llama Latencia.
Recordemos! Los diferentes dispositivos de la red presentan diversas latencias, muchas veces debidas a las tareas que deben realizar para enviar los datos.
Muchas veces se considera igual en ambos sentidos, pero no tiene por qué, por eso se puede valorar el recorrido ida y vuelta (Round Trip Time, RTT). Una forma sencilla de valoración es usando el Protocolo ICMP (Internet Control Message Protocol), por medio del comando ping. Muchas herramientas utilizarán ese Protocolo para establecer sus estimaciones.
Puede descomponerse como la suma de todos los retardos que acumulan los paquetes en su camino desde el origen hasta el destino.
- Las causas de esos retardos son muy variables:
- El tiempo que tardan las aplicaciones, tanto en origen y en destino para procesar la Información.
- Los diferentes medios por donde pasan los datos. Por su naturaleza mejoran o empeoran la velocidad de paso de la Información.
- Los dispositivos intermedios presentan diferentes velocidades de procesamiento, además, las tareas que deban realizar pueden requerir tiempos diversos en función de diferentes configuraciones.
Ejemplo de una red con diversos elementos intermedios
Tipos
El retardo extremo a extremo puede desglosarse en diferentes tipos de retardo. Estos se describen a continuación.
Retardo de procesamiento
Es el retardo que se produce en cada elemento intermedio que decide a dónde enviar los datos. En el caso de los switcheses un tiempo mínimo, pues la capacidad de hacer tareas sobre los datos es reducida. En el de los routers en cambio, las decisiones son más costosas en términos de tiempo, pues deben analizarse las cabeceras IP (capa de internet) y deben construirse los nuevos encabezados de capa de acceso. En este caso influye el tamaño de las tablas de rutas, la configuración y otras posibles tareas que se le asignen al Router.
La verificación de que las tramas y los paquetes están libres de errores añade más retardos. En los switches que operan a gran velocidad se arriesga a veces con políticas de envío rápido, a costa de que las tramas contengan errores.
En todos los casos, la Calidad del hardware y el tamaño de memoria del dispositivo es determinante para un menor retardo. Pasarelas, cortafuegos, proxys, etc. son ejemplos de otros dispositivos de red intermedios que se pueden encontrar.
Curiosidad! Los switches tienen tres modos de envío:
-
Almacenar y enviar es el que más Latencia produce. La trama se almacena antes de ser enviada. Se garantiza que no se reenvían tramas corruptas.
-
Envío rápido. La trama empieza a ser enviada justo cuando se conoce su destino, sin esperar a terminar su recepción. Es el método más rápido.
-
Libre de fragmentos. Es un caso intermedio entre los dos anteriores.
Retardo de espera en cola
Es el tiempo que esperan los datos en una memoria intermedia (buffer) antes de ser retransmitidos. Se dice que los datos están en cola de espera para la transmisión.
Se produce cuando el dispositivo no puede enviar la Información que recibe a la misma velocidad por la Interfaz de salida, al ser la interfaz de entrada y la de salida de velocidades diferentes. Es necesario que el dispositivo disponga do memoria suficiente para poder albergar colas grandes, en caso contrario aumenta el riesgo de perder paquetes de datos, pues cuando no hay capacidad en el buffereI paquete que llega se descarta.
Es decir, cuando el tráfico es muy elevado se perderán paquetes, también depende del tamaño de estos. Se puede establecer algún criterio para dar preferencia a ciertos tipos de tráfico, es el llamado QoS (Calidad de servicio).
Retardo de transmisión
Tiempo requerido para colocar todos los bits de un paquete en el medio de transmisión (depende del tamaño del paquete y del ancho de banda del medio).
Cada bit de un paquete se va colocando en serie (uno tras otro) en el medio de transmisión, por eso existe este retardo. El paquete de datos no se coloca “de golpe” en el medio. Hay que tener en cuenta además, que el tamaño de los paquetes no va a ser el mismo en todas las comunicaciones.
La siguiente fórmula sirve para calcularlo:
Dtrans = L/R en segundos (o submúltiplos)
Siendo:
- L, longitud del paquete, en bits.
- R, tasa de transmisión. Se puede identificar con el ancho de banda del medio.
- Dtrans, retardo de transmisión (Deiay).
Ejemplo:
En un enlace de FastEthernet (100 Mb/s) si se quieren transmitir paquetes de un tamaño de 1500 bytes (muy usual), el retardo de transmisión sería:
- L= 1500x 8 = 12000 bits.
- R = 100.000.000 bits/s.
- Dtrans = 12.000/100.000.000 = 120 microsegundos.
Retardo de propagación
Tiempo que tarda la señal en llegar al otro extremo del sistema de transmisión.
Depende fundamentalmente de la distancia a recorrer y también del medio físico que utilice, que impone una velocidad de transmisión. Generalmente, la velocidad de transmisión será cercana a la de la luz, aproximadamente unos 300.000 km/s.
Importante! Los medios inalámbricos son muy agresivos. Se producen rebotes de señal, retardos al atravesar zonas de diferentes materiales, etc. En cambio, si no hay problemas, las líneas cableadas transmiten a la velocidad de la luz. Hay que tener en cuenta que a distancias largas suele ser necesario poner repetidores y otros elementos que pueden causar más retardos.
La fórmula a emplear para el cálculo del retardo de propagación será:
Dprop = d/s
Siendo:
- d = distancia de extremo a extremo,
- s = speed (velocidad de transmisión).
Ejemplo:
El retardo mínimo por propagación en que una señal llegará a una distancia de 50 km es de: La velocidad máxima será de 300.000 km/s, luego el retardo mínimo:
Dprop = 50 /300.000 = 160 ps.
Se puede concluir que el retardo de extremo a extremo será la suma total de los retardos comentados:
D = Dproc + Dcola +Dtrans + Dprop
Aplicación práctica
Una empresa de comunicaciones tiene un cliente al que le instalaron una línea de fibra óptica propia para conectar su oficina central con una delegación que se encuentra a 150 km de distancia. Haciendo estimaciones, el retardo de procesamiento en los dispositivos de red es de unos 2 ms y los retardos de cola unos 0,5 ms.
Las características que reúne la línea fijadas en la SLA del servicio son:
Ancho de banda de 1 Gb/s, un tamaño de paquete medio de unos 1500 bytes.
¿Cuál será el valor total del retardo que se obtendrá?
Solución:
El valor total de retardo saldrá de sumar todos los retardos de extremo a extremo.
El retardo total será:
Dproc + Dcola + Dtrans + Dprop
El retardo de transmisión es L/R, siendo L la longitud del paquete y R el ancho de banda: Dtrans = 1500 x 8 bits / 1.000.000.000 b¡ts/s= 12 ps.
Continúa en página siguiente »
El retardo de propagación es d/s, siendo d la distancia y s la velocidad de la luz en este caso. Sale: Dprop = 150 km / 300.000 km/s = 0,5 ms.
Al final sumando todo:
Dtotal = 2 + 0,5 + 0,012 + 0,5 = 3,012 ms.
Dispersión del retardo (Jitter)
A la variación en las diferencias de tiempos de llegada entre paquetes se le llama Jitter (parpadeo). Es la fluctuación del retardo sobre los datos recibidos.
Suele deberse a la interferencia de señales e introducción de ruido en el canal, pero también a la congestión de la red y al haber seguido los paquetes rutas distintas para llegar al destino. La dispersión del retardo de un dispositivo se puede propagar al siguiente en cascada, de manera que produce problemas en ciertos servicios.
Hay Procesos que necesitan tiempos fijos de ejecución, y hay ciertos tipos de tráfico, como el de voz, que necesita una cierta fluidez, pues desde el punto de vista del usuario puede ser muy molesto el producirse vacíos en la comunicación (voz entrecortada).
La solución al Jitter es guardar los datos en memorias buffer, lo cual introduce un retardo todavía mayor. Es decir, la red se toma un respiro y almacena en un buffer unos cuantos paquetes para poder garantizar su procesamiento de forma continua.
Los proveedores de servicios se comprometen a proporcionar un determinado valor de Jitter en segundos (o milisegundos) que se refleja en el SLA (Service Levet Agreement). Ese tiempo, que es una estimación del proveedor, es el tiempo del que dispone un paquete para llegar al dispositivo, si no, puede que se descarte (en el caso del tráfico de voz, ya no serla útil, y puede causar más problemas que beneficios).
Para tráficos que requieren un servicio continuo de datos, como la voz, retransmisión de vídeo, etc. se ha pensado en la Calidad de servicio QoS. Los tráficos “normales” de datos no suelen requerir prioridad, pueden esperar.
Importante! La QoS (Qualityof Service) asegura una tasa de transmisión, un retardo y una variación de retardo (jitter) por debajo de ciertos niveles acordados con el cliente de servicios de red. Se puede implementar gracias a diversos protocolos que pueden diferenciar el tipo de tráfico para darle prioridad. La manera más sencilla es aprovechando los campos de Clase de servicio y tipo de servicio de los protocolos IPv4 e IPv6 respectivamente, y activándolo en los dispositivos intermedios.
El impacto que produce el Jitter, el número de paquetes tardíos, puede minimizarse aumentando el tamaño de la memoria intermedia, pero usar una memoria más grande para esto aumenta el retardo de extremo a extremo. El Jitter se mide por medio de las diferencias de Latencia entre los paquetes de una transmisión. Puede hacerse con el comando ping sacando promedios, pero mejor con Wireshark o con algún plugin de algún NMS (hay para Nagios, Cacti, etc.).
Existe un Protocolo definido en la RFC 3550 para calcularlo llamado RTP (Transport Protocol for Real-Time).
Ejemplo del comportamiento de una cola para compensar el Jitter
Se han desarrollado diversas formas para configurar un buffer mediante software:
- Cola prioritaria: en este caso el administrador de la red puede configurar varios niveles de prioridad de tráfico.
- Cola definida: el administrador reserva un ancho de banda para cada tipo de Protocolo específicamente. Así se puede hilar más fino y configurar con más precisión que tráfico es el importante.
- Cola ponderada: se desarrolla un algoritmo mediante el cual se identifica cada tipo de tráfico, priorizando en este caso el que consuma menos ancho de banda. Esto permite que la red se estabilice en los momentos en que se produce cierta congestión. Exige más esfuerzos de programación y configuración.
Importante! No se debe confundir el uso de colas para el retardo de Jittercon el uso de colas para el caso de enlaces de diferentes velocidades, aunque pueden consumir el mismo recurso, la memoria.
Pérdida de paquetes y errores
Un Indicador de rendimiento importante es el índice de paquetes perdidos. El índice de errores solo puede calcularse en los enlaces que los reciben, pues para los demás se convertirán en paquetes perdidos, ya que se descartarán.
Las pérdidas de paquetes se producen principalmente por el agotamiento de la capacidad del buffer empleado en las colas. Cuando pasa esto se habla de congestión. Cuando un paquete llega a una cola y esta está llena, el paquete se descarta. También influye el Jittery las tramas y paquetes corruptos que se descartan inmediatamente. La naturaleza del medio de transmisión también puede provocar pérdidas y errores, sobre todo en medios agresivos como el inalámbrico. Esto hace que las pérdidas tengan un cierto carácter aleatorio.
Curiosidad! Los encabezados de trama (capa de acceso a red) y de paquete (capa de Internet) poseen un campo de verificación para asegurar que tanto la trama como el paquete están intactos. Cuando el valor de ese campo (llamado cheksum) indica un error, los datos se desechan.
Los errores en los datos pueden producirse por muchas causas: interferencias en el canal, colisiones, mal funcionamiento de algún enlace, etc. Se descartan porque es muy difícil implementar tecnologías eficaces de recuperación de esos datos que llegan en mal estado.
Si fuese necesario recuperar el paquete, será labor de la capa de transporte o de la capa de aplicación.
TCP (Transmission Control Protocol) es un Protocolo de la capa de transporte que suministra confiabilidad y control de flujo. Posee en su encabezado un campo llamado “ventana” que marca el número de bytes a transmitir, y sirve para garantizar que origen y destino se pongan de acuerdo en la cantidad de datos a transmitir cada vez (tamaño de ventana). El uso de acuses de recibo y números de secuencia sirve para saber si los datos llegan y, si hace falta mandar alguno, cuál en concreto. Se retransmiten los datos perdidos.
Ejemplo del comportamiento de una transmisión con TCP
Esto solo se utiliza en los extremos de la comunicación origen-destino. Los dispositivos intermedios no usan la capa de transporte, solo llegan a utilizar la capa de Internet, donde está el Protocolo IP, por ejemplo.
En ocasiones no se desea utilizar las funciones de TCP por el tipo de tráfico de que se trate, como por ejemplo, la transmisión de vídeo, debido a que la corrección de pérdidas usando retransmisión puede causar aún más congestión (perder un paquete no es grave, atascar la transmisión en este caso, si), es entonces cuando se usa UDP (User Datagram Protocol).
Una manera de medir la pérdida de paquetes es por medio de ICMP, al igual que para los retardos.
Comprobación de pérdida de paquetes con el comando ping