domingo, 24 de febrero de 2013

Laboratorio - Medidas de QoS

En esta entrada explicare algunas medidas de Calidad de Servicio que utilice para mi entrada sobre el QoS.

(Enlace de mi entrada sobre experimento de QoS: Reporte - experimento QoS).

Ancho de banda (bandwidth)

El ancho de banda es la medida de datos y recursos de comunicación disponible o consumida expresados en bit/s o múltiplos de él (ciento setenta y dos, Mbit/s, entre otros).


El uso de herramientas, como Wireshark, son útiles para el calculo del ancho de banda, no proporcionan datos extremadamente certeros, solo sirven como comprobación y comparación con las mediciones realizadas.

Una idea para calcular el ancho de banda, puede ser de la siguiente manera:

Transferimos un archivo de tamaño conocido, mediante el sniffer (Wireshark) y calculamos el tiempo en que tarda en transferirse completamente y haciendo la siguiente cuenta obtenemos el ancho de banda de la siguiente manera:

W (Bps) = carga útil (Bytes) / tiempo de transmisión (seg)


Retardo (delay)

Puede ocurrir que los paquetes tomen un largo período en alcanzar su destino, debido a que pueden permanecer en largas colas o tomen una ruta menos directa para prevenir la congestión de la red. En algunos casos, los retardos excesivos pueden inutilizar aplicaciones tales como VoIP o juegos en línea

Como se verifica en Wireshark?

Dentro del menú Statistics > TCP Stream Graphs, nos encontramos con un tipo de gráficas basado en el número de secuencia respecto al tiempo.

Este tipo de gráfica es el Time-Secuence Graph (tcptrace).

Una vez seleccionado un segmento cualquiera de la conexión TCP que nos interese de la lista de paquetes, llamamos a las gráficas de TCP para mostrar los resultados deseados.



Pérdida de paquetes (packet loss)

Paquetes sueltos

Los rute-adores pueden fallar en liberar algunos paquetes si ellos llegan cuando los buffers ya están llenos. Algunos, ninguno o todos los paquetes pueden quedar sueltos dependiendo del estado de la red, y es imposible determinar que pasará de antemano. La aplicación del receptor puede preguntar por la información que será retransmitida posiblemente causando largos retardos a lo largo de la transmisión.


Entrega de paquetes fuera de orden

Cuando un conjunto de paquetes relacionados entre sí son encaminados a Internet, los paquetes pueden tomar diferentes rutas, resultando en diferentes retardos. Esto ocasiona que los paquetes lleguen en diferente orden de como fueron enviados.

Este problema requiere un protocolo que pueda arreglar los paquetes fuera de orden a un estado isócrono una vez que ellos lleguen a su destino.

Esto es especialmente importante para flujos de datos de vídeo y VoIP donde la calidad es dramáticamente afectada tanto por latencia y pérdida de sincronía.

Errores

A veces, los paquetes son mal dirigidos, combinados entre sí o corrompidos cuando se encaminan. El receptor tiene que detectarlos y justo cuando el paquete es liberado, pregunta al transmisor para repetirlo así mismo.


Como se verifica en Wireshark?




Partiendo de una captura cualquiera y llamando a IO Graph mediante Statistics > IO Graphs, se puede aplicar una serie de filtros y que nos muestre lo siguiente:


Los filtros que se pueden utilizar para verificar lo anterior, son los siguientes:

  • tcp.analysis.lost_segment: Filtro para perdida de paquetes o segmentos.
  • tcp.analysis.retransmission: Mecanismo de rentransmision.
  • tcp.analysis.fast.retransmission: Mecanismo de rentransmision rápida.
  • tcp.analysis.duplicate_ack: Análisis de ACKs duplicados.

Para interpretar los datos dados por la grafica es facil, podemos decir que:

Si se reciben tres o más ACKs duplicados, se asume la pérdida de un segmento o paquete lost_segment esto desencadenala retransmisión de dicho segmento perdido fast.retransmission.



Referencias:

1 comentario: