4. Стандартизация компьютерных сетей. Понятия интерфейса, протокола и стека
По своей сущности компьютерная сети является совокупностью компьютеров и сетевого оборудования, соединенных каналами связи. Поскольку компьютеры и сетевое оборудование могут быть разных производителей, то возникает проблема их совместимости. Без принятия всеми производителя общепринятых правил построения оборудования создание компьютерной сети было бы невозможно. Поэтому разработка и создание компьютерных сетей может происходить только в рамках утвержденных стандартов.
В основу стандартизации компьютерных сетей положен принцип декомпозиции, т.е. разделения сложных задач на отдельные более простые подзадачи. Каждая подзадача имеет четко определенные функции и строго установленные связи между подзадачами. При более внимательном рассмотрении работы компьютера в сети можно выделить две основные подзадачи:
- взаимодействие программного обеспечения пользователя с физическим каналом связи (посредством сетевой карты) в пределах одного компьютера
- взаимодействие компьютера через канал связи с другим компьютером
Современное программное обеспечение компьютера имеет многоуровневую модульную структуру, т.е. программный код, написанный программистом и видимый на экране монитора (модуль верхнего уровня), проходит несколько уровней обработки, прежде чем превратится в электрический сигнал (модуль нижнего уровня), передаваемый в канал связи.
При взаимодействии компьютеров через канал связи оба компьютера должны выполнять ряд соглашений. Например, они должны согласовать величину и форму электрических сигналов, длину сообщений, методы контроля достоверности и т.д. Соглашения должны быть такими, чтобы они были поняты каждым модулем на соответствующе уровне каждого компьютера.
Суть работы многоуровневого протокола можно пояснить как «письмо в конверте». Каждый уровень протокола надписывает на «конверте» свою информацию. Сетям нужно только понимать «надпись» на «конверте», чтобы предать его в место назначения, а до содержания письма им дела нет.
На Рис.2 схематически показана модель взаимодействия двух компьютеров в сети. Для упрощения показаны четыре уровня модулей для каждого компьютера. Процедура взаимодействие каждого уровня этих компьютеров может быть описана в виде набора правил взаимодействия каждой пары модулей соответствующих уровней.
Формализованные правила, определяющие последовательность и формат сообщений, которыми обмениваются модули, лежащие на одном уровне, но в различных компьютерах называются протоколами.
1-й компьютер 2-й компьютер
Рис. 2 Взаимодействие двух компьютеров в сети
Модули, реализующие протоколы соседнего уровня и находящиеся в одном компьютере, также взаимодействуют друг с другом в соответствии с четко определенными правилами и с помощью стандартизованных форматов сообщений. Эти правила называются интерфейсом и определяют набор сервисов, предоставляемых данным уровнем соседнему уровню.
Другими словами, в сетевых технологиях традиционно принято, что протоколы определяют правила взаимодействия модулей одного уровня, но в разных компьютерах, а интерфейсы – соседних уровней в одном компьютере. Модули, таким образом, должны обрабатывать: во- первых свой собственный протокол, а во- вторых интерфейсы с соседними уровнями.
Иерархически организованный набор протоколов для взаимодействия компьютеров в сети называется стеком коммуникационных протоколов.
Коммуникационные протоколы могут быть реализованы как программно, так и аппаратно. Протоколы нижних уровней, как правило, реализуются комбинацией программно- аппаратных средств, а протоколы верхних уровней- чисто программными средствами.
Отметим, что протоколы каждого уровня обладают независимостью друг от друга, т.е. протокол любого уровня может быть изменен не оказывая при этом никакого влияния на протокол другого уровня. Главное, чтобы интерфейсы между уровнями обеспечивали необходимые связи между ними.
Принцип взаимодействия компьютеров в сети можно объяснить на примере сотрудничества двух фирм. Два генеральных менеджера каждой из фирм осуществляют сделки между собой на основании заключенных договоров и соглашений. Указанные взаимодействия являются «протоколом уровня генеральных менеджеров». На каждой из фирм у менеджеров есть секретари, причем каждый менеджер имеет свой метод и стиль работы с секретарем. Один, например, предпочитает устные указания, а второй дает только письменные распоряжения. Таким образом, каждая фирма имеет свой собственный интерфейс «главный менеджер — секретарь», что не мешает, однако, нормально работать генеральным менеджерам между собой. Секретари в свою очередь договорились обмениваться информацией с помощью факсов, реализуя протокол «секретарь — секретарь». В случае, если секретари перейдут на электронную почту, то генеральные менеджеры этого даже и не заметят- главное, чтобы секретари выполняли их распоряжения, т.е. должен безукоризненно работать интерфейс «менеджер — секретарь». С другой стороны, менеджеры могут заключить совершенно новый договор, т.е. изменить «протокол уровня генеральных менеджеров». Передача не старого, а нового договора на уровне секретарей пройдет для этих секретарей абсолютно не замеченной.
В рассмотренном примере мы определили два уровня протоколов – уровень генеральных менеджеров и уровень секретарей. Каждый из указанных уровней имеет свой собственный протокол, который может быть изменен независимо от протокола другого уровня. Такую независимость обеспечивает правильное функционирование интерфейсов «менеджер — секретарь».
Независимость протоколов каждого уровня друг от друга и взаимодействие самих уровней посредством интерфейсов является важнейшей предпосылкой для создания ряда стандартных протоколов для компьютерных сетей.
7.15 Стандартизация в компьютерных сетях
Цель стандартизации– максимально упорядочить и упростить процессы разработки и модернизации компьютерных сетей, обеспечить совместимость оборудования различных производителей. В стандартизации важную роль играет понятие открытой системы. Открытая система – это любая система (компьютер, сеть, ОС, программный пакет и так далее), построенная в соответствии с общедоступными спецификациями стандартов, принятых в результате публичного обсуждения всеми заинтересованными сторонами. Спецификация – это формальное описание программных и аппаратных компонентов (принципы их функционирования, взаимодействия с другими компонентами, а также набор их характеристик и ограничений). Открытые спецификации – это общедоступные спецификации, опубликованные и соответствующие стандартам. Такими спецификациями, например, являются ОС Unix, модель OSI, сеть Internet.
В начале 1980-х годов ряд международных организаций по стандартизации разработал модель, сыгравшую большую роль в развитии сетей — модель OSI. Эта модель (Open SystemInterconnection, OSI) стандартизирует взаимодействие открытых систем, определяет7 уровней такоговзаимодействия,дает им стандартные имена и указывает, какие функции должен выполнять каждый уровень.Она никогда не была реализована в полном объеме, так каа явилась обобщением всего многолетнего опыта использования сетей и является своеобразным эталоном. В реальных сетевых протоколах различные уровни модельи OSI объединены.В модели OSI (рис.7.10) средства взаимодействия делятся на семь уровней: прикладной, представительный, сеансовый, транспортный, сетевой, канальный и физический. Каждый уровень имеет дело с одним определенным аспектом взаимодействия сетевых устройств.
Рис.7.10. Модель взаимодействия открытых систем ISO/OSI
Идеологической основой стандартизации в компьютерных сетях стал многоуровневый подход к разработке средств сетевого взаимодействия. Для организации взаимодействия сетевых компонентов двух узлов необходимы следующие средства:
Протокол – это формальные правила, которые определяют формат ипоследовательность сообщений, которыми обмениваются сетевые компоненты одного уровня, но в разных узлах.
Интерфейс – это формальные правила, которые определяют взаимодействие сетевыхкомпонентов соседних уровней одного узла.
Пусть, например, приложение обращается с запросом к файловой службе (прикладному уровню, реализованному в ОС) с целью записи файла на удаленном компьютере. Прикладной уровень формирует сообщение, состоящее из пересылаемых данных и заголовка со служебной информацией для прикладного уровня компьютера-адресата (тип операции, место записи и так далее). Затем прикладной уровень передает сформированноесообщение нижележащему уровню.Каждый последующий уровень выполняет над полученным сообщением действия, которые указаны в заголовке предыдущего уровня, и добавляет к сообщению свой заголовок. В нем содержатся указания для протокола аналогичного уровня на компьютере-адресате, и для протокола нижележащего уровня на локальном компьютере.
На компьютере-адресате каждый уровень выполняет действия, указанные в соответствующем заголовке полученного сообщения, удаляет этот заголовок и направляет сообщение протоколу более высокого уровня.
Таким образом, сообщение имеет следующий вид:
Рис. 1.11. Структура сообщения
Иерархический набор согласованных между собой протоколов, достаточный для организации взаимодействия узлов сети (на всех уровнях), называется стеком коммуникационных протоколов. Наиболее известные стек протоколов – TCP/IP (на этом стеке построен Internet).
Коммуникационные протоколы могут быть реализованы как программно, так и аппаратно. Протоколы нижних уровней часто реализуются комбинацией программных и аппаратных средств, а протоколы верхних уровней — как правило, чисто программными средствами.
Чтобы еще раз пояснить понятия «протокол» и «интерфейс», рассмотрим пример, не имеющий отношения к компьютерным сетям, а именно обсудим взаимодействие двух предприятий А и В; связанных между собой деловым сотрудничеством. Между предприятиями существуют многочисленные договоренности и соглашения, такие, например, как регулярные поставки продукции одного предприятия другому. В соответствии с этой договоренностью начальник отдела продаж предприятия А регулярно в начале каждого месяца посылает официальное сообщение начальнику отдела закупок предприятия В о том, сколько и какого товара может быть поставлено в этом месяце. Вответ на это сообщение начальник отдела закупок предприятия В посылаетв ответ заявкуустановленного образца на требуемое количество продукции. Возможно, процедура взаимодействия этих начальников включает дополнительные согласования, в любом случае существует установленный порядок взаимодействия, который можно считать «протоколом уровня начальников». Начальники посылают свои сообщения и заявки через своих секретарей.
После того как сообщения переданы секретарям, начальников не волнует, каким образом эти сообщения будут перемещаться дальше — обычной или электронной почтой,факсом или нарочным. Выбор способа передачи — это уровень компетенции секретарей, они могут решать этот вопрос, не уведомляя об этом своих начальников, так как их протокол взаимодействия связан только с передачей сообщений, поступающих сверху, и не касается содержания этих сообщений.
Итак, в данном случае мы имеем дело с двумя уровнями — уровнем начальников и уровнем секретарей, и каждый из них имеет собственный протокол, который может быть изменен независимо от протокола другого уровня. Эта независимость протоколов друг от друга и делает привлекательным многоуровневый подход.
13.8. Протоколом передачі даних в комп’ютерних мережах називається послідовність дій, які необхідно виконати для з’єднання двох комп’ютерів і передачі пакету інформації.
Серед локальних мереж найбільш розповсюдженою є мережа Ethernet з шинною топологією та мережа Token Ring з кільцевою топологією.
В мережі Ethernet кожен PC перед початком передачі даних з’ясовує, чи вільний канал зв’язку, чи зайнятий. Якщо канал вільний, PC починає передачу, що здійснюється пакетами, упакованими в кадри. Можуть виникати колізії, пов’язані з одночасними зверненнями різних PC до каналу передачі. В цьому випадку робоча станція затримує передачу на певний час. Колізії призводять до зменшення швидкодії мережі, але це суттєво проявляється тільки при порівняно великій кількості PC (80-100шт.).
Для мережі Token Ring фірма IBM розробила метод доступу типу “міркірне кільце”. Маркер – це певна послідовність бітів. Він може лише бути вільним, або зайнятим. Маркер вільно циркулює по кільцю передачі даних. Станція, що виходить на зв’язок, захоплює маркер, змінює його стан на “зайнятий” і добавляє до нього кадр інформації з адресою одержувача. Одержувач зчитує інформацію і пропускає маркер до станції-відправника, яка знімає кадр і переводить маркер знову у стан “вільний”.