Übersicht über paketverknendende Pakete

Bestimmte IP-Netzwerkprotokolle der Version 4 (IPv4) und IP-Version 6 (IPv6) umfassen die Übertragung von Paketen an Broadcast- oder Multicastadressen. Diese Pakete werden von mehreren Hosts im IPv4/IPv6-Subnetz empfangen. In den meisten Fällen macht der Host, der diese Pakete empfängt, nichts mit diesen Paketen. Daher verursacht der Empfang dieser unerwünschten Multicast- oder Broadcast-Pakete unnötige Verarbeitung und Energieverbrauch innerhalb des empfangenden Hosts.

Beispielsweise sendet Host A eine LLMNR-Anforderung (Multicast-Local Multicast Name Resolution) an ein IPv6-Subnetz, um den Namen von Host B aufzulösen. Mit Ausnahme von Host A wird diese LLMNR-Anforderung von allen Hosts im Subnetz empfangen. Mit Ausnahme von Host B überprüft der TCP/IP-Protokollstapel, der auf den anderen Hosts ausgeführt wird, das Paket und stellt fest, dass das Paket nicht dafür vorgesehen ist. Daher lehnt der Protokollstapel das Paket ab und ruft NdisReturnNetBufferLists auf, um das Paket an den Miniporttreiber zurückzugeben.

Ab NDIS 6.30 können Netzwerkadapter die NDIS-Paketverknappung unterstützen. Durch die Reduzierung der Anzahl der Empfangsunterbrechungen durch die Zusammenführung zufälliger Broadcast- oder Multicastpakete wird der Verarbeitungsaufwand und der Stromverbrauch auf dem System erheblich reduziert.

Das Zusammenfügen von Paketen umfasst die folgenden Schritte:

  1. Überlastende Treiber, z. B. der TCP/IP-Protokollstapel, definieren NDIS-Empfangsfilter, die zum Überprüfen von Broadcast- und Multicastpaketen verwendet werden. Die überladenen Treiber laden diese Filter auf den zugrunde liegenden Miniporttreiber herunter, der das Zusammenfügen von Paketen unterstützt. Nach dem Herunterladen konfiguriert der Miniporttreiber den Netzwerkadapter mit den paketverknappten Empfangsfiltern.

    Weitere Informationen zu diesen Filtern finden Sie unter Packet Coalescing Receive Filters.For more information about these filters, see Packet Coalescing Receive Filters.

  2. Empfangene Pakete, die mit Empfangsfiltern übereinstimmen, werden auf dem Netzwerkadapter zwischengespeichert oder zusammengefasst. Der Adapter generiert keinen Empfangsunterbrechung für zusammengehakte Pakete. Stattdessen unterbricht der Adapter den Host, wenn ein anderes Hardwareereignis auftritt.

    Wenn dieser Interrupt generiert wird, muss der Adapter ein Empfangsereignis mit dem Interrupt angeben. Dadurch kann der Netzwerkadapter zusammengefakte Pakete verarbeiten, die vom Netzwerkadapter empfangen wurden.

    Beispielsweise kann der Netzwerkadapter, der die Paketverknappung unterstützt, einen Empfangsunterbrechung generieren, wenn eines der folgenden Ereignisse auftritt:

    • Der Ablauf eines Hardwaretimers, dessen Ablaufzeit auf einen maximalen Wert der Zusammenführungsverzögerung des übereinstimmenden Empfangsfilters festgelegt ist.

    • Der verfügbare Platz im Hardware-Koalescierungspuffer erreicht eine vom Adapter angegebene Low-Water-Markierung.

    • Es wird ein Paket empfangen, das nicht mit einem Zusammenführungsfilter übereinstimmt.

    • Ein weiteres Interruptereignis, z. B. ein Sendeabschlussereignis, ist aufgetreten.

    Weitere Informationen zu diesem Prozess finden Sie unter Handling Packet Coalescing Receive Filters.For more information about this process, see Handling Packet Coalescing Receive Filters.

Die folgenden Punkte gelten für die Unterstützung der Paketkopplung durch NDIS:

  • NDIS unterstützt die Paketverknappung für Pakete, die über den standardmäßigen NDIS-Port (Port 0) empfangen werden, der dem physischen Netzwerkadapter zugewiesen ist. NDIS unterstützt keine Paketverknappung an NDIS-Ports, die virtuellen Netzwerkadaptern zugewiesen sind. Weitere Informationen finden Sie unter NDIS-Ports.

  • NDIS unterstützt die Paketverknappung für Pakete, die in der Standard-Empfangswarteschlange des Netzwerkadapters empfangen werden. Diese Empfangswarteschlange weist den Bezeichner NDIS_DEFAULT_RECEIVE_QUEUE_ID auf.