Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
39
Добавлен:
05.06.2015
Размер:
356.2 Кб
Скачать

Протоколы с установлением соединения и без установления соединения

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

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

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

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

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

Комбинации сервисов, предоставляемых протоколами

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

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

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

  • ТР1. Протокол с исправлением обнаруженных ошибок. Дает возможность исправить ошибки, обнаруженные протоколами, функционирующими на нижних уровнях.

  • ТР2. Протокол с мультиплексированием. Включает коды, идентифицирующие процесс, создавший пакет, и процесс, который должен обработать пакет на принимающей стороне. Это позволяет переносить трафик, создаваемый несколькими приложениями, через одну сетевую среду.

  • ТРЗ. Протокол с исправлением обнаруженных ошибок и мультиплексированием. Сочетает услуги, предоставляемые ТР1 и ТР2.

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

Данная классификация сервисов Транспортного уровня является еще одним местом, где теоретическая конструкция модели OSI основательно отличается от действительности. Ни один из широко используемых наборов протоколов не обладает пятью различными протоколами транспортного уровня, согласующимися с этими классами. Большинство блоков протоколов, таких как TCP/IP, имеют в своем составе два протокола, которые в основном соотносятся с классами ТР0 и ТР4, обеспечивающими услуги без установления соединения и с установлением соединения соответственно.

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

Сегментация и восстановление

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

Управление потоком данных

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

Обнаружение ошибок и восстановление информации

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

Другая, и наиболее широко применяемая форма исправления ошибок на Транспортном уровне представляет собой законченный процесс, начинающийся с обнаружения ошибок и заканчивающийся их коррекцией. Этот процесс охватывает и ошибки, которые еще не были обнаружены каким-либо другим способом. Несмотря на то, что большинство протоколов Канального уровня имеют свои собственные механизмы выявления и коррекции ошибок, они функционируют только при промежуточных пересылках между двумя системами. Механизм выявления ошибок Транспортного уровня обеспечивает контроль ошибок на всем участке между двумя конечными системами и включает в себя возможность исправления ошибок, которая осуществляется путем запроса у отправителя повторной передачи определенных пакетов. Для осуществления этого в заголовок протокола Транспортного уровня включена контрольная сумма, значение которой получено из полей, не меняющихся в ходе всего путешествия до места назначения. Периодически изменяющиеся поля, такие как индикатор Time-to-Live, значение которого изменяет каждый маршрутизатор, обрабатывающий пакет, исключены из вычисления контрольной суммы.

Соседние файлы в папке Сетевое программирование от Ивана Ерохина