Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы_РСОИ.doc
Скачиваний:
51
Добавлен:
21.12.2018
Размер:
1.23 Mб
Скачать
  1. Уровни протоколов

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

В условиях отсутствия совместно используемой памяти вся связь в распределенных системах основана на обмене (низкоуровневыми) сообщениями. Если процесс А хочет пообщаться с процессом В,

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

Международная организация по стандартам (InternationalStandards Organization, ISO) разработала эталонную модель, которая ясно определяет различные уровни, дает им стандартные имена и указывает, какой уровень за что отвечает. Эта модель получила название Эталонной модели взаимодействия открытых систем (Open Systems Interconnection Reference). Модель OSI разрабатывалась для того, чтобы предоставить открытым системам возможность взаимодействовать друг с другом. Открытая система — это система, которая способна взаимодействовать с любой другой открытой системой по стандартным правилам, определяющим формат, содержимое и смысл отправляемых и принимаемых сообщений. Эти правила зафиксированы в том, что называется протоколами (protocols). Все протоколы делятся на два основных типа. В протоколах с установлением соединения (connectionoriented) перед началом обмена данными отправитель и получатель должны установить соединение и, возможно, договориться о том, какой протокол они будут использовать. После завершения обмена они должны разорвать соединение. В случае протоколов без установления соединения (connectionless) никакой подготовки не нужно. Отправитель посылает первое сообщение, как только он готов это сделать.

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

Низкоуровневые протоколы

Физический уровень

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

Канальный уровень

Физический уровень только пересылает биты. Пока нет ошибок, все хорошо. Однако в реальных сетях происходят ошибки, и их нужно как-то находить и исправлять. Это и является главной задачей канального уровня. Он группирует биты в модули, обычно называемые кадрами (frames),

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

Сетевой уровень

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

Некоторые алгоритмы маршрутизации могут подстраиваться под изменения загруженности линий, некоторые же удовлетворяются тем, что принимают решение на основе усредненных значений. В настоящее время, вероятно, наиболее широко распространенным сетевым протоколом, является не требующий установки соединения протокол Интернета (Internet protocol, IP), входящий в комплект протоколов Интернета. На сетевом уровне сообщение именуется термином пакет (packet). IP-пакет может быть послан без какой-либо предварительной подготовки. Маршрут каждого из IP-пакетов до места назначения выбирается независимо от других пакетов. Никакие внутренние пути не выбираются заранее и не запоминаются.

Протоколом с соединением, приобретающим популярность в настоящее время, является виртуальный канал (virtual channel). Чтобы между двумя компьютерами не устанавливать каждый из виртуальных каналов по отдельности, набор виртуальных каналов может быть сгруппирован в

виртуальный путь (virtual path).

Транспортные протоколы

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

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

Транспортный протокол для Интернета называется протоколом управления передачей (Transmission Control Protocol, TCP). Комбинация TCP/IP в настоящее время является стандартом де-факто при сетевых взаимодействиях. Комплект протоколов Интернета также включает в себя, не требующий соединения транспортный протокол под названием UDP (Universal Datagram Protocol

универсальный протокол датаграмм), который, по сути, представляет собой IP с некоторыми небольшими дополнениями.

Никогда ни один из протоколов не должен перегружаться. Время от времени предлагаются дополнительные транспортные протоколы. Так, например, для поддержки передачи данных в реальном времени был определен транспортный протокол реального времени (Real-time Transport Protocol, RTP). RTP — это кадровый протокол, который определяет формат пакета для данных реального времени, ничего не говоря о механизмах гарантированной доставки этих данных.

Протоколы верхнего уровня

Сеансовые протоколы и протоколы представления

Поверх транспортного уровня OSI указывает на наличие трех дополнительных уровней. На практике используется только прикладной уровень.

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

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

Прикладные протоколы

В настоящее время прикладной уровень стал местом собрания всех приложений и протоколов, которые не удалось пристроить ни на один из более низких уровней. В свете эталонной модели OSI все распределенные системы являются просто приложениями. Чего в этой модели нет так это четкого разграничения приложений, специальных протоколов приложений и протоколов общего назначения. Так, например, популярный в Интернете протокол передачи файлов (File Transfer Protocol, FTP) определяет передачу файлов между клиентской машиной и сервером. Другим примером сугубо специального прикладного протокола может служить протокол передачи гипертекста (Hypertext Transfer Protocol, HTTP), разработанный для удаленного управления и загрузки web-страниц.

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

Протоколы промежуточного уровня

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

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

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

широко используется при транзакциях.

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

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

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