Транспортный уровень это кратко

Обновлено: 28.06.2024

Аннотация: Приведены основные функции протоколов транспортного уровня. Показаны примеры функционирования протоколов транспортного уровня, форматы заголовков сегментов. Проведен сравнительный анализ протоколов TCP и UDP.

9.1. Общие сведения о транспортном уровне

Протокол управления передачей TCP работает на транспортном Уровне 4 модели OSI и является протоколом, ориентированным на предварительное соединение ( connection-oriented ), что обеспечивает контроль потока и надежность доставки. Когда эти протоколы ( TCP / IP ) объединены, они обеспечивают более широкий объем услуг: малую задержку и высокую надежность . Всемирная сеть Интернет строится на основе набора (стека) протоколов TCP / IP .

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

Контроль потока необходим, чтобы гарантировать, что источник, передавая данные с некоторой скоростью, не переполняет буферные устройства узла назначения. Если узел назначения не может обрабатывать данные в темпе их поступления, то может произойти переполнение буферов и потеря данных. Управление скоростью передачи данных обеспечивается изменением размера окна (Window Size ), который указывает, сколько байт данных должно быть передано за одну порцию. При переполнении буферных устройств узел назначения посылает источнику требование уменьшения размера окна, т.е. снижения скорости передачи.

После получения каждой порции данных узел назначения посылает источнику подтверждение принятых данных или подтверждение доставки ( acknowledgment ).

Подтверждение (квитирование) обеспечивает надежность сети передачи данных . Если подтверждение не получено, то неподтвержденная часть данных передается узлом источником повторно.

Поля заголовка TCP сегмента определяют следующее:

Поскольку UDP является протоколом дейтаграммного типа, то в заголовке его сегмента (рис. 9.2) отсутствуют такие параметры, как Номер последовательности , Номер подтверждения, Размер окна, характерные для протокола TCP .

Транспортный уровень это 4 уровень в модели взаимодействия открытых систем и 3 уровень в модели TCP/IP.

p, blockquote 1,0,0,0,0 -->


p, blockquote 2,0,0,0,0 -->

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

p, blockquote 3,0,0,0,0 -->

Место транспортного уровня в osi

p, blockquote 4,0,0,0,0 -->

p, blockquote 5,0,0,0,0 -->

передача данных на транспортном уровне

p, blockquote 6,0,0,0,0 -->

Задачи транспортного уровня (ТУ)

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

p, blockquote 7,0,0,0,0 -->

Модель OSI

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

p, blockquote 8,0,1,0,0 -->

модель osi

p, blockquote 9,0,0,0,0 -->

Отдельно выделяются хосты, это устройства, где работают полезные пользовательские программы. И сетевое оборудование, такое как маршрутизаторы, коммутаторы и другие сетевые устройства. На сетевом оборудовании есть только 3 уровня: физический, канальный и сетевой. Уровни начиная с транспортного работают только на хостах.

p, blockquote 10,0,0,0,0 -->

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

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

p, blockquote 12,0,0,0,0 -->

p, blockquote 13,0,0,0,0 -->

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

p, blockquote 14,0,0,0,0 -->

Адресации. Порты

p, blockquote 15,0,0,0,0 -->

Записываются порты, следующим образом 192.168.1.3 :80. Выделенные жирным это IP-адрес, а 80 — это порт. Чтобы в интернете подключиться к какому-нибудь сервису и к службе необходимо указать ip адрес и соответствующий порт.

p, blockquote 16,1,0,0,0 -->

Типы портов

Если мы хотим подключиться к какому-нибудь сервису в интернете нам нужно знать не только ip адрес, но и порт. Поэтому договорились, что популярные сервисы будут работать на одних и тех же портах. Эти порты называются хорошо или широко известные порты 1-1024.

p, blockquote 17,0,0,0,0 -->

Список портов

p, blockquote 18,0,0,0,0 -->

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

p, blockquote 20,0,0,0,0 -->

p, blockquote 21,0,0,0,0 -->

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

p, blockquote 22,0,0,0,0 -->

IP-адреса и порты

Рассмотрим пример сетевого взаимодействия с использованием ip адресов и портов. Есть сервер на котором работает web сервер на порту №80. И есть клиент, который хочет подключиться к этому веб серверу.

p, blockquote 23,0,0,0,0 -->

Клиент открывает браузер, операционная система автоматически назначает ему порт 50298. Браузер выполняет соединение с веб сервером, запрашивает веб страницу. Web сервер отправляет ему эту страницу.

