Э. Таненбаум - Компьютерные сети. (4-е издание) (PDF) (1130118), страница 14
Текст из файла (страница 14)
Таким образом, служба и протокол оказываются практически независимыми.Другими словами, службы — это нечто связанное с межуровневыми интерфейсами, тогда как протоколы связаны с пакетами, передающимися сущностямиодного уровня, расположенными на разных машинах. Это показано на рис. 1.15.Важно не путать эти два понятия.Стоит провести аналогию с языками программирования. Службу можно уподобить абстрактному типу данных или объекту в объектно-ориентированных языках программирования. Он определяет операции, которые могут выполняться собъектом, но не описывает, как реализованы эти операции. В этом случае протокол относится к реализации службы и, таким образом, невидим для пользователей службы.NataHaus.RUУровень к + 1Уровень к+ 1Т Сервис, предоставляемый уровнем кУровень к IIУровень к - 1П р о т о к о лУровень кТУровень к - 1Рис.
1.15. Связь между службой и протоколомВо многих старых системах служба не отделялась от протокола. В результатетипичный уровень мог содержать примитив службы SEND PACKET, в которомпользователь должен был указать ссылку на полностью собранный пакет. Этоозначало, что любые изменения протокола тут же становились видимыми дляпользователей. Большинство разработчиков сетей сегодня считают подобный подход серьезнейшей ошибкой.62Глава 1.
ВведениеЭталонные моделиЭталонные моделиНазваниеединицы обменаУровеньОбсудив многоуровневые сети в общих чертах, пора рассмотреть несколько примеров. В следующих двух разделах описываются два важных архитектурных типа — эталонные модели OSI и TCP/IP. Несмотря на то что протоколы, связанные сэталонной моделью OSI, используются сейчас очень редко, сама модель до сихпор весьма актуальна, а свойства ее уровней, которые будут обсуждаться в этомразделе, очень важны. В эталонной модели TCP/IP все наоборот — сама модельсейчас почти не используется, а ее протоколы являются едва ли не самыми распространенными. Исходя из этого, мы обсудим подробности, касающиеся обеих моделей. К тому же иногда приходится больше узнавать из поражений, чем из побед.75.
Количество уровней должно быть достаточно большим, чтобы различные функции не объединялись в одном уровне без необходимости, но не слишком высоким, чтобы архитектура не становилась громоздкой.Далее мы обсудим каждый уровень модели, начиная с самого нижнего. Обратите внимание: модель OSI не является сетевой архитектурой, поскольку она неописывает службы и протоколы, используемые на каждом уровне. Она простоопределяет, что должен делать каждый уровень. Тем не менее ISO также разработала стандарты для каждого уровня, хотя эти стандарты не входят в саму эталонную модель. Каждый из них был опубликован как отдельный международный стандарт.i к1гСеансовый протоколСеансовый Ч--СеансовыйiкггкгСетевойТранспортный протоколч- -г21Ч--• Транспортный TPDUГраницы связи подсетиВнутренний протокол подсетиf•СетевойчЛI>кПередачиданныхiк>СетевойЧ-Физический ч - •> •ПередачиданныхЧ- - - >Физический ч — • ФизическийI МаршрутизаторСетевойПакетiкУ>ПередачиданныхгГХост АSPDU1кТранспортный ч -NataHaus.RU2.
Каждый уровень должен выполнять строго определенную функцию.3. Выбор функций для каждого уровня должен осуществляться с учетом создания стандартизированных международных протоколов.4. Границы между уровнями должны выбираться так, чтобы поток данных между интерфейсами был минимальным.Уровеньпредставленияк3APDUгПротокол уровня представленияИнтерфейс^ г4Эталонная модель OSI (за исключением физической среды) показана на рис. 1.16.Эта модель основана на разработке Международной организации по стандартизации (International Organization for Standardization, ISO) и является первым шагом к международной стандартизации протоколов, используемых на различныхуровнях (Day и Zimmerman, 1983).
Затем она была пересмотрена в 1995 году(Day, 1995). Называется эта структура эталонной моделью взаимодействия открытых систем ISO (ISO OSI (Open System Interconnection) Reference Model),поскольку она связывает открытые системы, то есть системы, открытые для связи с другими системами. Для краткости мы будем называть эту модель просто«модель OSI».Модель OSI имеет семь уровней.
Появление именно такой структуры былообусловлено следующими соображениями.1. Уровень должен создаваться по мере необходимости отдельного уровня абстракции.— • Прикладнойi кУровень6 представлениялЭталонная модель OSIПрикладной протоколПрикладной Ч - -Интерфейс^ Y563МаршрутизаторгПередачиданныхtк\г- - • ФизическийКадрБитХост Вост-маршрутизатор сетевого уровняост-маршрутизатор уровня передачи данньРис. 1.16. Эталонная модель OSIФизический уровеньФизический уровень занимается реальной передачей необработанных битов поканалу связи. При разработке сети необходимо убедиться, что когда одна сторонапередает единицу, то принимающая сторона получает также единицу, а не ноль.Принципиальными вопросами здесь являются следующие: какое напряжение должно использоваться для отображения единицы, а какое — для нуля; сколько микросекунд длится бит; может ли передача производиться одновременно в двух направлениях; как устанавливается начальная связь и как она прекращается, когдаобе стороны закончили свои задачи; из какого количества проводов должен состоять кабель и какова функция каждого провода.
Вопросы разработки в основном связаны с механическими, электрическими и процедурными интерфейсами,а также с физическим носителем, лежащим ниже физического уровня.Уровень передачи данныхОсновная задача уровня передачи данных — быть способным передавать «сырые» данные физического уровня по надежной линии связи, свободной от необ-64Глава 1. ВведениеЭталонные моделинаруженных ошибок с точки зрения вышестоящего сетевого уровня.
Уровень выполняет эту задачу при помощи разбиения входных данных на кадры, обычныйразмер которых колеблется от нескольких сотен до нескольких тысяч байт. Кадры данных передаются последовательно с обработкой кадров подтверждения,отсылаемых обратно получателем.Еще одна проблема, возникающая на уровне передачи данных (а также и набольшей части более высоких уровней), — как не допустить ситуации, когда быстрый передатчик заваливает приемник данными. Должен быть предусмотрен некий механизм регуляции, который информировал бы передатчик о наличии свободного места в буфере приемника на текущий момент.
Часто подобное управление объединяется с механизмом обработки ошибок.В широковещательных сетях существует еще одна проблема уровня передачиданных: как управлять доступом к совместно используемому каналу. Эта проблема разрешается введением специального дополнительного подуровня уровняпередачи данных — подуровня доступа к носителю.Сетевой уровеньСетевой уровень занимается управлением операциями подсети. Важнейшим моментом здесь является определение маршрутов пересылки пакетов от источникак пункту назначения. Маршруты могут быть жестко заданы в виде таблиц и редко меняться. Кроме того, они могут задаваться в начале каждого соединения, например терминальной сессии. Наконец, они могут быть в высокой степени динамическими, то есть вычисляемыми заново для каждого пакета с учетом текущейзагруженности сети.Если в подсети одновременно присутствует слишком большое количество пакетов, то они могут закрыть дорогу друг другу, образуя заторы в узких местах.Недопущение подобной закупорки также является задачей сетевого уровня.
В более общем смысле сетевой уровень занимается предоставлением определенногоуровня сервиса (это касается задержек, времени передачи, вопросов синхронизации).При путешествии пакета из одной сети в другую также может возникнуть рядпроблем. Так, способ адресации, применяемый в одной сети, может отличатьсяот принятого в другой.
Сеть может вообще отказаться принимать пакеты из-затого, что они слишком большого размера. Также могут различаться протоколы,и т. д. Именно сетевой уровень должен разрешать все эти проблемы, позволяяобъединять разнородные сети.В широковещательных сетях проблема маршрутизации очень проста, поэтому в них сетевой уровень очень примитивный или вообще отсутствует.65изолировать более высокие уровни от каких-либо изменений в аппаратной технологии.Транспортный уровень также определяет тип сервиса, предоставляемого сеансовому уровню и, в конечном счете, пользователям сети.
Наиболее популярнойразновидностью транспортного соединения является защищенный от ошибок канал между двумя узлами, поставляющий сообщения или байты в том порядке,в каком они были отправлены. Однако транспортный уровень может предоставлять и другие типы сервисов, например пересылку отдельных сообщений безгарантии соблюдения порядка их доставки или одновременную отправку сообщения различным адресатам по принципу широковещания. Тип сервиса определяется при установке соединения.
(Строго говоря, полностью защищенный отошибок канал создать невозможно. Говорят лишь о таком канале, уровень ошибок в котором достаточно мал, чтобы ими можно было пренебречь на практике.)Транспортный уровень является настоящим сквозным уровнем, то есть доставляющим сообщения от источника адресату. Другими словами, программа намашине-источнике поддерживает связь с подобной программой на другой машине при помощи заголовков сообщений и управляющих сообщений.
На более низких уровнях для поддержки этого соединения устанавливаются соединения между всеми соседними машинами, через которые проходит маршрут сообщений.Различие между уровнями с 1-го по 3-й, действующими по принципу звеньев цепи, и уровнями с 4-го по 7-й, являющимися сквозными, проиллюстрировано нарис. 1.16.NataHaus.RUТранспортный уровеньОсновная функция транспортного уровня — принять данные от сеансового уровня, разбить их при необходимости на небольшие части, передать их сетевому уровню и гарантировать, что эти части в правильном виде прибудут по назначению.Кроме того, все это должно быть сделано эффективно и таким образом, чтобыСеансовый уровеньСеансовый уровень позволяет пользователям различных компьютеров устанавливать сеансы связи друг с другом. При этом предоставляются различные типысервисов, среди которых управление диалогом (отслеживание очередности передачи данных), управление маркерами (предотвращение одновременного выполнения критичной операции несколькими системами) и синхронизация (установкаслужебных меток внутри длинных сообщений, позволяющих после устраненияошибки продолжить передачу с того места, на котором она оборвалась).Уровень представленияВ отличие от более низких уровней, задача которых — достоверная передача битов и байтов, уровень представления занимается по большей части синтаксисоми семантикой передаваемой информации.
Чтобы было возможно общение компьютеров с различными представлениями данных, необходимо преобразовывать форматы данных друг в друга, передавая их по сети в неком стандартизированном виде. Уровень представления занимается этими преобразованиями, предоставляявозможность определения и изменения структур данных более высокого уровня(например, записей баз данных).Прикладной уровеньПрикладной уровень содержит набор популярных протоколов, необходимыхпользователям. Одним из наиболее распространенных является протокол пере-66Эталонные моделиГлава 1. Введениедачи гипертекста HTTP (HyperText Transfer Protocol), который составляет основу технологии Всемирной Паутины.
Когда браузер запрашивает веб-страницу, онпередает ее имя (адрес) и рассчитывает на то, что сервер будет использовать HTTP.Сервер в ответ отсылает страницу. Другие прикладные протоколы используютсядля передачи файлов, электронной почты, сетевых рассылок.Эталонная модель TCP/IPРассмотрим теперь эталонную модель, использовавшуюся в компьютерной сетиARPANET, которая является бабушкой нынешних сетей, а также в ее наследнице, всемирной сети Интернет. Хотя краткую историю сети ARPANET мы рассмотрим чуть позднее, некоторые ключевые моменты ее следует отметить прямосейчас.