封包聯合概觀
某些 IP 第 4 版 (IPv4) 和 IP 第 6 版 (IPv6) 網路通訊協定牽涉到將封包傳輸至廣播或多播位址。 這些封包是由 IPv4/IPv6 子網中的多部主機所接收。 在大部分情況下,接收這些封包的主機不會對這些封包執行任何動作。 因此,接收這些垃圾多播或廣播封包會導致接收主機內發生不必要的處理和耗電量。
例如,主機 A 會在 IPv6 子網上傳送多播連結本機多播名稱解析 (LLMNR) 要求,以解析主機 B 的名稱。 除了主機 A 之外,子網上的所有主機都會收到此 LLMNR 要求。 除了主機 B 之外,在其他主機上執行的 TCP/IP 通訊協定堆疊會檢查封包,並判斷封包不適合它。 因此,通訊協定堆疊會拒絕封包,並呼叫 NdisReturnNetBufferLists 將封包傳回至迷你埠驅動程式。
從 NDIS 6.30 開始,網路介面卡可以支援 NDIS 封包聯合。 藉由減少透過隨機廣播或多播封包聯合的接收中斷數目,系統就會大幅降低處理額外負荷和耗電量。
封包聯合涉及下列步驟:
過度配置驅動程式,例如 TCP/IP 通訊協定堆疊,定義用來螢幕廣播和多播封包的 NDIS 接收篩選器。 過度使用的驅動程式會將這些篩選準則下載到支援封包聯合的基礎迷你埠驅動程式。 下載之後,迷你埠驅動程式會使用封包聯合接收篩選器來設定網路介面卡。
如需這些篩選的詳細資訊,請參閱 封包聯合接收篩選器。
網路介面卡上會快取或 聯合符合接收篩選準則的已接收封包。 配接器不會產生聯合封包的接收中斷。 相反地,配接器會在發生另一個硬體事件時中斷主機。
產生此中斷時,配接器必須指出具有中斷的接收事件。 這可讓網路介面卡處理網路介面卡所接收的聯合封包。
例如,支援封包聯合的網路介面卡可以在發生下列其中一個事件時產生接收中斷:
硬體計時器的到期時間設定為相符接收篩選準則的最大聯合延遲值。
硬體聯合緩衝區內的可用空間達到介面卡指定的低水標記。
收到與聯合篩選準則不符的封包。
發生另一個中斷事件,例如傳送完成事件。
如需此程式的詳細資訊,請參閱 處理封包聯合接收篩選器。
下列幾點適用于 NDIS 的封包聯合支援:
NDIS 支援在預設 NDIS 埠上接收的封包聯合, (埠 0) 指派給實體網路介面卡。 NDIS 不支援指派給虛擬網路介面卡的 NDIS 埠上的封包聯合。 如需詳細資訊,請參閱 NDIS 埠。
NDIS 針對網路介面卡的預設接收佇列上收到的封包支援封包聯合。 此接收佇列具有NDIS_DEFAULT_RECEIVE_QUEUE_ID識別碼。