Sdílet prostřednictvím


Přehled slučování paketů

Některé síťové protokoly IP verze 4 (IPv4) a IP verze 6 (IPv6) zahrnují přenos paketů do broadcastových nebo multicastových adres. Tyto pakety přijímají více hostitelů v podsíti IPv4/IPv6. Ve většině případů hostitel, který tyto pakety přijímá, s těmito pakety nic nedělá. Příjem těchto nežádoucích paketů vícesměrového vysílání nebo všesměrového vysílání proto způsobuje zbytečné zpracování a spotřebu energie v rámci přijímajícího hostitele.

Hostitel A například odešle požadavek na link-local multicast name resolution (LLMNR) na IPv6 podsítí za účelem vyhledání názvu hostitele B. Kromě hostitele A tento požadavek LLMNR přijímá všichni hostitelé v podsíti. S výjimkou hostitele B zásobník protokolu TCP/IP, který běží na ostatních hostitelích, kontroluje paket a určuje, že paket není určený pro něj. Zásobník protokolu proto odmítne paket a volá NdisReturnNetBufferLists k vrácení paketu do ovladače miniportu.

Od verze NDIS 6.30 můžou síťové adaptéry podporovat sloučování paketů NDIS. Snížením počtu přerušení příjmu prostřednictvím spojení náhodných paketů všesměrového vysílání nebo vícesměrového vysílání se v systému výrazně sníží režie zpracování a spotřeba energie.

Slučování paketů zahrnuje následující kroky:

  1. Nadřízené ovladače, jako je zásobník protokolu TCP/IP, definují NDIS přijímací filtry, které se používají k filtrování vysílacích a vícesměrových paketů. Nadřazené ovladače stahují tyto filtry do základního ovladače miniportu, který podporuje slučování paketů. Po stažení miniport ovladače nakonfiguruje síťový adaptér pomocí přijímacích filtrů pro slučování paketů.

    Pro více informací o těchto filtrech naleznete v tématu Packet Coalescing Receive Filters.

  2. Přijaté pakety, které odpovídají filtrům příjmu, se ukládají do mezipaměti nebo v síťovém adaptéru. Adaptér nevygeneruje přerušení příjmu pro sloučené pakety. Místo toho adaptér přeruší hostitelský počítač, když dojde k jiné hardwarové události.

    Při vygenerování tohoto přerušení musí adaptér indikovat událost příjmu s přerušením. To umožňuje síťovému adaptéru zpracovávat sloučené pakety přijaté síťovým adaptérem.

    Například síťový adaptér, který podporuje shodování paketů, může vygenerovat přerušení příjmu, když dojde k jedné z následujících událostí:

    • Vypršení časovače hardwaru, jehož doba vypršení je nastavena na maximální hodnotu zpoždění slučování odpovídající filtru příjmu.

    • Dostupné místo v hardwarové vyrovnávací paměti pro slučování dosáhne dolní meze určené adaptérem.

    • Je přijat paket, který neodpovídá slučovacímu filtru.

    • Došlo k další události přerušení, například událost dokončení odeslání.

    Další informace o tomto procesu naleznete v tématu Spojování filtrů pro příjem paketů.

Následující body platí pro podporu sloučování paketů pomocí NDIS:

  • NDIS podporuje sloučování paketů pro pakety přijaté na výchozím portu NDIS (port 0) přiřazeného fyzickému síťovému adaptéru. NDIS nepodporuje sloužení paketů na portech NDIS, které jsou přiřazené virtuálním síťovým adaptérům. Další informace najdete v tématu Přehled portů NDIS.

  • NDIS podporuje sloučování paketů pro pakety přijaté ve výchozí frontě příjmu síťového adaptéru. Tato přijímací fronta má identifikátor NDIS_DEFAULT_RECEIVE_QUEUE_ID.