Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Заголовок TCP-сегмента. Установка TCP-соединения. Модель управления TCP-соединением.



 

 

На рисунке показана структура заголовка TCP-сегмента. Каждый сегмент начи­нается с 20-байтного заголовка фиксированного формата. За ним могут следо­вать дополнительные поля. После дополнительных полей может располагаться до 65 535 - 20 - 20 = 65 495 байт данных, где первые 20 байт — это IP-заголовок, а вторые — TCP-заголовок. Сегменты могут и не содержать данных. Такие сег­менты часто применяются для передачи подтверждений и управляющих сооб­щений.

Поля Порт получателя и Порт отправителя являются идентификаторами локальных конечных точек соедине­ния.

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

Поле Длина TCP-заголовка содержит размер TCP-заголовка, выраженный в 32-разрядных словах. Эта информация необходима, так как поле Факульта­тивные поля, а вместе с ним и весь заголовок, может быть переменной длины.

Следом идет неиспользуемое 6-битное поле.

Затем следуют шесть 1-битовых флагов. Бит URG устанавливается в 1 в слу­чае использования поля Указатель на срочные данные

Если бит АСК установлен в 1, значит, поле Номер подтверждения содержит осмысленные данные.

Бит PSH является, по сути, PUSH-флагом, с помощью которого отправитель просит получателя доставить данные приложению сразу по получении пакета, а не хранить их в буфере, пока тот не наполнится.

Бит RST используется для сброса состояния соединения, которое из-за сбоя хоста или по другой причине попало в тупиковую ситуацию.

Бит SYN применяется для установки соединения.

Бит FIN используется для разрыва соединения.

Поле Размер окна сообщает, сколько байт может быть послано после байта, получившего подтверждение.

Поле Контрольная сумма служит для повышения надежности. Оно содержит контрольную сумму заголовка.

 

В протоколе ТСР - соединения чтобы установить соедине­ние, одна сторона (например, сервер) пассивно ожидает входящего соединения, выполняя примитивы LISTEN и ACCEPT, либо указывая конкретный источник, либо не указывая его.

Другая сторона (например, клиент) выполняет примитив CONNECT, указывая IP-адрес и порт, с которым он хочет установить соединение, максимальный размер TCP-сегмента и, по желанию, некоторые данные пользователя (например, па­роль). Примитив CONNECT посылает TCP-сегмент с установленным битом SYN и сброшенным битом АСК и ждет ответа.

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

 

 

Если какой-либо процесс прослушивает какой-либо порт, то входящий ТСР - сегмент передается этому процессу. Последний может принять соединение или от­казаться от него. Если процесс принимает соединение, он отсылает в ответ под­тверждение. Последовательность TCP-сегментов, посылаемых в нормальном случае, показана на рисунке а. Сегмент с установленным битом SYN занимает 1 байт пространства порядковых номеров, что по­зволяет избежать неоднозначности в их подтверждениях.

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

 


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 163; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.008 с.)
Главная | Случайная страница | Обратная связь