Установление TCP-соединения и передача данных

Режим участия в установлении TCP-соединения может быть активным и пассивным. При пассивном участии рабочая станция ожидает сигнал открытия ТСР-канала от встречного оборудования и не пытается открыть ТСР-канал сама. Этот режим обычно используется процессами, которые предоставляют свой сервис через общеизвестный номер своего порта (например, HTTP, SMTP и т. д.). При активном режиме участия рабочая станция сама инициирует открытие ТСР-канала. Соединение будет также установлено, если два процесса активно откроют канал навстречу друг другу. Такая гибкость в установлении соединения особенно важна в распределенных сетях, когда компьютеры работают асинхронно.

Процедура установления TCP-соединения выглядит следующим образом. Рабочая станция, инициирующая открытие ТСР-канала, передает пакет с флагом SYN, в котором указывается номер порта и начальный порядковый номер пакетов данных. Встречная станция передает на указанный адрес ответ с флагами SYN и АСК, в котором указывается начальный порядковый номер пакетов данных. Сторона, инициирующая установление TCP-соединения, подтверждает получение пакета с флагами SYN и АСК передачей пакета с установленным флагом АСК.

Именно трех тактов квитирующих сообщений всегда бывает достаточно, чтобы синхронизировать потоки данных. Соединение считается установленным, когда последовательности передаваемых пакетов в обоих направлениях синхронизируются, т.е. когда и клиент, и сервер «знают», пакет с каким номером поступит с противоположной стороны соединения.

Соединение закрывается, когда порты оборудования обмениваются пакетами, содержащими флаги FIN. При этом все ресурсы системы должны быть освобождены.