Saltar a contenido

Cómo se toman las mediciones

Traducción de la página How the measurements are taken. Si difieren, vale el texto en inglés.

Cada página de medición dice cómo se tomaron sus números y qué no significan. Esta página reúne lo que todas tienen en común: el banco de pruebas, dónde se lee una cifra, las herramientas, el cálculo detrás de cada tipo de cifra y las reglas que cumple cada página - cada una con la razón de hacerlo así, porque una cifra sin su método no prueba nada, y las que mejor aspecto tienen suelen medir otra cosa que la que dicen.

El banco de pruebas

Dos XGS 3300 y un XGS 136, enrutados entre sí, y un PC en el del medio a 10 Gbit/s - como en la página del banco (en inglés), donde se fotografía la ventana de cada ejecución:

enlace desde hasta medio
el PC la tarjeta 10GBASE-T del PC F1 del segundo XGS 3300 cobre, 10 Gbit/s
la fibra el puerto de módulo A1 del segundo XGS 3300 F1 del primer XGS 3300 fibra, 10 Gbit/s
el enlace gigabit Port8 del segundo XGS 3300 Port8 del XGS 136 cobre, 1 Gbit/s
qué por qué
Un par de hardware en ambos extremos de cada túnel. Hasta el 17-10-2026 el extremo lejano de un túnel medido era un firewall que hacía ESP en software, así que una cifra podía ser la de ese firewall y no la del equipo.
Cada enlace con su propia /30, fuera del bridge de la LAN, con una regla de paso y una ruta estática. El tráfico se enruta a través del equipo en lugar de conmutarse a su lado, y nada más en la red comparte el camino.
Nunca un servidor de pruebas público como extremo lejano. Son servidores de otras personas y rechazan lo que parece una inundación; una línea rechazada dejó una vez tres «descargas» en una tabla que nunca se habían ejecutado. Todo lo paralelo o repetido va a un extremo lejano del banco.

Dónde se lee una cifra

En el receptor, en el extremo lejano - nunca en los contadores del propio equipo. Una conexión en hardware va de puerto a puerto dentro del coprocesador y nunca llega al host: el estado de pf, los contadores de las interfaces y todos los gráficos construidos sobre ellos dejan de crecer. Un indicador que marca cero cuando todo funciona no es un indicador - una ejecución la detuvo una vez una regla que leyó ese cero como un colapso que nunca ocurrió.

La cifra del receptor, no la del emisor. iperf3 imprime ambas: el emisor cuenta lo que escribió en su socket, el receptor lo que llegó. Solo la segunda es caudal.

Una fila se lee solo cuando se sabe que se ejecutó - bytes recibidos, no solo contadores que se movieron.

Las herramientas

herramienta qué mide aquí por qué esta
iperf3 - 3.20 en WSL en el PC para enviar, iperf3 para Windows para recibir, 3.22 (el paquete de OPNsense) como servidor en el host de un equipo caudal, un flujo TCP o cuatro, diez segundos por ejecución la misma herramienta en ambos extremos de cada ejecución, con su versión indicada. Dos clientes en el PC porque la red en espejo de WSL deja salir una trama de más de 1500 bytes pero no entrar: cada ejecución en la que el PC recibió más de 1500 midió 0,00 bits/s hasta que se volvió a medir con la versión de Windows
curl sobre HTTPS, y SHA-256 las pruebas de integridad prolongadas: un archivo de 1 GiB de bytes aleatorios descargado en bucle durante horas TLS rechaza cualquier registro que no se autentique, y el hash del archivo frente al del servidor detecta lo que haya pasado entero; el caudal solo no dice nada de si los bytes eran correctos
ping con el bit de no fragmentar, en tamaños fijos si una trama de cierto tamaño atraviesa un camino, y los tiempos de ida y vuelta la prueba más sencilla de la MTU de un camino y de un puerto que recibe en absoluto
sysctl las CPU (kern.cp_time), los contadores propios de los controladores (dev.octep.0.*, dev.npuep.0.*) y la caché de hosts TCP vaciada (net.inet.tcp.hostcache.purgenow) los números del propio kernel, leídos igual en cada ejecución
pfctl los estados de pf y sus recuentos de paquetes y bytes lo que vio el firewall del host, para ponerlo junto a lo que vio el hardware
las estadísticas propias del coprocesador, leídas a través del controlador lo que reenvió el hardware: tramas desde el cable, tramas que devolvió él mismo al cable, su recuento de cada conexión el único testigo del tráfico que el host ya no ve
mvsw los registros del chip del switch: el límite de trama de un puerto, sus contadores de errores errores y límites que solo ve el switch, leídos de sus propios registros
shot-run.ps1 ejecuta cada comando de medición en su propia ventana de consola y fotografía esa ventana al terminar, con los píxeles de la propia ventana la prueba es la pantalla tal como estaba, no una versión del texto reescrita después, y nada más del escritorio entra en la imagen
tools/mark-images.py pone el propietario y la licencia (CC BY 4.0) en una franja bajo cada fotografía; el original sin marcar se guarda aparte una imagen que sale de la página sigue diciendo de quién es
tools/readme-art.py calcula el avance de cada equipo a partir de la tabla de la página de su familia véase el cálculo más abajo; las comprobaciones fallan si una página dice otra cosa

