Барасюк Я. М
![]()
|
Ethernet – приклад стандартного вирішення мережних проблем. Розглянемо, яким чином описані вище загальні підходи до розв’язання найважливіших проблем побудови мереж втілені в найпопулярнішій на даний час мережній технології – Ethernet. Мережна технологія – це узгоджений набір стандартних протоколів та програмно-апаратних засобів,що їх реалізують, достатній для побудови обчислювальної мережі [Error: Reference source not found]. Термін „достатній“ підкреслює ту обставину, що цей набір представляє собою мінімальний набір засобів, за допомогою якого можна побудувати працездатну мережу. Можливо, цю мережу можна покращити, наприклад, за рахунок застосування протоколу IP, а також спеціальних комунікаційних пристроїв – маршрутизаторів. Покращена мережа буде, швидше за все, більш надійною та швидкодіючою, але за рахунок надбудов над засобами технології Ethernet, яка склала базис мережі. Протоколи, на основі яких будується мережа певної технології, спеціально розроблялися для спільної роботи, у зв’язку з чим від розробника мережі не вимагається додаткових зусиль з організації їх взаємодії. Іноді мережні технології називають базовими технологіями, маючи на увазі те, що на їх основі будується база будь-якої мережі. Прикладами базових мережних технологій можуть служити поряд з Ethernet такі відомі технології локальних мереж як Token Ring та FDDI, або технології територіальних мереж X.25 та frame relay [Error: Reference source not found]. Стандарт Ethernet було прийнято в 1980 році. Основний принцип, покладений в основу Ethernet, – випадковий метод доступу до спільної мережі передачі даних. В якості такого середовища може використовуватися товстий чи тонкий коаксіальний кабель, вита пара, оптоволокно чи радіохвилі (зазначимо, що першою мережею, побудованою на принципі випадкового доступу до розподіленої мережі, була радіомережа Aloha Гавайського університету). В стандарті Ethernet строго зафіксована топологія електричних зв’язків – комп’ютери підключаються до спільного середовища у відповідності до типової структури „спільна шина“. За допомогою поділюваної в часі шини будь-які два комп’ютери можуть обмінюватися даними. Управління доступом до лінії зв’язку здійснюється спеціальними контролерами – мережними адаптерами Ethernet. Кожний комп’ютер, а точніше, кожний мережний адаптер, має унікальну адресу. Передача даних здійснюється зі швидкістю 10 Мбіт/с, що є пропускною здатністю мережі Ethernet (більшу швидкість мають модифікації Ethernet – Fast Ethernet, Gigabit Ethernet та ін.). Комп’ютер в мережі Ethernet може передавати дані по мережі тільки тоді, коли ніякий інший комп’ютер в даний час не здійснює обмін. Тому важливою частиною технології Ethernet є процедура визначення доступності мережі. Після того як комп’ютер впевнився, що мережа вільна, він починає передачу, „захоплюючи“ при цьому середовище. Час монопольного використання середовища одним вузлом обмежується часом передачі одного кадру. Кадр – це одиниця даних, якими обмінюються комп’ютери в мережі Ethernet. Кадр має фіксований формат і крім самих даних містить різну службову інформацію, наприклад, адреси отримувача та відправника. Іноді може виникати ситуація, коли одночасно два чи більше комп’ютерів вирішують, що мережа вільна, і починають передавати інформацію. Така ситуація називається колізією. В стандарті Ethernet передбачено алгоритм виявлення та коректної обробки колізій. Ймовірність виявлення колізій залежить від інтенсивності мережного трафіку. Після виявлення колізії мережні адаптери, які пробували передати свої кадри, зупиняють передачу і після паузи випадкової довжини роблять спробу знову отримати доступ до мережі і передати той кадр, що викликав колізію. Головною перевагою мереж Ethernet є їх дешевизна. Крім того, в мережах Ethernet реалізовані досить прості алгоритми доступу до середовища, адресації та передачі даних. Простота логіки роботи мережі веде до спрощення, та, відповідно, здешевлення мережних адаптерів та їх драйверів. З тієї ж причини адаптери мережі Ethernet є дуже надійними. Іще однією позитивною властовистю Ethernet є легкість підключення нових вузлів. Структуризація, як засіб побудови великих мереж. В мережах з невеликою (10-30) кількістю комп’ютерів частіше за все використовується одна з типових фізичних топологій – шина, кільце, зірка чи повнозв’язна мережа. Усі перелічені топології відносяться до однорангових мереж – усі комп’ютери в такій мережі мають однакові права у відношенні доступу до каналу передачі інформації (за виключенням центрального комп’ютера у схемі „зірка“). Така однорідність структури спрощує нарощування кількості комп’ютерів та полегшує обслуговування і експлуатацію мережі. Однак при побудові великих мереж однорідна структура зв’язків з переваги перетворюється в недолік. В таких мережах використання типових структур породжує різні обмеження, найважливішими з яких є:
Наприклад, технологія Ethernet на тонкому коаксіальному кабелі (10BASE2, IEEE 802.3a – «Тонкий Ethernet») дозволяє використовувати кабель довжиною не більше 185 м, до якого можна підключити не більше 30 комп’ютерів [Error: Reference source not found]. Для зняття таких обмежень використовуються спеціальні методи структуризації мережі та спеціальне обладнання – повторювачі, концентратори, мости, комутатори, маршрутизатори. Таке обладнання часто називають комунікаційним, у зв’язку з тим, що з його допомогою окремі сегменти мережі взаємодіють між собою. Фізична структуризація мережі. Найпростіший із комунікаційних пристроїв – повторювач (repeator) – використовується для фізичного з’єднання різних сегментів кабелю локальної мережі. Повторювач передає сигнали, що проходять з одного сегменту мережі в інші її сегменти. Повторювач дозволяє обійти обмеження на довжину ліній зв’язку за рахунок покращення якості переданого сигналу. Повторювач, який має кілька портів і з’єднує кілька фізичних сегментів, часто називають концентратором (concentrator) або хабом (hub). Концентратори характерні практично для всіх базових технологій локальних мереж – Ethernet, ArcNet, Token Ring, FDDI, Fast Ethernet, Gigabit Ethernet, 100VG-AnyLAN. Слід зазначити, що в роботі концентраторів будь-яких технологій багато спільного – вони повторюють сигнали, що прийшли з одного із своїх портів, на інших своїх портах. Різниця полягає в тому, на яких саме портах повторюються вхідні сигнали. Так, концентратор Ethernet повторює вхідні сигнали на всіх своїх портах крім того, з якого сигнали поступають, а концентратор Token Ring повторює вхідні сигнали, що поступили з деякого порта, тільки на одному порті – на тому, до якого підключено наступний в кільці комп’ютер. Нагадаємо, що під фізичною топологією розуміється конфігурація зв’язків, утворених окремими частинами кабелю, а під логічною – конфігурація інформаційних потоків між комп’ютерами мережі. Причому логічна і фізична топологія співпадають не завжди. Типовим прикладом є випадок, коли мережа, яка організована з використанням концентратора, має фізичну топологію „зірка“, тоді як при цьому використовується логічна топологія Ethernet – оскільки концентратор повторює дані, що прийшли з будь-якого порта, на усіх інших портах, то вони з’являються одночасно на всіх фізичних сегментах мережі, як у мережі з фізичною топологією „спільна шина“. Фізична структуризація мережі з допомогою концентраторів корисна не тільки для збільшення відстані між вузлами мережі, а й для підвищення її надійності. Наприклад, якщо якийсь комп’ютер мережі Ethernet з фізичною „спільною шиною“ із-за збою починає неправильно передавати дані по спільному кабелю, то вся мережа виходить з ладу. В мережі ж Ethernet, побудованій з використанням концентратора, ця проблема може бути вирішена автоматично – концентратор відключає свій порт, якщо виявляє, що приєднаний до нього вузол занадто довго монопольно займає мережу. Концентратор може блокувати працюючий некоректно вузол і в інших випадках, виконуючи роль деякого управляючого вузла. Логічна структуризація мережі. Фізична структуризація мережі корисна в багатьох відношеннях, однак в ряді випадків неможливо обійтися без логічної структуризації мережі. Найважливішою проблемою, яку неможливо вирішити шляхом фізичної структуризації, залишається проблема перерозподілу трафіку між різними фізичними сегментами мережі. В великій мережі природно виникає неоднорідність інформаційних потоків: мережа складається з багатьох підмереж робочих груп, відділів, філій підприємства та інших структурних утворень. Часто найінтенсивніший обмін даними спостерігається між комп’ютерами, що належать до однієї підмережі, і тільки невеликий відсоток звернень відбувається до ресурсів комп’ютерів, що знаходяться за межами локальних груп. Хоча останнім часом характер навантаження мережі часто змінюється на протилежний у зв’язку з впровадженням технологій intranet та використанням корпоративних баз та сховищ даних, які активно використовуються усіма співробітниками підприємства. Але, незалежно від того, в якій пропорції розподіляються зовнішній та внутрішній трафік, для підвищення ефективності роботи мережі неоднорідність інформаційних потоків необхідно враховувати. Мережа з типовою топологією (шина, кільце, зірка), в якій усі фізичні сегменти розглядаються в якості одного розподіленого середовища, виявляється неадекватною структурі інформаційних потоків у великій мережі. Наприклад, в мережі Ethernet взаємодія будь-якої пари комп’ютерів займає її на весь час обміну, у зв’язку з чим комп’ютери одного відділу змушені чекати, коли закінчить обмін пара комп’ютерів іншого відділу, при тому, що необхідність у зв’язку між комп’ютерами двох різних відділів виникає значно рідше та вимагає меншої пропускної здатності. Розв’язання проблеми полягає у відмові від єдиної однорідної спільної мережі, в якій кадри, що передаються в мережі виходили б за межі робочої групи тільки в тому випадку, якщо вони адресовані якомусь комп’ютеру іншої робочої групи. З іншого боку, в мережу робочої групи повинні потрапляти тільки ті кадри, що адресовані її комп’ютерам. При такій організації роботи мережі її продуктивність значно збільшиться, оскільки комп’ютери однієї робочої групи не будуть простоювати в той час, коли даними обмінюються комп’ютери інших робочих груп. Для логічної структуризації мережі використовуються такі комунікаційні пристрої, як мости, комутатори, маршрутизатори та шлюзи. Міст (bridge) ділить спільне середовище передачі мережі на частини (які часто називають логічними сегментами), передаючи інформацію з одного сегменту в інший тільки в тому випадку, якщо така передача є дійсно необхідною – якщо адреса комп’ютера належить іншій підмережі. Тим самим міст ізолює трафік однієї підмережі від трафіку іншої, підвищуючи загальну продуктивність передачі даних по мережі. Локалізація трафіку не тільки економить пропускну здатність, а й зменшує можливість несанкціонованого доступу до даних, оскільки кадри не виходять за межі свого сегменту і їх складніше перехопити зловмиснику. Мости використовують для локалізації трафіку апаратні адреси комп’ютерів. Це ускладнює розпізнавання належності того чи іншого комп’ютера до певного логічного сегменту мережі – сама адреса не містить ніякої інформації з цього приводу. Тому міст досить спрощено представляє поділ мережі на сегменти – він запам’ятовує через який порт на нього надійшов кадр даних від кожного комп’ютера мережі, і надалі передає кадри, призначені для цього комп’ютера, на цей порт. Внаслідок цього застосування мостів приводить до значних обмежень на конфігурацію мереж – сегменти повинні бути з’єднані так, щоб у мережі не утворювалися замкнуті контури. Комутатор (switch, switchinghub) за принципом обробки кадрів нічим не відрізняється від моста. Основною його відмінністю від моста є те, що він є свого роду комунікаційним мультипроцесором, оскільки кожний його порт обладнаний спеціалізованим процесором, який обробляє кадри за алгоритмом моста незалежно від процесів інших портів. За рахунок цього загальна продуктивність комутатора зазвичай є набагато вище продуктивності традиційного моста, що має один процесорний блок. Можна сказати, що комутатори – це мости нового покоління, які обробляють кадри в паралельному режимі. Обмеження, пов’язані із застосуванням мостів та комутаторів привели до появи іще одного типу обладнання – маршрутизаторів (router). Маршрутизатори надійніше та ефективніше ніж мости ізолюють трафік окремих частин мережі один від одного. Маршрутизатори утворюють логічні сегменти засобами явної адресації, оскільки використовують не плоскі апаратні, а складові числові адреси. Ці адреси містять поле номера мережі, завдяки чому усі комп’ютери, для яких це поле є однаковим, належать до одного сегменту, який в даному випадку називається підмережею (subnet). Крім локалізації трафіку маршрутизатори виконують ще багато інших корисних функцій. Так, маршрутизатори можуть працювати в мережі із замкнутими контурами здійснюючи при цьому вибір найоптимальнішого маршруту з кількох можливих. Іншою важливою функцією маршрутизаторів є їх здатність зв’язувати в єдину мережу підмережі, побудовані з використанням різних мережних технологій, наприклад Ethernet та X.25. Крім описаних пристроїв окремі частини мережі може з’єднувати шлюз (gateway). Зазвичай основною причиною, по якій в мережі використовують шлюз, є необхідність об’єднати мережі з різними типами системного та прикладного програмного забезпечення, а не бажання локалізувати трафік, хоча шлюз може виконувати і таку задачу. Мережні служби. Для кінцевого користувача мережа – це не комп’ютери, кабелі та концентратори і навіть не інформаційні потоки, для нього мережа – це, в першу чергу, той набір мережних служб, за допомогою яких він отримує можливість переглянути перелік наявних в мережі комп’ютерів, прочитати віддалений файл, роздрукувати документ на мережному принтері тощо. Крім власне обміну даними, мережні служби повинні вирішувати і інші, більш специфічні задачі, наприклад, задачі, що породжуються розподіленою обробкою даних. До таких задач, наприклад, відноситься забезпечення непротирічивості кількох копій даних, розміщених на різних комп’ютерах (служба реплікації), чи організація виконання однієї задачі паралельно на кількох комп’ютерах мережі (служба виклику віддалених процедур). Серед мережних служб можна виділити адміністративні, які в основному орієнтовані на адміністратора і служать для організації правильної роботи мережі в цілому. Служба адміністрування ідентифікаційних записів про користувачів, яка дозволяє адміністратору вести спільну базу даних про користувачів мережі, система моніторингу мережі, яка дозволяє аналізувати мережний трафік, служба безпеки, до функцій якої може входити, наприклад, процедура логічного входу з наступною перевіркою паролю, – все це приклади адміністративних служб. Реалізація мережних служб здійснюється програмними засобами. Основні служби – файлова служба та служба друку – зазвичай надаються мережною операційною системою, а допоміжні, наприклад служба баз даних, – системними мережними програмами чи утилітами, що працюють в тісному контакті з мережною операційною системою. Взагалі кажучи, розподіл служб між ОС та утилітами є досить умовним і змінюється в конкретних реалізаціях операційних систем. При розробці мережних служб потрібно вирішувати проблеми, які властиві будь-яким розподіленим програмам: визначення протоколу взаємодії між клієнтською та серверною частинами, розподіл функцій між ними, вибір схеми адресації програм тощо. Одним з найважливіших показників якості мережної служби є її зручність. Для одного і того ж ресурсу може бути розроблено кілька служб, що по різному вирішують одну і ту ж задачу. Відмінності можуть полягати в продуктивності чи в рівні зручності послуг, що надаються. Наприклад, файлова система може базуватися на використанні текстової команди передачі файлу, для чого користувачу потрібно пам’ятати і вводити цю команду, а також пам’ятати і вводити ім’я файлу. Та ж файлова служба може бути реалізована і так, що користувач монтує віддалену файлову систему до локального каталогу, а далі звертається до віддалених файлів як до своїх власних, що набагато зручніше. Якість служби також залежить від якості користувацького інтерфейсу – інтуїтивної зрозумілості, наглядності, раціональності. При визначенні міри зручності мережного ресурсу часто використовують термін „прозорість“. Прозорий доступ– це такий доступ, при якому користувач не помічає, де розміщено його ресурс – на його комп’ютері чи на віддаленому комп’ютері. Після того, як він змонтував віддалену файлову систему в своє дерево каталогів, доступ до віддалених файлів стає для нього повністю прозорим. Сама операція монтування також може мати різну ступінь прозорості – в мережах з меншою прозорістю користувач повинен знати та задавати в команді ім’я комп’ютера, на якому зберігається віддалена файлова система; в мережах з більшою ступінню прозорості відповідний програмний компонент мережі здійснює пошук доступних томів та файлів незалежно від місць їх зберігання, а потім надає їх користувачу в зручному для нього вигляді, наприклад у вигляді списку чи набору піктограм. Поняття „відкрита система“ та проблеми стандартизації. Універсальна теза про користь стандартизації, яка справедлива для всіх галузей, в комп’ютерних мережах набуває особливого значення. Суть мережі – поєднання різного обладнання, у зв’язку з чим проблема сумісності є однією з найгостріших. В комп’ютерних мережах ідеологічною основою стандартизації є багаторівневий підхід до розробки засобів мережної взаємодії. Саме на основі цього підходу була розроблена стандартна семирівнева модель взаємодії відкритих систем. Багаторівневий підхід. Протокол. Інтерфейс. Стек протоколів. Організація взаємодії між пристроями в мережі є складною задачею. Як відомо, для розв’язання складних задач використовується універсальний прийом – декомпозиція – розбиття однієї складної задачі на кілька простіших задач-модулів. Процедура декомпозиції включає в себе чітке визначення функцій кожного окремого модуля та інтерфейсів між ними. В результаті досягається логічне спрощення задачі та з’являється можливість модифікації окремих модулів без зміни решти системи. При декомпозиції часто застосовують багаторівневий підхід. Він полягає в тому, що всю множину модулів розділяють на рівні, які утворюють ієрархію. Множина модулів, що складає кожний рівень, формується таким чином, що для виконання своїх задач вони звертаються з запитами тільки до модулів рівня, розміщеного на сходинку нижче в ієрархії (модулі другого рівня – до модулів першого рівня і т.д.). З іншого боку, результати роботи усіх модулів якогось із рівнів можуть бути передані тільки модулям рівня, розміщеного на сходинку вище в ієрархії. Така ієрархічна декомпозиція задачі передбачає чітке визначення функцій кожного рівня та інтерфейсів між ними. Інтерфейс визначає набір функцій, які рівень, розміщений нижче в ієрархії, надає розміщеному вище. В результаті ієрархічної декомпозиції досягається відносна незалежність рівнів, а значить, і можливість їх легкої заміни. Засоби мережної взаємодії також можуть бути представлені у вигляді ієрархічно організованої множини модулів. При цьому модулі нижчого рівня можуть, наприклад, вирішувати задачі надійного передавання електричних сигналів між сусідніми вузлами. Модулі вищого рівня організовують транспортування повідомлень в межах всієї мережі, використовуючи для цього засоби нижчого рівня. А на верхньому рівні працюють модулі, що надають користувачам доступ до різних служб. Багаторівневе представлення засобів мережної взаємодії має свою специфіку, яка пов’язана з тим, що в процесі обміну приймають участь два комп’ютери, у зв’язку з чим потрібно організувати узгоджену роботу двох „ієрархій“. При передачі повідомлень обидва учасники мережного обміну повинні прийняти багато узгоджень. Наприклад, вони повинні узгодити рівні та форму електричних сигналів, спосіб визначення довжини повідомлення, „домовитися“ про методи контролю достовірності тощо. Іншими словами, узгодження повинні бути прийняті для всіх рівнів, починаючи від найнижчого – рівня передачі бітів – до найвищого, на якому реалізуються сервіси користувачів мережі. Процедура взаємодії між вузлами мережі може бути описана у вигляді набору правил взаємодії кожної пари відповідних рівнів вузлів. Формалізовані правила, що визначають послідовність та формат повідомлень, якими обмінюються мережні компоненти, що розміщені на одному рівні, але в різних вузлах, називаються протоколом[Error: Reference source not found]. Модулі, що реалізують протоколи сусідніх рівнів та розміщені в одному вузлі, також взаємодіють між собою у відповідності до чітко визначених правил та за допомогою стандартизованих форматів повідомлень. Ці правила прийнято називати інтерфейсом. Інтерфейс визначає набір сервісів, який надається даним рівнем сусідньому рівню. По суті протокол та інтерфейс виражають одне поняття, але традиційно в мережах за ними закріпили різні області – протоколи визначають правила взаємодії модулів одного рівня в різних вузлах, а інтерфейси – модулів сусідніх рівнів в одному вузлі. Засоби кожного рівня повинні обробляти, по-перше, свій власний протокол, а, по-друге, інтерфейси з сусідніми рівнями. Ієрархічно організований набір протоколів, достатній для організації вузлів в мережі, називається стеком комунікаційних протоколів. Комунікаційні протоколи можуть бути організовані як програмно, так і апаратно. Протоколи нижніх рівнів часто реалізуються комбінацією програмних та апаратних засобів, а протоколи верхніх рівнів – як правило, виключно програмними засобами. Програмний модуль, що реалізує певний протокол часто також називають „протоколом“. Протоколи реалізуються не тільки комп’ютерами, а й іншими мережними пристроями – концентраторами, мостами, комутаторами тощо. Залежно від типу пристрою в ньому повинні бути вбудовані засоби, що реалізують той чи інший набір протоколів. Модель OSI. На початку 1980-х років ряд міжнародних організацій зі стандартизації – ISO, ITU-T та деякі інші – розробили модель, яка відіграла значну роль в розвитку мереж. Ця модель називається моделлю взаємодії відкритих систем (OpenSystemInterconnection – OSI). Модель OSI визначає різні рівні взаємодії систем, дає їм стандартні імена та вказує, які функції повинен виконувати кожний рівень. В моделі OSI засоби взаємодії діляться на сім рівнів: прикладний рівень (Applicationlayer), рівень представлення (Presentationlayer), сеансовий рівень (Sessionlayer), транспортний рівень (Transportlayer), мережний рівень (Networklayer), канальний рівень (DataLinklayer) та фізичний рівень (Physicallayer) [Error: Reference source not found]. Кожний рівень має справу з одним певним аспектом взаємодії мережних пристроїв. Модель OSI описує тільки системні засоби взаємодії, що реалізуються операційною системою, системними утилітами, системними апаратними засобами. Модель не включає засоби взаємодії програм кінцевих користувачів. Свої власні протоколи взаємодії ці програми реалізують, звертаючись до системних засобів. Тому необхідно розрізняти рівень взаємодії програм та прикладний рівень. Слід також мати на увазі, що програма може взяти на себе функції деяких верхніх рівнів моделі OSI. Наприклад, деякі СУБД мають вбудовані засоби віддаленого доступу до файлів. В цьому випадку програма, здійснюючи доступ до віддалених ресурсів, не використовує системну файлову службу – вона обходить верхні рівні моделі OSI та звертається напряму до системних засобів, що відповідають за транспортування повідомлень по мережі, які розміщені на нижніх рівнях моделі OSI. Розглянемо детальніше рівні моделі OSI. Фізичний рівень має справу з передачею біт по фізичних каналах зв’язку. До цього рівня мають відношення характеристики фізичних середовищ передачі даних, як, наприклад, смуга пропускання, хвильовий опір тощо. На цьому ж рівні визначаються характеристики електричних сигналів, що передають дискретну інформацію, тип кодування, швидкість передачі сигналів. Функції фізичного рівня реалізуються у всіх пристроях, підключених до мережі, наприклад у мережному адаптері. Канальний рівень. На фізичному рівні просто пересилаються біти. При цьому не враховується, що в деяких мережах, в яких лінії зв’язку використовуються позмінно кількома парами взаємодіючих комп’ютерів, фізичне середовище передачі може бути зайнятим. Тому однією з задач канального рівня є перевірка доступності середовища передачі. Іншою задачею канального рівня є реалізація механізмів виявлення та корекції помилок. Для цього на канальному рівні біти групуються в набори, які називаються кадрами (frames). Канальний рівень забезпечує коректність передачі кожного кадру, вміщуючи спеціальну послідовність біт на початку та в кінці кожного кадру для його виділення, а також розраховує контрольну суму кадру, обробляючи усі байти кадру певним чином, та додаючи контрольну суму до кадру. Коли кадр приходить по мережі, отримувач знову розраховує контрольну суму отриманих даних і порівнює з контрольною сумою, переданою в кадрі. Якщо контрольні суми не співпадають, фіксується помилка, яка виправляється шляхом повторної передачі кадру. Для забезпечення якісного транспортування повідомлень в мережах канального рівня виявляється недостатньо у зв’язку з чим в моделі OSI розв’язання цієї задачі ставиться на два наступні рівня – мережний та транспортний. Мережний рівень. Протоколи канального рівня локальних мереж забезпечують доставку даних між вузлами тільки в мережі з відповідною топологією. Це обмеження не дозволяє створювати мережі з розвинутою структурою. Тому для того, щоб з одного боку зберегти простоту процедур передачі даних для типових топологій, а з другого – допустити використання довільних топологій, вводиться додатковий мережний рівень. На мережному рівні сам термін „мережа“ наділяють специфічним значенням. В даному випадку під мережею розуміється сукупність комп’ютерів, з’єднаних між собою відповідно до одної з типових топологій, які використовують для передачі даних один із протоколів канального рівня, визначений для даної топології. Всередині мережі доставка даних забезпечується канальним рівнем, тоді як передачу даних між мережами забезпечує мережний рівень, який забезпечує можливість правильного вибору маршруту передачі. Для передачі повідомлення від відправника, що знаходиться в одній мережі, отримувачу в іншій мережі, потрібно здійснити певну кількість транзитних передач між мережами (хопів – hop – стрибок), щоразу вибираючи найкращий маршрут. Проблема вибору найкращого шляху називається маршрутизацією, і її вирішення є однією з головних задач мережного рівня. Ця проблема ускладнюється ще й тим, що найкоротший шлях не завжди є й найкращим. Деякі алгоритми маршрутизації стараються пристосуватися до зміни навантаження, тоді як інші приймають рішення на основі середніх показників за тривалий час. Вибір маршруту може здійснюватися і за іншими критеріями, наприклад, надійності передачі. Мережний рівень розв’язує також задачі узгодження різних технологій, спрощення адресації у великих мережах та створення надійних і гнучких бар’єрів на шляху небажаного трафіку між мережами. Повідомлення мережного рівня прийнято називати пакетами (packets). При організації доставки пакетів на мережному рівні використовують поняття „номер мережі“. В цьому випадку адреса отримувача складається із старшої частини – номера мережі та молодшої – номера вузла в цій мережі. Усі вузли однієї мережі повинні мати одну й ту ж старшу частину адреси, у зв’язку з чим терміну „мережа“ на мережному рівні можна дати й інше, більш формальне визначення: мережа – це сукупність вузлів, мережна адреса яких містить один і той же номер мережі. На мережному рівні визначаються два види протоколів. Перший вид – мережні протоколи (routed protocols) – реалізують переміщення пакетів в мережі (саме ці протоколи зазвичай мають на увазі, коли говорять про протоколи мережного рівня). Проте часто до мережного рівня відносять і інший вид протоколів, що називаються протоколами обміну маршрутною інформацією або протоколами маршрутизації (routing protocols). Протоколи мережного рівня реалізуються програмними модулями операційної системи, а також програмними і апаратними засобами маршрутизаторів. На мережному рівні працюють протоколи ще одного типу, які відповідають за відображення адреси вузла, що використовується на мережному рівні, в локальну адресу мережі. Прикладами протоколів мережного рівня є протокол міжмережної взаємодії IP та протокол міжмережного обміну пакетами IPX. Транспортний рівень. На шляху від відправника до отримувача пакети можуть бути спотворені чи втрачені. Задача вирішення таких проблем покладена на транспортний рівень, який забезпечує передачу даних з тією мірою надійності, яка потрібна прикладним програмам чи верхнім рівням (прикладному і сеансовому). Модель OSI визначає п’ять класів сервісу, що надаються транспортним рівнем. Ці види сервісу відрізняються якістю послуг, що надаються: терміновістю, можливістю відновлення перерваного зв’язку, здатністю до виявлення та виправлення помилок передачі. Вибір класу сервісу транспортного рівня визначається, з одного боку, тим, наскільки задача забезпечення надійності розв’язується самими прикладними програмами та протоколами вищих рівнів, а з другого – тим, наскільки надійною є система транспортування даних в мережі, що забезпечується нижчими рівнями. Тому, наприклад, якщо якість каналів передачі висока, використовуються полегшені сервіси, які забезпечують більшу швидкість передачі. В той же час при використанні ненадійних каналів зв’язку використовуються найрозвинутіші сервіси транспортного рівня, які збільшують надійність передачі даних, зменшуючи, зрозуміло, швидкість. Як правило, усі протоколи, починаючи з транспортного рівня і вище, реалізуються програмними засобами кінцевих вузлів мережі – компонентами їх мережних операційних систем. В якості прикладів транспортних протоколів можна навести протоколи TCP та SPX. Сеансовий рівень забезпечує управління діалогом: фіксує, яка із сторін є активною в даний час, надає засоби синхронізації. Останні дозволяють вставляти контрольні точки в довгі передачі, щоб у випадку відмови можна було повернутися назад до останньої контрольної точки, а не починати все спочатку. На практиці дуже мало прикладних програм використовують сеансовий рівень, і він рідко реалізується у вигляді окремих протоколів, хоча функції цього рівня часто об’єднуються з функціями прикладного рівня і реалізуються в одному протоколі. Рівень представлення має справу з формою представлення даних, що передаються по мережі, не змінюючи при цьому їх змісту. Завдяки цьому рівню, дані, що передаються прикладним рівнем однієї системи є завжди зрозумілими прикладним рівнем іншої системи. За допомогою засобів даного рівня протоколи прикладних рівнів можуть обійти синтаксичні відмінності в представленні даних чи ж відмінності в кодуваннях символів (наприклад, ASCII та EBCDIC). На цьому рівні може виконуватися шифрування та дешифрування даних, завдяки якому секретність обміну даними забезпечується одразу ж для всіх прикладних служб. Прикладом такого протоколу є протокол Secure Socket Layer (SSL), який забезпечує секретний обмін повідомленнями для протоколів прикладного рівня стеку TCP/IP. Прикладний рівень – це в дійсності просто набір різноманітних протоколів, за допомогою яких користувачі мережі отримують доступ до спільних ресурсів, таких як файли, принтери чи Web-сторінки, а також організовують свою спільну роботу. Одиниця даних, якою оперує прикладний рівень, зазвичай називається повідомленням (message). Існує велика кількість служб прикладного рівня, наприклад, NCP в Novel, FTP в TCP/IP тощо. Поняття „відкрита система“. Модель OSI, як це слідує з її назви, описує взаємодію відкритих систем. Взагалі кажучи, відкритою системою може бути названа будь-яка система (комп’ютер, обчислювальна мережа, операційна система, програмний пакет, інші апаратні та програмні продукти), що побудована відповідно до відкритих специфікацій. Нагадаємо, що під терміном „специфікація“ (в комп’ютерній техніці) розуміють формалізоване описання апаратних чи програмних компонентів, способів їх функціонування, взаємодії з іншими компонентами, умов експлуатації, обмежень та особливих характеристик. В свою чергу під відкритими специфікаціями розуміються опубліковані, загальнодоступні специфікації, що відповідають стандартам і прийняті в результаті досягнення згоди після всебічного обговорення усіма зацікавленими сторонами. Використання при розробці систем відкритих специфікацій дозволяє третім сторонам розробляти для цих систем різноманітні апаратні чи програмні засоби, а також створювати апаратно-програмні комплекси з продуктів різних виробників. Для реальних систем повна відкритість є недосяжним ідеалом. Як правило, навіть у системах, які називають відкритими, цьому визначенню відповідають тільки деякі частини, що підтримують зовнішні інтерфейси. Тому чим більше відкритих специфікацій було використано при розробці системи, тим більш відкритою вона є. Модель OSI стосується тільки одного аспекту відкритості, а саме відкритості засобів взаємодії пристроїв, об’єднаних в обчислювальну мережу. Тут під відкритою системою розуміється мережний пристрій, готовий взаємодіяти з іншими мережними пристроями з використанням стандартних правил, що визначають формат, зміст та значення прийнятих та відправлених повідомлень. Якщо дві мережі побудовано з дориманням принципів відкритості, це дає наступні переваги:
Яскравим прикладом відкритої системи є міжнародна мережа Інтернет, яка розвивалася в повній відповідності до вимог, що пред’являються до відкритих систем. В розробці її стандартів приймали участь тисячі спеціалістів-користувачів мережі з різних навчальних і наукових закладів та фірм-виробників обчислювальної апаратури і програмного забезпечення, що працюють в різних країнах. В результаті цього мережа Інтернет зуміла об’єднати в собі найрізноманітніше обладнання та програмне забезпечення величезної кількості мереж, розкиданих по всьому світу. Стандартні стеки комунікаційних протоколів. Найважливішим напрямком стандартизації в області обчислювальних мереж є стандартизація комунікаційних протоколів. Найпопулярнішими зараз серед стеків комунікаційних протоколів є: TCP/IP, IPX/SPX, NetBIOS/SMB, DECnet, SNA та OSI. Усі стеки, крім SNA, на нижніх рівнях – фізичному та канальному, – використовують одні й ті ж добре стандартизовані протоколи Ethernet, TokenRing, FDDI та ін. Проте на верхніх рівнях усі стеки працюють за своїми власними протоколами. Ці протоколи часто не відповідають рекомендованому моделлю OSI розбиттю на рівні. Зокрема, функції сеансового та представницького рівня, як правило, об’єднуються з прикладним рівнем. Така невідповідність зумовлена тим, що модель OSI з’явилася як результат узагальнення уже існуючих і реально використовуваних стеків, а не навпаки. Стек OSI. Слід чітко розрізняти модель OSI та стек OSI. Тоді як модель OSI є концептуальною схемою взаємодії відкртих систем, стек OSI представляє собою набір конкретних специфікацій протоколів. На відміну від інших стеків протоколів, стек OSI повністю відповідає моделі OSI. Він включає специфікації протоколів для всіх семи рівнів взаємодії, визначених в цій моделі. На нижніх рівнях стек OSI підтримує Ethernet, Token Ring, FDDI, протоколи глобальних мереж, X.25 та ISDN, – використовує розроблені за межами стеку протоколи нижніх рівнів, як і інші стеки. Протоколи мережного, транспортного та сеансового рівнів стеку OSI специфіковані та реалізовані різними виробниками, але на даний час розповсюджені мало. Найпопулярнішими протоколами стеку OSI є прикладні протоколи, до яких відносяться: протокол передачі файлів FTAM, протокол емуляції терміналу VTP, протоколи довідникової служби X.500, електронної пошти X.400 та ряд інших. Протоколи стеку OSI відрізняє складність та неоднозначність специфікацій, які виникли внаслідок загальної політики розробників стеку, які прагнул врахувати в своїх протоколах усі випадки життя та всі існуючі і нові технології. Внаслідок своєї складності протоколи OSI вимагають значних затрат обчислювальної потужності, що робить їх ефективними тільки в мережах з потужними комп’ютерами, а не для персональних комп’ютерів. Стек OSI – міжнародний незалежний від виробників стандарт. Його підтримує уряд США в своїй програмі GOSIP, відповідно до якої всі комп’ютерні мережі, що встановлюються в урядових закладах США після 1990 року, повинні або безпосередньо підтримувати стек OSI, або забезпечувати засоби для переходу на цей стек в майбутньому. Незважаючи на цей факт, стек OSI зараз більш популярний у Європі, що, в першу чергу, зумовлено меншою кількістю старих мереж, шо працюють за власними протоколами. Стек TCP/IP було розроблено за ініціативою Міністерства оборони США більше для зв’язку експериментальної мережі ARPAnet з іншими мережами як набір спільних протоколів для різнорідного обчислювального середовища. Великий вклад в розвиток стеку TCP/IP вніс університет Берклі, реалізувавши протоколи стеку в своїй версії ОС UNIX. Популярність цієї операційної системи привела до широкого розповсюдження TCP, IP та інших протоколів стеку. В даний час цей стек використовується для зв’язку комп’ютерів всесвітньої мережі Інтернет, та у великій кількості корпоративних мереж. Стек TCP/IP на нижньому рівні підтримує усі популярні стандарти фізичного та канального рівнів: для локальних мереж – це Ethernet, Token Ring, FDDI, для глобальних – протоколи роботи на аналогових комутованих та виділених лініях SLIP, PPP, протоколи територіальних мереж X.25 та ISDN. Основними протоколами стеку, які дали йому назву, є протококли TCP та IP, які в термінології моделі OSI відносяться до мережного та транспортного рівнів, відповідно. IP забезпечує просування пакету по мережі, а TCP гарантує надійність його доставки. За довгі роки використання в мережах різних країн і організацій, стек TCP/IP ввібрав у себе велику кількість протоколів прикладного рівня, як, наприклад, протокол пересилки файлів FTP, протокол емуляції терміналу telnet, поштовий протокол SMTP, гіпертекстові сервіси WWW та ін. Сьогодні стек TCP/IP є одним з найрозповсюдженіших транспортних протоколів обчислювальних мереж. Стрімкий ріст популярності Інтернет привів до швидкого витіснення стеком TCP/IP інших стеків, зокрема IPX/SPX. Хоча протоколи TCP/IP нерозривно зв’язані з Інтернет, існує велика кількість мереж різного рівня, в яких також використовуються протоколи TCP/IP. Оскільки стек TCP/IP створювався для глобальної мережі Інтернет, він має багато особливостей, які надають йому переваги порівняно з іншими протоколами, коли мова заходить про мережі, що включають глобальні зв’язки. Зокрема, дуже важливою властивістю, яка надає можливість застосування цього протоколу у великих мережах є його здатність фрагментувати пакети. Велика мережа часто складається з підмереж, що базуються на різних принципах, в кожній з яких може бути встановлена власна величина максимальної величини кадру. В такому випадку при переході із однієї мережі в іншу може виникнути необхідність ділення кадру, що передається, на кілька частин. Протокол IP ефективно розв’язує цю задачу. Іншою особливістю, технології TCP/IP є гнучка система адресації, яка дозволяє простіше, порівняно з іншими протоколами аналогічного призначення, включати в інтермережу мережі інших технологій. В стеку TCP/IP дуже економно використовуються можливості загальнодоступних розсилок – ця властивість є життєво необхідною при роботі на повільних каналах зв’язку, які характерні для територіальних мереж. Проте, як і завжди, за переваги потрібно розплачуватися, і платою тут є високі вимоги до ресурсів та складність адміністрування IP-мереж. Гнучка система адресації та відмова від загальнодоступних розсилок приводить до наявності в IP-мережах різних централізованих служб типу DNS, DHCP та ін. [Error: Reference source not found]. Кожна з цих служб направлена на полегшення адміністрування мережі, але в той же час сама вимагає уваги від адміністратора мережі. Можна приводити і інші доводи за і проти стеку протоколів Інтернет, проте факт залишається фактом – сьогодні це найпопулярніший стек протоколів, який широко використовується як у глобальних, так і у локальних мережах. Стек IPX/SPX. Цей стек є оригінальним стеком протоколів фірми Novel, розробленим для мережної операційної системи NetWare ще на початку 1980-х років. Протоколи мережного та сеансового рівнів Internetwork Packet Exchange (IPX) та Sequenced Packet Exschange (SPX), які дали назву стеку є прямою адаптацією протоколів XNS фірми Xerox [Error: Reference source not found]. Іще недавня популярність стеку IPX/SPX була пов’язана з розповсюдженістю операційної системи Novel NetWare, яку останнім часом все більше витісняють ОС сімейства Windows. Багато особливостей стеку IPX/SPX обумовлені орієнтацією ранніх версій ОС NetWare на роботу в локальних мережах невеликих розмірів, які складалися з комп’ютерів зі скромними ресурсами. Зрозуміло, що для таких мереж потрібні були протоколи, які б споживали мінімальні об’єми пам’яті та швидко працювали на повільних процесорах. В результаті протоколи стеку IPX/SPX донедавна добре працювали в локальних мережах і погано у великих корпоративних мережах, оскільки вони перевантажували повільні глобальні зв’язки загальнодоступними пакетами, які інтенсивно використовуються кількома протоколами цього стеку. Зараз обновлена версія стеку IPX/SPX реалізована не тільки в NetWare, а і в багатьох інших популярних мережних ОС, зокрема в Windows. Стек NetBIOS/SMB. Цей стек раніше широко використовувався в продуктах компаній IBM та Microsoft. На фізичному та канальному рівнях цього стеку використовуються усі найрозповсюдженіші протоколи Ethernet, Token Ring, FDDI та інші. На верхніх же рівнях працюють протоколи NetBIOS та SMB. Протокол NetBIOS (Network Basic Input/Output System) з’явився в 1984 році як мережне розширення стандартних функцій базової системи введення/виведення (BIOS) IBM PC для мережної програми PC Network фірми IBM [Error: Reference source not found]. В подальшому цей протокол було замінено так званим протоколом розширеного користувацького інтерфейсу NetBEUI – NetBIOS Extended User Interface. Для забезпечення сумісності програм в якості інтерфейсу до протоколу NetBEUI було збережено інтерфейс NetBIOS. Протокол NetBEUI розроблявся як ефективний протокол, що споживає небагато ресурсів і призначений для мереж, що налічують не більше 200 робочих станцій. Цей протокол містить багато корисних мережних функцій, які можна віднести до транспортного та мережного рівнів моделі OSI, однак він не забезпечує маршрутизацію. Останнє обмежує застосування протоколу NetBEUI локальними мережами, які не розділені на підмережі, і робить неможливим його використання в складних мережах. Деякі обмеження NetBEUI знімаються новою редакцією цього протоколу NBF (NetBEUI Frame), яка включається в MS Windows сімейства NT. Протокол SMB (Server Message Block) виконує функції сеансового рівня, рівня подання та прикладного рівня. На основі SMB реалізується файлова служба, а також служба друку та передачі повідомлень між програмами. Інші стеки протоколів, такі як SNA фірми IBM, DECnet корпорації Digital Equipment та AppleTalk/AFP фірми Apple застосовуються в основному в операційних системах та мережному обладнанні цих фірм. На рис. 4.3. показано відповідність деяких найпопулярніших протоколів рівням моделі OSI. Часто така відповідність є досить умовною, оскільки модель OSI – це тільки правила дій, причому досить загальні, а конкретні протоколи розроблялися для розв’язання специфічних задач, причому багато з них з’явилися до розробки моделі OSI. В більшості випадків розробники стеків віддавали перевагу швидкості роботи мережі, нехтуючи модульністю – ні один із стеків, крім стеку OSI, не розділений на сім рівнів. Найчастіше в стеку явно виділяються 3-4 рівня: рівень мережних адаптерів, в якому реалізуються протоколи фізичного та канального рівнів, мережний рівень, транспортний рівень та рівень служб, який вбирає в себе функції трьох верхніх рівнів.
Рис. 4.3. Відповідність популярних стеків протоколів моделі OSI |