Студопедия

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


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Транспортный протокол TCP

TCP (Transmission Control Protocol) – это один из самых широко распространенных протоколов транспортного уровня. Главная функция TCP заключается в доставке сообщений без потерь, чего не может гарантировать протокол более низкого уровня IP (Internet Protocol). Для доставки сообщений предварительно устанавливается соединение между процессом-отправителем и процессом-получателем. Данное соединение осуществляет надежную доставку пакетов. Протокол TCP производит повторную передачу искаженного или утерянного пакета.

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

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

Процесс обмена данными начинается с передачи запроса на установление соединения от машины-отправителя к машине-получателю. В запросе содержится специальное целое число, называемое номером сокета (socket). В ответ получатель посылает номер своего сокета. Номера сокетов отправителя и получателя однозначно определяют соединение (конечно, соединение также не возможно без указания IP-адресов отправителя и получателя, но эта задача решается протоколами более низкого уровня – IP).

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

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

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

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


<== предыдущая страница | следующая страница ==>
Использование масок в IP-адресации | Транспортный протокол UDP

Дата добавления: 2015-07-26; просмотров: 202; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.002 сек.