- •Тема 1.3 Протоколи мереж та методи доступу
- •Алгоритми доступу до середовища
- •Мережеві стандарти Ethernet і ieee 802.3
- •Лом і фізичний рівень
- •Варіант комбінування трьох існуючих стандартів виконання розводки в мережах
- •Лом і канальний рівень
- •Лом і мережевий рівень
- •Одночасний доступ багатьох користувачів з контролем несучої і виявленням колізій
- •Формат фрейму Ethernet II
- •Адресація в мережах Ethernet.
- •Обмеження на розмір мережі
- •Мережі Token Ring і fddi.
- •Стандарти глобальних мереж
- •Глобальні мережі і фізичний рівень
- •Режими стану передачі
- •Функціонування протоколу Frame Relay
- •Протокол ррр забезпечує надійне з'єднання між маршрутизаторами
- •Компоненти протоколу ррр
- •Isdn також може надати чистий канал передачі даних, через який встановлюються ррр-з'єднання.
- •Інкапсуляція isdn
- •Структура протоколу
- •Команди ftp:
- •Протокол pop3
- •Заборона віддаленого root-доступу.
- •Протоколи рівня представлення
- •Xdr виконаний як портативна (переносна) бібліотека функцій між різними операційними системами і так само не залежить від транспортного рівня.
- •Протоколи сеансового рівня
- •Протоколи мережевого рівня
- •Протоколи канального рівня
- •Швидкий Ethernet (100 Мбіт/с) (Fast Ethernet)
- •Гігабітний Ethernet
- •Технології (стандарти) фізичного рівня
- •Very High Data-Rate Digital Subscriber Line (vdsl). Аналогічна hdsl, швидкість до 56 Мбіт/с. Відстань до 1,5 км. Технологія вельми дорога і не знаходить широкого застосування.
Xdr виконаний як портативна (переносна) бібліотека функцій між різними операційними системами і так само не залежить від транспортного рівня.
Протокол APF (Apple Fuling Protocol) - протокол, що відноситься до рівня представлення і прикладного рівня моделі OSI. Його призначення - надавати доступ до даних і файлів в операційній системі Mac OS X. Реалізована підтримка сумісних юнікод імен файлів, обмеження файлів ACL і Posix; можливість розширених засобів блокування файлів. До появи версії Mac OS 9, це був єдиний протокол передачі файлів, для цих типів ОС.
ОС Windows, Linux та інші мають підтримку файлової системи AFS.
Реалізація протоколу мало свій початок у версії System 6 (Mac OS), а також в серверної редакції Mac OS X Server. Починаючи з версії протоколу AFP 3 і далі, реалізована підтримка роботи з TCP/IP.
Протоколи сеансового рівня
Протокол SSL (Secure Sockets Layer — рівень захищених сокетів) - це захищений протокол зв'язку для передачі важливих документів по локальній мережі і Інтернету. SSL забезпечує підвищену безпеку мережевого з'єднання за допомогою закритого ключа, що дозволяє зашифрувати дані, що передаються. Відображення деяких web-сторінок супроводжується появою «таємничого» жовтого замочка в нижній панелі інтернет-оглядача. Цей «замочок» з'являється тоді, коли починається SSL-з'єднання. Перевагою SSL є те, що він незалежний від прикладного протоколу. Протоколи додатки - такі, як FTP, HTTP, TELNETта інші - можуть працювати поверх протоколу SSL абсолютно прозоро. Протокол SSL надає своєрідний «безпечний канал», який виконує три основні функції:
- канал забезпечує приватність. Шифрування використовується для всіх повідомлень після простого діалогу, який служить для визначення секретного ключа;
- канал аутентифікований. Серверна частина діалогу аутентифікується в примусовому порядку, клієнтська - опціонально;
- канал має високу надійність та відмовостійкість. Транспортування повідомлень включає в себе перевірку цілісності (із залученням MAC).
В SSL всі дані пересилаються у виглядітак званих рекордів, тобто записів - об'єктів, які складаються з заголовка і деякої кількості даних. Кожен заголовок рекорду містить два або три байти коду довжини. Якщо старший біт в першому байті коду довжини рекорду дорівнює 1, то рекорд не має заповнювача, і повна довжина заголовка дорівнює 2 байтам, в іншому випадку рекорд містить заповнювач, і повна довжина заголовка дорівнює 3 байтам. Передача завжди починається з заголовка.
Протокол діалогу SSL має дві основні фази. Перша використовується для встановлення конфіденційного каналу комунікацій. Друга призначена для аутентифікації клієнтської сторони. Розглянемо специфікацію процесу діалогу SSL більш детально. Протокол SSL складається з двох етапів: встановлення автентичності сервера і необов'язкове встановлення автентичності клієнта.
На першому етапі сервер у відповідь на запит клієнта посилає свій сертифікат і параметри шифрування. Потім клієнт генерує майстер-ключ, зашифровує його відкритим ключем сервера і відсилає серверу. Сервер розшифровує майстер-ключ своїм приватним ключем і підтверджує свою справжність клієнту, повертаючи йому повідомлення, завірене майстром-ключем клієнта. Наступні дані шифруються та завіряються ключами, отриманими на основі цього ж майстра-ключа.
На другому етапі, який не є обов'язковим, сервер посилає запит клієнта, а клієнт підтверджує серверу свою автентичність, повертаючи запит з власним цифровим підписом та сертифікат відкритого ключа. SSL підтримує різноманітні криптографічні алгоритми. В ході встановлення зв'язку використовується криптосистема відкритого ключа RSA. Після обміну ключами використовується багато різних шифрів: RC2, RC4, IDEA, DES і TripleDES.
Протокол TLS (Transport Layer Security — безопасность транспортного уровня) - протокол, який заснований і дуже схожий на SSL. Первинною метою протоколу TLS (Transport Layer Security) є забезпечення конфіденційності і цілісності даних при комунікації двох додатків. Протокол має два рівні: протокол записів TLS і протокол діалогу TLS. На нижньому рівні, працюючому поверх надійного транспортного протоколу (наприклад, TCP), розміщується протокол записів TLS. Протокол діалогу TLS забезпечує безпечне з'єднання, яке має три фундаментальні властивості:
- ідентичність партнерів може бути з'ясована з використанням асиметричної криптографії (наприклад RSA, DSS та інші). Ця аутентифікація може бути зроблена опціональною, але вона необхідна, принаймні, для одного з партнерів.
- виявлення загального секретного коду є безпечним: цей секретний код недоступний зловмисникові навіть якщо він ухитриться підключитися до з'єднання.
- діалог надійний: атакуючий не може модифікувати обговорюване з'єднання без того, щоб бути виявленим партнерами обміну.
Однією з переваг TLS є те, що він не залежить від протоколу додатка. Протоколи верхнього рівня можуть розміщуватися поверх протоколу TLS прозорим чином. Стандарт TLS, однак, не специфікує те, як протоколи збільшують безпеку за допомогою TLS - рішення про те, як ініціалізувати TLS-діалог і як інтерпретувати сертифікати аутентифікації, залишається на розсуд розробників протоколів і програм, які працюють поверх TLS.
«Протокол записів» забезпечує безпеку з'єднання, яка заснована на таких властивостях з'єднання, як:
- конфіденційність. Для захисту даних використовується один з алгоритмів симетричного шифрування. Ключ для цього алгоритму створюється для кожної сесії і заснований на секреті, про який домовляються в протоколі Рукостискання. Протокол записів також може використовуватися без шифрування.
- цілісність. Забезпечується перевірка цілісності повідомлення за допомогою МАС з ключем. Для обчислення МАС використовуються безпечні хеш-функції SHA-1 і MD5. Протокол записів може виконуватися без обчислення МАС, але зазвичай функціонує в цьому режимі.
Протокол Записів використовується для інкапсуляції різних протоколів більш високого рівня, одним з яких є протокол Рукостискання, який використовує протокол Записів в якості транспорту для ведення переговорів про параметри безпеки. Протокол Рукостискання дозволяє серверу та клієнту аутентифікувати один одного і домовитися про алгоритми шифрування і криптографічні ключі до того, як прикладний протокол, що виконується на тому ж рівні, почне передавати або приймати перші байти даних. Таким чином, протокол TLS забезпечує:
- криптографічну безпеку. TLS повинен використовуватися для встановлення безпечного з'єднання між двома партнерами;
- сумісність. Незалежні програмісти повинні бути здатні розробляти додатки, що використовують TLS, які будуть здатні успішно обмінюватися криптографічними параметрами без знання особливостей програм один одного;
- розширюваність. TLS шукає спосіб, як при необхідності вбудувати в систему нові ключі і методи шифрування. Тут є дві побічні цілі: виключити необхідність створення нового протоколу (що може бути пов'язане з введенням нових слабких місць) і зробити непотрібним впровадження нової бібліотеки, що забезпечує безпеку.
- відносну ефективність. Криптографічні операції вимагають великих потужностей ЦПУ (central processing unit) - особливо цим славляться операції з відкритими ключами. З цієї причини протокол TLS має опціональну схему кешування сесії, що дозволяє зменшити число з'єднань, встановлюваних з використанням нових тимчасових буферів, щоб зменшити активністьв мережі.
Протокол NWLink - це Microsoft-сумісний IPX / SPX-протокол для Windows. Він необхідний для доступу до мереж під управлінням серверів з ОС Nоwell NetWare. Сам протокол NWLink реалізує як мережевий, так і транспортний рівень взаємодії. Для доступу до файлів або принтерів сервера NetWare необхідно задіяти спеціальний редиректор, представлений в Windows XP Professional службою CSNW (клієнт для мереж NetWare), а в Windows Server 2003 - службою GSNW (шлюз для мереж NetWare). Протокол NWLink включений до складу обох ОС Windows і встановлюється автоматично разом з клієнтом та службою шлюзу для NetWare.
Протокол NETBIOS (Network Basic Input/Output System - базова мережева система введення/виведення), розроблений IBM. Протокол воістину є "космополітом" мережевої моделі OSI, тому, крім сеансового, працює на мережевому, транспортному і рівні каналів зв'язку. Протокол NetBIOS був розроблений в 1983 р. компанією Sytek для IBM для локальної мережі персональних комп'ютерів. Інтерфейс був розроблений для малих мереж і підтримував не більше 80 комп'ютерів одночасно. NetBIOS - це мережевий сервіс сеансового рівня, який виконує відображення імен в IP-адреси.
В даний час широкого поширення набула поліпшена версія NETBIOS - NetBeui (NetBios extended user interface). Цей протокол використовується операційними системами LAN manager, LAN server, Windows for Workgroups і Windows NT, а по своїй функції займає нішу протоколів TCP/IP. Він має високу швидкодію і служить для об'єднання невеликих локальних мереж (20-200 ЕОМ) одна з одною або з головною ЕОМ. У версіях NetBuei (3.0 і вище) знято обмеження на число одночасних сесій (254). Серед обмежень NetBuei слід назвати відсутність внутрішньої маршрутизації і серйозні обмеження при роботі в регіональних мережах. З цієї причини NetBeui рекомендується використовувати виключно для локальних мереж, для зовнішніх же зв'язків використовувати, наприклад, TCP/IP.
Протоколи транспортного рівня
Протокол TCP (Transmission Control Protocol).
Історія TCP сягає своїм корінням вглиб 70-х. Створенню TCP зобов'язане Агентство по Впровадженню Науково-дослідних Проектів Передових технологій при Міністерстві оборони (DARPA). У той час DARPA та інші урядові організації чітко уявляли собі, які потенційні можливості приховані в технології мережі з комутацією пакетів. Перед дослідниками було поставлено завдання домогтися високостійкої (на випадок атомної війни) роботи гетерогенних систем. DARPA фінансувала дослідження, що проводились Стенфордським університетом та компаніями Bolt, Beranek і Newman (BBN) з метою створення ряду протоколів зв'язку, що відповідають поставленим вимогам. Результатом цих робіт був комплект інтернет-протоколів, одним з яких був і протокол TCP.
Не зважаючи на всі зручність і нинішню популярність TCP/IP, з точки зору безпеки протокол далеко не ідеальний. TCP являє собою транспортний механізм, який організовує потік даних з попередньою установкою з'єднання. На відміну від UDP, TCP гарантує, що додаток отримає дані точно в такому ж вигляді, в якому вони були відправлені.
В основі роботи протоколу лежать принципи пакетної передачі даних. Пакетна передача даних є варіантом економічної і раціональної передачі даних: уявіть собі, якби дані передавалися не пакетами, а суцільним потоком - результатом такої передачі стали б часті розриви, низька відмовостійкість і тому подібне.
Для перевірки цілісності пакетів протокол TCP використовує їх контрольні суми. Дана обставина звільняє процеси прикладного рівня від необхідності «включення» тайм-аутів і повторних передач.
Найбільш типовими прикладними процесами, що використовують TCP, є FTP і telnet. Крім того, на базі TCP працюють SMTP, HTTP, X-window, RCP і деякі інші протоколи. Прикладні процеси (додатки), реалізовані на вищеперелічених, а також на інших протоколах, взаємодіють з TCP-модулем через порти. Кожному такому додатку відповідає свій номер порту. Коли прикладний процес починає використовувати TCP, модуль TCP на машині клієнта і модуль TCP на машині сервера починають спілкуватися. Ці два кінцевих модуля TCP обмінюються інформацією про стан з'єднаннятак званого віртуального каналу. Канал є дуплексним: дані одночасно передаються в обох напрямках. У той час як один прикладний процес записує дані в TCP-порт (далі вони проходять по мережі), інший читає їх зі свого TCP-порту.
TCP-протокол завжди вимагає підтвердження прийому/передачі. Для забезпечення надійної доставки використовуються тайм-аути і повторні сеанси передачі даних. Відправнику все ж дозволяється передавати деяку кількість даних, не чекаючи підтвердження прийому раніше відправлених даних. Таким чином, між відправленими і підтвердженими даними існує вікно вже відправлених, але ще не підтверджених даних. Кількість байтів, яку можна передавати без підтвердження, називається розміром вікна. Як правило, розмір вікна встановлюється в стартових файлах мережевого програмного забезпечення. Так як TCP-канал є дуплексним, то підтвердження для даних, що йдуть в одному напрямку, можуть передаватися разом з даними, що йдуть у протилежному напрямку. Приймачі на обох кінцях віртуального каналу виконують керування потоком переданих даних для того, щоб не допускати переповнення буферів.
Протокол UDP (User Datagram Protocol - протокол дейтаграм користувача) - мережевий протокол для передачі даних в мережах IP. UDP є одним з найпростіших протоколів транспортного рівня моделі OSI.
На відміну від TCP, UDP не гарантує доставку пакета, тому абревіатуру іноді розшифровують як «Unreliable Datagram Protocol» («протокол ненадійних дейтаграм»). Це дозволяє йому набагато швидше й ефективніше доставляти дані для додатків, яким не потрібна велика пропускна здатність ліній зв'язку або потрібний малий час доставки даних.
На відміну від TCP, UDP використовується для широкомовної і багатоадресної розсилки. Протокол UDP надає прикладним програмам можливість відправляти повідомлення іншим додаткам, використовуючи мінімальну кількість параметрів протоколу.
Прикладами мережевих додатків, що використовують UDP, є NFS (Network File System - мережева файлова система) і SNMP (Simple Network Management Protocol - простий протокол управління мережею). Безсумнівна перевага протоколу UDP полягає в тому, що він вимагає мінімум установок і параметрів для з'єднання двох процесів між собою. Як і у випадку TCP, взаємодія між прикладними процесами і модулем UDP здійснюється через UDP-порти. Порти нумеруються починаючи з нуля. Прикладний процес, що надає деякі послуги іншим прикладним процесам (сервер), очікує надходження повідомлень в порт, спеціально виділений для цих послуг.
Протокол RTP (Real-Time Protocol) працює на транспортному рівні поверх протоколу UDP і використовується при передачі трафіку реального часу. Для того, щоб зрозуміти всю виняткову значимість і «корисність» даного протоколу, необхідно зазначити наступне: як відомо, в процесі транспортування в мережах можлива втрата пакетів і зміна їх порядку, а також варіація часу доставки. Всі ці можливі зміни на практиці змінюються в досить широких межах. Так, мультімедіаконтент накладає досить жорсткі вимоги на транспортне середовище. Для узгодження таких вимог з можливостями сучасного Інтернету і був розроблений протокол RTP. При передачі даних протокол RTP зберігає в своєму заголовку дані, необхідні для відновлення звуку або відеозображення в приймальному вузлі, а також інші необхідні дані: дані про тип кодування інформації (JPEG, MPEG і т.п.) тощо. У заголовку даного протоколу, зокрема, передаються тимчасова мітка і номер пакету. Ці параметри дозволяють при мінімальних затримках визначити порядок і момент декодування кожного пакету, а також інтерполювати втрачені пакети.
Протокол SCTP (Stream Control Transmission Protocol - протокол передачі з керуванням потоком) - мережевий протокол транспортного рівня в мережах TCP/IP, описаний в RFC 2960. Призначення SCTP аналогічно TCP і UDP, проте є і відмінності. Основні з них пов'язані з підтримкою в SCTP так званої «Багатодомності» (multihoming) і часткового упорядкування.
Багатодомність дозволяє SCTP-хосту встановлювати сеанс з іншим SCTP‑хостом за допомогою кількох інтерфейсів, кожен з яких ідентифікується окремою IP-адресою.
Часткове упорядкування дає SCTP можливість здійснювати впорядковану доставку однієї або декількох пов'язаних послідовностей повідомлень, що пересилаються між двома хостами.
Завдяки цьому SCTP може виявитися особливо корисним у тих додатках, де необхідна надійна доставка і швидка обробка безлічі не пов'язаних між собою потоків даних. SCTP підтримує ряд функцій, успадкованих від TCP і інших протоколів, які пропонують додаткову функціональність.
SCTP був створений в рамках проекту, започаткованого робочою групою IETF Signaling Transport і присвяченого розробці спеціалізованого транспортного протоколу для рішень, пов'язаних з передачею голосу по IP-мережах (VoIP‑телефонія). Як і TCP, протокол SCTP пропонує додаткам, взаємодіючим по IP-мережі, орієнтовану на з'єднання типу point to point (точка/точка) транспортну службу з гарантованою доставкою. Новий протокол успадкував багато функцій, розроблених для TCP, в тому числі можливість контролю перевантаження і відновлення загублених пакетів. Тобто будь-який додаток, що працює по протоколу TCP, можна перевести на SCTP без втрати функціональності.
