Поделиться через


Условия исключения, которые завершают объединение

В этом разделе определяются проверки, которые драйвер мини-порта с поддержкой RSC должен выполнять в сегменте перед объединением.

Перед объединением сегмент должен пройти оба следующих типа проверок:

  • Проверяет наличие определенного условия в сегменте. Например, наличие флага SYN в заголовке TCP вызовет исключение, и сегмент не будет объединен. Эти типы проверок определены ниже.

  • Проверки, которые зависят от проверки и сопоставления информации из ранее объединенных сегментов и проверенных в настоящее время сегментов. Например, проверка того, является ли полученный сегмент повторяющимся подтверждением, относится к этой категории проверок. Эти типы проверок определены в разделе Правила объединения сегментов TCP/IP.

Если проверка завершается сбоем, запускается исключение, и драйвер мини-порта должен завершить объединение для этого TCP-подключения и обрабатывать сегменты следующим образом:

  • Сегменты TCP, объединенные до обнаружения исключения, должны быть указаны как один блок.

  • Сегменты TCP, объединенные после обнаружения исключения, должны быть обозначены как отдельная единица.

Примечание Для исключений 7 и 8 ниже драйвер мини-порта должен возобновить объединение, начиная с сегмента, который вызвал исключение.

Получение сегмента, удовлетворяющего любому из следующих критериев, должно вызвать исключение:

  1. Ограничения аппаратных ресурсов в сетевом адаптере предотвращают объединение.

  2. Сегмент имеет недопустимую контрольную сумму TCP или IP.

  3. Сегмент содержит любой из SYN, URG, RST, FIN в заголовке TCP, как определено в разделе 3.1 RFC 793. В более широком смысле, если сегмент содержит любой флаг, отличный от PSH или ACK, он должен вызвать исключение. Для флагов ECN см. исключение 8 ниже.

  4. Сегмент содержит один или несколько параметров TCP, отличных от параметра метки времени TCP. Описание параметра метки времени TCP см. в статье RFC 1323 .

  5. Сегмент содержит параметры IPv4 или заголовки расширения IPv6.

  6. Сегмент представляет собой фрагмент IPv4.

  7. Объединение полученного в данный момент сегмента приведет к тому, что одна объединенная единица превысит максимальную легальную длину ip-датаграммы. Это исключение требует специальной обработки. Дополнительные сведения см. в разделе:

  8. Сегмент содержит флаги ECN, как определено в RFC 3168, которые соответствуют одному или обоим из следующих критериев:

    1. Сегмент содержит другое значение для поля ECN (ECT, CE) в заголовке IP-адреса, чем в предыдущем сегменте.

    2. Значение сегмента для флагов ECN (ECE и CWR) в заголовке TCP отличается от значения предыдущего сегмента.