Lanzamiento del stack de red F-Stack 1.24, ejecutado en espacio de usuario

Se ha publicado la pila de red F-Stack 1.24, que representa una edición de la pila de red FreeBSD, funcionando en espacio de usuario y utilizando el marco DPDK para lograr un rendimiento máximo. El proyecto fue creado por Tencent, la mayor empresa de telecomunicaciones en China, y se utiliza en sus productos y servicios. El código está escrito en C y se distribuye bajo la licencia BSD. Se admite su funcionamiento en Linux y FreeBSD.

F-Stack permite utilizar en las aplicaciones su propia pila de red local, independiente de la pila de red del sistema operativo, funcionando en espacio de usuario y trabajando directamente con el hardware de red. F-Stack se posiciona como una solución que mejora el rendimiento de los controladores de solicitudes de red en situaciones donde la pila TCP/IP estándar del núcleo de Linux se convierte en un cuello de botella y limita la escalabilidad; en algunas situaciones, el proyecto permite aumentar drásticamente la cantidad de pequeñas solicitudes de red procesadas. Teóricamente, F-Stack permite alcanzar el límite del rendimiento de red posible para la tarjeta de red utilizada.

El aumento del rendimiento se logra al eliminar operaciones como la copia de paquetes de red, la planificación de hilos, el manejo de interrupciones y la aplicación de llamadas al sistema. Para interactuar con la tarjeta de red, evitando las interfaces del núcleo del sistema operativo, se utiliza el marco DPDK (Data Plane Development Kit), que desarrolla un conjunto de bibliotecas para trabajar a bajo nivel con adaptadores de red. DPDK permite reducir la sobrecarga y ajustarse a un número mínimo de ciclos de CPU al recibir o enviar paquetes de red.

La funcionalidad de la pila TCP/IP es equivalente a la pila de red FreeBSD 13 y se ha extraído de este sistema operativo a una biblioteca independiente. Para el desarrollo de aplicaciones, se puede utilizar la API estándar POSIX (socket, epoll, kqueue) o su propia interfaz de programación basada en micro-hilos que simplifica la creación de aplicaciones de red y permite prescindir de la lógica compleja de procesamiento asíncrono de solicitudes.

El proyecto admite ediciones de múltiples protocolos que han sido traducidas para utilizar F-Stack. servidores Nginx 1.25.2 y la base de datos Redis 6.2.6, que demuestran un rendimiento superior al de las versiones estándar que funcionan sobre la pila de red del sistema operativo.

Las modificaciones más notables en la nueva versión:

  • En el archivo de configuración config.ini se ha añadido la opción de elegir entre utilizar KNI (Kernel NIC Interface) y virtio_user como transporte para la transmisión de paquetes entre el núcleo y la aplicación de procesamiento de paquetes basada en DPDK. Se ha añadido la capacidad de usar el control de velocidad (ratelimit) para KNI.
  • Se ha añadido soporte para activar la configuración de la pila de red 'net.add_addr_allfibs=1' para agregar direcciones a todas las tablas de enrutamiento.
  • Se ha añadido la API ff_get_traffic para obtener el tráfico, por ejemplo, para implementar QoS (Calidad de Servicio).
  • Se han añadido funciones pthread_create y pthread_join, similares a las funciones correspondientes en POSIX.
  • Se ha añadido la API ff_dpdk_raw_packet_send para que la aplicación envíe paquetes en bruto directamente a través de DPDK, en lugar de a través de un socket.
  • Se ha implementado el soporte para la configuración automática de VLAN, enrutamiento y política de enrutamiento.
  • Se ha realizado la transición a la versión DPDK 22.11.6 LTS.
  • En la implementación de Nginx sobre F-Stack se ha añadido soporte para el módulo stream.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster