Условия исключения, которые завершают объединение
В этом разделе определяются проверки, которые драйвер мини-порта с поддержкой RSC должен выполнять в сегменте перед объединением.
Перед объединением сегмент должен пройти оба следующих типа проверок:
Проверяет наличие определенного условия в сегменте. Например, наличие флага SYN в заголовке TCP вызовет исключение, и сегмент не будет объединен. Эти типы проверок определены ниже.
Проверки, которые зависят от проверки и сопоставления информации из ранее объединенных сегментов и проверенных в настоящее время сегментов. Например, проверка того, является ли полученный сегмент повторяющимся подтверждением, относится к этой категории проверок. Эти типы проверок определены в разделе Правила объединения сегментов TCP/IP.
Если проверка завершается сбоем, запускается исключение, и драйвер мини-порта должен завершить объединение для этого TCP-подключения и обрабатывать сегменты следующим образом:
Сегменты TCP, объединенные до обнаружения исключения, должны быть указаны как один блок.
Сегменты TCP, объединенные после обнаружения исключения, должны быть обозначены как отдельная единица.
Примечание Для исключений 7 и 8 ниже драйвер мини-порта должен возобновить объединение, начиная с сегмента, который вызвал исключение.
Получение сегмента, удовлетворяющего любому из следующих критериев, должно вызвать исключение:
Ограничения аппаратных ресурсов в сетевом адаптере предотвращают объединение.
Сегмент имеет недопустимую контрольную сумму TCP или IP.
Сегмент содержит любой из SYN, URG, RST, FIN в заголовке TCP, как определено в разделе 3.1 RFC 793. В более широком смысле, если сегмент содержит любой флаг, отличный от PSH или ACK, он должен вызвать исключение. Для флагов ECN см. исключение 8 ниже.
Сегмент содержит один или несколько параметров TCP, отличных от параметра метки времени TCP. Описание параметра метки времени TCP см. в статье RFC 1323 .
Сегмент содержит параметры IPv4 или заголовки расширения IPv6.
Сегмент представляет собой фрагмент IPv4.
Объединение полученного в данный момент сегмента приведет к тому, что одна объединенная единица превысит максимальную легальную длину ip-датаграммы. Это исключение требует специальной обработки. Дополнительные сведения см. в разделе:
Первая блок-схема в разделе Правила объединения пакетов TCP/IP
"Реагирование на запросы к статистике RSC" в разделе Рекомендации по программированию для драйверов RSC.
Сегмент содержит флаги ECN, как определено в RFC 3168, которые соответствуют одному или обоим из следующих критериев:
Сегмент содержит другое значение для поля ECN (ECT, CE) в заголовке IP-адреса, чем в предыдущем сегменте.
Значение сегмента для флагов ECN (ECE и CWR) в заголовке TCP отличается от значения предыдущего сегмента.