Студопедия — Установление ТСР-соединения
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

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






ТСР является надежным протоколом в сетях, основанных на коммутации пакетов. Так как и пакетные фильтры, и stateful inspection firewall’ы анализируют параметры ТСР-протокола, рассмотрим подробно этот протокол. Стек протоколов TCP/IP выглядит следующим образом:

Таблица 1.3. Стек протоколов TCP/IP
Прикладной уровень
ТСР
IP
Коммуникационная сеть

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

Протокол ТСР обеспечивает надежность и упорядоченность для получателя потока данных, посылаемого по ТСР-соединению.

Надежность обеспечивается с помощью того, что каждый пакет содержит свой последовательный номер и номер полученного пакета. С каждым октетом данных связывается последовательный номер. Этот номер указывается для первого октета данных в передаваемом сегменте. Сегменты также содержат номер подтверждения, который является последовательным номером следующего ожидаемого октета данных, передаваемых в обратном направлении. Когда один из концов ТСР-соединения передает сегмент, содержащий данные, он помещает его копию в очередь повторной передачи и запускает таймер; когда подтверждение о получении этих данных получено, сегмент удаляется из очереди. Если подтверждение не получено по истечении таймера, сегмент передается повторно.

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

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

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

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

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

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

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

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

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

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

Таблица 1.4. Формат заголовка ТСР
Порт источника Порт получателя
Sequence Number
Acknowledgement Number
Data Offset Reserved

 

URG ACK PSH RST SYN FIN

 

 

Window
Checksum Urgent Pointer
Options Padding
Данные

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

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

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

Acknowledgement Number – 32 бита. Если установлен управляющий бит ACK, то данное поле содержит значение следующего последовательного номера, который ждет получатель. Это значение посылается всегда, если соединение установлено.

Data Offset – 4 бита. Число 32-битных слов в ТСР-заголовке. Оно определяет положение начала данных. Длина ТСР-заголовка всегда кратна 32.

Управляющие биты: 6 бит.

URG — указывает, что сегмент содержит экстренные данные и поле Urgent Pointer заголовка определяет их положение в сегменте.

ACK — указывает, что поле номера подтверждения содержит номер последнего полученного сегмента.

PSH — указывает, что данные из буфера могут быть переданы немедленно.

RST — указывает на необходимость сброса соединения.

SYN — указывает, что выполняется синхронизация последовательных номеров.

FIN — указывает, что от отправителя больше не будут передаваться данные.

Window — 16 бит. Количество октетов данных, начиная с номера, указанного в подтверждении, которое отправитель данного сегмента может получить. Используется для управления интенсивностью передаваемого потока данных.

Checksum – 16 бит. Контрольная сумма всех слов в заголовке и данных.

Urgent Pointer – 16 бит. Данное поле содержит положительное смещение экстренных данных относительно последовательного номера в данном сегменте.

Options – переменной длины. Опции могут быть указаны в конце ТСР-заголовка. Определены два варианта формата опций:

  • Один октет для типа опции.
  • Октет типа опции, октет длины опции и октеты с конкретными данными опции.

Padding – переменной длины. Данное добавление ТСР-заголовка используется для того, чтобы гарантировать, что ТСР-заголовок кончается, и данные начинаются на 32-битной границе.

Установление ТСР-соединения происходит с использованием так называемого "тройного рукопожатия". Соединение инициирует клиент, посылая сообщение с установленным битом SYN. Сервер отвечает клиенту сообщением с установленными битами SYN и ACK. Сервер также указывает начальный порядковый номер в поле Sequence Number. Наконец, клиент посылает серверу сообщение с установленным битом 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, а также таймауты.







Дата добавления: 2015-09-07; просмотров: 340. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Интуитивное мышление Мышление — это пси­хический процесс, обеспечивающий познание сущности предме­тов и явлений и самого субъекта...

Объект, субъект, предмет, цели и задачи управления персоналом Социальная система организации делится на две основные подсистемы: управляющую и управляемую...

Законы Генри, Дальтона, Сеченова. Применение этих законов при лечении кессонной болезни, лечении в барокамере и исследовании электролитного состава крови Закон Генри: Количество газа, растворенного при данной температуре в определенном объеме жидкости, при равновесии прямо пропорциональны давлению газа...

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

Тема: Изучение фенотипов местных сортов растений Цель: расширить знания о задачах современной селекции. Оборудование:пакетики семян различных сортов томатов...

Тема: Составление цепи питания Цель: расширить знания о биотических факторах среды. Оборудование:гербарные растения...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия