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



              

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


Наконец, клиент посылает серверу сообщение с установленным битом ACK, в поле Sequence Number указывает свой начальный номер, в поле Acknowledgement Number указывает полученный от сервера начальный порядковый номер, увеличенный на единицу.

В течение своего жизненного цикла соединение проходит через несколько состояний.

На стороне клиента:

CLOSED

SYN-SENT

ESTABLISHED

FIN-WAIT-1

CLOSE-WAIT

CLOSING

LAST-ACK

CLOSED,

На стороне сервера:

CLOSED

LISTEN

SYN-RESEIVED

ESTABLISHED

FIN-WAIT-1

CLOSE-WAIT

CLOSING

FIN-WAIT-2

TIME-WAIT

CLOSED

Рассмотрим смысл каждого состояния.

Состояние CLOSED является фиктивным, потому что оно представляет собой состояние, для которого не существует структуры данных Transmission Control Block (ТСВ) и, следовательно, нет соединения.

LISTEN – состояние сервера, которое представляет собой ожидание запроса соединения от любой удаленной стороны.

SYN-SENT – состояние клиента, которое представляет собой ожидание ответа на запрос соответствующего соединения после того как послан запрос на соединение.

SYN-RECEIVED – состояние сервера, которое представляет собой ожидание подтверждения на запрос соединения после того как и клиент, и сервер получили и послали запрос на соединение.

ESTABLISHED – состояние как клиента, так и сервера, которое представляет собой открытое соединение: полученные данные могут быть доставлены на прикладной уровень. Обычное состояние для фазы пересылки данных по соединению.

Инициатором закрытия соединения может быть как клиент, так и сервер.

FIN-WAIT-1 – состояние как клиента, так и сервера, при котором сторона, инициировавшая закрытие (был послан пакет в флагом FIN), ожидает подтверждения на запрос закрытия соединения.

CLOSE-WAIT – состояние как клиента, так и сервера, при котором было послано подтверждение ACK на запрос закрытия (FIN). При этом канал становится симплексным: передача возможна только в одном направлении – от того, кто послал подтверждение ACK. Происходит ожидание закрытия канала от локального процесса.

FIN-WAIT-2 — состояние как клиента, так и сервера, при котором было получено подтверждение ACK запроса закрытия соединения от удаленной стороны.При получении пакета с установленным флагом FIN канал считается окончательно разрушенным.

LAST-ACK – состояние как клиента, так и сервера, представляет собой подтверждение (пакет с установленным флагом FIN) завершения соединения, ранее посланного удаленной стороне.

CLOSING – представляет собой ожидание подтверждения запроса завершения соединения от удаленной стороны.

TIME-WAIT – представляет собой ожидание определенное время, чтобы быть уверенным, что удаленная сторона получила подтверждение вашего запроса на закрытие соединения.

ТСР-соединение переходит из одного состояния в другое в результате возникновения событий. Событиями являются вызовы функций OPEN, SEND, RECEIVE, CLOSE, ABORT и STATUS, входящие сегменты, содержащие флаги SYN, ACK, RST и FIN, а также таймауты.




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