Los scripts que dirigen cada ejecución se nombran en la página de esa ejecución.

El cálculo

cifra cómo se calcula por qué
caudal, una ejecución los bits por segundo del receptor durante la ejecución, tal como los imprime iperf3 el recuento del receptor es lo que llegó
caudal, una prueba prolongada bytes recibidos en las pasadas que tuvieron éxito × 8, entre los segundos desde el inicio de la primera pasada hasta el final de la última una media de horas, sin contar los fallos como entregados
ocupación de CPU kern.cp_time leído antes y después de la ejecución; ocupación = (total − reposo) ÷ total, de las diferencias lo que costó la ejecución en toda su duración, donde un vistazo a top toma un solo instante
proporción de tramas en hardware de las tramas que el coprocesador recibió del cable durante la ejecución (RX_WIRE), la proporción que devolvió él mismo al cable (FROM_WIRE_TO_WIRE): 6.630.528 de 6.657.897 es el 99,6 % contadas por el hardware que las reenvió, no deducidas del silencio del host
un contador, fiable contrastado con una cantidad conocida de antemano: el PC envía exactamente 4.000.000.000 bytes, y el recuento del coprocesador y el de pf juntos deben sumar lo que cruzó el cable - sumaron eso con una diferencia de 14 paquetes en 2,74 millones un contador solo es fiable después de coincidir con algo contado de forma independiente; así se descubrió que dos estaban mal
el resultado de una prueba de integridad pasadas que fallaron (la salida de curl), pasadas cuyo archivo difería (el hash) y bytes una prueba solo se supera si ambos son cero
el avance de un equipo cada fila de la tabla de la página de su familia tiene un porcentaje hecho y un peso; avance = Σ(hecho × peso) ÷ N, donde los pesos suman N y un valor tachado no cuenta un porcentaje que no puede alejarse de lo que pondera: tools/readme-art.py lo calcula, y las comprobaciones fallan si la página o el README dicen otro

Las reglas que cumple cada página

regla por qué
Cómo se tomó, y qué no significa, en cada página los límites de una cifra forman parte de ella: un flujo que termina en el propio host de un equipo mide lo menor entre el PC, el reenvío, el enlace y la ruta de recepción de ese host - no el techo del reenvío, que necesita una máquina detrás del equipo lejano
Se nombra la compilación - el commit del controlador o su suma de comprobación un número pertenece al código que lo produjo
Se fotografía cada ventana cuando termina su ejecución cualquiera puede ver la ejecución, no una copia de sus números; las direcciones del laboratorio se dejan en las imágenes, los números de serie y las direcciones de hardware se difuminan
Lo que un host ha aprendido se olvida antes de cada ejecución - su caché de hosts TCP y la caché de MTU de ruta del PC una MTU de ruta aprendida en una ejecución pasó a la siguiente: una pasada entera se hizo con segmentos de 500 bytes y se descartó
Lo que salió mal al medir se deja por escrito los errores - una MTU aprendida, las tramas perdidas de WSL - explican por qué una página midió como midió, y la siguiente medición los evita
Una cifra retirada se tacha, no se borra, con la corrección al lado el lector ve qué cambió, y por qué
Las cifras del fabricante se etiquetan como del fabricante, junto a las nuestras proceden de Keysight-Ixia BreakingPoint en condiciones ideales, sin indicar la MTU, los puertos ni si cuentan ambos sentidos: no son el mismo tipo de número que uno tomado aquí

Dónde están los números

Cada medición, por equipo y por día: las mediciones (en inglés).