Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТ.doc
Скачиваний:
18
Добавлен:
27.11.2019
Размер:
1 Мб
Скачать
☆

10.4.2 Соединения tcp:

Соединение TCP является полнодуплексным, т.е. существуют два потока, прямой и обратный.

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

Полнодуплексное соединение, используется 2 сокета.

Все необходимые переменные для соединения хранятся в блоке управления передачей TCB (Transmission Control Block).

В TCB могут содержаться:

  • сокеты

  • номера очередей

  • флаги безопасности и приоритета

  • и т.д.

Состояния TCP соединения:

LISTEN - ожидает запроса на соединение от удаленного TCP-модуля, чужой сокет равен нулям.

SYN-SENT - ожидание ответа на соединение, после посылки запроса на соединение.

SYN-RECEIVED - ожидание подтверждения на соединение, после посылки обоих предыдущих запросов.

ESTABLISHED - состояние установленного соединения, стадия передачи данных.

FIN-WAIT-1 - ожидание запроса завершения соединения от удаленного TCP-модуля, или подтверждения запроса завершения соединения, предварительно посланного.

FIN-WAIT-2 - ожидание запроса завершения соединения от удаленного TCP-модуля.

CLOSE-WAIT - ожидание запроса завершения соединения от локального пользователя..

CLOSING - ожидание подтверждения запроса завершения соединения от удаленного TCP-модуля.

LAST-ACK - ожидание подтверждения запроса завершения соединения, предварительно посланного удаленному TCP-модулю (который включает подтверждение его запроса завершения соединения).

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

CLOSED - TCP-модуль закрыт для любого подключения.

Алгоритм установки TCP-соединения

Алгоритм установки соединения:

  • Клиент посылает SYN-сегмент (SYN=1), и порядковый номер ISN=J (initial sequence number - первоначальный порядковый номер). Раньше ISN просто приравнивали 0, но сейчас, как правило, это случайное число, это сделано, что бы усложнить атаки с помощью подмены IP-адреса и исключить попадания пакетов с одинаковыми номерами.

  • Сервер откликается, посылая свой SYN-сегмент (SYN=1), содержащий свой ISN=K. И AS=ISN +1=J+1.

  • Клиент отправляет подтверждение получения SYN-сегмента от сервера с AS=ISN +1=K+1 и SN=J+1.

  • Начинается передача данных. При передачи данных в серийном номере .

Это один из вариантов соединения остальные можно посмотреть в RFC-793.

10.4.3 Диаграмма состояний tcp:

Для более простого восприятия сделана диаграмма состояний TCP, но ею нельзя пользоваться как спецификацией.

Диаграмма состояний TCP (упрощенная, полная в RFC-793)