Что обеспечивает транспортный протокол tcp

Протокол TCP

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Что такое протокол TCP?

В отличие от протокола UDP гарантирует целостность передаваемых данных и подтверждения отправителя о результатах передачи. Используется при передаче файлов, где потеря одного пакета может привести к искажению всего файла.

TCP обеспечивает свою надежность благодаря следующему:

Заголовок TCP

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Рассмотрим структуру заголовка TCP с помощью сетевого анализатора Wireshark:

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

TCP порты

Так как на одном и том же компьютере могут быть запущены несколько программ, то для доставки TCP-пакета конкретной программе, используется уникальный идентификатор каждой программы или номер порта.

Номер порта — это условное 16-битное число от 1 до 65535, указывающее, какой программе предназначается пакет.

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

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

Номера портов UDP и TCP не пересекаются.

TCP программы используют зарезервированные или хорошо известные номера портов, как показано на следующем рисунке.

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Установление соединения TCP

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

Перед началом передачи каких-либо данных, согласно протоколу TCP, стороны должны установить соединение. Соединение устанавливается в три этапа (процесс «трёхкратного рукопожатия» TCP).

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

После установления соединения TCP, эти два хоста могут передавать данные друг другу, так как TCP-соединение является полнодуплексным, они могут передавать данные одновременно.

Источник

TCP протокол — что это такое, понятным языком

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

А происходит это все посредством особого набора/стеку правил — TCP/IP, благодаря которому и работает интернет. Он включает в себя протоколы, каждый из которых ответственен за определенную функцию в сети.

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Прошлый материал был, как раз посвящен TCP IP, сегодня же мы разберем за что отвечает протокол TCP и что это вообще такое.

TCP протокол

TCP — это транспортный протокол, является частью стека протоколов TCP IP, он выполняет функции управления передачей данных и следит за их сохранностью, считается надежным. Расшифровывается как Transmission Control Protocol (протокол управления передачей).

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

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

Интересно! Существует еще один транспортный протокол UDP, о нем мы поговорим в следующей отдельной статье, там же и разберем, чем они вообще отличаются друг от друга.

Является именно надежным протоколом так как:

1. Использует логическое соединение, благодаря чему обеспечивается надежная доставка данных.
2. Пронумеровывает передаваемые пакеты данных и проверяет их доставку, принимающая сторона высылает подтверждение о получении, в случае потери каких-либо пакетов создается повторная передача.
3. Делит передаваемые данные на части — пакеты данных, затем передает их нижнему уровню, и собирает их, когда они приходят к получателю.
4. Проверяет контрольную сумму передаваемых пакетов, если она отличается — создается новая отправка.
5. Проверяет пакеты на дубликаты, в случае обнаружения таковых — уничтожает.
6. Контролирует скорость передачи.

Заголовок TCP протокола

Весит 20 байт, если нет дополнительных опций, вот как он выглядит:

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

У каждого TCP сегмента указывается порт источника и назначения, с помощью которых происходит идентификация отправляющего и принимающего приложения. Эти порты вместе с IP адресами уникально идентифицируют каждое соединение. Комбинация IP и порта — это сокет (socket).

Номер последовательности — нумерация каждого отправляемого байта в потоке передаваемых данных. А номер подтверждения — это следующий номер байта после полученного, который ждет получатель. Т.е. передача идет последовательно, например, получатель получил 100-ый байт, следующим ждет 101.

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

А флаги: URG, ACK, PSH и т.д. — описывают дополнительные значения сегмента, так, например, флаг FIN применяется для завершения соединения.

Также, вам может быть интересна статья о том, что такое dns сервер. В ней очень подробно и интересно описано об этой глобальной системе.

Как работает TCP соединение

Соединение отправителя и получателя (два узла) происходит так:

1. Отправитель отсылает получателю специальный пакет, именуемый SYN, т.е. пригашает к соединению
2. Получатель отвечает уже пакетом SYN-ACK, т.е. соглашается
3. Отправитель отсылает спец. пакет ACK, т.е. подтверждает, что согласие получено

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

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

TCP порты

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

Номер порта — это число от 0 до 65535 в 16 битном формате, оно указывает какому именно приложению предназначается определенный пакет данных. Т.е. позволяет различным программам, работающим на одном компьютере, независимо друг от друга отправлять и получать информацию.

Есть целый ряд уже зарезервированных портов, которые являются стандартом:

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Также, стоит отметить, что порты данного протокола никак не пересекаются с такими же, но у UDP. Так, например, порт: 1234 не пересечется с таким же, но у UDP.

В заключение

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

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

TCP/IP (Transmission Control Protocol/Internet Protocol)

Содержание

Стек протоколов ТСР/IP

