31
По умолчанию (если в настройках TCP/IP не указано иное значение)
размер сегмента равен 536 байт (поскольку максимальный размер IP-пакета по
умолчанию равен 576 байт).
Окна приема
Протокол TCP имеет средства управления потоком данных: если
принимающая данные сторона не успевает их обрабатывать, отправитель
замедляет или приостанавливает передачу.
В процессе установки соединения каждая из сторон
выделяет память под
входной и выходной буферы и передает (в поле «Окно» того же SYN-сегмента,
в котором передается ISN) второй стороне количество байт, которые она готова
принять (не больше, чем размер своего входного буфера); это число в TCP
называется окном приема (англ. receive window). Получив значение окна
приема, вторая сторона сохраняет его в блоке
управления передачей, связанном
с соединением, и в процессе передачи данных следит за тем, чтобы объем
отправленных, но неподтвержденных данных никогда не превышал размер
окна приема.
В процессе передачи данных стороны могут изменять свои окна приема
(размер окна приема передается в каждом сегменте в поле «Окно»): например,
если приемник перегружен, он
может передать сегмент с полем «Окно»,
равным нулю (чтобы отправитель приостановил передачу), а когда перегрузка
приемника закончится, передать сегмент с нормальным значением в поле
«Окно».
В начале передачи данных, пока приемник и передатчик не уверены в
качестве соединяющих их каналов связи, обычно обе стороны устанавливают
небольшое окно приема (размером в
один MSS). По мере того, как приходят
подтверждения, размер окна увеличивается экспоненциально (после первого
подтверждения — два MSS, после второго — четыре MSS, после третьего —
восемь MSS и т.д.) до некоторого порога, после которого растет линейно (с
каждым новым подтверждением окно увеличивается на один MSS). Если хотя