終止聯合的例外狀況
本節會定義接收區段聯合 (RSC) 支援的迷你埠驅動程式必須在區段上執行,才能進行聯合。
區段必須通過下列兩種檢查類型,才能進行聯合:
檢查區段中是否有特定條件。 例如,TCP 標頭中有 SYN 旗標會觸發例外狀況,而且區段不會聯合。 以下定義這些類型的檢查。
根據先前聯合區段和目前檢查區段的資訊相互關聯,檢查是否相依。 例如,檢查接收的區段是否為重複確認落在這個檢查類別中。 這些類型的檢查定義于 聯合 TCP/IP 區段的規則中。
如果檢查失敗,就會觸發例外狀況,而且迷你埠驅動程式必須終止該 TCP 連線的聯合,並將區段視為下列專案:
偵測到例外狀況之前聯合的 TCP 區段應該以單一單位表示。
偵測到例外狀況之後聯合的 TCP 區段應該以個別單位表示。
注意 針對下列例外狀況 7 和 8,迷你埠驅動程式應該從觸發例外狀況的區段開始繼續聯合。
接收符合下列任何準則的區段必須觸發例外狀況:
NIC 中的硬體資源條件約束可防止聯合。
區段具有不正確 TCP 或 IP 總和檢查碼。
區段包含其 TCP 標頭中任何 SYN、」、[][][]、[RST]、[FIN],如 RFC 793第 3.1 節所定義。 更廣泛地,如果區段包含 PSH 或 ACK 以外的任何旗標,它應該會觸發例外狀況。 如需 ECN 旗標,請參閱下面的例外狀況 8。
區段包含 TCP 時間戳記選項以外的一或多個 TCP 選項。 如需 TCP 時間戳記選項的討論,請參閱 RFC 1323 。
區段包含 IPv4 選項或 IPv6 擴充標頭。
區段是 IPv4 片段。
聯合目前收到的區段會導致單一聯合單位超過合法 IP 資料包長度上限。 此例外狀況需要特殊處理。 如需詳細資訊,請參閱
聯合 TCP/IP 封包規則中的第一個流程圖
RSC 驅動程式的程式設計考慮中的「回應 RSC 統計資料的查詢」。
區段包含 ECN 旗標,如 RFC 3168中所定義,符合下列其中一或兩個準則:
區段包含 IP 標頭中與上一個區段不同的 ECN 欄位 (ECT、CE) 值。
區段在 TCP 標頭中的 ECN 旗標 (ECE 和 CWR) 值與上一個區段不同。