- •Появление первых вычислительных машин
- •Программные мониторы — первые операционные системы
- •Мультипрограммирование
- •Многотерминальные системы — прообраз сети
- •Первые сети — глобальные
- •Наследие телефонных сетей
- •Появление стандартных технологий локальных сетей
- •Роль персональных компьютеров в эволюции компьютерных сетей
- •Эволюция сетевых операционных систем
- •Новые возможности пользователей локальных сетей
- •Хронологическая последовательность важнейших событий в истории развития компьютерных сетей
- •Лекция 3. Основные задачи построения сетей
- •Связь компьютера с периферийными устройствами
- •Связь двух компьютеров
- •Клиент, редиректор и сервер
- •Задача физической передачи данных по линиям связи
- •Адресация узлов сети
- •Определение информационных потоков
- •Определение маршрутов
- •Оповещение сети о выбранном маршруте
- •Продвижение — распознавание потоков и коммутация на каждом транзитном узле
- •Мультиплексирование и демультиплексирование
- •Разделяемая среда передачи данных
- •Коммутация каналов
- •Коммутация пакетов
- •Недостатки коммутации пакетов:
- •Коммутация сообщений
- •Постоянная и динамическая коммутация
- •Пропускная способность сетей с коммутацией пакетов
- •Ethernet — пример стандартной технологии коммутации пакетов
- •Основные достоинства технологии Ethernet
- •Дейтаграммная передача
- •Виртуальные каналы в сетях с коммутацией пакетов
- •Физическая структуризация сети
- •Логическая структуризация сети
- •Функциональные роли компьютеров в сети
- •Одноранговые сети
- •Сети с выделенным сервером
- •Лекция 10. Конвергенция компьютерных и телекоммуникационных сетей
- •Общая структура телекоммуникационной сети
- •Сеть доступа
- •Магистральная сеть
- •Информационные центры
- •Услуги, провайдеры услуг и сетевая инфраструктура
- •2. Услуги можно классифицировать в зависимости от того, предоставляется ли клиенту дополнительная информация:
- •Корпоративные клиенты
- •Инфраструктура
- •Территория покрытия
- •Корпоративные сети
- •Что дает предприятию использование сетей
- •Сети отделов
- •Сети кампусов
- •Сети масштаба предприятия
- •Лекция 11. Модель osi
- •Протокол. Интерфейс. Стек протоколов
- •Физический уровень
- •Канальный уровень
- •Функции канального уровня
- •Сетевой уровень
- •Транспортный уровень
- •Сеансовый уровень
- •Представительный уровень
- •Прикладной уровень
- •Сетезависимые и сетенезависимые уровни
- •Модульность и стандартизация
- •Источники стандартов
- •Стандарты Internet
- •Стандартные стеки коммуникационных протоколов
- •Стек osi
- •Стек tcp/ip
- •Стек ipx/spx
- •Стек NetBios/smb
- •Лекция 13. Требования к компьютерным сетям
- •Производительность
- •Надежность и безопасность
- •Расширяемость и масштабируемость
- •Прозрачность
- •Поддержка разных видов трафика
- •Управляемость
- •Совместимость
- •Качество обслуживания
Протокол. Интерфейс. Стек протоколов
Многоуровневое представление средств сетевого взаимодействия имеет свою специфику, связанную с тем, что в процессе обмена сообщениями участвуют две стороны, то есть в данном случае необходимо организовать согласованную работу двух "иерархий", работающих на разных компьютерах. Оба участника сетевого обмена должны принять множество соглашений. Например, они должны согласовать уровни и форму электрических сигналов, способ определения длины сообщений, договориться о методах контроля достоверности и т. п. Другими словами, соглашения должны быть приняты для всех уровней, начиная от самого низкого — уровня передачи битов — до самого высокого, реализующего сервис для пользователей сети.
На рис. 11.4 показана модель взаимодействия двух узлов. С каждой стороны средства взаимодействия представлены четырьмя уровнями. Процедура взаимодействия этих двух узлов может быть описана в виде набора правил взаимодействия каждой пары соответствующих уровней обеих участвующих сторон.
Рис. 11.4. Взаимодействие двух узлов.
Формализованные правила, определяющие последовательность и формат сообщений, которыми обмениваются сетевые компоненты, лежащие на одном уровне, но в разных узлах, называются протоколом.
Модули, реализующие протоколы соседних уровней и находящиеся в одном узле, также взаимодействуют друг с другом в соответствии с четко определенными правилами с помощью стандартизированных форматов сообщений. Эти правила принято называть интерфейсом.
Интерфейс — определяет последовательность и формат сообщений, которыми обмениваются сетевые компоненты, лежащие на соседних уровнях в одном узле. Интерфейс определяет набор услуг, предоставляемый данным уровнем соседнему уровню.
В сущности, протокол и интерфейс выражают одно и то же понятие, но традиционно в сетях за ними закреплены разные области действия: протоколы определяют правила взаимодействия модулей одного уровня в разных узлах, а интерфейсы — модулей соседних уровней в одном узле.
Средства каждого уровня должны отрабатывать, во-первых, собственный протокол, а во-вторых, интерфейсы с соседними уровнями.
Иерархически организованный набор протоколов, достаточный для организации взаимодействия узлов в сети, называется стеком коммуникационных протоколов.
Коммуникационные протоколы могут быть реализованы как программно, так и аппаратно. Протоколы нижних уровней часто реализуются комбинацией программных и аппаратных средств, а протоколы верхних уровней — как правило, чисто программными средствами.
Программный модуль, реализующий некоторый протокол, часто для краткости также называют протоколом. При этом соотношение между протоколом как формально определенной процедурой и протоколом — программным модулем, реализующим эту процедуру, — аналогично соотношению между алгоритмом решения некоторой задачи и программой, решающей эту задачу.
Понятно, что один и тот же алгоритм может быть запрограммирован с разной степенью эффективности. Точно так же и протокол может иметь несколько программных реализаций. Именно поэтому при сравнении протоколов следует учитывать не только логику их работы, но и качество программных решений. Более того, на эффективность взаимодействия устройств в сети влияет качество всей совокупности протоколов, составляющих стек, в частности, то, насколько рационально распределены функции между протоколами разных уровней и насколько хорошо определены интерфейсы между ними.
Протоколы реализуются не только компьютерами, но и другими сетевыми устройствами — концентраторами, мостами, коммутаторами, маршрутизаторами и т. д. Действительно, в общем случае связь компьютеров в сети осуществляется не напрямую, а через различные коммуникационные устройства. В зависимости от типа устройства в нем должны быть встроенные средства, реализующие тот или иной набор протоколов.
Чтобы еще раз пояснить понятия "протокол" и "интерфейс", рассмотрим пример, не имеющий отношения к вычислительным сетям, а именно, обсудим взаимодействие двух предприятий, А и B. Между этими предприятиями существуют многочисленные договоренности и соглашения, например о регулярных поставках продукции. В соответствии с договоренностью, начальник отдела продаж предприятия А регулярно в начале каждого месяца посылает официальное сообщение начальнику отдела закупок предприятия B о том, сколько какого товара может быть поставлено в этом месяце. В ответ на это сообщение начальник отдела закупок предприятия B посылает заявку установленного образца на нужное количество продукции. Возможно, подобная процедура включает дополнительные согласования; в любом случае, существует установленный порядок взаимодействия, который можно считать "протоколом уровня начальников". Начальники посылают свои сообщения и заявки через секретарей. Порядок взаимодействия начальника и секретаря соответствует понятию межуровневого интерфейса "начальник — секретарь". На предприятии А обмен документами между начальником и секретарем идет через специальную папку, а на предприятии B начальник общается с секретарем по факсу. Таким образом, интерфейсы "начальник — секретарь" на этих двух предприятиях отличаются.
После того как сообщения переданы секретарям, начальников не волнует, каким образом эти сообщения будут перемещаться дальше — по обычной почте или электронной, факсом или нарочным. Выбор способа передачи — это уровень компетенции секретарей, они могут решать этот вопрос, не уведомляя о том своих начальников, так как их протокол взаимодействия связан только с передачей поступающих сверху сообщений, и не касается содержания этих сообщений. На рис. 11.5 показано, что в качестве протокола взаимодействия "секретарь—секретарь" используется обмен письмами. При решении иных вопросов начальники могут взаимодействовать по другим правилам-протоколам, но это не повлияет на работу секретарей, для которых не важно, какие сообщения отправлять, а важно, чтобы они дошли до адресата. Итак, в данном случае мы имеем дело с двумя уровнями — уровнем начальников и уровнем секретарей, и каждый из них имеет собственный протокол, который может быть изменен независимо от протокола другого уровня. В этой независимости протоколов друг от друга и состоит преимущество многоуровневого подхода.
Рис. 11.5. Пример многоуровневого взаимодействия предприятий.
Модель OSI
Общая характеристика модели OSI
Из того, что протокол представляет собой соглашение, принятое двумя взаимодействующими объектами, в данном случае двумя работающими в сети компьютерами, совсем не следует, что он обязательно является стандартным. Но на практике при реализации сетей обычно используются стандартные протоколы. Это могут быть фирменные, национальные или международные стандарты.
В начале 80-х годов ряд международных организаций по стандартизации — ISO, ITU-T и некоторые другие — разработали модель, которая сыграла значительную роль в развитии сетей. Эта модель называется моделью ISO/OSI.
Модель взаимодействия открытых систем (Open System Interconnection, OSI) определяет различные уровни взаимодействия систем в сетях с коммутацией пакетов, дает им стандартные имена и указывает, какие функции должен выполнять каждый уровень.
Модель OSI была разработана на основании большого опыта, полученного при создании компьютерных сетей, в основном глобальных, в 70-е годы. Полное описание этой модели занимает более 1000 страниц текста.
В модели OSI (рис. 11.6) средства взаимодействия делятся на семь уровней: прикладной, представительный, сеансовый, транспортный, сетевой, канальный и физический. Каждый уровень имеет дело с определенным аспектом взаимодействия сетевых устройств.
Рис. 11.6. Модель взаимодействия открытых систем ISO/OSI.
Модель OSI описывает только системные средства взаимодействия, реализуемые операционной системой, системными утилитами и аппаратными средствами. Модель не включает средства взаимодействия приложений конечных пользователей. Собственные протоколы взаимодействия приложения реализуют, обращаясь к системным средствам. Поэтому необходимо различать уровень взаимодействия приложений и прикладной уровень.
Следует также иметь в виду, что приложение может взять на себя функции некоторых верхних уровней модели OSI. Например, некоторые СУБД имеют встроенные средства удаленного доступа к файлам. В этом случае приложение, выполняя доступ к удаленным ресурсам, не использует системную файловую службу; оно обходит верхние уровни модели OSI и обращается напрямую к системным средствам, ответственным за транспортировку сообщений по сети, которые располагаются на нижних уровнях модели OSI.
Итак, пусть приложение обращается с запросом к прикладному уровню, например к файловой службе. На основании этого запроса программное обеспечение прикладного уровня формирует сообщение стандартного формата. Обычное сообщение состоит из заголовка и поля данных. Заголовок содержит служебную информацию, которую необходимо передать через сеть прикладному уровню машины-адресата, чтобы сообщить ему, какую работу надо выполнить. В нашем случае заголовок, очевидно, должен содержать информацию о местонахождении файла и о типе операции, которую необходимо выполнить. Поле данных сообщения может быть пустым или содержать какие-либо данные, например те, которые необходимо записать в удаленный файл. Но для того чтобы доставить эту информацию по назначению, предстоит решить еще много задач, ответственность за которые несут нижележащие уровни.
После формирования сообщения прикладной уровень направляет его вниз по стеку представительному уровню. Протокол представительного уровня на основании информации, полученной из заголовка прикладного уровня, выполняет требуемые действия и добавляет к сообщению собственную служебную информацию — заголовок представительного уровня, в котором содержатся указания для протокола представительного уровня машины-адресата. Полученное в результате сообщение передается вниз сеансовому уровню, который в свою очередь добавляет свой заголовок, и т. д. (Некоторые протоколы помещают служебную информацию не только в начале сообщения в виде заголовка, но и в конце, в виде так называемого "концевика".) Наконец, сообщение достигает нижнего, физического уровня, который, собственно, и передает его по линиям связи машине-адресату. К этому моменту сообщение "обрастает" заголовками всех уровней (рис. 11.7).
Рис. 11.7. Вложенность сообщений различных уровней.
Когда сообщение по сети поступает на машину-адресат, оно принимается ее физическим уровнем и последовательно перемещается вверх с уровня на уровень. Каждый уровень анализирует и обрабатывает заголовок своего уровня, выполняя соответствующие данному уровню функции, а затем удаляет этот заголовок и передает сообщение вышележащему уровню.
Наряду с термином сообщение (message) существуют и другие термины, применяемые сетевыми специалистами для обозначения единиц данных в процедурах обмена. В стандартах ISO для обозначения единиц данных, с которыми имеют дело протоколы разных уровней, используется общее название протокольный блок данных (Protocol Data Unit, PDU). Для обозначения блоков данных определенных уровней часто используются специальные названия: кадр (frame), пакет (packet), дейтаграмма (datagram), сегмент (segment).
