Iperf: Reduzca el tamaño del paquete UDP predeterminado a MTU físicamente: use E/S registrada WSA en Windows para recibir paquetes UDP

Creado en 25 ene. 2021  ·  4Comentarios  ·  Fuente: esnet/iperf

Descubrí, cuál es el motivo, que las colas UDP RSS no funcionan: el adaptador de red convergente Intel(R) Ethernet X550-T2 no envía paquetes gigantes incluso si está configurado (otro NIC sí lo hace), por lo que todos los paquetes UDP más grandes que los 1500MTU predeterminados se dividen en paquetes de IP. Los paquetes IP no tienen puertos y el algoritmo UDP-RSS-Hashing no puede funcionar. Incluso si supiera que el paquete IP es parte de un paquete UDP.

La única forma es reducir el tamaño de la MTU en el lado de envío de iperf a la MTU física.
Además, Windows no recibe más de un paquete UDP del núcleo cuando se utiliza la API WINSOCK predeterminada. Lo que resultará en una carga de CPU muy alta. Para resolver este iperf debe usar la API de E/S registrada de WSA.

_Publicado originalmente por @Febbe en https://github.com/esnet/iperf/issues/1049#issuecomment -766829448_

Comentario más útil

Se envió el PR n.° 1119 para agregar la opción de configurar el indicador de no fragmentar.

Todos 4 comentarios

¡Me alegro de que hayas podido averiguar qué está causando este problema! Lamentablemente, ESnet no es compatible con iperf3 en Windows, por lo que si hay una solución, tendrá que venir de la comunidad (además de no romper iperf3 para las plataformas compatibles).

¿Significa "ESnet no es compatible con iperf3 en Windows" que usted, como ESnet, no solucionará eso, pero aceptará las relaciones públicas de la comunidad?

Como sé, las colas RSS también se utilizan en plataformas Linux, por lo que incluso allí tendría sentido, al menos, agregar un indicador para prohibir la fragmentación de paquetes para udp, en lugar de usar el indicador predeterminado -l 8K.

¿Significa "ESnet no es compatible con iperf3 en Windows" que usted, como ESnet, no solucionará eso, pero aceptará las relaciones públicas de la comunidad?

Tomaremos las relaciones públicas de la comunidad si no rompen la funcionalidad (use la compilación condicional si es posible, hay varios ejemplos en el árbol) o causan cambios importantes en el diseño de iperf3. En realidad, no tenemos la capacidad de probar relaciones públicas específicas de Windows en nuestro entorno, por lo que la mejor oportunidad de que se acepte una relación pública es si es pequeña y fácil de entender para los desarrolladores que no son de Windows.

Se envió el PR n.° 1119 para agregar la opción de configurar el indicador de no fragmentar.

¿Fue útil esta página
0 / 5 - 0 calificaciones