
RST: перезагрузка данного соединения
SYN: синхронизация номеров очереди
FIN: нет больше данных для передачи
• Window (W) – окно (16 бит);
• Checksum – контрольная сумма (16 бит), которая указывает, был ли заголовок
поврежден при пересылке;
• Urgent Pointer – срочный указатель (16 бит). Если URG=1, указывает на первый
байт срочных данных в сегменте;
• Options – опции (длина переменная) для указания различных факультативных
возможностей протокола ТСР.
Установка флага SYN=1 означает первый пакет соединения, установка FIN=1 –
конец
соединения. Когда соединение установлено, взаимодействующие процессы
обмениваются пакетами, т. е. каждый процесс является как отправителем, так и
получателем пакетов.
Отправитель последовательно нумерует отправляемые байты, начиная с некоторого
случайного номера ISN
47
. Это делается для того, чтобы получатель мог обнаружить
задержавшийся пакет, не относящийся к текущему открытому соединению.
Если SYN=0, то SN – это номер первого байта данных в текущем сегменте. Если
SYN=1, номер очереди инициализирован (ISN), а номер первого байта SN = ISN +1.
Если ACK=1, то AckN – это порядковый номер следующего байта, ожидаемого
получателем. Это
означает, что получатель принял все байты с порядковым номером до
Ack N-1, но не принял байт с номером AckN (хотя быть может принял байты с номерами
большими, чем AckN +1). Номера подтверждения AckN посылаются постоянно, как
только соединение будет установлено.
Схема на рис.6. 11 поясняет работу протокола TCP. Величина окна W выбирается
автоматически по
специальному алгоритму для предотвращения переполнения буфера и
с учетом уровня помех в линии. При потере или искажении пакетов, организуется
повторная передача: если отправитель не получает подтверждения после истечения
установленного тайм-аута, он повторяет передачу сегмента.
Поток байтов от приложения поступает в буфер. При наполнении буфера
48
или, если
PSH=1, принудительно из этих байтов «нарезается» сегмент, который передается
протоколу IP. Параллельно сегменты заталкиваются в стек, хранящий отправленные
47
Используется датчик случайных чисел или генератор чисел, связанный с таймером
отправителя
48
Для большинства каналов размер буфера равен 536 байтам.