p, blockquote 24,0,0,1,0 -->

Браузер и веб сервер

p, blockquote 25,0,0,0,0 -->

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

p, blockquote 26,0,0,0,0 -->

Взаимодействие между клиентом и сервером

p, blockquote 27,0,0,0,0 -->

Надежность на транспортном уровне

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

p, blockquote 28,0,0,0,0 -->

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

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

p, blockquote 30,0,0,0,0 -->

Протокол TCP

p, blockquote 31,0,0,0,0 -->

Заключение

Для взаимодействия с ТУ используется интерфейс сокетов. Многие сетевые приложения взаимодействуют с ТУ. Хотя сейчас все более популярными становятся разработка сетевых приложений, которые взаимодействуют не с транспортным, а с прикладным уровнем.

Сетевая модель OSI (англ. open systems interconnection basic reference model) - концептуальная модель, которая обобщает и стандартизирует представление средств сетевого взаимодействия в телекоммуникационных и компьютерных системах, независимо от их внутреннего устройства и используемых технологий. Модель OSI была разработана в 1984 году Международной организацией стандартизации (ISO). Основной целью ее создания был поиск решения проблемы несовместимости устройств, использующих различные коммуникационные протоколы, путем перехода на единый, общий для всех систем стек протоколов.

OSI состоит из двух основных частей:

  • абстрактная модель сетевого взаимодействия (семиуровневая модель)
  • набор специализированных протоколов взаимодействия


Концепция семиуровневой модели была описана в работе Чарльза Бахмана. Данная модель подразделяет коммуникационную систему на уровни абстракции (англ. "abstraction layers"). В модели OSI средства взаимодействия делятся на семь уровней: прикладной, представления, сеансовый, транспортный, сетевой, канальный и физический. Каждый уровень:

  • имеет дело с совершенно определенным аспектом взаимодействия сетевых устройств
  • обслуживает уровень, находящийся непосредственно над ним, и обслуживается уровнем, находящимся под ним


Протоколы связи же решают две задачи: они обеспечивают взаимодействие между сущностями, находящимися на одном и том же уровне абстракции, но на разных хостах и абстрактно описывают функционал, который (N-1)-ый уровень предоставляет (N)-ому, где N - один из 7 уровней модели OSI. В рамках модели, любой протокол может взаимодействовать либо с протоколами своего уровня (горизонтальные взаимодействия), либо с протоколами уровня на единицу выше/ниже своего уровня (вертикальные взаимодействия).

Каждый из семи уровней характеризуется типом данных (PDU, сокращение от англ. protocol data units), которым данный уровень оперирует и функционалом, который он предоставляет слою, находящемуся выше него. Предполагается, что пользовательские приложения обращаются только к самому верхнему (прикладному) уровню, однако на практике это выполняется далеко не всегда.

Прикладной уровень выполняет следующие функции:

  • Позволяет приложениям использовать сетевые службы (например удалённый доступ к файлам)
  • Идентификация пользователей по их паролям, адресам, электронным подписям
  • Предоставление приложениям информации об ошибках
  • Определение достаточности имеющихся ресурсов
  • Управление данными, которыми обмениваются прикладные процессы и синхронизация взаимодействия прикладных процессов

К числу наиболее распространенных протоколов верхних трех уровней относятся:

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

  • Генерация запросов на установление/завершение сеансов взаимодействия прикладных процессов
  • Согласование представления данных между прикладными процессами
  • Конвертация форм представления данных
  • Шифрование данных

Примеры протоколов данного уровня:

  • AFP — Apple Filing Protocol
  • ICA — Independent Computing Architecture
  • LPP — Lightweight Presentation Protocol
  • NCP — NetWare Core Protocol

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

На сеансовом уровне определяется, какой будет передача между двумя прикладными процессами:

  • полудуплексной (процессы будут передавать и принимать данные по очереди)
  • дуплексной (процессы будут передавать данные, и принимать их одновременно)

Примеры протоколов сеансового уровня:

  • ADSP (AppleTalk Data Stream)
  • ASP (AppleTalk Session)
  • RPC (Remote Procedure Call)
  • PAP (Password Authentication Protocol)

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

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

  • Управление передачей по сети и обеспечение целостности блоков данных
  • Обнаружение ошибок, частичная их ликвидация
  • Восстановление передачи после отказов и неисправностей
  • Разбиение данных на блоки определенного размера
  • Предоставление приоритетов при передаче блоков (нормальная или срочная)
  • Подтверждение передачи.

