Раздел "Транспортный уровень". Оглавление

Сетевые технологии: как устроен Интернет 

 

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

 

Функции транспортного уровня

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

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

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

  • обеспечение доставки данных между конкретными программами, функционирующими, в общем случае, на разных узлах сети;

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

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

Доставка данных между приложениями

Для идентификации программ протоколы транспортного уровня в сети Интернет (TCP и UDP), используют уникальные числовые значения, так называемые номера портов. Номера портов назначаются программам в соответствии с ее функциональным назначением на основе определенных стандартов. Для каждого протокола существуют стандартные списки соответствия номеров портов и программ. Так, например, программное обеспечение WWW, работающее через транспортный протокол TCP, использует TCP-порт 80, модули протокола FTP – TCP-порт 21, а служба DNS взаимодействует с транспортными протоколами TCP и UDP через TCP-порт 53 и UDP-порт 53 соответственно.

Таким образом, протокол сетевого уровня IP и транспортные протоколы TCP и UDP реализуют двухуровневую схему адресации: номера TCP- и UDP-портов позволяют однозначно идентифицировать программу в рамках узла, однозначно определяемого IP-адресом. Следовательно, комбинация IP-адреса и номера порта позволяет однозначно идентифицировать программу в сети Интернет. Такой комбинированный адрес называется сокетом (socket).

Фильм "Знакомство с транспортным уровнем" (2:19)

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

Принцип гарантированной доставки основан на том, что передающий компьютер всегда «знает», была ли доставлены данные получателю или нет. Это обеспечивается тем, что принимающий компьютер подтверждает успешный прием данных. Если передающий компьютер не получает подтверждения, он пытается произвести повторную передачу. Режим передачи с гарантией доставки имеет существенный недостаток – сеть дополнительно загружается пакетами-подтверждениями. Это может оказаться принципиальной проблемой на каналах с низкой производительностью. Поэтому при широковещательной рассылке, а также для передачи небольших порций данных, если нет необходимости в подтверждении, используется режим передачи с негарантированной доставкой. 

Фильм "Принцип гарантированной доставки" (3:04)

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

Протокол UDP

Протокол UDP (User Datagram Protocol) – протокол транспортного уровня, входящий в стек протоколов TCP/IP, обеспечивающий негарантированную доставку данных без установления виртуального соединения.

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

 Фильм "Простейший протокол UDP" (3:12)

Протокол TCP

Протокол TCP (Transmission Control Protocol) является транспортным протоколом стека протоколов TCP/IP, обеспечивающим гарантированную доставку данных с установлением виртуального соединения.

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

В соответствии с функциональным назначением протокола структура TCP-сегмента предполагает наличие следующих информационных полей:

  • номер порта-отправителя и номер порта-получателя – номера портов, идентифицирующие программы, между которыми осуществляется взаимодействие;

  • поля, предназначенные для обеспечения гарантированной доставки: размер окна, номер последовательности и номер подтверждения (см. Реализация режима гарантированной доставки);

  • управляющие флаги – специальные битовые поля, управляющие протоколом.

 Фильм "Протокол TCP" (2:57)

Реализация режима гарантированной доставки

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

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

Фильм "Скользящее окно TCP" (3:04)

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

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

Резюме

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

  2. Средства транспортного уровня могут обеспечивать гарантированную доставку массивов данных произвольного размера;

  3. Гарантированная доставка основан на подтверждении принимающей стороной факта получения данных;

  4. Для обеспечения доставки данных произвольного объема требуется установление виртуального соединения;

  5. Основными протоколами транспортного уровня сети Интернет являются TCP и UDP;

  6. Протокол UDP обеспечивает негарантированную доставку данных;

  7. протокол TCP обеспечивает гарантированную доставку с установлением виртуального соединения;

  8. для идентификации конкретных программ, использующих сеть, протоколы TCP и UDP используют номера портов;

  9. реализация режима гарантированной доставки в протоколе TCP предполагает, что подтверждение высылается не на каждый TCP-сегмент, а на некоторый блок сегментов;

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

Дата последнего обновления страницы 28.07.2020
Сайт создан по технологии «Конструктор сайтов e-Publish»
Версия для слабовидящих
Размер шрифта Шрифт Межсимвольный интервал Межстрочный интервал Цветовая схема Изображения