05d - Software de rendimiento en red

Volver al curso

Contenidos:



Teoría

Programas básicos

Escritorio/server:

Móvil:


Protocolos capa 4, capa de transporte

Estos son los protocolos más típicos de la capa de transporte:

TCP garantiza la llegada de todos los segmentos y además estos se pueden colocar en el orden correcto una vez recibidos, ello gracias a los retries y los números de secuencia:

Esto implica que una conversación TCP tenga más complejidad y latencia que una UDP:

Y también que se pierda un poco de ancho de banda:

Protocolo SCTP

Y en el caso de redes móviles 2G-5G, se usa otro tipo de protocolo de transporte, SCTP (Stream Transmission Control Protocol). SCTP es una alternativa a los protocolos de transporte TCP y UDP pues provee confiabilidad, control de flujo y secuenciación como TCP. Sin embargo, SCTP opcionalmente permite el envío de mensajes fuera de orden y a diferencia de TCP, SCTP es un protocolo orientado al mensaje (similar al envío de datagramas UDP). (wikipedia)

En este vídeo se explica el intercambio de paquetes en los protocolos de aplicación (capa 7) más populares:

También se explica un poco la diferencia entre los protocolos de capa 4: TCP y UDP.

HTTP/3 QUIC puede ser el futuro. Unifica las ventajas de TCP (secuencia) y TLS (cifrado) manteniendo la simplicidad (baja latencia, bajo overhead) del protocolo UDP:

Fuente de las imágenes: Twitter DMNTR


Parámetros de calidad de servicio

Os parámetros que regulan a calidade do servizo en redes VoIP son:


Programas

ping - medición de latencia

Podes medir a latencia co comando ping na terminal de Windows (cmd):

Úsalo siempre en modo infinito (por defecto en Linux), en Windows se activa con -t. De este modo sabrás cuando pierdes/recuperas conectividad.

ping -t 10.207.0.1

Detenlo con la combinación CTRL + C

Desde o móbil tamén podes medir o ping coa aplicación Fing (Android | iOS). Antes vimos que a latencia depende do número de saltos. Podes comprobalos co comando traceroute (Linux) ou tracert (Windows).


nmap - análisis de red y puertos

https://nmap.org/

Ejemplos:

Escanear toda la dirección de red para ver quién está ocupando IP (o modificador -sP usa protocolo ICMP (ping) en redes externas e ARP na propia rede local na que te atopas):

sudo nmap -sP 10.207.0.0/24

Escanear puertos de un equipo:

sudo nmap 10.207.0.1

Escanear puertos de un equipo (intensivo, TCP) (-sS envía mensaxes TCP SYN (inicio de conexión TCP) para deducir o estado do porto):

sudo nmap -sS 10.207.0.1

Con -O, o programa trata de deducir o sistema operativo

Unha vez descubertos portos abertos, podemos usar -sV para obter detalles do servizo e da versión que se trata.

Con -v aporta máis información.

Escanear puertos de un equipo (intensivo, UDP):

sudo nmap -sU 10.207.0.1

Escanear red entera usando UDP:

nmap -sU 10.207.0.0/24

Por defecto nmap só escanea os 1000 portos máis probables. Escanear un porto concreto ou un rango (8006 en este caso):

nmap -p8006 10.207.0.11

Evadir sistemas de seguridade:

Exemplo:

sudo nmap -A -p 1-2000,10000-22100 10.207.0.200 -v -T4 -O


iperf3 - Medición de throughput, perda de paquetes e jitter

A aplicación iperf3 pode medir throughput (TCP/UDP) así como jitter e perda de paquetes en UDP. Instala iperf3 para facer estas medicións:

sudo apt install -y iperf3

iperf3 para Windows:

  1. Descarga el programa precompilado en https://files.budman.pw/ (última versión).
  2. Descomprímelo en tu carpeta personal: C:\Users\Usuario\
  3. Abre la terminal cmd (no hace falta ser administrador). ¿Te encuentras en tu carpeta personal?

Si abres la terminal como administrador, estarás en la carpeta C:\Windows\System32\, y como iperf3 no se encuentra en esa carpeta, no funcionará.

iperf3 para Android: He.net Network Tools

Trátase dunha aplicación cliente-servidor. A aplicación CLI soporta tanto o modo servidor (-s) como cliente (-c 192.168.XXX.YYY). Existen aplicacións de cliente para iOS e para Android.

Por defecto, mide o fluxo de datos TCP desde o cliente ata o servidor (subida).

Co modificador -R mide no sentido de baixada (servidor → cliente). Tamén soporta outros protocolos de capa 4:

ATENCIÓN: iperf3 limita o ancho de banda nos tests UDP a 1 Mbps. Para sobrepasar ese límite, debes especificar o flag -b e especificar límite en torno á capacidade do medio. Usar límite “0” ás veces resulta ben, e ás veces da barbaridades. Exemplo: iperf3 -c 192.168.99.18 -b0 Info | Manpage de iperf3 -b

Subida (cliente → servidor). Protocolo TCP
Subida (cliente → servidor). Protocolo TCP
Baixada (servidor → cliente). Protocolo TCP
Baixada (servidor → cliente). Protocolo TCP
Subida (cliente → servidor). Protocolo UDP
Subida (cliente → servidor). Protocolo UDP
Baixada (servidor → cliente). Protocolo UDP
Baixada (servidor → cliente). Protocolo UDP

Tamén é posible facer unha proba bidireccional simultánea especificando --bidir no cliente (pode fallar en Windows e móbiles):

Comproba o número de versión con iperf3 -v. Se é inferior á 3.10, non funcionará --bidir

Test bidireccional UDP sobre Wi-Fi
Test bidireccional UDP sobre Wi-Fi

Manual de iPerf 3 | Speedtest de Shadow (sistema de gaming na nube) | hping3 (alternativa a iperf3)

Shadow Speedtest detectando un escalón de 15 ms na latencia, que provoca un impulso no jitter. Como despois a latencia permanece constante, o jitter tende a cero
Shadow Speedtest detectando un escalón de 15 ms na latencia, que provoca un impulso no jitter. Como despois a latencia permanece constante, o jitter tende a cero


TCPdump - ver tráfico filtrado por IP, protocolo, número de puerto

Similar a Wireshark


Volver a índice