Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 15
Текст из файла (страница 15)
Сущности используют протокол для реализации определений их служб. Они могут менять протокол по желанию, при условии что при этом остаются неизменными службы, предоставляемые ими своим пользователям. Таким образом, служба и протокол оказываются практически независимыми. Другими словами, службы — это нечто связанное с межуровневыми интерфейсами, тогда как протоколы связаны с пакетами, передающимися сущностями одного уровня, расположенными на разных машинах. Это показано на рис. 1.15.
Важно не путать эти два понятия. Стоит провести аналогию с языками программирования. Службу можно уподобить абстрактному типу данных или объекту в объектно-ориентированных языках программирования. Он определяет операции, которые могут выполняться с объектом, но пе описывает, как реализованы эти операции. В этом случае протокол относится к реализации службы и, таким образом, невидим для пользователей службы.
Уровень к + 1 с, предоставляемый уровнем тт Протокол Уровеньтт- 1 Уровень Л- 1 Рно. 1.16. Связь между службой и протоколом Во многих старых системах служба не отделялась от протокола. В результате типичный уровень мог содержать примитив службы ЯЕХ1) РАСКЕТ, в котором пользователь должен был указать ссылку на полностью собранный пакет. Это означало, что любые изменения протокола тут же становились видимыми для пользователей.
Большинство разработчиков сетей сегодня считают подобный подход серьезнейшей ошибкой. 62 Глава К Введение Эталонные модели Обсудив многоуровневые сети в общих чертах, пора рассмотреть несколько примеров. В следующих двух разделах описываются два важных архитектурных типа — эталонные модели ОБ! и ТСР/! Р. Несмотря на то что протоколы, связанные с эталонной моделью 051, используются сейчас очень редко, сама модель до сих пор весьма актуальна, а свойства ее уровней, которые будут обсуждаться в этом разделе, очень важны. В эталонной модели ТСР/!Р все наоборот — сама модель сейчас почти не используется, а ее протоколы являются едва ли не самыми распространенными. Исходя из этого, мы обсудим подробности, касающиеся обеих моделей.
К тому же иногда приходится больше узнавать из поражений, чем из гюбед. Эталонная модель 081 Эталонная модель 051 (за исключением физической среды) показана на рис. 1.16. Эта модель основана на разработке Международной организации по стандартизации (1пгегпаВопа! Огяап1гаг(оп 1ог Згапг)агг!1гаг!оп, 150) и является первым шагом к международной стандартизации протоколов, используемых на различных уровнях (1)ау и Х!шщегщап, 1983). Затем она была пересмотрена в 1995 году (1)ау, 1995). Называется эта структура эталонной моделью взаимодействия открытых систем 150 (150 ОЯ (Ореп ЯузФеш 1пФегсоппесг!оп) Ке(егепсе Моде!), поскольку она связывает открытые системы, то есть системы, открытые для связи с другими системами. Для краткости мы будем называть эту модель просто чмодель 051». Модель 051 имеет семь уровней.
Появление именно такой структуры было обусловлено следующими соображениями. 1. Уровень должен создаваться по мере необходимости отдельного уровня абстракции. 2. Каждый уровень должен выполнять строго определенну|о функцию. 3. Выбор функций для каждого уровня должен осуществляться с учетом создания стандартизированных международных протоколов. 4. Границы между уровнями должны выбираться так, чтобы по~ок данных между интерфейсамн был минимальным.
5. Количество уровней должно быть достаточно болыпим, чтобы различные функции не объединялись в одном уровне без необходимости, но не слишком высоким, чтобы архитектура не становилась громоздкой. Далее мы обсудим каждый уровень модели, начиная с самого нижнего. Обратите внимание: модель 081 не является сетевой архитектурой, поскольку она не описывает службы н протоколы, используемые на каждом уровне. Она просто определяет, что должен делать каждый уровень. Тем не менее 150 также разработала стандарты для каждого уровня, хотя эти стандарты не входят в саму эталонную модель. Каждый из ннх был опубликован как отдельный международный стандарт.
Эталонные модели 63 Название единицы обмена Уровень Прикладной протокол ПрикладнОЙ Арон 7 ПрикладноЙ Инт РР00 Инт ЗР00 ТР00 Пакет Кадр Бит Рио. 1.16. Эталонная модель 03! Физический уровень Физический уровень занимается реальной передачей необработанных битов по каналу связи.
При разработке сети необходимо убедиться, что когда одна сторона пеРедает единицу, то принимающая сторона получает также единицу, а не ноль. Принципиальными вопросами здесь являются следующие: какое напряжение должйо использоваться для отображения единицы, а какое — для нуля; сколько микРосекунд длится бит; может ли передача производиться одновременно в двух направлениях; как устанавливается начальная связь и как она прекращается, когда обе стороны закончили свои задачи; из какого количества проводов должен состоять кабель и какова функция каждого провода, Вопросы разработки в основном связаны с механическими, злектрическнми и процедурными интерфейсами, а также с физическим носителем, лежащим ниже физического уровня.
Уровень передачи данных О~ионная задача уровня передачи данных — быть способным передавать «сырые» данные физического уровня по надежной линии связи, свободной от необ- 64 Глава 1. Введение наруженных ошибок с точки зрения вышестоящего сетевого уровня. Уровень выполняет эту задачу при помощи разбиения входных данных на кадры, обычный размер которых колеблется от нескольких сотен до нескольких тысяч байт. Кадры данных передаются последовательно с обработкой кадров подтверждения, отсылаемых обратно получателем. Еще одна проблема, возникающая на уровне передачи данных (а также и на большей части более высоких уровней), — как нс допустить ситуации, когда быстрый передатчик заваливает приемник данными.
Должен быть предусмотрен некий механизм регуляции, который информировал бы передатчик о наличии свободного места в буфере приемника на текущий момент. Часто подобное управление объединяется с механизмом обработки ошибок. В широковещательных сетях существует еще одна проблема уровня передачи данных; как управлять доступом к совместно используемому каналу. Эта проблема разрешается введением специального дополнительного подуровня уровня передачи данных — подуровня доступа к носителю. Сетевой уровень Сетевой уровень занимается управлением операциями подсети. Важнейшим моментом здесь является определение маршрутов пересылки пакетов от источника к пункту назначения.
Маршруты могут быть жестко заданы в виде таблиц и редко меняться. Кроме того, они могут задаваться в начале каждого соединения, например терминальной сессии. Наконец, они могут быть в высокой степени динамическими, то есть вычисляемыми заново для каждого пакета с учетом текущей загруженности сети. Вели в подсети одновременно присутствует слишком большое количество пакетов, то они могут закрыть дорогу друг другу, образуя заторы в узких местах. Недопущение подобной закупорки также является задачей сетевого урбвня. В более общем смысле сетевой уровень занимается предоставлением определенного уровня сервиса (это касается задержек, времеви передачи, вопросов синхронизации). При путешествии пакета из одной сети в другую также может возникнуть ряд проблем.
Так, способ адресации, применяемый в одной сети, может отличаться от принятого в другой. Сеть может вообще отказаться принимать пакеты из-за того, что они слишком большого размера. Также могут различаться протоколы, и т. д. Именно сетевой уровень должен разрешать все эти проблемы, позволяя объединять разнородные сети. В широковещательных сетях проблема маршрутизации очень проста, поэтому в них сетевой уровень очень примитивный или вообще отсутствует. Транспортный уровень Основная функция транспортного уровня — принять данные от сеансового уровня, разбить их при необходимости на небольшие части, передать их сетевому уровню и гарантировать, что эти части в правильном виде прибудут по назначению. Кроме того, все зто должно быть сделано эффективно и таким образом, чтобы Эталонные модели а5 изолировать более высокие уровни от каких-либо изменений в аппаратной технологии.
Транспортный уровень также определяет тип сервиса, предоставляемого сеансовому уровню и, в конечном счете, пользователям сети. Наиболее популярной разновидностью транспортного соединения является зашишенный от ошибок канал между двумя узлами, поставляюший сообщения или байты в том порядке, в каком они были отправлены. Однако транспортный уровень может предоставлять и другие типы сервисов, например пересылку отдельных сообщений без гарантии соблюдения порядка их доставки или одновременную отправку сообщения различным адресатам по принципу широковещания. Тип сервиса определяется при установке соединения. (Строго говоря, полностью защищенный от ошибок канал создать невозможно.