Introducción a la interfaz del proveedor NDIS PacketDirect
La interfaz del proveedor packetDirect (PDPI) amplía el NDIS con un modelo de E/S acelerada, tanto para entornos físicos como virtuales, que pueden aumentar el número de paquetes procesados por segundo por orden de magnitud y reducir significativamente la vibración en comparación con la ruta de E/S NDIS tradicional.
Información previa
El modelo de E/S tradicional en Windows se implementó para ser una plataforma de E/S general multipropósito destinada a trabajar con varios tipos de medios con muchas características diferentes y donde las redes solo eran un aspecto del sistema general. En la actualidad, a medida que la virtualización de red se ha convertido en una tecnología frecuente en los centros de datos, el modelo tradicional de E/S de NDIS en el sistema operativo Windows Server no solo no es suficiente para mantenerse al día con las cargas de trabajo intensivas de red que esperamos convertirse en un modelo más y más común, sino también un modelo inadecuado para dedicar recursos al procesamiento de E/S de red. En entornos de centros de datos, no es raro implementar una sola máquina de propósito dedicada a las funciones de red que normalmente estaban reservadas para dispositivos de hardware. Algunos ejemplos de estos dispositivos de red son los equilibradores de carga de software, los dispositivos DDoS y las puertas de enlace de reenvío. Para empeorar las cosas, hay mecanismos en otros sistemas operativos para acelerar la E/S que hacen que esta plataforma alternativa del sistema operativo sea la plataforma preferida para crear aplicaciones de red intensivas como aplicaciones virtuales.
PacketDirect (PD) amplía el modelo NDIS actual con una ruta de E/S de red acelerada optimizada para el paquete por segundo (pps) cuenta un orden de magnitud mayor que lo que se ha visto con el modelo de E/S NDIS tradicional. Esto se logra a través de:
- Latencia reducida
- Ciclos reducidos/paquetes
- Velocidad lineal con el uso de recursos adicionales del sistema
PacketDirect existe en paralelo con el modelo tradicional. La nueva ruta de acceso de PD se puede usar cuando una aplicación lo prefiere y hay suficientes recursos de hardware para acomodarlo. PD no está pensado para reemplazar el modelo de E/S tradicional y supone que un cliente que escribe en la interfaz pd tendrá requisitos estrictos de creación de particiones para los recursos subyacentes en función de la topología del sistema. PD está pensado para ser la nueva ruta de acceso de datos de alta velocidad que ayudará a un sistema Windows a reemplazar las cargas de trabajo de alta pps que se han realizado tradicionalmente en hardware, lo que ahorra millones de propietarios del centro de datos millones en costos de infraestructura.
Conceptos de PacketDirect
PD funciona permitiendo que un cliente de PD administre explícitamente el tráfico de red desde un adaptador de red (NIC). PD proporciona al cliente pd el control del envío de alto rendimiento y la funcionalidad de recepción de la NIC a través de la interfaz de cliente packetDirect (PDCI). Internamente, las funciones de envío y recepción de PDCI se asignan directamente al PDPI. Las funciones de envío y recepción de PD funcionan en colas de PD creadas por el cliente de PD en NIC compatibles con PD. PD proporciona a los clientes de PD la capacidad de establecer filtros personalizados para tipos de tráfico muy específicos o tráfico muy genérico, en función de las necesidades del cliente de PD. Esto permite al cliente de PD dirigir determinados paquetes entrantes a sus colas de PD. El procesamiento de paquetes en el modelo de PD siempre tiene lugar en un contexto de ejecución propiedad (o controlado o coordinado) por el cliente de PD. El controlador NIC compatible con PD es completamente pasivo, lo que significa que no reenvía activamente paquetes entrantes ni indicaciones de finalización para los paquetes enviados al cliente de PD en un contexto de ejecución propiedad del controlador, como un DPC o un subproceso de trabajo.
Si un cliente de PD no entiende cómo procesar un paquete o recibe un paquete de control en una de sus colas, como un ARP, LLDP u otros paquetes de protocolo, el cliente pd puede volver a enrutar el paquete a la ruta de acceso de E/S actual para su procesamiento. Esto permite a pd continuar procesando los paquetes que tiene contexto para y no desperdiciar ciclos de control del tráfico.
Importante Puede haber un proveedor de PD y un cliente de PD por adaptador de red. Por lo tanto, puede haber varios clientes de PD y proveedores de PD en un único sistema.
El cliente de PD tiene control sobre los recursos que se asignan a PD en el sistema. En los casos de tráfico de red elevado, el cliente de PD es responsable de minimizar su carga de trabajo para que el sistema operativo pueda responder a otras cargas de trabajo.
La plataforma PacketDirect implementada por Windows asigna la interfaz de cliente a la interfaz del proveedor. La plataforma controla la administración del búfer y la capacidad de volver a insertar paquetes recibidos a través de PD a la ruta de acceso de recepción del NDIS actual. También controla la interacción con los clientes de PD para satisfacer los requisitos de ruta de acceso de control de NDIS, como la deshabilitación de la NIC, la baja potencia, el apagado del sistema y la eliminación sorpresa de una manera que no dificulta el rendimiento de la ruta de acceso de datos pd.
Interfaz del proveedor PacketDirect (PDPI)
El PDPI permite que los controladores NIC expongan su funcionalidad de envío y recepción de alto rendimiento al sistema operativo Windows. Las funciones implementadas son un subconjunto de la funcionalidad completa de MiniPort y son genéricas para todas las NIC que implementan PD. Para obtener documentación de referencia para PDPI, consulte PacketDirect Provider Interface (PDPI) Reference ( Referencia de packetDirect Provider Interface (PDPI).
PacketDirect Client Interface (PDCI)
La PDCI permite que los servicios o aplicaciones de Windows de primera entidad (por ejemplo, Load-Balancer, NAT, VM-switch, etc.) aceleren su ruta de acceso de datos aprovechando el modelo de E/S de PacketDirect mediante el uso de los clientes de PD. Esta interfaz es una interfaz de nivel 2 igual que la interfaz actual de envío y recepción de NDIS. La funcionalidad principal que proporciona PDCI (además del acceso PDPI) es la asignación o administración del búfer de paquetes pd, un canal de retroceso para insertar paquetes en la ruta de acceso de recepción NDIS normal, el control de eventos de alimentación/PnP de NDIS.