logo
Учебник проектирование и внедрение компьютерных

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

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

Как правило, все протоколы, начиная с транспортного уровня и выше, реализу­ются программными средствами конечных узлов сети — компонентами их сетевых операционных систем. В качестве примера транспортных протоколов можно при­вести протоколы TCP и UDP стека TCP/IP и протокол SPX стека Novell.

Функции, выполняемые протоколами транспортного (transport) уровня, дополняют функции протоколов сетевого уровня. Часто протоколы этих уровней, используемые для передачи данных, образуют взаимосвязанную пару, что видно на примере TCP/IP: протокол TCP функционирует на транспортном уровне, IP — на сетевом. В большинстве наборов протоколов имеется два или несколько протоколов транспортного уровня, выполняющих разные функции. Альтернативой TCP является протокол UDP (User Datagram Protocol). В набор протоколов IPX также включено несколько протоколов транспортного уровня, в том числе NCP (NetWare Core Protocol) и SPX (SequencedPacket Exchange).

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

Разница между протоколами транспортного уровня из определенного набора заключается в том, что некоторые из них ориентированы на соединение, а другие — нет. Системы, использующие протокол, ориентированный на соединение (connection oriented), перед передачей данных обмениваются сообщениями, чтобы установить связь друг с другом. Это гарантирует, что системы включены и готовы к работе. Протокол TCP, например, ориентирован на соединение. Когда Вы с помощью браузера подключаетесь к серверу Интернета, браузер и сервер для установления связи сначала выполняют так называемое трехшаговое рукопожатие (three way handshake). Лишь после этого браузер передает серверу адрес нужной Web-страницы. Когда передача данных завершена, системы выполняют такое же рукопожатие для прекращения связи.

Кроме того, протоколы, ориентированные на соединение, выполняют дополнительные действия, например, отправляют сигнал подтверждения приема пакета, сегментируют данные, управляют потоком, а также обнаруживают и исправляют ошибки. Как правило, протоколы этого типа используются для передачи больших объемов информации, в которых не должно содержаться ни единого ошибочного бита, например, файлов данных или программ. Дополнительные функции протоколов с ориентацией на соединение гарантируют корректную передачу данных. Вот почему эти протоколы часто называют надежными (reliable). Надежность в данном случае является техническим термином и означает, что каждый передаваемый пакет проверяется на наличие ошибок, кроме того, система-отправитель уведомляется о доставке каждого пакета. Недостаток протоколов этого типа состоит в значительном объеме управляющих данных, которыми обмениваются две системы. Во-первых, дополнительные сообщения передаются при установлении и завершении связи. Во-вторых, заголовок, добавляемый к пакету протоколом с ориентацией на соединение, существенно превосходит по размеру заголовок протокола, не ориентированного на соединение. Например, заголовок протокола TCP/IP занимает 20 байтов, а заголовок UDP — 8 байтов.

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

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