IP-сеть

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Транспортный уровень стека TCP/IP

Межсетевой уровень стека TCP/IP

Пример переноса данных в IP-сети

Как видно из предыдущих глав, глобальные сети Frame Relay и АТМ имеют различные системы нумерации, которые отличаются от системы нумерации локальной вычислительной сети (ЛВС) технологии Ethernet. Каждый компьютер Ethernet имеет уникальный физический адрес, состоящий из 48 бит. Этот адрес называется МАС-адресом и относится к канальному уровню — управлению доступом к среде MAC (Media Access Control). Для организации межсетевого взаимодействия подсетей различной технологии и адресации используются маршрутизаторы, включающие IP-пакеты. В состав этих пакетов входят глобальные IP-адреса. Каждый интерфейс маршрутизатора IP-сети и оконечного устройства включает два адреса – локальный адрес оконечного устройства подсети и IP-адрес.

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Рассмотрим продвижение IP-пакета в сети (рис. 2).

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Протоколы TCP/IP

Ниже приводится краткое описание протокола прикладного уровня SNMP и протокола транспортного уровня TCP архитектуры TCP/IP.

Протокол прикладного уровня SNMP

SNMP может управлять конфигурацией сети. Для сети FR это касается как физической, так и логической конфигурации сети, включая установление адресации, определение DLCI, назначение полосы пропускания для PVC. SNMP может управлять устранением неисправностей в сети при получении системой управления аварийных сообщений от агента сетевого устройства.

Обеспечение информационной безопасности протокола SNMP

В документе RFC 2574 [6] определяется модель USM (User Security Model – модель защиты пользователя) при использовании протокола SNMP. USM разрабатывалась с целью защиты от угроз следующих типов.

Протокол транспортного уровня TCP

Протокол транспортного уровня TCP выполняет функцию управления потоками между оконечными пунктами, так как уровень IP не гарантирует правильной доставки дейтаграмм. Дейтаграммы с уровня IP могут прибывать в неправильном порядке. Восстанавливает сообщения из таких дейтаграмм протокол TCP, обеспечивая этим надежный режим установленного соединения с низкой вероятностью потери пакета. Механизм управления потоками, используемый ТСP, отличается от механизма восстановления правильной последовательности кадров в Х.25 и называется схемой кредитов. В этой схеме считается, что каждый передаваемый байт данных имеет порядковый номер. Границы между сообщениями не сохраняются. Например, если отправляющий прикладной процесс записывает в ТСP-поток четыре 512-байтовые порции данных, эти данные могут быть доставлены получающему процессу в виде четырех 512-байтовых порций, либо двух 1024-байтовых порций, либо одной 2048-байтовой порции. Каждая протокольная единица PDU TCP называется сегментом TCP и включает в заголовок сегмента порт источника данных и порт получателя. Значения портов идентифицируют соответствующих пользователей (приложения) двух объектов TCP.

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

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

Для передачи сегмента данных имеются три поля, связанные с управлением потоком (восстановлением целостности принятого сообщения): порядковый номер (SN), номер подтверждения (AN) и окно (W).Когда транспортный объект отправляет сегмент, он помещает в поле данных сегмента порядковый номер первого байта. Принимающий объект подтверждает получение сегмента с помощью обратного сегмента, в котором (АN=i, W=j), что означает:

Таким образом, протокол TCP обеспечивает надежную доставку сообщений, поступающих из сети от ненадежного дейтаграммного протокола на межсетевом уровне. В сети Х.25 функцию надежной доставки выполняет канальный уровень модели OSI, который был подробно рассмотрен в предыдущих главах, а в сети Frame Relay эту функцию выполняет протокол ITU-T Q.921.

Источник

Протокол TCP простым и понятным языком — как работает

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

На этом уровне есть два протокола, протокол UDP, который уже рассматривали и протокол TCP, который является одним из основных протоколов стека TCP/IP и интернет.

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

TCP — расшифровывается как (Transmission Control Protocol) протокол управления передач. В отличии от UDP, TCP обеспечивает надежную доставку данных. Сервис предоставляемый TCP называются надежная передача потока байт или (reliable byte stream) по-английский. TCP обеспечивает как гарантию доставки данных, так и гарантию сохранения порядка следования сообщений.

Поток байт

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

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

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

Гарантия доставки: подтверждение получения

Для того чтобы обеспечить гарантию доставки данных, TCP использует подтверждение получения сообщения. Рассмотрим, как это работает. Отправитель пересылает по сети некоторый сегмент данных, получатель принимает сегмент и посылает отправителю подтверждение, сокращенно ACK от английского Acknowledgment, которая говорит о том что сегмент данных получен. Затем отправляется следующий сегмент данных, снова подтверждение и так далее.

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Гарантия доставки: повторная отправка

