Багаторівневий підхід. Протокол. Інтерфейс. Стек протоколів.
Універсальна теза про користь стандартизації, справедливий для всіх галузей, в комп'ютерних мережах набуває особливого значення. Суть мережі - це з'єднання різного устаткування, отже, проблема сумісності є одній з найбільш гострих. Без ухвалення всіма виробниками загальноприйнятих правил побудови устаткування прогрес в справі “будівництва” мереж був би неможливий. Тому весь розвиток комп'ютерної галузі кінець кінцем відбитий в стандартах - будь-яка нова технологія тільки тоді набуває “законного” статусу, коли її зміст закріплюється у відповідному стандарті.
У комп'ютерних мережах ідеологічною основою стандартизації є багаторівневий підхід до розробки засобів мережної взаємодії. Саме на основі цього підходу була розроблена стандартна семирівнева модель взаємодії відкритих систем, що стала свого роду універсальною мовою мережних фахівців.
Багаторівневе представлення засобів мережної взаємодії має свою специфіку, пов'язану з тим, що в процесі обміну повідомленнями беруть участь дві машини, тобто в даному випадку необхідно організувати узгоджену роботу двох “ієрархій”. При передачі повідомлень обидва учасники мережного обміну повинні прийняти безліч угод. Наприклад, вони повинні погоджувати рівні і форму електричних сигналів, спосіб визначення довжини повідомлень, домовитися про методи контролю достовірності і тому подібне. Іншими словами, угоди повинні бути прийняті для всіх рівнів, починаючи від найнижчого - рівня передачі бітів - до найвищого, такого, що реалізовує сервіс для користувачів мережі.
На рис. 1 показана модель взаємодії двох вузлів. З кожного боку засоби взаємодії представлені чотирма рівнями. Процедура взаємодії цих двох вузлів може бути описана у вигляді набору правил взаємодії кожної пари відповідних рівнів обох сторін, що беруть участь. Формалізовані правила, визначальна послідовність і формат повідомлень, якими обмінюються мережні компоненти, лежачі на одному рівні, але в різних вузлах, називаються протоколом.
Модулі, що реалізують протоколи сусідніх рівнів і що знаходяться в одному вузлі, також взаємодіють один з одним відповідно до певних правил і за допомогою стандартизованных форматів повідомлень. Ці правила прийнято називати інтерфейсом. Інтерфейс визначає набір сервісів, що надається даним рівнем сусідньому рівню. По суті, протокол і інтерфейс виражають одне і те ж поняття, але традиційно в мережах за ними закріпили різні області дії: протоколи визначають правила взаємодії модулів одного рівня в різних вузлах, а інтерфейси - модулів сусідніх рівнів в одному вузлі.
Рисунок 1 - Взаємодія двох вузлів
Засоби кожного рівня повинні відпрацьовувати, по-перше, свій власний протокол, а по-друге, інтерфейси з сусідніми рівнями.
Ієрархічно організований набір протоколів, достатній для організації взаємодії вузлів в мережі, називається стеком комунікаційних протоколів.
Комунікаційні протоколи можуть бути реалізовані як програмно, так і апаратно. Протоколи нижніх рівнів часто реалізуються комбінацією програмних і апаратних засобів, а протоколи верхніх рівнів - як правило, чисто програмними засобами.
Протоколи реалізуються не тільки комп'ютерами, але і іншими мережними пристроями - концентраторами, мостами, комутаторами, маршрутизаторами і так далі Дійсно, в загальному випадку зв'язок комп'ютерів в мережі здійснюється не безпосередньо, а через різні комунікаційні пристрої. Залежно від типу пристрою в ньому повинні бути вбудовані засоби, що реалізують той або інший набір протоколів.
Модель OSI
На практиці при реалізації мереж прагнуть використовувати стандартні протоколи. Це можуть бути фірмові, національні або міжнародні стандарти.
На початку 80-х років ряд міжнародних організацій по стандартизації - ISO (International Organization for Standardization) і деякі інші - розробили модель, яка зіграла значну роль в розвитку мереж. Ця модель називається моделлю взаємодії відкритих систем (Open System Interconnection, OSI) або моделлю OSI. Модель OSI визначає різні рівні взаємодії систем, дає їм стандартні імена і вказує, які функції повинен виконувати кожен рівень.
У моделі OSI (рис. 2) засіб взаємодії діляться на сім рівнів: прикладний, представницький, сеансовий, транспортний, мережний, канальний і фізичний. Кожен рівень має справу з одним певним аспектом взаємодії мережних пристроїв.
Модель OSI описує тільки системні засоби взаємодії, що реалізуються операційною системою, системними утилітами, системними апаратними засобами. Модель не включає засобу взаємодії додатків кінцевих користувачів. Свої власні протоколи взаємодії додатки реалізують, звертаючись до системних засобів. Тому необхідно розрізняти рівень взаємодії додатків і прикладний рівень.
Слід також мати на увазі, що додаток може узяти на себе функції деяких верхніх рівнів моделі OSI. Наприклад, деякі СУБД мають вбудовані засоби видаленого доступу до файлів. В цьому випадку додаток, виконуючи доступ до видалених ресурсів, не використовує системну файлову службу; він обходить верхні рівні моделі OSI і звертається безпосередньо до системних засобів, відповідальних за транспортування повідомлень по мережі, які розташовані на нижніх рівнях моделі OSI.
Отже, нехай додаток звертається із запитом до прикладного рівня, наприклад до файлової служби. На підставі цього запиту програмне забезпечення прикладного рівня формує повідомлення стандартного формату. Звичайне повідомлення складається із заголовка і поля даних. Заголовок містить службову інформацію, яку необхідно передати через мережу прикладному рівню машини-адресата, щоб повідомити його, яку роботу треба виконати. У нашому випадку заголовок повинен містити інформацію про місце знаходження файлу і про тип операції, яку необхідно над ним виконати. Поле даних повідомлення може бути порожнім або містити які-небудь дані, наприклад ті, які необхідно записати у віддалений файл.
Після формування повідомлення прикладний рівень направляє його вниз по стеку представницькому рівню. Протокол представницького рівня на підставі інформації, отриманої із заголовка прикладного рівня, виконує необхідні дії і додає до повідомлення власну службову інформацію - заголовок представницького рівня, в якому містяться вказівки для протоколу представницького рівня машини-адресата. Отримане в результаті повідомлення передається вниз сеансовому рівню, який у свою чергу додає свій заголовок, і так далі (Деякі реалізації протоколів розміщують службову інформацію не тільки на початку повідомлення у вигляді заголовка, але і в кінці, у вигляді так званого “кінцевика”.) Нарешті, повідомлення досягає нижнього, фізичного рівня, який власне і передає його по лініях зв'язку машині-адресатові. До цього моменту повідомлення “обростає” заголовками всіх рівнів (рис. 3).
Коли повідомлення по мережі поступає на машину-адресат, воно приймається її фізичним рівнем і послідовно переміщається вгору з рівня на рівень. Кожен рівень аналізує і обробляє заголовок свого рівня, виконуючи відповідні даному рівню функції, а потім видаляє цей заголовок і передає повідомлення вищерозміщеного рівня.
Рисунок 2 - Модель взаємодії відкритих систем ISO/OSI
Рівні моделі OSI
Фізичний рівень. Фізичний рівень (Physical layer) має справу з передачею бітів по фізичних каналах зв'язку, таким, наприклад, як коаксіальний кабель, вита пара, оптоволоконний кабель. До цього рівня мають відношення характеристики фізичних середовищ передачі даних, такі як смуга пропускання, перешкодозахисна, хвилевий опір та інші. На цьому ж рівні визначаються характеристики електричних сигналів
Функції фізичного рівня реалізуються у всіх пристроях, підключених до мережі. З боку комп'ютера функції фізичного рівня виконуються мережним адаптером або послідовним портом.
Прикладом протоколу фізичного рівня може служити специфікація 10Base-T технології Ethernet, яка визначає в якості використонного кабеля неекрановану виту пару категорії 3 з хвилевим опором 100 Ом, роз'їм RJ-45, максимальну довжину фізичного сегменту 100 метрів, манчестерський код для представлення даних в кабелі, а також деякі інші характеристики середовища і електричних сигналів.
Канальний рівень. На фізичному рівні просто пересилаються біти. При цьому не враховується, що в деяких мережах, в яких лінії зв'язку розділяються поперемінно декількома парами взаємодіючих комп'ютерів, фізичне середовище передачі може бути зайнятє. Тому одним із завдань канального рівня (Data Link layer) є перевірка доступності середовища передачі. Іншим завданням канального рівня є реалізація механізмів виявлення і корекції помилок. Для цього на канальному рівні біти групуються в набори, звані кадрами (frames). Канальний рівень забезпечує коректність передачі кожного кадру, розміщуючи спеціальну послідовність бітів в початок і кінець кожного кадру, для його виділення, а також обчислює контрольну суму, обробляючи всі байти кадру певним способом і додаючи контрольну суму до кадру. Коли кадр приходить по мережі, одержувач знову обчислює контрольну суму отриманних даних і порівнює результат з контрольною сумою з кадру. Якщо вони співпадають, кадр вважається правильним і приймається. Якщо ж контрольні суми не співпадають, то фіксується помилка. Канальний рівень може не тільки виявляти помилки, але і виправляти їх за рахунок повторної передачі пошкоджених кадрів. Необхідно відзначити, що функція виправлення помилок не є обов'язковою для канального рівня, тому в деяких протоколах цього рівня вона відсутня, наприклад, в Ethernet і frame relay.
У протоколах канального рівня, використовуваних в локальних мережах, закладена певна структура зв'язків між комп'ютерами і способи їх адресації. Хоча канальний рівень і забезпечує доставку кадру між будь-якими двома вузлами локальної мережі, він це робить тільки в мережі з абсолютно певною топологією зв'язків, саме тією топологією, для якої він був розроблений. До таких типових топологій, підтримуваних протоколами канального рівня локальних мереж, відносяться загальна шина, кільце і зірка, а також структури, отримані з них за допомогою мостів і комутаторів. Прикладами протоколів канального рівня є протоколи Ethernet, Token Ring, FDDI, 100VG-AnyLAN.
У локальних мережах протоколи канального рівня використовуються комп'ютерами, мостами, комутаторами і маршрутизаторами. У комп'ютерах функції канального рівня реалізуються спільними зусиллями мережних адаптерів і їх драйверів.
Мережний рівень. Мережний рівень (Network layer) слугує для утворення єдиної транспортної системи, об'єднуючої декілька мереж, причому ці мережі можуть використовувати абсолютно різні принципи пересилання повідомлень між кінцевими вузлами і володіти довільною структурою зв'язків. Щоб з одного боку зберегти простоту процедур пересилання даних для типових топологий, а з іншою допустити використання довільних топологий, вводиться додатковий мережний рівень.
На мережному рівні сам термін мережа наділяють специфічним значенням. В даному випадку під мережею розуміється сукупність комп'ютерів, сполучених між собою відповідно до однієї із стандартних типових топологий і що використовують для передачі даних один з протоколів канального рівня, визначений для цієї топології. Усередині мережі доставка даних забезпечується відповідним канальним рівнем, а ось доставкою даних між мережами займається мережний рівень, який і підтримує можливість правильного вибору маршруту передачі повідомлення навіть у тому випадку, коли структура зв'язків між мережами має характер, відмінний від прийнятого в протоколах канального рівня.
Мережі з'єднуються між собою спеціальними пристроями, званими маршрутизаторами. Маршрутизатор — це пристрій, який збирає інформацію про топологію міжмережних з'єднань і на її підставі пересилає пакети мережного рівня в мережу призначення. Щоб передати повідомлення від відправника, що знаходиться в одній мережі, одержувачу, що знаходиться в іншій мережі, потрібно зробити деяку кількість транзитних передач між мережами, або xonoв (від hop — стрибок), кожного разу вибираючи відповідний маршрут. Таким чином, маршрутом є послідовність маршрутизаторів, через які проходить пакет.
На рисунку 4 показано чотири мережі, зв'язані трьома маршрутизаторами. Між вузлами А і В даній мережі пролягають два маршрути: перший через маршрутизатори 1 і 3, а другий через маршрутизатори 1, 2 і 3.
Проблема вибору найкращого шляху називається маршрутизацією, і її рішення є одном з головних завдань мережного рівня. Ця проблема ускладнюється тим, що найкоротший шлях не завжди найкращий. Часто критерієм при виборі маршруту є час передачі даних по цьому маршруту; він залежить від пропускної спроможності каналів зв'язку і інтенсивності трафіку, яка може змінюватися з часом. Деякі алгоритми маршрутизації намагаються пристосуватися до зміни навантаження, тоді як інші ухвалюють рішення на основі середніх показників за тривалий час. Вибір маршруту може здійснюватися і по інших критеріях, наприклад надійності передачі.
У загальному випадку функції мережного рівня ширше, ніж функції передачі повідомлень по зв'язках з нестандартною структурою, які ми зараз розглянули на прикладі об'єднання декількох локальних мереж. Мережний рівень вирішує також завдання узгодження різних технологій, спрощення адресації в крупних мережах і створення надійних і гнучких бар'єрів на шляху небажаного трафіку між мережами.
Повідомлення мережного рівня прийнято називати пакетами (packets). При організації доставки пакетів на мережному рівні використовується поняття “Номер мережі”. В цьому випадку адреса одержувача складається із старшої частини — номери мережі і молодшою — номери вузла в цій мережі. Всі вузли однієї мережі повинні мати одну і ту ж старшу частину адреси, тому терміну “мережа” на мережному рівні можна дати і інше, формальніше визначення: мережа — це сукупність вузлів, мережну адресу яких містить один і той же номер мережі.
На мережному рівні визначаються два види протоколів. Перший вид — мережні протоколи (routed protocols) — реалізують просування пакетів скрізь мережу. Саме ці протоколи зазвичай мають на увазі, коли говорять про протоколи мережного рівня. Проте часто до мережного рівня відносять і інший вид протоколів, званих протоколами обміну маршрутною інформацією або просто протоколами маршрутизації (routing protocols). За допомогою цих протоколів маршрутизатори збирають інформацію про топологію міжмережних з'єднань. Протоколи мережного рівня реалізуються програмними модулями операційної системи, а також програмними і апаратними засобами маршрутизаторів.
Прикладами протоколів мережного рівня є протокол міжмережної взаємодії IP стека TCP/IP і протокол міжмережного обміну пакетами IPX стека Novell.
Транспортний рівень. На шляху від відправника до одержувача пакети можуть бути спотворені або загублені. Хоча деякі застосування мають власні засоби обробки помилок, існують і такі, які вважають за краще відразу мати справу з надійним з'єднанням. Транспортний рівень (Transport layer) забезпечує додаткам або верхнім рівням стека — прикладному і сеансовому — передачу даних з тим ступенем надійності, яка їм потрібна. Модель OSI визначає п'ять класів сервісу, що надаються транспортним рівнем. Ці види сервісу відрізняються якістю послуг, що надаються: терміновістю, можливістю відновлення перерваного зв'язку, наявністю засобів мультиплексування декількох з'єднань між різними прикладними протоколами через загальний транспортний протокол, а головне — здібністю до виявлення і виправлення помилок передачі, таких як спотворення, втрата і дублювання пакетів.
Як правило, всі протоколи, починаючи з транспортного рівня і вище, реалізуються програмними засобами кінцевих вузлів мережі — компонентами їх мережних операційних систем. Як приклад транспортних протоколів можна привести протоколи TCP і UDP стека TCP/IP і протокол SPX стека Novell.
Сеансовий рівень. Сеансовий рівень (Session layer) забезпечує управління діалогом: фіксує, яка із сторін є активною зараз, надає засоби синхронізації. Останні дозволяють вставляти контрольні крапки в довгі передачі, щоб у разі відмови можна було повернутися назад до останньої контрольної крапки, а не починати все з початку. На практиці небагато застосувань використовують сеансовий рівень, і він рідко реалізується у вигляді окремих протоколів, хоча функції цього рівня часто об'єднують з функціями прикладного рівня і реалізують в одному протоколі.
Представницький рівень. Представницький рівень (Presentation layer) має справу з формою представлення пересланної по мережі інформації, не змінюючи при цьому її зміст. За рахунок цього рівня, інформація, пересланна прикладним рівнем однієї системи, завжди зрозуміла прикладному рівню іншої системи. За допомогою засобів даного рівня протоколи прикладних рівнів можуть подолати синтаксичні відмінності в представленні даних або ж відмінності в кодах символів, наприклад код ASCII і EBCDIC. На цьому рівні може виконуватися шифрування і дешифровка даних, завдяки якій секретність обміну даними забезпечується відразу для всіх прикладних служб. Прикладом такого протоколу є протокол Secure Socket Layer (SSL), який забезпечує секретний обмін повідомленнями для протоколів прикладного рівня стека TCP/IP.
Прикладний рівень. Прикладний рівень (Application layer) — це насправді просто набір різноманітних протоколів, за допомогою яких користувачі мережі дістають доступ до роздільних ресурсів - файли, принтери або гіпертекстові Web-сторінки, а також організовують свою спільну роботу, наприклад, за допомогою протоколу електронної пошти. Одиниця даних, якою оперує прикладний рівень, зазвичай називається повідомленням (message).
Існує дуже велика різноманітність служб прикладного рівня. Приведемо як приклад хоч би декілька найбільш поширених реалізації файлових служб: NCP в операційній системі Novell NetWare, SMB в Microsoft Windows NT, NFS, FTP і TFTP, що входять в стек TCP/IP.
Мережозалежні та мережонезалежні рівні
Функції всіх рівнів моделі OSI можуть бути віднесені до однієї з двох груп: до функцій, залежних від конкретної технічної реалізації мережі, або до функцій, орієнтованих на роботу з додатками.
Три нижні рівні - фізичний, канальний і мережний - є мережозалежними, тобто протоколи цих рівнів тісно пов'язані з технічною реалізацією мережі і використовуваним комунікаційним устаткуванням. Наприклад, перехід на устаткування FDDI означає повну зміну протоколів фізичного і канального рівнів на всіх вузлах мережі.
Три верхні рівні - прикладний, представницький і сеансовий - орієнтовані на додатки і мало залежать від технічних особливостей побудови мережі. На протоколи цих рівнів не впливають які б то не було зміни в топології мережі, заміна устаткування або перехід на іншу мережну технологію. Так, перехід від Ethernet на високошвидкісну технологію 100VG-AnyLAN не зажадає ніяких змін в програмних засобах, що реалізовують функції прикладного, представницького і сеансового рівнів. Транспортний рівень є проміжним, він приховує всі деталі функціонування нижніх рівнів від верхніх. Це дозволяє розробляти додатки, не залежні від технічних засобів безпосереднього транспортування повідомлень.
Комп'ютер зі встановленою на нім мережною ОС взаємодіє з іншим комп'ютером за допомогою протоколів всіх сіми рівнів. Цю взаємодію комп'ютери здійснюють опосередковано через різні комунікаційні пристрої: концентратори, модеми, мости, комутатори, маршрутизатори, мультиплексори. Залежно від типу комунікаційний пристрій може працювати або тільки на фізичному рівні (повторювач), або на фізичному і канальному (міст), або на фізичному, канальному і мережному, іноді захоплюючи і транспортний рівень (маршрутизатор).
Модель OSI представляє хоча і дуже важливу, але тільки одну з багатьох моделей комунікацій. Ці моделі і пов'язані з ними стеки протоколів можуть відрізнятися кількістю рівнів, їх функціями, форматами повідомлень, службами, підтримуваними на верхніх рівнях, і іншими параметрами.
Поняття “Відкрита система”
Модель OSI, як це витікає з її назви (Open System Interconnection), описує взаємозв'язки відкритих систем. Що ж таке відкрита система?
У широкому сенсі відкритою системою може бути названа будь-яка система (комп'ютер, обчислювальна мережа, ОС, програмний пакет, інші апаратні і програмні продукти), яка побудована відповідно до відкритих специфікацій.
Використання при розробці систем відкритих специфікацій дозволяє третім сторонам розробляти для цих систем різні апаратні або програмні засоби розширення і модифікації, а також створювати програмно-апаратні комплекси з продуктів різних виробників.
Для реальних систем повна відкритість є недосяжним ідеалом. Як правило, навіть в системах, званих відкритими, цьому визначенню відповідають лише деякі частини, що підтримують зовнішні інтерфейси.
Якщо дві мережі побудовано з дотриманням принципів відкритості, то це дає наступні переваги:
- можливість побудови мережі з апаратних і програмних засобів різних виробників, що дотримуються одного і того ж стандарту;
- можливість безболісної заміни окремих компонентів мережі іншими, досконалішими, що дозволяє мережі розвиватися з мінімальними витратами;
- можливість легкого сполучення однієї мережі з іншою;
- простота освоєння і обслуговування мережі.
прикладом відкритої системи є міжнародна мережа Internet.
Дата добавления: 2015-03-07; просмотров: 2780;