Vue d’ensemble de la fusion des paquets
Certains protocoles réseau IP version 4 (IPv4) et IP version 6 (IPv6) impliquent la transmission de paquets vers des adresses de diffusion ou de multidiffusion. Ces paquets sont reçus par plusieurs hôtes dans le sous-réseau IPv4/IPv6. Dans la plupart des cas, l’hôte qui reçoit ces paquets ne fait rien avec ces paquets. Par conséquent, la réception de ces paquets de multidiffusion ou de diffusion indésirables entraîne un traitement et une consommation d’énergie inutiles au sein de l’hôte de réception.
Par exemple, l’hôte A envoie une requête LLMNR (Multicast Name Resolution) locale de multidiffusion sur un sous-réseau IPv6 pour résoudre le nom de l’hôte B. À l’exception de l’hôte A, cette requête LLMNR est reçue par tous les hôtes du sous-réseau. À l’exception de l’hôte B, la pile de protocoles TCP/IP qui s’exécute sur les autres hôtes inspecte le paquet et détermine que le paquet n’est pas destiné à celui-ci. Par conséquent, la pile de protocoles rejette le paquet et appelle NdisReturnNetBufferLists pour retourner le paquet au pilote miniport.
À compter de NDIS 6.30, les cartes réseau peuvent prendre en charge la fusion de paquets NDIS. En réduisant le nombre d’interruptions de réception grâce à la fusion de paquets de diffusion aléatoire ou de multidiffusion, la surcharge de traitement et la consommation d’énergie sont considérablement réduites sur le système.
La fusion de paquets implique les étapes suivantes :
Les pilotes superposés, tels que la pile de protocoles TCP/IP, définissent les filtres de réception NDIS utilisés pour filtrer les paquets de diffusion et de multidiffusion. Les pilotes qui se superposent téléchargent ces filtres sur le pilote miniport sous-jacent qui prend en charge la fusion des paquets. Une fois téléchargé, le pilote miniport configure la carte réseau avec les filtres de réception de fusion de paquets.
Pour plus d’informations sur ces filtres, consultez Filtres de réception de fusion de paquets.
Les paquets reçus qui correspondent aux filtres de réception sont mis en cache ou regroupés sur la carte réseau. L’adaptateur ne génère pas d’interruption de réception pour les paquets coalescés. Au lieu de cela, l’adaptateur interrompt l’hôte lorsqu’un autre événement matériel se produit.
Lorsque cette interruption est générée, l’adaptateur doit indiquer un événement de réception avec l’interruption. Cela permet à la carte réseau de traiter les paquets coalescés qui ont été reçus par la carte réseau.
Par exemple, la carte réseau qui prend en charge la fusion des paquets peut générer une interruption de réception lorsque l’un des événements suivants se produit :
Expiration d’un minuteur matériel dont le délai d’expiration est défini sur une valeur de délai de fusion maximale du filtre de réception correspondant.
L’espace disponible dans la mémoire tampon de fusion matérielle atteint une limite inférieure spécifiée par l’adaptateur.
Un paquet qui ne correspond pas à un filtre de fusion est reçu.
Un autre événement d’interruption, tel qu’un événement d’achèvement d’envoi, s’est produit.
Pour plus d’informations sur ce processus, consultez Gestion des filtres de réception de fusion de paquets.
Les points suivants s’appliquent à la prise en charge de la fusion de paquets par NDIS :
NDIS prend en charge la fusion des paquets pour les paquets reçus sur le port NDIS par défaut (port 0) affecté à la carte réseau physique. NDIS ne prend pas en charge la fusion de paquets sur les ports NDIS affectés aux cartes réseau virtuelles. Pour plus d’informations, consultez Ports NDIS.
NDIS prend en charge la fusion des paquets pour les paquets reçus dans la file d’attente de réception par défaut de la carte réseau. Cette file d’attente de réception a un identificateur de NDIS_DEFAULT_RECEIVE_QUEUE_ID.