Información general sobre la fusión de paquetes
Algunos protocolos de red ip versión 4 (IPv4) e IP versión 6 (IPv6) implican la transmisión de paquetes a direcciones de difusión o multidifusión. Varios hosts reciben estos paquetes en la subred IPv4/IPv6. En la mayoría de los casos, el host que recibe estos paquetes no hace nada con estos paquetes. Por lo tanto, la recepción de estos paquetes de multidifusión o difusión no deseados hace que el procesamiento innecesario y el consumo de energía se produzcan dentro del host receptor.
Por ejemplo, el host A envía una solicitud de resolución de nombres de multidifusión local de multidifusión (LLMNR) de multidifusión en una subred IPv6 para resolver el nombre del host B. Excepto para el host A, todos los hosts de la subred reciben esta solicitud LLMNR. Excepto para el host B, la pila de protocolo TCP/IP que se ejecuta en los demás hosts inspecciona el paquete y determina que el paquete no está pensado para él. Por lo tanto, la pila de protocolos rechaza el paquete y llama a NdisReturnNetBufferLists para devolver el paquete al controlador de miniport.
A partir de NDIS 6.30, los adaptadores de red pueden admitir la fusión de paquetes NDIS. Al reducir el número de interrupciones de recepción a través de la fusión de paquetes de difusión aleatoria o multidifusión, la sobrecarga de procesamiento y el consumo de energía se reduce significativamente en el sistema.
La fusión de paquetes implica los pasos siguientes:
Los controladores que se sobreponen, como la pila de protocolos TCP/IP, definen filtros de recepción NDIS que se usan para la difusión de pantalla y los paquetes de multidifusión. Los controladores que se sobreponen descargan estos filtros al controlador de minipuerto subyacente que admite la fusión de paquetes. Una vez descargado, el controlador de minipuerto configura el adaptador de red con los filtros de recepción de fusión de paquetes.
Para obtener más información sobre estos filtros, vea Filtros de recepción de fusión de paquetes.
Los paquetes recibidos que coinciden con los filtros de recepción se almacenan en caché o se fusionan en el adaptador de red. El adaptador no genera una interrupción de recepción para paquetes fusionados. En su lugar, el adaptador interrumpe el host cuando se produce otro evento de hardware.
Cuando se genera esta interrupción, el adaptador debe indicar un evento de recepción con la interrupción. Esto permite que el adaptador de red procese paquetes combinados recibidos por el adaptador de red.
Por ejemplo, el adaptador de red que admite la fusión de paquetes puede generar una interrupción de recepción cuando se produce uno de los siguientes eventos:
Expiración de un temporizador de hardware cuyo tiempo de expiración se establece en un valor de retraso máximo de fusión del filtro de recepción coincidente.
El espacio disponible dentro del búfer de fusión de hardware alcanza una marca de agua baja especificada por el adaptador.
Se recibe un paquete que no coincide con un filtro de fusión.
Se ha producido otro evento de interrupción, como un evento de finalización de envío.
Para obtener más información sobre este proceso, consulte Control de filtros de recepción de fusión de paquetes.
Los siguientes puntos se aplican a la compatibilidad de la fusión de paquetes mediante NDIS:
NDIS admite la fusión de paquetes para los paquetes recibidos en el puerto NDIS predeterminado (puerto 0) asignado al adaptador de red físico. NDIS no admite la fusión de paquetes en puertos NDIS asignados a adaptadores de red virtual. Para obtener más información, consulte Puertos NDIS.
NDIS admite la fusión de paquetes para los paquetes recibidos en la cola de recepción predeterminada del adaptador de red. Esta cola de recepción tiene un identificador de NDIS_DEFAULT_RECEIVE_QUEUE_ID.