共用方式為


終止合併的例外條件

本節定義具備接收區段接合(RSC)功能的迷你端口驅動程序在接合區段之前必須執行的檢查。

區段必須先通過下列兩種類型的檢查,才能合併:

  • 檢查區段中是否有特定條件。 例如,TCP 標頭中 SYN 旗標的存在會觸發異常,而且該段不會被合併。 這些類型的檢查定義如下。

  • 相依於先前合併區段和目前所檢查區段的資訊進行檢查與相互關聯。 例如,檢查接收的區段是否為重複的通知落在這個檢查類別中。 這些類型的檢查定義於聯合 TCP/IP 區段 規則中。

如果檢查失敗,就會觸發例外,而迷你端口驅動程式必須終止該 TCP 連線的整合,並將資料段視為如下:

  • 偵測到例外狀況之前聯合的 TCP 區段應該以單一單位表示。

  • 偵測到例外狀況之後聯合的 TCP 區段應該以個別單位表示。

注意 在以下的例外狀況 7 和 8 中,小型端口驅動程式應該從觸發例外的區段開始繼續合併。

接收符合下列任何準則的區段必須觸發例外狀況:

  1. NIC 中的硬體資源限制會防止聯合。

  2. 區段具有無效的 TCP 或 IP 總和檢查碼。

  3. 段的 TCP 標頭中包含任何 SYN、URG、RST 或 FIN,如 RFC 793第 3.1 節中所定義。 更廣泛地說,如果區段包含 PSH 或 ACK 以外的任何旗標,它應該觸發例外狀況。 如需ECN旗標,請參閱下面的例外狀況8。

  4. 區段包含 TCP 時間戳選項以外的一或多個 TCP 選項。 如需 TCP 時間戳選項的討論,請參閱 RFC 1323

  5. 區段包含 IPv4 選項或 IPv6 擴充功能標頭。

  6. 區段是 IPv4 片段。

  7. 合併目前接收到的區段會導致單一合併單元超過法定IP資料包長度上限。 此例外狀況需要特殊處理。 如需詳細資訊,請參閱:

  8. 區段包含 ECN 旗標,如 RFC 3168 中所定義,符合下列其中一個或兩個準則:

    1. 區段包含IP標頭中ECN欄位 (ECT, CE) 的值,與上一個區段不同。

    2. 區段在 TCP 標頭中,ECN 旗標 (ECE 和 CWR) 的值與上一個區段不同。