Разделение кадров в полезных данных TCP
Адаптеры минипорта NDIS, поддерживающие разделение заголовков и данных, должны поддерживать разделение кадров в заголовке протокола верхнего уровня для кадров TCP. Однако если заголовок TCP не содержит параметров TCP, сетевой адаптер должен разделить кадр в начале полезных данных TCP.
Сетевой адаптер может не разделить кадр TCP, если результирующий буфер заголовков имеет длину, превышающую максимальный размер заголовка. Дополнительные сведения о разделении кадров при превышении максимального размера заголовка см. в разделе Выделение буфера заголовков.
Сетевые адаптеры также должны поддерживать разделение заголовков TCP только с параметром timestamp. То есть параметр timestamp является единственным параметром TCP, который является обязательным. В противном случае поддержка заголовков TCP с параметрами TCP является необязательной. Если заголовок TCP кадра содержит нераспознанный параметр TCP, сетевой адаптер должен либо разделить кадр в начале заголовка TCP (т. е. в заголовке протокола верхнего уровня), либо не разделять кадр.
Примечание Поддержка параметра IPv4, заголовка расширения IPv6 или параметра TCP в соответствии с требованиями к данным заголовка подразумевает возможность сетевой карты распознавать элемент, определять его длину, включать его в заголовок MDL и находить его конец и начало следующего элемента во фрейме.
Дополнительные сведения о разделении кадров в начале заголовка верхнего уровня протокола см. в разделе Разделение кадров в начале заголовков верхнего уровня протокола.
Если поставщик разделения заголовков и данных разделяет фрейм в полезных данных TCP, указанные NET_BUFFER_LIST структуры должны иметь флаги NDIS_NBL_FLAGS_IS_TCP и NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_PAYLOAD в элементе NblFlags . Дополнительные сведения о настройке флагов разделения заголовков и данных NET_BUFFER_LIST см. в разделе Настройка NET_BUFFER_LIST сведений.