Студопедия

Главная страница Случайная страница

Разделы сайта

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






Надежность в TCP обеспечивает механизм подтверждения приема с повторной передачей (Positive Acknowledgment with Retransmission, PAR).






Система в которой применяется PAR, повторяет отправку данных до тех пор, пока не получит от системы-адресата подтверждение, что данные успешно получены.

Единицей обмена данными для взаимодействующих модулей TCP является сегмент.

При работе на хост-отправителе протокол TCP рассматривает информацию, поступающую к нему от прикладных программ, как неструктурированный поток байтов. Поступающие данные буферизируются средствами TCP. Для передачи на сетевой уровень из буфера «вырезается» некоторая непрерывная часть данных, которая называется сегментом и снабжается заголовком.

Рис. 5.5

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

Рис. 5.6

 

Рис. 5.7 (TCP заголовок сегмента – 20 байт)

TCP ориентирован на работу с соединениями. В целях обмена данными между двумя узлами образуется сквозное логическое соединение. Перед началом передачи данных (беседы) узлы обмениваются управляющей информацией (рукопожатием). Управляющий статус сегмента TCP отражается посредством соответствующего флага поля Флаги в четвертом слове заголовка сегмента.

В TCP применяется установление соединения с помощью тройного рукопожатия; производится обмен тремя сегментами. Простейший вариант тройного рукопожатия показан на рис. 5.8.

Предположим, узел А желает установить соединение с узлом В. Первый отправляемый из А в В TCP-сегмент не содержит полезных данных, а служит для установления соединения. В его заголовке (в поле Flags) установлен бит SYN (5 ст), означающий запрос связи, и содержится ISN (Initial Sequence Number - начальный номер последовательности) - число, начиная с которого узел А будет нумеровать отправляемые октеты (например, 0). В ответ на получение такого сегмента узел В откликается посылкой TCP-сегмента, в заголовке которого установлен бит ACK (2 ст), подтверждающий установление соединения для получения данных от узла А. Так как протокол TCP обеспечивает полнодуплексную передачу данных, то узел В в этом же сегменте устанавливает бит SYN, означающий запрос связи для передачи данных от В к А, и передает свой ISN (например, 0). Полезных данных этот сегмент также не содержит. Третий TCP-сегмент в сеансе посылается из А в В в ответ на сегмент, полученный из В. Так как соединение А -> В можно считать установленным (получено подтверждение от В), то узел А включает в свой сегмент полезные данные, нумерация которых начинается с номера ISN(A)+1. Данные нумеруются по количеству отправленных октетов. В заголовке этого же сегмента узел А устанавливает бит ACK, подтверждающий установление связи B -> A, что позволяет хосту В включить в свой следующий сегмент полезные данные для А.

Рис. 5.8

После завершения передачи данных взаимодействующие модули обмениваются тройным рукопожатием, содержащим сегменты с так называемым битом FIN (No more data from sender, у источника больше нет данных), в целях закрытия соединения. Именно сквозной обмен данными становится логическим соединением между двумя системами.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.