Компьютерные сети
292
SYN – запрос на установление соединения;
FIN (finish) означает, что отправитель заканчивает посылку данных.
В сегменте одновременно могут быть установлены несколько флагов.
Размера окна (window size) – это количество байт, начинающееся с
указанного в поле номера подтверждения, которое приложение готово при-
нять. Этот параметр служит для управления потоком данных TCP. Очевид-
но, что 16-битовое поле ограничивает размер окна в 65535 байтов.
Контрольная сумма (checksum) охватывает собой весь TCP-сегмент,
т.е. TCP-заголовок и TCP-данные. Это обязательное поле, которое должно
быть рассчитано и сохранено отправителем, а затем проверено получателем.
Контрольная сумма TCP рассчитывается так же, как контрольная сумма
UDP, с использованием псевдозаголовка.
Указатель срочности используется для задания длины данных, кото-
рые размещаются в начале поля данных сегмента. Он указывает смещение
последнего октета со срочными данными относительно первого октета в
сегменте. Например, в сегменте передаются октеты с 2001–го по 3000–й, при
этом первые 100 октетов являются срочными данными. В этом случае в ука-
зателе срочности будет находиться число 100.
Поле "Опции" имеет переменную длину; может отсутствовать или со-
держать одну опцию либо список опций, реализующих дополнительные ус-
луги протокола ТСР. Максимальная длина опций равна 40 байтам. Наиболее
распространенными опциями являются: "Максимальный размер сегмента",
"Масштабирование окна", "Выборочные подтверждения разрешены" и др.
Поле опций состоит из октета, определяющего тип опции, затем может сле-
довать октет с длиной опции и октеты с данными для опций.
Максимальное значение размера сегмента MSS зависит от ряда факто-
ров. Если IP-адрес назначения "не локальный", MSS обычно устанавливается
по умолчанию – 536. Некоторые операционные системы объявляют MSS,
равный 1460, когда обе стороны находятся на одной сети Ethernet. В процес-
се установления соединения каждая сторона может объявить свой MSS. В
общем случае, чем больше MSS, тем лучше, до тех пор, пока не происходит
фрагментация.
Для установления TCP-соединения необходима посылка трех сегмен-
тов с получением подтверждения (рисунок 4.15). Такую процедуру называют
трехразовым рукопожатием (three-way handshake). Она осуществляется сле-
дующим образом.
Сегмент 1: Запрашивающая сторона А отправляет с установленным
флагом синхронизации (SYN=1) сегмент с указанием номера порта удален-
ного компьютера Б, к которому станция А хочет подсоединиться, и началь-
ный номер последовательности ISN (Initial Sequence Number). В данном
примере ISN =4712, начиная с которого будут отсчитываться отправляемые