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

Установление и разрыв соединения, состояния TCP.

Читайте также:
  1. V. ОСНОВНЫЕ ХАРАКТЕРИСТИКИ СОСТОЯНИЯ МЕЖНАЦИОНАЛЬНЫХ ОТНОШЕНИЙ
  2. А. Объективное исследование общего состояния (Status praesens communis).
  3. Актуальные проблемы современного состояния отечественной культуры и их отражение в литературе, живописи, кинематографе, музыке и т.д.
  4. Анализ нарушений кислотно-щелочного состояния
  5. Анализ финансового состояния организации
  6. Анализ финансового состояния организации.
  7. Болезненные состояния с ненормальными выделениями.

Процесс установления:

1. Клиентская сторона TCP отсылает серверной стороне спец сегмент, не содержащий данных. Флаг SYN, находящийся в заголовке, установлен в 1 - SYN-сегмент. Клиентская сторона устанавливает начальный порядковый номер и помещает его в поле порядкового номера SYN-сегмента, заключается в IP-дейтаграмму и отсылается серверу.

2. Когда IP-дейтаграмма с SYN-сегментом достигает хоста сервера, сервер извлекает из нее SYN-сегмент, создает буфер и переменные для соединения, а затем отправляет клиенту сегмент, уведомляющий о выделении TCP-соединения. SYN = 1, начальный порядковый номер+1 - в поле подтверждений. в поле порядкового номера сервер указывает свой начальный порядковый номер - SYNACK - сегмент.

3. Получив SYNACK - сегмент, клиент выделяет память для буфера и переменных соединения и отсылает серверу сегмент, подтверждающий получение SYNACK - сегмента - в поле подтверждения порядковый номер сервера+1, флаг SYN=0.

Эта процедура называется тройным рукопожатием.

Закрытие: Клиентский процесс генерирует команду закрытия соединения, которая приводит к отправке спец сегмента, FIN=1. Получив данный сегмент, сервер подтверждает его, затем отсылает клиенту завершающий сегмент FIN=1, получение этого сегмента подтверждается клиентом.

На протяжении TCP-соединения каждая из сторон проходит через серию изменяющихся TCP-состояний.

CLOSED (инициирование TCP-соединения клиентским приложением (создание сокета, посылка SYN-сегмента)) => SYN_SENT (ожидание ответного SYNACK-сегмента) => ESTABLISHED (принимает и отправляет сегменты) => клиент инициирует закрытие FIN_WAIT_1 (послан сегмент с FIN=1, ожидает подтверждения для переданного сегмента) => FIN_WAIT_2 (после получения подтверждения, ожидает получение от сервера сегмента с FIN=1) => TIME_WAIT (получив сегмент, квитирует его, повторная передача для завершающего сегмента (в случае возможной потери (время зависит от реализации)) => формальное закрытие (освобождение всех его ресурсов).

Состояния сервера: CLOSED => создание прослушивающего сокета => LISTEN => получить SYN, отправить SYN и ACK => SYN_RCVD => получить ACK, не предавать ничего => ESTABLISHED (принимает и отправляет сегменты) => клиент инициирует закрытие (получить FIN, отправить ACK) CLOSE_WAIT => отправить FIN => LAST_ACK =>получить ACK, ничего не посылать.

32-разрядные поля порядкового номера и номера подтверждения необходимы для надежной передачи данных.

16-разрядное окно приема используется для управления потоком данных (кол-во байтов, которое способна принять прин. сторона)

4-разрядное поле длины заголовка определяет длину TCP-заголовка в 32-разрядных словах. TCP-заголовок может иметь переменную длину благодаря полю параметров (если оно пусто, то 20 байт)

Необязательное поле параметров используется в случаях, когда стороны «договариваются» о максимальном размере сегмента, либо для масштабирования окна в высокоскоростных сетях, также опр-ся пар-р временных меток.

Поле флагов состоит из 6 бит: Бит подтверждения (ACK) указывает на то, что значение, содержащееся в квитанции, является корректным. Биты RST, SYN и FIN используются для установки и завершения соединения. бит PSH указывает на то, что данные сегмента должны быть переданы верхнему уровню принимающей стороны немедленно. бит URG показывает, что в сегменте находятся данные, помещенные верхним уровнем как «срочные».

Порядковые номера и номера подтверждения: Поля порядкового номера и подтверждения являются наиболее важными в заголовке TCP-сегмента, поскольку играют ключевую роль в функционировании службы надежной передачи данных. Протокол TCP рассматривает данные как неструктурированный упорядоченный поток байтов => назначает порядковые номера не сегментам, а каждому передаваемому байту. Порядковый номер сегмента определяется как порядковый номер первого байта этого сегмента. Номер подтверждения, который хоста А помещает в свой сегмент, - это порядковый номер следующего байта, ожидаемого хостом А от В. TCP квитирует принятые данные до первого отсутствующего байта - общее квитирование. Если при передаче нарушен порядок следования: 1) принимающая сторона может немедленно проигнорировать сегменты, нарушающие порядок следования 2) сохранить принятые сегменты до тех пор, пока недостающие данные не будут получены.

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

Оценка времени оборота: Под выборочным временем оборота (SampleRTT) - время, проходящее с момента передачи сегмента протоколу сетевого уровня передающей стороны до получения квитанции для этого сегмента, измеряется для 1 из переданных, но не квитированных сегментов, с периодичность в 1 время оборота меняется, не измеряется для повторно переданных сегментов. Для получения типичного значения необходимо некоторым способом усреднить величину SampleRTT - величина EstimatedRTT.

EstimatedRTT = (1-a)*EstimatedRTT + a*SampleRTT (а = 0,125)

- является весовым средним значением SampleRTT - экспоненциалоьное весовое скользящее среднее.

DevRTT - приближенное отклонение SampleRTT от EstimatedRTT.

Определение и управление величиной интервала ожидания:

TimeoutInterval = EstimatedRTT + 4*DevRTT.

Надежная передача данных: Обеспечивает надежную передачу данных.

 


Дата добавления: 2015-08-05; просмотров: 181 | Нарушение авторских прав


Читайте в этой же книге: Коммутация каналов, коммутация пакетов, коммутация сообщений, маршрутизация. | Сети доступа и среды передачи данных. | WTF. Уровни протоколов, стек протоколов Internet. Иерархия ISP. | Требования приложений. Сервисы, предоставляемые TCP и UDP. | Протокол HTTP | Аутентификация в HTTP, cookies, условный GET в HTTP. | Протокол FTP. | Протокол SMTP. | Служба имен доменов (DNS). | Протокол UDP. |
<== предыдущая страница | следующая страница ==>
Протокол TCP.| Максимальное время ожидания подтверждения в TCP (timeout)

mybiblioteka.su - 2015-2024 год. (0.01 сек.)