Что происходит, если произошла ошибка при передаче данных? Сегмент данных потерян в сети, он не доходит до получателя, получатель не отправляет подтверждение сообщения. Отправитель при отправке сегмента устанавливает таймер, который задает время ожидания подтверждения, если в течении этого времени подтверждение не пришло, таймер срабатывает и тот же самый сегмент отправляются повторно.

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

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

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Протокол TCP: скользящее окно

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

Варианты подтверждения доставки

Рассмотрим остановку и ожидание. Отправитель передает данные и останавливается ожидая подтверждение. Получатель присылает подтверждение после этого передается следующая порция данных. Снова подтверждение, снова данные и снова подтверждение.

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

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

Время передачи сообщения

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

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

Пример подтверждения доставки

Рассмотрим на примере работу сети.

Скользящее окно

Почему термин называется скользящее окно? Удобно представлять себе окно, которое скользит по потоку байт получаемых от приложений. У есть поток байт, разделенный на отдельные сегменты, часть сегментов уже передана, часть еще не отправлены. Для некоторых сегментов, которые уже переданы, получено подтверждение. И отправлено некоторое количество сегментов соответствующие размеру окна, для которых подтверждение не получено.

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Размер окна — это количество байтов данных, которые могут быть переданы без получения подтверждения.

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

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Тип подтверждения

Есть два типа подтверждения, которые могут использоваться совместно с алгоритмом скользящего окна.

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

Порядок следования сообщений

Но подтверждений и повторной отправки данных недостаточно для обеспечения надежной передачи потока байт. Это защищает только от потери сегментов, но не обеспечивает сохранение порядка следования сообщений.

Какие проблемы могут произойти? Протокол IP не сохраняет порядок следования сообщений и поэтому сегменты могут прийти к получателю не в том порядке в котором они были отправлены. Кроме того, некоторые сегменты могут прийти два и более раз. Рассмотрим одну из возможных причин дублирования сегментов.

Дублирование сегментов

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

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

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

Механизм очень простой, все сообщения нумеруются. В TCP нумеруются не сегменты, так как разные сегменты могут иметь разный размер, а байты.

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

В нашем примере 4 сегмента первый сегмент содержит байты от 0 до 1023, второй от 1024 до 2047 и так далее.

Нумерация байтов

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

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Дублирование сегментов

Рассмотрим как решается ситуация с дублированием сегментов.

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Соединение TCP

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

Задачи соединения

Установка соединения в TCP

Получатель в ответ передаёт сообщение SYN, куда включает подтверждение получения предыдущего сообщения ACK от слова acknowledge и порядковый номер байта, который он ожидает 7538, потому что на предыдущем этапе был получен байт с номером 7537.

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

Также отправитель включает в сегмент номер байта в потоке байт 36829. Номера байт в первом сообщении не могут быть всегда нулевыми, они выбираются по достаточно сложным алгоритмам, но для простоты можно представлять себе что эти номера выбираются случайным образом.

На третьем этапе пересылается подтверждение получения предыдущего запроса на установку соединения ACK номер следующего ожидаемого байта 36830, а также номер байта в сообщении. После этого соединение считается установленным и можно передавать данные.

Разрыв соединения в TCP

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

Рассмотрим, как выполняется корректный разрыв соединения. Сторона, которая хочет разорвать соединение пересылает другой стороне сообщение FIN и в ответ получает сообщение ACK. Однако соединение разорвано только с одной стороны.

Когда другая сторона решила, что данные для передачи у нее закончились, она также передает сообщение FIN в ответ получает сообщение ACK подтверждение. На этом этапе соединение закрыто полностью в обе стороны.

Что обеспечивает транспортный протокол tcp. Смотреть фото Что обеспечивает транспортный протокол tcp. Смотреть картинку Что обеспечивает транспортный протокол tcp. Картинка про Что обеспечивает транспортный протокол tcp. Фото Что обеспечивает транспортный протокол tcp

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

Заключение

Итак мы рассмотрели протокол TCP — протокол управления передачей данных. TCP обеспечивают надежную передачу потока байт от одного приложения к другому. При этом TCP обеспечивает, как гарантию доставки данных, так и гарантию сохранении порядка следования сообщений.

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

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

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

Для разрыва соединения возможны две схемы. Корректное закрытие соединения требует корректной отправки обеими сторонами сообщения FIN и получении подтверждения. Разрыв соединения в критической ситуации может быть выполнен быстро, отправкой одного сообщения RST. Таким образом накладные расходы в TCP особенно при передаче небольшого объема данных значительно выше чем в UDP, но соединение и отправка подтверждений позволяют TCP обеспечивать гарантию доставки и гарантию сохранения порядка следования сообщений.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *