Например при установлении TCP соединения был определен максимальный размер сегмента, равный X. Что будет если в рамках этого соединения будут пересылаться пакеты, размером большие чем X? Например установили размер сегмента 1300, а передаем пакет размером 1400. Этот пакет будет обработан?
В TCP нет понятия пакет04.01.07 15:23 Автор: Killer{R} <Dmitry> Статус: Elderman Отредактировано 04.01.07 15:24 Количество правок: 2
Раскрою свой вопрос подробней. При установлении TCP соединения происходит обмен тремя пакетам с флагами SYN, SYN ACK, ACK. В первых двух пакетах в поле опции TCP заголовка передается Maximum Segment Size - максимальный размер одного нефрагментированного пакета. Предполагается, что после установления соединения будет происходит обмен пакетами размером не более минимальной из этих двух величин (Maximum Segment Size двух хостов). Но что произойдет, если в процессе этого соединения будут отправляться пакеты, превышающие минимальное из двух значений, т.е. в сетевую карту будут уходит не фрагментированные пакеты больше оговоренного значения, но меньше или равное допустимому максимальному размеру eth-кадра (1500 с чем то байт). Т.е. хост например при создании соединения отослал в поле опции Maximum Segment Size равный 500. А в процессе соединения получает нефрагментированный пакет, размеров 1000 байт. Он будет отброшен или обработан?
Если я правильно понял, нарушение договорённости об MSS не требует никакого ответа. Этот параметр мы передаём партнёру чтобы он не посылал нам пакеты больше чем может переварить наш IP stack. Если он нам послал кривой пакет - его проблемы.
Видимо имеется ввиду максимальный размер пакета.04.01.07 12:30 Автор: Den <Денис Т.> Статус: The Elderman