Транспортный уровень использует сегменты или датаграммы в качестве основного типа данных.

  • TCP (Transmission Control Protocol)
  • UDP (User Datagram Protocol)
  • SCTP (Stream Control Transmission Protocol)

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

Сетевой уровень выполняет функции:

  • Обнаружение и исправление ошибок, возникающих при передаче через коммуникационную сеть
  • Упорядочение последовательностей пакетов
  • Маршрутизация и коммутация
  • Сегментирование и объединение пакетов

Наиболее часто на сетевом уровне используются протоколы:

  • IP/IPv4/IPv6 (Internet Protocol) сетевой протокол стека TCP/IP
  • IPX (Internetwork Packet Exchange, протокол межсетевого обмена)
  • AppleTalk

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

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

Канальный уровень состоит из двух подуровней: LLC и MAC.

Канальный уровень выполняет функции:

  • LLC Multiplexing: Интерфейс между сетевым уровнем и MAC, чтобы несколько различных протоколов сетевого уровня могли сосуществовать.
  • LLC Flow control: Механизм ограничении скорости передачи данных при медленном приёмнике
  • LLC Error control: Определение (и иногда исправление) ошибок с помощью чексумм
  • MAC Adressing mechanism: Адрессация на основе уникальных MAC-адресов
  • MAC Channel access control mechanism: Предоставляет протокол множественного доступа

Наиболее часто на канальной уровне используются протоколы:

  • PPP (Point-To-Point Protocol, протокол прямого соединения между двумя узлами)
  • SLIP (Serial Line Internet Protocol, предшественник PPP, который всё ещё используется в микроконтроллерах)
  • Ethernet II framing

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

Здесь специфицируются такие низкоуровневые параметры как частота, амплитуда и модуляция.

Физический уровень выполняет функции:

  • Побитовая доставка
  • Физическое кодирование (способ представления данных в виде импульсов)
  • LLC Error control: Определение (и иногда исправление) ошибок с помощью чексумм
  • MAC Adressing mechanism: Адрессация на основе уникальных MAC-адресов
  • MAC Channel access control mechanism: Предоставляет протокол множественного доступа

Наиболее часто на физическом уровне используются протоколы:

  • Ethernet physical layer (семейство стандартов с оптическими или электрическими свойствами соединений между устройствами)
  • USB

Аналогичный пример инкапсуляции данных в UDP

Инкапсуляция (англ. encapsulation) -- метод проектирования протоколов в которой логически независимые функции сети не зависят от реализации нижележащих механизмов с помощью включения этих механизмов в более высокоуровневые объекты.

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

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

Транспортный уровень (англ. Transport layer ) — 4-й уровень сетевой модели OSI предназначен для доставки данных. При этом не важно, какие данные передаются, откуда и куда, то есть он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты, размер которых зависит от протокола, короткие объединяет в один, а длинные разбивает. Протоколы этого уровня предназначены для взаимодействия типа точка-точка. Пример: TCP, UDP, SCTP, RTP.

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

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


В сетях так называемый транспортный уровень составляет четвертый уровень модели OSI . Этот уровень объединяет все протоколы, отвечающие за управление ошибками и управление сетевым потоком. Два основных используемых протокола - это TCP и UDP .

Резюме

Принцип действия

Мультиплексирование / демультиплексирование

Транспортный уровень реализует мультиплексирование, чтобы несколько процессов могли взаимодействовать в одной сети. Информация разделена на сегменты ( PDU ), связанные с конкретным приложением. Конкретно это заключается в использовании порта, связанного с сокетом, для каждого процесса машины. Эта информация содержится в заголовке сегмента транспортного уровня.

Схема формата заголовка транспортного уровня
Исходный порт Порт назначения
Другая информация заголовка
Данные приложений
.

Целостность данных

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

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

Замечания

Служба транспорта в подключенном режиме через отключенную сетевую службу не является правилом. С другой стороны, это так в мире IP. Это еще одно отклонение стека IP от модели OSI. Преимущество правила OSI перед мировым правилом IP очевидно в случае соединения проводной сети и радиосети. Фундаментальная неспособность TCP угадать причину потери PDU (грубо говоря: перегрузка сети или повреждение PDU) из-за отсутствия обратной связи от сетевого уровня и, следовательно, адекватная реакция на эту потерю (ответственная за замедление передачи отсутствующих PDU или повторная передача) является одной из причин, по которой он изначально неоптимален. [исх. нужно]

Читайте также: