Модель OSI
Мережевий протокол - це набір правил, що дозволяє здійснювати з'єднання і обмін даними між двома і більше включеними в мережу компьютерамі.Фактично різні протоколи часто описують лише різні сторони одного типу зв'язку; взяті разом, вони утворюють так званий стек протоколів. Назви "протокол" і "стек протоколів" також вказують і на програмне забезпечення, яким реалізується протокол.
Для успішної взаємодії між вузлами необхідна ефективна взаємодія цілого ряду протоколів.
Ці протоколи реалізовані на рівні обладнання і програмного забезпечення кожного мережевого пристрою.
Рівні моделі ISO
Модель складається з 7-ми рівнів, розташованих вертикально один над іншим. Кожен рівень може взаємодіяти тільки зі своїми сусідами й виконувати відведені тільки йому функції.
Рівні протоколів
Фізичний рівень
Найнижчий рівень моделі, призначений безпосередньо для передачі потоку даних. Здійснює передачу електричних або оптичних сигналів в кабель або в радіоефір і відповідно їх прийом і перетворення в біти даних відповідно до методами кодування цифрових сигналів. Іншими словами, здійснює інтерфейс між мережним носієм і мережним пристроєм. На цьому рівні працюють концентратори (хаби), повторювачі (ретранслятори) сигналу і автоматизації виробництва. Функції фізичного рівня реалізуються на всіх пристроях, підключених до мережі. З боку комп'ютера функції фізичного рівня виконуються мережевим адаптером або послідовним портом.
Функції:
-кодування інформації;
-передача бітів по фізичних каналах;-кодування інформації;
-модуляція.
-синхронізація;
-формування електричних сигналів;
Канальний рівень
Даний рівень призначений для забезпечення взаємодії мереж на фізичному рівні і контролю за помилками, які можуть виникнути. Дані, отримані з фізичного рівня, він упаковує у фрейми, перевіряє на цілісність, якщо потрібно виправляє помилки і відправляє на мережевий рівень. Канальний рівень може взаємодіяти з одним або декількома фізичними рівнями, контролюючи і керуючи цим взаємодією. Специфікація IEEE 802 розділяє цей рівень на 2 підрівні - MAC (Media Access Control) регулює доступ до поділюваного фізичного середовища, LLC (Logical Link Control) забезпечує обслуговування мережного рівня. На цьому рівні працюють комутатори, мости. У програмуванні цей рівень представляє драйвер мережевої плати, в операційних системах є програмний інтерфейс взаємодії канального і мережевого рівнів між собою, це не новий рівень, а просто реалізація моделі для конкретної ОС. Приклади таких інтерфейсів: ODI, NDIS.
Мережевий рівень
Мережевий рівень потрібен для створення єдиної транспортної системи, що поєднує кілька мереж, причому ці мережі можуть використовувати зовсім різні принципи передачі повідомлень між кінцевими вузлами й мати довільну структуру зв'язків. Функції мережного рівня досить різноманітні.
На мережному рівні сам термін мережа наділяють специфічним значенням. У цьому випадку під мережею розуміється сукупність комп'ютерів, з'єднаних між собою відповідно до однієї зі стандартних типових топологій і , що використовують для передачі даних один із протоколів канального рівня, певний для цієї топології.
Повідомлення мережного рівня прийнято називати пакетами. При організації доставки пакетів на мережному рівні використовується поняття «номер мережі». У цьому випадку адреса одержувача складається зі старшої частини - номера мережі й молодшої - номера вузла в цій мережі. Всі вузли однієї мережі повинні мати ту саму старшу частину адреси, тому терміну «мережа» на мережному рівні можна дати й інше, більше формальне визначення: мережа - це сукупність вузлів, мережна адреса яких містить той самий номер мережі.
На мережевому рівні визначаються два види протоколів: мережеві протоколи - реалізують просування пакетів через мережу. Саме ці протоколи звичайно мають на увазі, коли говорять про протоколи мережного рівня.
Транспортний рівень
Транспортний рівень забезпечує додаткам або верхнім рівням стека - прикладному й сеансовому - передачу даних з тим ступенем надійності, що їм потрібно. Модель OSI визначає п'ять класів сервісу, надаваних транспортним рівнем. Ці види сервісу відрізняються якістю надаваних послуг: терміновістю, можливістю відновлення перерваного зв'язку, наявністю засобів націлити декількох з'єднань між різними прикладними протоколами через загальний транспортний протокол, а головне - здатністю до виявлення й виправлення помилок передачі, таких як перекручування, втрата й дублювання пакетів.
Функції:
-управління потоком.
-адресація процесів;
-впорядочення пакетів, що прибувають;
-буферизація прийнятих пакетів;
Як правило, всі протоколи, починаючи із транспортного рівня й вище, реалізуються програмними засобами кінцевих вузлів мережі - компонентами їх мережних операційних систем. Як приклад транспортних протоколів можна привести протоколи TCP і UDP стека TCP/IP і протокол SPX стека Novell.
Транспортний рівень забезпечує додаткам або верхнім рівням стека - прикладному й сеансовому - передачу даних з тим ступенем надійності, що їм потрібно. Модель OSI визначає п'ять класів сервісу, надаваних транспортним рівнем. Ці види сервісу відрізняються якістю надаваних послуг: терміновістю, можливістю відновлення перерваного зв'язку, наявністю засобів націлити декількох з'єднань між різними прикладними протоколами через загальний транспортний протокол, а головне - здатністю до виявлення й виправлення помилок передачі, таких як перекручування, втрата й дублювання пакетів.
Функції:
-управління потоком.
-адресація процесів;
-впорядочення пакетів, що прибувають;
-буферизація прийнятих пакетів;
Як правило, всі протоколи, починаючи із транспортного рівня й вище, реалізуються програмними засобами кінцевих вузлів мережі - компонентами їх мережних операційних систем. Як приклад транспортних протоколів можна привести протоколи TCP і UDP стека TCP/IP і протокол SPX стека Novell.
Сеансовий рівень
Забезпечує керування діалогом: фіксує, яка зі сторін є активною в даний момент, надає засоби синхронізації. Останні дозволяють вставляти контрольні точки в довгі передачі, щоб у випадку відмови можна було повернутися назад до останньої контрольної точки, а не починати все спочатку. На практиці деякі додатки використовують сеансовий рівень, і він рідко реалізується у вигляді окремих протоколів, хоча функції цього рівня часто поєднують із функціями прикладного рівня й реалізують в одному протоколі.
Функції:
-синхронізація обміну повідомленнями;
-організація "контрольних точок" діалогу.
Представницький рівень
Представницький рівень (Presentation layer) має справу з формою подання переданої по мережі інформації, не міняючи при цьому її змісту. За рахунок рівня подання інформація, передана прикладним рівнем однієї системи, завжди зрозуміла прикладному рівню іншої системи. За допомогою засобів даного рівня протоколи прикладних рівнів можуть перебороти синтаксичні розходження в поданні даних або ж розходження в кодах символів, наприклад кодів ASCII і EBCDIC. На цьому рівні може виконуватися шифрування й дешифрування даних, завдяки якому таємність обміну даними забезпечується відразу для всіх прикладних служб. Прикладом такого протоколу є протокол Secure Socket Layer (SSL), що забезпечує секретний обмін повідомленнями для протоколів прикладного рівня стека TCP/IP.
Прикладний рівень
Забезпечує взаємодію мережі й користувача. Рівень дозволяє додаткам користувача доступ до мережних служб, таким як обробник запитів до баз даних, доступ до файлів, пересилання електронних повідомлень. Також відповідає за передачу службової інформації, надає додаткам інформацію про помилки і формує запити до рівня уявлення. Приклад: HTTP, POP3, SMTP.
Протоколи OSI відрізняються складністю і неоднозначністю специфікацій. Ці властивості стали результатом спільної політики розробників стека, які прагнули врахувати в своїх протоколах все різноманіття вже існуючих і нових технологій.
На фізичному і канальному рівнях стек OSI підтримує протоколи Ethernet, Token Ring, FDDI, а також протоколи LLC, X.25 і ISDN, тобто, як і більшість інших стеків, використовує всі розроблені поза стека популярні протоколи нижніх рівнів.
Мережевий рівень включає порівняно рідко використовувані протоколи Connection- oriented Network Protocol (CONP) і Connectionless Network Protocol (CLNP). Як випливає з назв, перший з них орієнтований на з'єднання (connection-oriented), другий - на його відсутність (connectionless).
Більш популярними протоколами маршрутизації стека OSI є: протокол між кінцевою і проміжною системами (End System - Intermediate System, ES-IS) і між проміжними системами (Intermediate System - Intermediate System, IS-IS).
Транспортний рівень стека OSI відповідно до функцій, визначених для нього в моделі OSI, приховує відмінності між мережевими сервісами з встановленням з'єднання і без встановлення з'єднання, так що користувачі отримують необхідну якість обслуговування незалежно від нижчого мережного рівня. Щоб забезпечити це, транспортний рівень вимагає, щоб користувач задав потрібну якість обслуговування.
Служби прикладного рівня забезпечують передачу файлів, емуляцію термінала, сервіс каталогів і пошту. З них найбільш популярними є сервіс каталогів (стандарт Х.500), електронна пошта (Х.400), протокол віртуального терміналу (VTP), протокол передачі, доступу та управління файлами (FTAM), протокол пересилки і управління роботами (JTM).
Стек протоколів TCP/IP
Стек TCP/IP на нижньому рівні підтримує всі популярні стандарти фізичного й канального рівнів: для локальних мереж — це Ethernet, Token Ring, FDDI, для глобальних — протоколи роботи на аналогових комутованих і виділених лініях SLIP, PPP, протоколи територіальних мереж X.25 і ISDN. Основними протоколами стека, що дали йому назву, є протоколи IP і TCP. Ці протоколи в термінології моделі OSI належать до мережного і транспортного рівнів, відповідно. IP забезпечує просування пакета по складеній мережі, а TCP гарантує надійність його доставки.
TCP/IP увібрав у себе велику кількість протоколів прикладного рівня. До них належать такі популярні протоколи: FTP, telnet, SMTP, гіпертекстові сервіси служби WWW і багато інших. Дуже корисною властивістю, завдяки якій цей протокол може застосовуватися у великих мережах, є його здатність фрагментувати пакети.
У протоколі TCP/IP інформація передається у вигляді послідовності дейтаграм. Одне повідомлення може передаватися як ряд дейтаграм, які збираються в повідомлення в місці прийому.
Application Programming Interface (API)
API (програмний інтерфейс програми, інтерфейс прикладного програмування) - набір готових класів, процедур, функцій, структур і констант, що надаються додатком (бібліотекою, сервісом) або операційною системою для використання в зовнішніх програмних продуктах. Використовується програмістами при написанні всіляких додатків.
API є абстрактним поняттям — програмне забезпечення, що пропонує деякий API, часто називають реалізацією (англ. implementation) даного API. У багатьох випадках API є частиною набору розробки програмного забезпечення, водночас, набір розробки може включати як API, так і інші інструменти/апаратне забезпечення, отже ці два терміни не є взаємозамінювані.
API визначає функціональність, яку надає програма (модуль, бібліотека), при цьому API дозволяє абстрагуватися від того, як саме ця функціональність реалізована.
API визначає функціональність, яку надає програма (модуль, бібліотека), при цьому API дозволяє абстрагуватися від того, як саме ця функціональність реалізована.
Якщо програму (модуль, бібліотеку) розглядати як чорний ящик, то API - це безліч «ручок», які доступні користувачеві даного ящика і які він може крутити і смикати.
Програмні компоненти взаємодіють один з одним за допомогою API. При цьому зазвичай компоненти утворюють ієрархію - високорівневі компоненти використовують API низькорівневих компонентів, а ті, в свою чергу, використовують API ще більш низькорівневих компонентів.
За таким принципом побудовані протоколи передачі даних через Інтернет. Стандартний стек протоколів (мережева модель OSI) містить 7 рівнів (від фізичного рівня передачі біт до рівня протоколів програм, подібних протоколів HTTP і IMAP). Кожен рівень користується функціональністю попереднього ( «нижчого») рівня передачі даних і, в свою чергу, надає потрібну функціональність наступного ( «вищерозміщений») рівню.
API бібліотеки функцій і класів включає в себе опис сигнатур і семантики функцій.
Типи сокетів
Потокові сокети (stream socket)
Потоковий сокет - це сокет з встановленим з'єднанням, що складається з потоку байтів, який може бути двонаправленим, т, е. Через цю кінцеву точку додаток може і передавати, і отримувати дані. Потоковий сокет гарантує виправлення помилок, обробляє доставку і зберігає послідовність даних. На нього можна покластися в доставці упорядкованих, сдублірованние даних.
Потоковий сокет також підходить для передачі великих обсягів даних, оскільки накладні витрати, пов'язані з встановленням окремого з'єднання для кожного повідомлення, що відправляється, може виявитися неприйнятним для невеликих обсягів даних. Потокові сокети досягають цього рівня якості за рахунок використання протоколу Transmission Control Protocol (TCP). TCP забезпечує надходження даних на іншу сторону в потрібній послідовності і без помилок.
Для цього типу сокетів шлях формується до початку передачі повідомлень. Тим самим гарантується, що обидві що у взаємодії сторони приймають і відповідають. Якщо додаток відправляє одержувачу два повідомлення, то гарантується, що ці повідомлення будуть отримані в тій же послідовності.
Однак, окремі повідомлення можуть дробитися на пакети, і способу визначити межі записів не існує. При використанні TCP цей протокол бере на себе розбиття переданих даних на пакети відповідного розміру, відправку їх в мережу і складання їх на іншій стороні. Додаток знає тільки, що воно відправляє на рівень TCP певне число байтів і інша сторона отримує ці байти. У свою чергу TCP ефективно розбиває ці дані на пакети відповідного розміру, отримує ці пакети на іншій стороні, виділяє з них дані і об'єднує їх разом.
Потоки базуються на явних з'єднаннях: сокет А запитує з'єднання з сокетом В, а сокет В або погоджується із запитом на встановлення з'єднання, або відкидає його.
Якщо дані повинні гарантовано доставлятися іншій стороні або розмір їх великий, потокові сокети краще дейтаграмним. Отже, якщо надійність зв'язку між двома додатками має першорядне значення, вибирайте потокові сокети.
Сервер електронної пошти являє приклад програми, яка повинна доставляти зміст в правильному порядку, без дублювання і пропусків. Потоковий сокет розраховує, що TCP забезпечить доставку повідомлень по їх призначень.
Дейтаграммний сокети (datagram socket)
Дейтаграммний сокети іноді називають сокетами без організації з'єднань, т. Е. Ніякого явного з'єднання між ними не встановлюється - повідомлення відправляється вказаною сокету і, відповідно, може виходити від зазначеного сокета.
Потокові сокети в порівнянні з дейтаграммний дійсно дають більш надійний метод, але для деяких додатків накладні витрати, пов'язані з установкою явного з'єднання, неприйнятні (наприклад, сервер часу доби, що забезпечує синхронізацію часу для своїх клієнтів). Зрештою на встановлення надійного з'єднання з сервером потрібен час, яке просто вносить затримки в обслуговування, і завдання серверного додатка не виконується. Для скорочення накладних витрат потрібно використовувати дейтаграммний сокети.
Використання дейтаграмним сокетов вимагає, щоб передачею даних від клієнта до сервера займався User Datagram Protocol (UDP). У цьому протоколі на розмір повідомлень накладаються деякі обмеження, і на відміну від потокових сокетів, які вміють надійно відправляти повідомлення сервера-адресату, дейтаграммний сокети надійність не забезпечують. Якщо дані загубилися десь в мережі, сервер не повідомить про помилки.
Крім двох розглянутих типів існує також узагальнена форма гнізд, яку називають необроблюваних або сирими.
Сирі сокети (raw socket)
Головна мета використання сирих сокетів полягає в обході механізму, за допомогою якого комп'ютер обробляє TCP / IP. Це досягається забезпеченням спеціальної реалізації стека TCP / IP, що заміщає механізм, наданий стеком TCP / IP в ядрі - пакет безпосередньо передається з додатком і, отже, обробляється набагато ефективніше, ніж при проході через головний стек протоколів клієнта.
За визначенням, сирої сокет - це сокет, який приймає пакети, обходить рівні TCP і UDP в стеці TCP / IP і відправляє їх безпосередньо з додатком.
При використанні таких гнізд пакет не проходить через фільтр TCP / IP, тобто ніяк не обробляється, і постає у своїй сирої формі. В такому випадку обов'язок правильно обробити всі дані і виконати такі дії, як видалення заголовків і розбір полів, лягає на отримує додаток - все одно, що включити в додаток невеликий стек TCP / IP.
Однак нечасто може знадобитися програма, що працює з сирими сокетами. Якщо ви не пишете системне програмне забезпечення або програму, аналогічну аналізатору пакетів, вникати в такі деталі не доведеться. Сирі сокети головним чином використовуються при розробці спеціалізованих низькорівневих протокольних додатків. Наприклад, такі різноманітні утиліти TCP / IP, як trace route, ping або arp, використовують сирі сокети.
Взаємодія протоколів
Протокол IP - визначає спосіб адресації на мережевому рівні. Забезпечує маршрутизацію в мережах, що представляють собою об'єднання мереж, що базуються на різних мережевих технологіях. (Internet protocol)
Протокол ICMP (Internet Control Message Protocol) - застосовується для обміну інформацією про помилки передачі даних протоколом IP, а також для обміну інформацією, що управляє на мережевому рівні. Зокрема, утиліта PING використовує цей протокол для посилки так званого "луна-запиту".
Протокол НТТР - використовується для організації доступу до загальних даних, розташованих на веб-серверах, з метою публікації і читання загальнодоступної інформації. Протокол HTTP описує взаємодію між HTTP-серверами (веб-серверами) і HTTP-клієнтами (веб-браузерами).
Протокол FTP - служба Інтернету, що забезпечує передачу файлів між комп'ютерами.
Протокол ARP (Address Resolution Protocol) - призначений для визначення апаратної адреси вузла призначення по заданому IP-адресу.
Протокол SNMP - дозволяє централізовано керувати вузлами мережі, наприклад серверами, робочими станціями, маршрутизаторами, мостами і концентраторами. Крім того, SNMP можна використовувати для конфігурування віддалених пристроїв, моніторингу продуктивності мережі, виявлення помилок мережі та спроб несанкціонованого доступу, а також для аудиту використання мережі.
Протокол SMTP - застосовується поштовими серверами для передачі електронної пошти. Сервер IIS підтримує роботу з протоколом SMTP для обробки поштових повідомлень;
Протокол Telnet - протокол емуляції терміналу, застосовуваний для підключення до віддалених вузлів мережі. Telnet дозволяє клієнтам віддалено запускати додатки; крім того, він спрощує віддалене адміністрування.
Комментарии
Отправить комментарий