Студопедия

КАТЕГОРИИ:

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


Transmission Control Protocol (TCP)




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

TCP – надёжный потоковый протокол, требующий создания логических соединений.

Обеспечение надёжноё доставки протоколом TCP

Надёжность TCP обеспечивает механизм подтверждения приёма с повторной передачей (Positive Acknowledgment with Retransmission, PAR). Система с PAR повторяет отправку данных до тех пор, пока не получит от системы-адресата подтверждение, что данные успешно получены. Данные представляются как поток байтов и могут передаваться в обоих направлениях. Единицей обмена данными для взаимодействующих модулей TCP является сегмент. Каждый сегмент имеет уникальный номер в последовательности (потоке) и содержит контрольную сумму, посредством которой получатель определяет целостность данных. Если сегмент данных получен в целости и сохранности, получатель отправляет источнику подтверждение (ACK). Повреждённые сегменты данных игнорируются получателем. По истечении установленного интервала ожидания (timeout) модуль-источник TCP повторно выполняет передачу всех сегментов, для которых не были получены подтверждения.

Структура TCP пакета:

Название поля Размер Описание
TCP Source Port TCP порт хоста, отправившего пакет.
TCP Destination Port TCP порт хоста, получающего пакет.
Sequence Number Номер последовательности, соответствующий данному сегменту.
Acknowledgment Number Номер последовательности, который хост хочет получить следующим.
Data Length Длина TCP сегмента.
Reserved Зарезервировано.
Flags Флаги.
Window Размер окна.
Checksum Контрольная сумма.
Urgent Pointer Если отправляется срочный пакет (это определяется в поле Flags), то здесь хранится указатель на конец срочных данных в сегменте.

TCP-соединение инициализируется путем трех обменов данными («тройное рукопожатие», Three-way handshake)

Назначение:

  1. Синхронизация отправки и получения сегментов;
  2. Информирование хоста о размере данных, которое он может получить за один раз (windows and segment size);
  3. Установка виртуального соединения.

Порядок установки соединений:

  1. Инициализация запроса на соединения путем посылки сегмента с установленным флагом синхронизации (SYN);
  2. Подтверждение установки соединения хостом получателем путем посылки сегмента, содержащего: Включенный флаг синхронизации (SYN); Число, определяющее стартовый номер последовательности сегментов, которую хост будет отправлять; Подтверждение, содержащее номер стартового сегмента получаемых данных;
  3. Хост, инициирующий соединения, посылает подтверждение приема данных.

Аналогичная процедура происходит при закрытии соединения: тройное рукопожатие с байтом FIN. Именно сквозной обмен данными становится логическим соединением между двумя хостами.

В TCP данные считаются непрерывным потоком байтов, а не набором независимых пакетов. Следовательно, TCP предпринимает меры для сохранения последовательности отправки и получения байтов. Этой цели служат поля заголовка сегмента TCP – Порядковый номер и Номер подтверждения. Чтобы корректно отслеживать порядок в потоке данных, каждая из взаимодействующих сторон должна знать исходный номер второй стороны. Две стороны соединения синхронизируют системы нумерации байтов, обмениваясь SYN-сегментами в ходе рукопожатия.


Поделиться:

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





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты