Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619), страница 20
Текст из файла (страница 20)
Механизм RFC нацелен на сокрытие большей частипроблем передачи сообщений и идеален для приложений архитектуры клиентсервер. Усовершенствованный вариант модели RFC имеет вид удаленного обра-82Глава 2. Связьщения к методам, которое основано на представлении распределенных объектов.Механизмы RPC и RMI рассматриваются в отдельных разделах.Во многих распределенных приложениях связь не ограничивается слегка урезанным шаблоном взаимодействий клиента и сервера. В подобных случаях мыслить категориями сообщений оказывается предпочтительнее.
Однако применениеразнообразных низкоуровневых средств связи компьютерных сетей приведетк серьезным нарушениям прозрачности распределения. Альтернативой им является высокоуровневая модель очереди сообщений, связь в которой очень напоминает системы электронной почты. Ориентированный на сообщения среднийуровень — это достаточно важная тема, чтобы отвести отдельный раздел и нанее.Что касается мультимедиа в распределенных системах, понемногу становитсяочевидным, что такр1м системам недостает поддержки передачи непрерывныхпотоков, таких как аудио или видео. Им необходимо понятие потока, которыйпозволяет поддерживать непрерывно идущие сообщения в соответствии с различными огранР1чениями по синхронизации.
Потоки обсуждаются в последнемразделе этой главы.2 . 1 . Уровни протоколовв условиях отсутствия совместно используемой памяти вся связь в распределенных системах основана на обмене (низкоуровневыми) сообщениями. Если процесс Л хочет пообщаться с процессом В, он должен сначала построить сообщениев своем собственном адресном пространстве. Затем он выполняет системный вызов, который пересылает сообщение по сети процессу В.
Хотя основная идеявыглядит несложной, во избежание хаоса А и В должны договориться о смыслепересылаемых нулей и единиц. Если А посылает потрясающий новый роман, написанный по-французски, в кодировке IBM EBCDIC, а В ожидает результаты переучета в супермаркете, на английском языке и в кодировке ASCII, их взаимодействие будет не слишком успешным.Необходимо множество различных договоренностей. Сколько вольт следуетиспользовать для передачи нуля, а сколько для передачи единицы? Как получатель узнает, что этот бит сообщения — последний? Как ему определить, что сообщение было повреждено или утеряно, и что ему делать в этом случае? Какуюдлину имеют числа, строки и другие элементы данных и как они отображаются?Короче говоря, необходимы соглашения различного уровня, от низкоуровневыхподробностей передачи битов до высокоуровневых деталей отображения информации.Чтобы упростить работу с множеством уровней и понятий, используемыхв передаче данных.
Международная организация по стандартам {InternationalStandards Organization, ISO) разработала эталонную модель, которая ясно определяет различные уровни, дает им стандартные имена и указывает, какой уровень за что отвечает. Эта модель получила название Эталонной модели взаимодействия открытых систем {Open Systems Interconnection Reference Model) [120].2.1. Уровни протоколов83Это название обычно заменяется сокращением модель ISO OSI, или просто модель OSL Следует заметить, что протоколы, которые должны были реализовывать части модели OSI, никогда не получали широкого распространения.
Однакосама по себе базовая модель оказалась вполне пригодной для исследования компьютерных сетей. Несмотря на то что мы не собираемся приводить здесь полноеописание этой модели и всех ее дополнений, небольшое введение в нее будет намполезно. Дополнительные детали можно почерпнуть в [446].Модель OSI разрабатывалась для того, чтобы предоставить открытым системам возможность взаимодействовать друг с другом. Открытая система — этосистема, которая способна взаимодействовать с любой другой открытой системой по стандартным правилам, определяющим формат, содержимое и смысл отправляемых и принимаемых сообщений. Эти правила зафиксированы в том, чтоназывается протоколами {protocols).
Для того чтобы группа компьютеров моглаподдерживать связь по сети, OHPI ДОЛЖНЫ договориться об используемых протоколах. Все протоколы делятся на два основных типа. В протоколах с устаповлением соединения (connection-oriented) перед началом обмена данными отправитель и получатель должны установить соединенрш и, возможно, договоритьсяо том, какой протокол они будут использовать.
После завершения обмена онидолжны разорвать соединение. Системой с установлением соединения является,например, телефон. В случае протоколов без установления соединения (connectionless) никакой подготовки не нужно. Отправитель посылает первое сообщение, как только он готов это сделать. Письмо, опущенное в почтовый ящик, —пример связи без установления соединения.
В компьютерных технологиях широко применяется как связь с установлением соединения, так и связь без установления соединения.В модели OSI взаимодействие подразделяется на семь уровней, как показанона рис. 2.1. Каждый уровень отвечает за один специфический аспект взаимодействия. Таким образом, проблема может быть разделена на поддающиеся решеРП1Ю части, каждая из которых может разбираться независимо от других. Каждый из уровней предоставляет интерфейс для работы с вышестоящим уровнем.Интерфейс состоит из набора операций, которые совместно определяют интерфейс, предоставляемый уровнем тем, кто им пользуется.Когда процесс А на машине 1 хочет пообщаться с процессом В на машине 2,он строит сообщение и посылает его прикладному уровню своей машины.
Этотуровень может представлять собой, например, библиотечную процедуру или реализовываться как-то иначе (например, внутри операционной системы или внешнего сетевого процессора). Программное обеспечение прикладного уровня добавляет в начало сообщения свой заголовок (header) и передает получившеесясообщение через интерфейс с уровня 7 на уровень 6, уровень представления.Уровень представления, в свою очередь, добавляет в начало сообщения свой заголовок и передает результат вниз, на сеансовый уровень и т.
д. Некоторые уровни добавляют не только заголовок в начало, но и завершение в конец. Когда сообщение дойдет до физического уровня, он осуществит его реальную передачу,как это показано на рис. 2.2.84Глава 2. СвязьПриложениеПредставлениеСеансТранспортСетьПередача данныхФизическое воплощение1^_^^-^^-^^-^Ч--^-^^-^Прикладной протоколW1^Протокол представленийW^Сеансовый протоколWТранспортный протокол—^W.65—w^4->3Сетевой протоколКанальный протокол1--WW2WW1Физический протоколСетьРис. 2 .
1 . Уровни, интерфейсы и протоколы модели OSI• Заголовок канального уровня- Заголовок сетевого уровня- Заголовок транспортного уровня• Заголовок сеансового уровня- Заголовок уровня представленияг- Заголовок прикладного уровняУ tУ ТСообщениеЗавершение- канальногоуровняФактически передаваемые по сети битыРис. 2.2. Передача по сети типового сообщенияКогда сообщение приходит на машину 2, оно передается наверх, при этом накаждом уровне считывается и проверяется соответствующий заголовок.
В концеконцов сообщение достигает получателя, процесса Б, который может ответить нанего, при этом вся история повторяется в обратном направлении. Информацияиз заголовка уровня п используется протоколом уровня п.В качестве примера важности многоуровневых протоколов рассмотрим обменинформацией между двумя компаниями, авиакомпанией Zippy Airlines и поставщиком продуктов Mushy Meals, Inc.
Каждый месяц начальник отдела обслуживания пассажиров Zippy просит свою секретаршу связаться с секретаршей менеджера по продажам Mushy и заказать 100 000 коробок «резиновых» цыплят.Обычно заказы пересылались почтой. Однако из-за постепенного ухудшения качества почтовых услуг в один прекрасный момент секретарши решают большене писать друг другу письма, а связываться по факсу.
Они могут делать это, небеспокоя своих боссов, поскольку протокол касается физической передачи заказов, а не их содержания.2.1. Уровни протоколов85Точно так же начальник отдела обслуживания пассажиров может решить отказаться от цыплят и перейти на новый деликатес от Mushy, превосходные козьиребра, это решение никак не скажется на работе секретарш. Это происходит потому, что у нас есть два уровня — боссы и их секретарши. Каждый уровень имеетсвой собственный протокол (темы для обсуждения и технологию), который можно изменить независимо от другого.
Эта независимость делает многоуровневыепротоколы привлекательными. Каждый уровень при появлении новых технологий может быть изменен независимо от других.В модели OSI, как было показано на рис. 2.1, не два уровня, а семь. Наборпротоколов, используемых в конкретной системе, называется комплектом, илистеком протоколов. Важно отличать эталонную модель от реальных протоколов.Как мы отмечали, протоколы OSI никогда не были популярны. В противоположность им протоколы, разрабатывавшиеся для Интернета, такие как TCP и IP,используются повсеместно.
В последующих пунктах мы кратко рассмотрим каждый из уровней модели OSI, начиная с нижнего. Однако вместо того, чтобы приводить примеры соответствующих протоколов OSI, мы рассмотрим протоколыИнтернета, используемые на каждом из этих уровней.2 . 1 . 1 . Низкоуровневые протоколыМы начнем с обсуждения трех нижних уровней комплекта протоколов OSI. Этитри уровня совместно реализуют основные функции компьютерной сети.Физический уровеньФизический уровень ответственен за передачу щлш и единиц. Сколько вольтиспользовать для передачи нуля или единицы, сколько бит в секунду можно передать и можно ли осуществлять передачу одновременно в двух направлениях —вот основные проблемы физического уровня. Кроме того, к физическому уровнюотносится размер и форма сетевых коннекторов (разъемов), а также число выводов и назначение каждого из них.Протоколы физического уровня отвечают за стандартизацию электрических,механических и сигнальных интерфейсов, чтобы, если одна машина посылаетноль, другая приняла его как ноль, а не как единицу.