Справочник по сетевым протоколам

       

Команда открытия


Формат

OPEN (свой порт, чужой порт, активный/пассивный [,контрольное время] [,приоритет] [,безопасность] [,опции]) -> местное имя для соединения

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

Если флаг активный/пассивный установлен в состояние "пассивный", то это означает, что дан запрос на "прослушивание" (LISTEN) сигнала установления соединения извне. Пассивное открытие может дать либо полное описание чужого сокета, с которым должно быть установлено данное соединение, либо не давать никаких указаний по поводу чужого сокета, который должен дать сигнал. Пассивное открытие соединения с четко определенным чужим сокетом может стать в любой момент активным открытым соединением, если будет дана команда на посылку данных (SEND). Создается блок управления передачей (TCB) и частично заполняется информацией, полученной от параметров команды OPEN.

В случае команды на активное открытие (OPEN) протокол TCP немедленно запустит процедуру синхронизации (точнее, установления) соединения.

Контрольное время, если оно присутствует среди параметров функции, позволяет клиенту установить контрольное время ликвидации для всех данных, посылаемых от имени протокола TCP. Если в течение этого контрольного времени какие-либо данные не достигли своего адресата, программа TCP ликвидирует соединение. В настоящее время общепринятым контрольным временем являются пять минут.


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

Программа протокола TCP будет воспринимать приходящие запросы только если они имеют тот же самый уровень безопасности/закрытости. Приоритет запросов должен быть равен или превышать приоритет, указанный в команда открытия (OPEN).

Если приоритет для соединения оказывается больше, чем значение, указанное в запросе CALL, то берется приоритет из пришедшего запроса и становится постоянной характеристикой соединения. Разработчики могут перепоручить клиентам ведение переговоров по поводу установления приоритета соединения. Например, клиент может указывать приоритет, который должен быть присвоен соединению. В другом примере, любая попытка повысить приоритет соединения должна получить санкцию клиента.

По завершении операции протокол TCP возвращает клиенту местное название для открытого соединения. Впоследствии имя соединения может использоваться в качестве короткого обозначения для соединения, идентифицируемого парой <местный сокет, чужой сокет >.


Содержание раздела