Delen via


Overzicht van pakketsamenskooling

Bepaalde IP-versie 4 (IPv4) en IP-versie 6 (IPv6) netwerkprotocollen omvatten de verzending van pakketten naar broadcast- of multicastadressen. Deze pakketten worden ontvangen door meerdere hosts in het IPv4-/IPv6-subnet. In de meeste gevallen doet de host die deze pakketten ontvangt niets met deze pakketten. Daarom veroorzaakt de ontvangst van deze ongewenste multicast- of broadcastpakketten onnodige verwerking en energieverbruik binnen de ontvangende host.

Host A verzendt bijvoorbeeld een link-local multicast naamresolutie (LLMNR)-aanvraag op een IPv6-subnet om de naam van host B op te lossen. Met uitzondering van host A wordt deze LLMNR-aanvraag ontvangen door alle hosts in het subnet. Met uitzondering van host B controleert de TCP/IP-protocolstack die wordt gedraaid op de andere hosts het pakket en bepaalt dat het pakket niet voor hen is bedoeld. Daarom weigert de protocolstack het pakket en roept NdisReturnNetBufferLists om het pakket terug te geven aan het miniportstuurprogramma.

Vanaf NDIS 6.30 kunnen netwerkadapters NDIS-pakketsamensmelten ondersteunen. Door het aantal ontvangstonderbrekingen te verminderen door het samenvoegen van willekeurige broadcast- of multicastpakketten, wordt de verwerkingsoverhead en het energieverbruik aanzienlijk verminderd op het systeem.

Het samenvoegen van pakketten omvat de volgende stappen:

  1. Overliggende stuurprogramma's, zoals de TCP/IP-protocolstack, definiƫren NDIS-ontvangstfilters die worden gebruikt om broadcast- en multicastpakketten te screenen. De overliggende stuurprogramma's downloaden deze filters naar het onderliggende minipoortstuurprogramma dat ondersteuning biedt voor pakketsamenkoppeling. Zodra het minipoortstuurprogramma is gedownload, configureert het de netwerkadapter met de ontvangstfilters voor pakketsamenvoeging.

    Zie Packet Coalescing Receive Filtersvoor meer informatie over deze filters.

  2. Ontvangen pakketten die overeenkomen met ontvangstfilters worden in de cache opgeslagen of samengevoegdeop de netwerkadapter. De adapter genereert geen ontvangstonderbreker voor samengesamende pakketten. In plaats daarvan onderbreekt de adapter de host wanneer er een andere hardware-gebeurtenis plaatsvindt.

    Wanneer deze interrupt wordt gegenereerd, moet de adapter een ontvangst-gebeurtenis met de interrupt aangeven. Hierdoor kan de netwerkadapter samengevoegde pakketten verwerken die door de netwerkadapter zijn ontvangen.

    De netwerkadapter die pakketsamenkoppeling ondersteunt, kan bijvoorbeeld een ontvangstonderbreking genereren wanneer een van de volgende gebeurtenissen optreedt:

    • Het verstrijken van een hardwaretimer waarvan de verlooptijd is ingesteld op een maximale samenvoegvertraging van het bijpassende ontvangstfilter.

    • De beschikbare ruimte binnen de hardware-coalescing buffer bereikt een door de adapter gespecificeerde laagwatermarkering.

    • Er wordt een pakket ontvangen dat niet overeenkomt met een coalescerend filter.

    • Er is een andere onderbrekingsgebeurtenis opgetreden, zoals een gebeurtenis voor voltooide verzending.

    Zie voor meer informatie over dit proces omgaan met filters voor het ontvangen van pakketcoalescentie.

De volgende punten zijn van toepassing op de ondersteuning van pakketsamensmelten door NDIS:

  • NDIS ondersteunt pakketsamensmelten voor pakketten die zijn ontvangen op de standaard NDIS-poort (poort 0) die is toegewezen aan de fysieke netwerkadapter. NDIS biedt geen ondersteuning voor pakketsamenkoppeling op NDIS-poorten die zijn toegewezen aan virtuele netwerkadapters. Zie Overzicht van NDIS-poortenvoor meer informatie.

  • NDIS biedt ondersteuning voor pakketsamensmelten voor pakketten die zijn ontvangen in de standaardwachtrij voor ontvangen van de netwerkadapter. Deze ontvangstwachtrij heeft een id van NDIS_DEFAULT_RECEIVE_QUEUE_ID.