tanenbaum_seti_all.pages (525408), страница 15
Текст из файла (страница 15)
Службу можно уподобить абстрактному типу данных илп объекту в объектно-ориентированных языках программирования. Ои определяет операции, которые могут выполняться с объектом, по ис описывает, как реализованы этп операции, В этом случае протокол относится к реализации службы и, таким образом, невидим для пользователей службы. Уровень К + 1 с, предоставляемый уровнем к Протокол Уровень к- 1 Уровень я — 1 Рно. 1.16. Связь между службой н протоколом Во многих старых системах служба пе отделялась от протокола. В результате типичный уровень мог содержать примитив службы БЕХР РАСКЕТ, в котором пользователь должен был указать ссылку па полностью собранный ~такет.
Это означало, что яюбыс изменения протокола тут жс становились видимыми для пользователей. Большинство разработчиков сетей сегодня считают подобный подход серьезнейшей ошибкой. 62 Глава 1. Введение Эталонные модели Обсудив многоуровневые сети в общих чертах, пора рассмотреть несколько примеров. В следующих двух разделах описываются два важных архитектурных типа — эталонные модели 051 и ТСР/! Р.
Несмотря на то что протоколы, связанные с эталонной модельк> 051, используются сейчас очень редко, сама модель до сих пор весьма актуальна, а свойства ее уровней, которые будут обсуждаться в этом разделе, очень важны. В эталонной модели ТСР/1Р все наоборот — сама модель сейчас почти нс используется, а ее протоколы являются едва ли нс самыми распространенными.
Исходя из этого, мы обсудим подробности, касающиеся обеих моделей. К тому же иногда приходится больше узнавать из поражений, чем из побед. Эталонная модель 081 Эталонная молель ОБ! (за исключением физической среды) показана на рис. 1.16. Эта модель основана на разработке Межлународной организации по стандартизации (1пгсгпабопа! Огйап!хайоп !ог 5гапдагд!хат!оп, 150) и является первым шагом к международной стандартизации протоколов, используемых ца различных уровнях (Рау и Хпшпегшап, 1983).
Затем она была пересмотрена в 1995 году (Рау, 1995). Называется эта структура эталонной моделью взаимодействия открытьгх систем 150 (130 031 (Ореп Ьуз!ет 1п!егсоппес!!оп) Ке(егепсе Моде!), поскольку она связывает открытые системы, то есть системы, открытые для связи с лругими системами. Для краткости мы будем нааывать эту модель просто чмодель 05! >. Модель 051 имеет семь уровней. Появление имею<о такой структуры было обусловлено следующими соображениями. 1. Уровень должен создаваться по мере необходимости отдельного уровня абстракции. 2. Каждый уровень должен выполнять строго определенную функцию.
3. Выбор функций для каждого уровня должен осуществляться с учетом созлания стандартизированных международных протоколов. 4. Границы между уровнями должны выбираться так, чтобы поток данных между интерфейсами был минимальным. 5. Количество уровней должно быть достаточно большим, чтобы различные функции не объединялись в одном уровне без необходимости, но не слишком высоким, чтобы архитектура не становилась громоздкой. Далее мы обсудим каждый уровень модели, начиная с самого нижнего. Обратите внимание; модель 05! не является сетевой архитектурой, поскольку она не описывает службы и протоколы, используемые на каждом уровне.
Опа просто определяет, что должен делать каждый уровень. Тем не менее 150 также разработала стандарты для каждого уровня, хотя эти станларты не входят в саму эталонную модель. Каждый из них был опубликован как отдельный международный стандарт. Эталонные модели 63 Название единицы обмена уровень Прикладной протокол 7 Прикладной Прикпедной дроп Инт РР00 Ин ЗР00 Трои Пакет Кадр Бит Рис. 1.1б.
Эталонная модель 08! Физический уровень Физический уровень ваш<мается реальной передачей псобработанпых битов по каналу связи. При разработке сети необходимо убедиться, что к<ила одна сторона передает единицу, то пршщмающая сторона получаст также едишп<у, а пс ноль. Принципиальными вопросами здесь являются следу <ощпе: какое напряжение должцо использоваться для отображения сдипицы, а какое — для нуля; сколько микРосекунд ллится бит; может ли перслача производиться одновременно в двух напРавлениях; как устанавливается начальная связь и как она прекращается, когда обв стоРоны закончили свои задачи; пз какого количества проводов лолжен состоять кабель и какова функция каждо<о провода.
Вопросы разработки в основном связаны с механическими, электрическими и процелурпыми интерфейсами, а также с физическим носителем, лежащим ппжс физического уровня. Уровень передачи данных Основная задача уровня передачи данных — быть способным передавать ксыРые» данные физического уровня по надежной линии связи, свободной от необ- 64 Глава 1. Введение наруженных ошибок с точки зрения вышестоящего сетевого уровня. Уровень выполняет эту залачу при помощи разоисния входных данных на кадры, обычный размер которых колсблется от нескольких сотен до нескольких тысяч байт.
Кадры данных передаются послеловательно с обработкой кадров подтверждения, отсылаемых обратно получателем. Еще одна проблема, возникающая на уровне передачи данных (а также и на большей части более высоких уровней), — как не допустить ситуации, когда быстрый передатчик заваливает приемник данными.
Должен быть предусмотрен некий механизм регуляции, который информировал бы передатчик о наличии свободного места в буферс приемника на текущий момент. Часто полобное управление объединяется с механизмом обработки ошибок. В широковещательных сетях существует еще одна проблема уровня цсрсдачн данных: как управлять лоступом к совместно используемому каналу. Эта проблема разрешается ввелсннсм специального дополнительного подуровня уровня передачи данных — подуровня доступа к носителю.
Сетевой уровень Сетевой уровень занимается управлением операциями подсети. Важнейшим моментом здесь является определение маршрутов пересылки пакетов от источника к пункту назначения. Маршруты могут быть жестко заданы в виле таблиц и редко меняться. Кроме того, они могут задаваться в начале каждого соединения, например терминальной сессии.
Наконец, они могут быть в высокой степени динамическими, то сеть вычисляемыми заново для кажлого пакета с учетом текугцей загруженности сстн. Если в подсети одновременно присутствует слишком большое количество пакетов, то они могут закрыть дорогу друг другу, образуя заторы в узких местах. Недопущение подобной закупорки также являстся задачей сетевого урдвня.
В более общелг смысле сетевой уровень занимается предоставлением определенного уровня сеРвиса (это касается задержек, времени передачи, вопросов синхронизации). При путешествии пакета из одной сети в другую также может возникнуть ряд проблем. Так, способ адресации, прнмсняемый в одной сети, может отличаться от принятого в другой. Сеть можст вообще отказаться принимать пакеты из-за того, что они слишком большого размера.
Также могут различаться протоколы, и т. д. Именно сетевой уровень должен разрешать все эти проблемы, позволяя объединять разнородные сети. В широковещательных сетях проблема маршрутизации очень проста, поэтому в них сетевой уровень очень примитивный или вообще отсутствует.
Транспортный уровень Основная функция транспортного уровня — принять ланные от сеансового уровня, разбить их при необходимости на небольшие части, перелить их сетевому уровню и гарантировать, что этн части в правильном виде прибудут по назначснию. Кроме того, все это должно быть слелано эффективно н таким образом, чтобы Эталонные модели 65 изолировать более высокие уровни от каких-либо изменений в аппаратной технологии. Транспортный уровень также определяет тип сервиса, предоставляемого сеаисовому уровню и, в конечном счете, пользователям сети. Наиоолее популярной разновидностью транспортного соединения является защищенный от ошибок канал между двумя узлами, поставляющий сообщения или байты в том порядке, в каком они были отправлены.
Однако транспортный уровень может предоставлять и другие типы сервисов, например пересылку отдельных сообщений без гарантии соблюдения порядка нх доставки или одновременную отправку сообщения различным адресатам по принципу широковещания. Тип сервиса определяется при установке соединения. (Строго говоря, полностью защищенный от ошибок канал создать невозможна Говорят лишь о таком канале, уровень ошибок в котором достаточно мал, чтобы ими можно было пренебречь па практике.) Транспортный уровень является настоящим сквозным уровнем, то есть доставляющим сообщения от источника адресату. Другими словами, программа на машине-источнике поддерживает связь с подобной программой на лругой машине при помощи заголовков сообщений и управ.ляюшнх сообщений.
На более низких уровнях для поддержки этого соединения устанавливаются соединения между всеми соседпимн машинами, через которые проходит маршрут сообщений. Различие между уровнями с 1-го по З-й, действующими по принципу звеньев цепи, и уровнями с 4-го по 7-й, являющимися сквозными, проиллюстрировано на рис. 1.16. Сеансовый уровень Сеансовый уровень позволяет пользователям различных компьютеров устанавливать сеансы связи друг с другом. При этом предоставляются различные типы сеРвисов, среди которых управление диалогом (отслеживание очередности передачи данных), управление маркерами (предотвраьцение одновременного выполнения критичной операции несколькими системами) и синхронизация (установка служебных меток внутри длинных сообщений, позволяющих после устранения ошибки продолжить передачу с того места, на котором опа оборвалась).
Уровень представления В отличие от более низких уровней, задача которых — достоверная передача битов и байтов, уровень представления занимается по большей части синтаксисом и семантикой передаваемой информации. Чтобы было возможно обгцепне компьютеров с Различными представлениями данных, необходимо преобразовывать форматы данных друг в друга, передавая их по сети в нском стандартизированном виде. Уровень представления занимается этими преобразованиями, предоставляя возможность определения и изменения структур данных более высокого уровня (например, записей баз данных).