Межсетевое экранирование



              

Установление ТСР-соединения - часть 2


Существуют "хорошо известные" номера портов, которые ТСР связывает только с "соответствующими" процессами.

Каждый конец ТСР-соединения является либо клиентом, либо сервером. Соединение инициируется клиентом. Сервер ждет установления соединения от клиента. Поэтому ТСР-соединение может быть открыто либо в пассивном режиме — сервером, либо в активном — клиентом.

Запрос пассивного открытия означает, что процесс сервера ждет запросов на входящие соединения, а не пытается сам инициировать соединение. Часто процесс, запрашивающий пассивное открытие, будет принимать запросы соединения от любого вызывающего.

Процесс, который хочет предоставлять сервис другим неизвестным процессам, создает запрос пассивного открытия. При этом будет создаваться соединение с любым процессом, который запросил соединение с данным локальным сокетом.

Процедура установления соединений использует флаг управления синхронизацией (SYN) и включает обмен тремя сообщениями.

Соединение инициируется при получении сегмента, содержащего установленный флаг SYN. При инициализации соединение устанавливается между локальным и удаленным сокетами. Оно становится "установленным", когда последовательные номера пакетов синхронизованы в обоих направлениях.

Очистка соединения включает обмен сегментами, содержащими управляющий флаг FIN.

ТСР-сегменты посылаются в виде датаграмм. Заголовок IP содержит несколько полей, включая адреса хостов источника и получателя. ТСР-заголовок следует за IP-заголовком и содержит информацию, специфичную для ТСР.

Таблица 1.4. Формат заголовка ТСР

Порт источникаПорт получателя
Sequence Number
Acknowledgement Number

Data OffsetReserved

URGACKPSHRSTSYNFIN

Window
ChecksumUrgent Pointer
Options Padding
Данные

Порт источника – 16 бит.

Порт получателя – 16 бит.

Sequence Number – 32 бита. Последовательный номер первого октета данных в данном сегменте. Исключением является случай, когда присутствует флаг SYN. В этом случае последовательный номер есть начальный последовательный номер (Initial Sequence Number — ISN), и номер первого октета данных равен ISN+1.




Содержание  Назад  Вперед