Семірівнева модель OSI. Передача даних за рівнями OSI. Інкапсуляція, декапсуляція. Інкапсуляція пакетів та проміжні вузли

Модель OSI ( Open System Interconnect Reference Model, Еталонна модель взаємодії відкритих систем) є універсальним стандартом на взаємодію двох систем (комп'ютерів) через обчислювальну мережу.

Ця модель описує функції семи ієрархічних рівнів та інтерфейси взаємодії між рівнями. Кожен рівень визначається сервісом, який він надає вищому рівню, і протоколом - набором правил та форматів даних для взаємодії між собою об'єктів одного рівня, що працюють на різних комп'ютерах.

Ідея полягає в тому, що вся складна процедура мережевої взаємодії може бути розбита на деяку кількість примітивів, які послідовно виконуються об'єктами, співвіднесеними з рівнями моделі. Модель побудована так, що об'єкти одного рівня двох комп'ютерів, що взаємодіють, повідомляються безпосередньо один з одним за допомогою відповідних протоколів, не знаючи, які рівні лежать під ними і які функції вони виконують. Завдання об'єктів - надати через стандартизований інтерфейс певний сервіс вищому рівню, скориставшись, якщо потрібно, сервісом, який надає даному об'єктунижчий рівень.

Наприклад, процес надсилає дані через мережу процесу, що знаходиться на іншому комп'ютері. Через стандартизований інтерфейс процес-відправник передає дані нижньому рівню, який надає процесу сервіс пересилання даних, а процес-одержувач через такий самий стандартизований інтерфейс отримує ці дані від нижнього рівня. При цьому жоден з процесів не знає і не має необхідності знати, як саме здійснює передачу даних протокол нижнього рівня, скільки рівнів знаходиться під ним, яке фізичне середовище передачі даних і яким шляхом вони рухаються.

Ці процеси, з іншого боку, можуть бути не на верхньому рівні моделі. Припустимо, що вони через стандартний інтерфейсвзаємодіють із додатками вищого рівня та його завдання (наданий сервіс) - перетворення даних, саме фрагментація і збирання великих блоків даних, які вищестоящі програми відправляють друг другу. При цьому сутність цих даних та їх інтерпретація для аналізованих процесів зовсім не важливі.

Можлива також взаємозамінність об'єктів одного рівня (наприклад, при зміні способу реалізації сервісу) таким чином, що об'єкт вищого рівня не помітить заміни.

Повернемося до прикладу: додатки не знають про те, що їх дані перетворюються саме шляхом фрагментації/складання, їм достатньо знати те, що нижній рівеньнадає їм якийсь “правильний” обслуговування перетворення даних. Якщо ж для якоїсь іншої мережі знадобиться не фрагментація/складання пакетів, а, скажімо, перестановка місцями парних і непарних біт, то процеси рівня, що розглядається, будуть замінені, але програми нічого не помітять, оскільки їх інтерфейси з нижчим рівнем стандартизовані, а конкретні дії нижчих рівнів приховані від них.

Об'єкти, що виконують функції рівнів, можуть бути реалізовані в програмному, програмно-апаратному або апаратному вигляді. Як правило, чим нижчий рівень, тим більша частка апаратної частини у його реалізації.

Організація мережевого взаємодії комп'ютерів, побудованого з урахуванням ієрархічних рівнів, як описано вище, часто називається протокольним стеком.

1.1.1. Рівні моделі OSI

Нижче перераховані (у напрямку зверху донизу) рівні моделі OSI та вказані їх загальні функції.

Рівень програми (Application)- інтерфейс із прикладними процесами.

Рівень вистави (Presentation)- Узгодження подання (форматів, кодувань) даних прикладних процесів.

Сеансовий рівень (Session)- встановлення, підтримка та закриття логічного сеансу зв'язку між віддаленими процесами.

Транспортний рівень (Transport)- Забезпечення безпомилкового наскрізного обміну потоками даних між процесами під час сеансу.

Мережевий рівень (Network)- фрагментація та складання даних, що передаються транспортним рівнем, маршрутизація та просування їх по мережі від комп'ютера-відправника до комп'ютера-отримувача.

Канальний рівень (Data Link)- управління каналом передачі, управління доступом до середовища передачі, передача даних каналом, виявлення помилок у каналі та його корекція.

Фізичний рівень (Physical)- фізичний інтерфейс з каналом передачі, подання даних як фізичних сигналівта їх кодування (модуляція).

1.1.2. Інкапсуляція та обробка пакетів

При просуванні пакета даних за рівнями зверху вниз кожен новий рівеньдодає до пакета свою службову інформацію у вигляді заголовка і, можливо, трейлера (інформації, що міститься в кінці повідомлення). Ця операція називається інкапсуляцією даних верхнього рівня пакеті нижнього рівня. Службова інформація призначається для об'єкта того ж рівня віддаленому комп'ютері, її формат та інтерпретація визначаються протоколом даного рівня.

Зрозуміло, дані, що надходять з верхнього рівня, можуть насправді бути пакетами з вже інкапсульованими даними ще більш верхнього рівня.

З іншого боку, при отриманні пакета від нижнього рівня він поділяється на заголовок (трейлер) та дані. Службова інформація із заголовка (трейлера) аналізується і відповідно до неї дані, можливо, надсилаються одному з об'єктів верхнього рівня. Той у свою чергу розглядає ці дані як пакет зі своєю службовою інформацією та даними для ще більш верхнього рівня, і процедура повторюється, поки дані користувача, очищені від усієї службової інформації, не досягнуть прикладного процесу.

Можливо, пакет даних не буде доведений до самого верхнього рівня, наприклад, у разі, якщо даний комп'ютер є проміжною станцією на шляху між відправником і одержувачем. У цьому випадку об'єкт відповідного рівня при аналізі службової інформації помітить, що пакет на цьому рівні адресований не йому (хоча з точки зору рівнів нижче він був адресований саме цьому комп'ютеру). Тоді об'єкт виконає необхідні діїдля перенаправлення пакета до місця призначення або повернення відправнику з повідомленням про помилку, але в жодному разі не просуватиме дані на верхній рівень.

Модель OSI запропонована досить давно, проте протоколи, на ній засновані, використовуються рідко, по-перше, через свою не завжди виправдану складність, по-друге, через існування хоч і не відповідних строго моделі OSI, але вже добре зарекомендували себе стеків протоколів (наприклад, TCP/IP).

Тому модель OSI ст о ит розглядати, в основному, як опорну базудля класифікації та зіставлення протокольних стеків.

1.2. Стек протоколів TCP/IP

TCP/IP- Збірна назва для набору (стеку) мережевих протоколів різних рівнів, що використовуються в Інтернеті. Особливості TCP/IP:

  • відкриті стандарти протоколів, що розробляються незалежно від програмного та апаратного забезпечення;
  • незалежність від фізичного середовища передачі;
  • система унікальної адресації;
  • стандартизовані протоколи високого рівня для поширених сервісів користувача.

Мал. 1.2.1. Стек протоколів TCP/IP

Стек протоколів TCP/IP ділиться на 4 рівні: прикладний (application), транспортний (transport), міжмережевий (internet) та рівень доступу до середовища передачі (network access). Терміни, що застосовуються для позначення блоку даних, що передаються, різні при використанні різних протоколів транспортного рівня- TCP і UDP, тому малюнку 1.2.1 зображено два стека. Як і моделі OSI, дані більш верхніх рівнів інкапсулюються в пакети нижніх рівнів (див. рис. 1.2.2).

Мал. 1.2.2. Приклад інкапсуляції пакетів у стеку TCP/IP

Зразкове співвідношення рівнів стеків OSIта TCP/IP показано на рис. 1.2.3.

Мал. 1.2.3. Співвідношення рівнів стеків OSI та TCP/IP

Нижче коротко розглядаються функції кожного рівня та приклади протоколів. Програма, що реалізує функції того чи іншого протоколу, часто називається модулем, наприклад, IP-модуль, модуль TCP.

1.2.1. Рівень додатків

Програми, що працюють зі стеком TCP/IP, можуть також виконувати функції рівнів подання та частково сеансової моделі OSI; наприклад, перетворення даних до зовнішнього подання, групування даних передачі і т.п.

Найпоширенішими прикладами додатків є програми telnet, ftp, HTTP-сервери та клієнти (WWW-броузери), програми роботи з електронною поштою.

Для пересилання даних іншому додатку додаток звертається до того чи іншого модуля транспортного рівня.

1.2.2. Транспортний рівень

Протоколи транспортного рівня забезпечують прозору (наскрізну) доставку даних (end-to-end delivery service) між двома прикладними процесами. Процес, що отримує або надсилає дані за допомогою транспортного рівня, ідентифікується на цьому рівні номером, який називається номером порту. Таким чином, роль адреси відправника та одержувача на транспортному рівні виконує номер порту (або простіше – порт).

Аналізуючи заголовок свого пакета, отриманого від між мережевого рівня, Транспортний модуль визначає за номером порту одержувача, якому з прикладних процесів спрямовані дані, і передає ці дані відповідного прикладного процесу (можливо після перевірки їх на наявність помилок і т.п.). Номери портів одержувача та відправника записуються в заголовок транспортним модулем, що надсилає дані; заголовок транспортного рівня містить також іншу службову інформацію; Формат заголовка залежить від використовуваного транспортного протоколу.

На транспортному рівні працюють два основні протоколи: UDPі TCP.

TCP (Transmission Control Protocol - протокол контролю передачі) - надійнийпротокол з встановленням з'єднання: він управляє логічним сеансом зв'язку (встановлює, підтримує та закриває з'єднання) між процесами та забезпечує надійну (безпомилкову та гарантовану) доставку прикладних даних від процесу до процесу.

Даними для TCP є не інтерпретована протоколом послідовність октетів користувача, що розбивається для передачі частинами. Кожна частина передається окремому TCP-сегменті. Для просування сегмента по мережі між комп'ютером-відправником та комп'ютером-отримувачем модуль TCP користується сервісом міжмережевого рівня (викликає модуль IP).

Докладніше робота протоколу TCP у главі 3 .

Усі програми, наведені як приклад у попередньому пункті, користуються послугами TCP.

UDP (User Datagram Protocol, протокол користувальницьких дейтаграм) фактично не виконує жодних особливих функцій додатково до функцій міжмережевого рівня (протоколу IP, див. і гл. 2). Протокол UDPвикористовується або при пересиланні коротких повідомлень, коли накладні витрати на встановлення сеансу та перевірку успішної доставки даних виявляються вищими за витрати на повторну (у разі невдачі) пересилання повідомлення, або в тому випадку, коли сама організація процесу-додатку забезпечує встановлення з'єднання та перевірку доставки пакетів (наприклад, NFS).

Дані користувача, що надійшли від прикладного рівня, передуються UDP-заголовком, і сформований таким чином UDP-пакет відправляється на міжмережевий рівень.

UDP-заголовок складається з двох 32-бітових слів:

Значення полів:

Source Port- Номер порту процесу-відправника.

Destination Port- Номер порту процесу-одержувача.

Length- Довжина UDP-пакета разом із заголовком в октетах.

Checksum - контрольна сума. Контрольна сума обчислюється так само, як і в TCP-заголовку (див. п. 3.2); якщо UDP пакет має непарну довжину, то при обчисленні контрольної суми до нього додається нульовий октет.

Після заголовка безпосередньо слідують дані користувача, передані модулю UDP прикладним рівнемза один дзвінок. Протокол UDP розглядає ці дані цілісне повідомлення; він ніколи не розбиває повідомлення для передачі в декількох пакетах і не поєднує кілька повідомлень для пересилання в одному пакеті. Якщо прикладний процес N раз викликав модуль UDP для відправки даних (тобто запросив відправку N повідомлень), то модулем UDP буде сформовано і відправлено N пакетів, і процес-одержувач повинен N раз викликати свій модуль UDP для отримання всіх повідомлень.

При отриманні пакета від міжмережевого рівня модуль UDP перевіряє контрольну суму і передає вміст повідомлення прикладному процесу, номер порту якого вказано в полі “Destination Port”.

Якщо перевірка контрольної суми виявила помилку або якщо процесу, підключеного до потрібного порту, немає, пакет ігнорується. Якщо пакети надходять швидше, ніж модуль UDP встигає їх обробляти, то пакети, що надходять, також ігноруються. Протокол UDP не має жодних засобів підтвердження безпомилкового прийому даних або повідомлення про помилку, не забезпечує надходження повідомлень у порядку відправки, не робить попереднього встановлення сеансу зв'язку між прикладними процесами, тому він є ненадійнимпротоколом без встановлення з'єднання. Якщо програма потребує подібних послуг, вона повинна використовувати на транспортному рівні протокол TCP.

Максимальна довжина UDP-повідомлення дорівнює максимальної довжини IP-дейтаграммы (65535 октетів) з відрахуванням мінімального IP-заголовка (20) і UDP-заголовка (8), тобто. 65507 октетів. Насправді зазвичай використовуються повідомлення довжиною 8192 октету.

Приклади прикладних процесів, які використовують протокол UDP: NFS ( Network File System - мережна файлова система), TFTP (Trivial File Transfer Protocol- Простий протокол передачі файлів), SNMP (Simple Network Management Protocol - Простий протокол управління мережею), DNS (Domain Name Service - доменна службаімен).

1.2.3. Міжмережевий рівень та протокол IP

Основним протоколом цього рівня є протокол IP(Internet Protocol).

Протокол IP доставляє блоки даних, які називають дейтаграмами, від однієї IP-адреси до іншого. IP-адреса є унікальним 32-бітовим ідентифікатором комп'ютера (точніше, його мережного інтерфейсу). Дані для дейтаграм передаються IP-модулю транспортним рівнем. IP-модуль передує ці дані заголовком, що містить IP-адреси відправника та одержувача та іншу службову інформацію, і сформована таким чином дейтаграма передається на рівень доступу до середовища передачі (наприклад, одному з фізичних інтерфейсів) для відправки каналом передачі даних.

Не всі комп'ютери можуть безпосередньо зв'язатися один з одним; часто для того, щоб передати дейтаграму за призначенням, потрібно направити її через один або кілька проміжних комп'ютерів тим чи іншим маршрутом. Завдання визначення маршруту кожної дейтаграммы вирішується протоколом IP.

Коли модуль IP отримує дейтаграму з нижнього рівня, він перевіряє IP-адресу призначення. Якщо дейтаграма адресована даному комп'ютеру, дані з неї передаються на обробку модулю вищого рівня (якому конкретно - зазначено в заголовку дейтаграми). Якщо ж адреса призначення дейтаграми – чужа, то модуль IP може прийняти два рішення: перше – знищити дейтаграму, друге – відправити її далі до місця призначення, визначивши маршрут прямування – так чинять проміжні станції – маршрутизатори.

Також може знадобитися, на кордоні мереж з різними характеристиками, Розбити дейтаграму на фрагменти, а потім зібрати в єдине ціле на комп'ютері-одержувачі. Це також завдання протоколу IP.

Якщо модуль IP з будь-якої причини не може доставити дейтаграму, вона знищується. При цьому модуль IP може надіслати комп'ютеру-джерелу цієї дейтаграми повідомлення про помилку; такі повідомлення надсилаються за допомогою протоколу ICMP, який є невід'ємною частиною модуля IP. Більше ніяких засобів контролю коректності даних, підтвердження їх доставки, забезпечення правильного порядку дейтаграм, попереднього встановлення з'єднання між комп'ютерами протокол IP не має. Це завдання покладено транспортний рівень.

Багато IP-адрес мають еквівалентну форму запису у вигляді доменного імені (наприклад, IP-адреса 194.84.124.4 може бути записана як maria.vvsu.ru). Перетворення між цими двома формами виконується службою DNS (Domain Name Service). Доменні імена обговорюються в курсі "Введення в Інтернет", служба DNSрозглядається в курсі "Технології Інтернет". Доменні імена введені для зручності користування людиною. Всі TCP/IP-процеси та комунікаційне обладнання використовують лише IP-адреси.

Протоколи IP та ICMP детально розглянуті у розділі 2 .

1.2.4. Рівень доступу до середовища передачі

Функції цього рівня:

  • відображення IP-адрес в фізичні адресимережі (MAC-адреси, наприклад, Ethernet-адреса у разі мережі Ethernet). Цю функцію виконує протокол ARP(Див. розділ 2.6);
  • інкапсуляція IP-дейтаграм у кадри для передачі фізичним каналом і вилучення дейтаграм з кадрів. При цьому не потрібно будь-якого контролю безпомилковості передачі (хоча він може бути присутнім), оскільки в стеку TCP/IP такий контроль покладено на транспортний рівень або на сам додаток. У заголовку кадрів вказується точка доступу до сервісу (SAP, Service Access Point) - поле, що містить код протоколу міжмережевого рівня, якому слід передати вміст кадру (у разі це протокол IP);
  • визначення методу доступу до середовища передачі - тобто способу, за допомогою якого комп'ютер встановлює своє право на передачу даних (передача токена, опитування комп'ютерів, множинний доступ з детектування колізій і т.п.).
  • визначення подання даних у фізичному середовищі;
  • пересилання та прийом кадру.

Стек TCP/IP не передбачає використання певних протоколів рівня доступу до середовища передачі та фізичних середовищ передачі даних. Від рівня доступу до середовища передачі потрібна наявність інтерфейсу з модулем IP, що забезпечує передачу дейтаграм між рівнями. Також потрібно забезпечити перетворення IP-адреси вузла мережі, на який передається дейтаграма, на MAC-адресу. Часто як рівень доступу до середовища передачі можуть виступати цілі протокольні стеки, тоді говорять про IP поверх ATM, IP поверх IPX, IP поверх X.25 і т.п.

Інкапсуляція IP

При роботі в локальної мережіна базі технології CSMA/CD можливі два варіанти інкапсуляції датаграм IP у кадри рівнів LLC та MAC.

Перший полягає у використанні кадрів Ethernet 2.0. У цьому випадку поле даних (1500 октетів) повністю належить IP-даті, a SAP адресується полем "тип пакета", яке містить значення параметра Ethertype - індексу протоколу верхнього рівня. У разі IP це значення дорівнює 0x0800. Значення Ethertype для інших протоколів наведено у табл. 6.11.

Таблиця 6.11. Значення Ethertype для деяких протоколів

Другий варіант передбачає використання формату IEEE 802.3. У цьому випадку IP-датаграма інкапсулюється кадр LLC, а адресація SAP здійснюється в заголовку SNAP за допомогою ідентифікатора Ethertype. При цьому поля DSAP і SSAP не використовуються і їх значення встановлюються рівними 0xAA. Зауважимо, що у цьому випадку максимальний розмір IP-датаграми становить 1492 октети.

При передачі даних TCP/IP у мережах Token Ring використовується формат кадру IEEE 802.5, інкапсулюючий кадр LLC із заголовком SNAP, як описано вище.

З книги Сутність технології СОМ. Бібліотека програміста автора Бокс Дональд

Інкапсуляція та С++ Припустимо, що вам вдалося подолати проблеми з транслятором та компонувальником, описані в попередньому розділі. Чергова перешкода при побудові двійкових компонентів на C++ з'явиться, коли ви проводитимете інкапсуляцію (encapsulation), тобто

Як функції, що не є методами, покращують інкапсуляцію автора Мейєрс Скотт

Інкапсуляція не визначає вершину світу. Немає нічого такого, що могло б збільшити інкапсуляцію. Вона корисна лише тому, що впливає на інші аспекти нашої програми, які ми дбаємо. Зокрема, вона забезпечує гнучкість програми та її

З книги Інформатика та інформаційні технології: конспект лекцій автора Цвєткова А В

Інкапсуляція та функції – не члени Ми тепер бачимо, що прийнятним способом оцінки інкапсуляції є кількість функцій, які можуть бути зруйновані, якщо змінюється реалізація класу. В цьому випадку стає ясно, що клас з n методами більш інкапсульований, ніж

З книги Інформатика та інформаційні технології автора Цвєткова А В

Мінімальність та інкапсуляція В "Ефективному використанні C++" (Effective C++), я наводив докази на користь інтерфейсів класу, які є повними та мінімальним. Такі інтерфейси дозволяють клієнтам класу робити щось, що вони могли б хотіти робити,

З книги Мова програмування С# 2005 та платформа.NET 2.0. автора Троелсен Ендрю

автора Реймонд Ерік Стівен

З книги Мистецтво програмування для Unix автора Реймонд Ерік Стівен

Інкапсуляція Першим принципом ОВП є інкапсуляція. По суті вона означає можливість приховати засобами мови несуттєві деталі реалізації від користувача об'єкта. Припустимо, наприклад, що ми використовуємо клас DatabaseReader, який має два методи Open() та Close().//

З книги Основи об'єктно-орієнтованого програмування автора Мейєр Бертран

Інкапсуляція на основі методів читання та модифікації Давайте знову повернемося до розгляду нашого класу Employee. Щоб " зовнішній світміг взаємодіяти з приватним полем даних fullName, традиції наказують визначити засоби читання ( метод get) та модифікації (метод set). Наприклад:

З книги TCP/IP Архітектура, протоколи, реалізація (включаючи IP версії 6 та IP Security) автора Фейт Сідні М

Інкапсуляція на основі властивостей класу На відміну від традиційних методів читання та модифікації, мови.NET тяжіють до реалізації принципу інкапсуляції на основі використання властивостей, які представляють доступні для зовнішнього користувачаелементи даних. Замість того,

З книги Мережеві засоби Linux автора Сміт Родерік В.

З книги автора

4.1. Інкапсуляція та оптимальний розмір модуля Першою та найбільш важливою якістю модульного коду є інкапсуляція. Правильно інкапсульовані модулі не відкривають свій внутрішній пристрій один одному. Вони не звертаються до центральної частини реалізації один одного,

З книги автора

Інкапсуляція дій з посиланнями Тепер накопичено достатньо підтверджень того, що будь-яка система моделювання та розробки програмного забезпечення повинна підтримувати поняття посилання, а отже, і динамічні псевдоніми. Як тепер упоратися з неприємними наслідками?

З книги автора

24.5.4 Інкапсуляція захищеного корисного навантаження Заголовок інкапсуляції захищеного корисного навантаження протоколу IP (IP Encapsulating Security Payload) застосовується як для режиму транспорту, так і для режиму тунелю. Формат цього заголовка показаний на рис. 24.8. Одержувач використовує індекс SPI

З книги автора

Інкапсуляція та вилучення даних Стек протоколів добре ілюструє переміщення даних між програмними компонентами, що підтримують мережеву взаємодію, однак він не дає відповіді на питання, які ж зміни зазнає інформація на цьому шляху. На різних

UNIX підтримує роботу в цілому ряді фізичних мереж, включаючи Ethernet (включаючи бездротовий зв'язок), FDDI, Token Ring, ATM та системи з послідовними з'єднаннями. Управління апаратними пристроями здійснюється на канальному рівніархітектури TCP/IP, а протоколи вищих рівнів не знають у тому, як саме використовуються апаратні засоби.

Дані передаються мережі у формі пакетів, що мають максимальний розмір, що визначається обмеженнями канального рівня. Кожен пакет складається з заголовка та корисного вмісту (повідомлення). Заголовок включає відомості про те, звідки прибув пакет і куди він прямує. Заголовок, крім того, може містити контрольну суму, інформацію, характерну для конкретного протоколу, та інші інструкції щодо обробки пакета. Корисний вміст – це дані, які підлягають пересиланню.

Ім'я базового блоку даних залежить від рівня протоколу. На канальному рівні це кадрабо кадр, у протоколі IP - пакет, а в протоколі TCP - сегмент. Ми дотримуватимемося універсального терміна "пакет".

Коли пакет передається вниз стеком протоколів, готуючись до відправки, кожен протокол додає до нього свій власний заголовок. Закінчений пакет одного протоколу стає корисним вмістом пакета, що генерується наступним протоколом. Ця операція відома як інкапсуляція. На приймаючій машині інкапсульовані кадри відновлюються у зворотному порядку.

Наприклад, дейтаграма, що передається по мережі Ethernet, упакована у трьох різних "конвертах". У середовищі Ethernet вона "вкладається" у простий фізичний кадр, заголовок якого містить відомості про апаратні адреси відправника та найближчого одержувача, довжину кадру та його контрольну суму (CRC). Корисним вмістом Ethernet-кадра є IP-пакет. Корисний вміст IP-пакета - UDP-пакет, і, нарешті, корисний вміст UDP-пакета складається власне з даних, що передаються. Компоненти такого кадру зображено на рис. Б.

Мал. Б.Типовий мережевий пакет.

Під словом "байт" ми маємо на увазі 8-бітовий ланцюжок даних. У минулі часи цей термін мав ширше значення, тому іноді в документах RFC можна зустріти термін "октет".

Канальний рівень

Канальний рівень забезпечує зв'язок між мережним програмним забезпеченням та власне мережевим обладнанням.

Стандарти формування кадрів Ethernet

Один із основних обов'язків канального рівня — додавання заголовків до пакетів та вставка роздільників між ними. Заголовки містять інформацію про адреси канального рівня та контрольні суми, а роздільники дозволяють стороні визначити, де закінчується один пакет і починається інший. Процес додавання допоміжних біт називається формуванням кадрів.

У десятимегабітних мережах Ethernet існує два різних стандартукадрової розбивки: DIX Ethernet II та IEEE 802.2 LLC SNAP. на серверах UNIXі в маршрутизаторах Ciscoзастосовується перший стандарт, в мережах IPX та системах Novell- Другий. Стандарти відрізняються кількома полями в заголовку кадру, але вони не конфліктують один з одним, тому пристрій може однозначно визначити формат кожного пакета і відповідним чином декодувати заголовок.

Вибір стандарту кадрової розбивки диктується наявною мережевою платоюта її драйвером. на персональних комп'ютерах, що працюють під керуванням Windows, Вибір можна робити самостійно, а в UNIX - зазвичай немає. З точки зору UNIX обидва стандарти чудово взаємодіють. А ось у середовищі Windowsкомп'ютери, розташовані в одній мережі, але які дотримуються різних стандартів, не можуть спілкуватися один з одним. Системному адміністратору зазвичай не доводиться займатися питаннями формування кадрів, якщо не виконується низькорівневе налагодження в змішаній мережі.

Стандарти кабелів Ethernet

Вибір кабелів у десятимегабітній мережі Ethernet досить простий, але ситуація ускладнюється, коли йдеться про стомегабітні мережі. Раніше існували три різні стандарти для крученої пари (ТХ, в якому використовувалися дві пари кабелів категорії 5, а також Т4 і VG, у кожному з яких були потрібні чотири пари категорії 3) і ще один для оптоволокна (FX, в якому використовується багаторежимний волоконно- оптичний кабель). Компанія Hewlett-Packard відстоювала стандарт VG та першою випустила для нього продукти. Інші виробники проігнорували його і зупинили свій вибір на стандарті ТХ, який зараз використовується повсюдно.

Бездротові мережі

У специфікації IEEE 802.11 робиться спроба описати стандарти кадрової розбивки та передачі сигналів бездротових мереж. На жаль, специфікація є дуже нечіткою і включає низку параметрів, які не були повністю визначені. При взаємодії різноманітних мереж доводилося враховувати такі аспекти, як трансляція та інкапсуляція.

У разі трансляції пакет перетворюється з однієї форми на іншу, а при інкапсуляції він упаковується в структуру необхідного формату. У середовищі Windows застосовується інкапсуляція, а UNIX — трансляція, тому базові бездротові станції повинні конфігуруватися явно. Коли розгортається бездротова мережу, потрібно переконатися, що базова станція та пов'язані з нею робочі станції функціонують однаково.

Користувачі портативних комп'ютерів стикаються з іншою проблемою, спричиненою неоднозначністю специфікації 802.11. Бездротові плати PCMCIA мають енергозберігаючий режим, несумісний із деякими базовими станціями. За умовчанням він, звичайно, увімкнений. Якщо виявиться, що користувацькі портативні комп'ютери не працюють у бездротової мережі, попросіть користувачів вимкнути енергозберігаючий режим. Найкраща конфігурація домашньої бездротової мережі – з базовою станцією Apple AirPort та мережними платами Lucent. За допомогою портативного комп'ютера в таку мережу можна входити звідусіль: у ліжку в басейні і навіть з вулиці.

Максимальний розмір блоку, що передається.

Розмір пакетів обмежується як характеристиками апаратних засобів, і вимогами протоколів. Наприклад, обсяг корисного вмісту Ethernet-пакету не може перевищувати 1500 байтів. Граничні; розмір пакету встановлюється на канальному рівні і називається максимальною одиницею передачі (Maximum Transfer Unit, MTU). Типові значенняпараметра MTU наведено у табл. 13.2.

Для ATM параметр MTUне цілком застосовний, тому що мережа ATMрозташована десь на кордоні між фізичним та канальним рівнями. Осередок ATM зазвичай має розмір 53 байта з 48-байтовим блоком даних, але в специфікації AAL/5 пакет може мати розмір до 216 байтів. Як правило, у звичайному режиміпараметр MTU дорівнює 9180 байтів, а режимі LANE ( Local Area Network Emulation – емуляція локальної мережі) – 1500 байтів.

Таблиця 13.2.Максимальні розміри блоків, що передаються в мережах різних типів

TCP/IP протокол IP відповідає за розбивку пакета на фрагменти, щоб їх розмір відповідав вимогам конкретного мережного з'єднання. Якщо пакет проходить через кілька мереж, в одній з них параметр MTU може бути меншим, ніж у вихідній мережі. У цьому випадку маршрутизатор піддасть пакет подальшої фрагментації. Подібний процес небажаний, коли маршрутизатор сильно завантажений. Протокол TCP здатний визначити найменше значення MTUвздовж усього шляху проходження пакета і з самого початку розбити пакет відповідно до цього значення. Протокол UDP не такий "любий" і перекладає всю відповідальність на протокол IP. У стандарті IPv6 проміжні маршрутизатори більше не можуть виконувати фрагментацію пакетів: режим попереднього визначення максимального розміру блоку є обов'язковим.

Іноді проблема фрагментації виявляється досить підступною. Наприклад, у віртуальній приватної мережіз тунельною архітектурою необхідно перевіряти розмір пакетів через тунель. Зазвичай їх початковий розмір — 1500 байтів, але коли до них додається тунельний заголовок, розмір пакетів стає приблизно 1540 байтів, і вже потрібна фрагментація. Зменшення розміру блоку дозволяє уникнути фрагментації та підвищити продуктивність мережі. Зверніться до man-сторінці по команді ifconfig, щоб дізнатися, як налаштувати параметр MTU мережевийплати.

Адресація пакетів

Подібно до листів та повідомлень електронної пошти, мережеві пакетиможуть досягти пункту призначення лише за наявності правильної адреси. У TCP/IP використовується поєднання кількох схем адресації:

Мережева плата може мати МАС-адресу канального рівня, яка відрізняє її від інших мережевих плат даної фізичної мережі, IP-адресу, що визначає її положення в мережі Internet, і текстове ім'я, зрозуміле користувачам.

Найнижчий рівень адресації задається мережевими апаратними засобами. Наприклад, Ethernet-пристроям при виготовленні надаються унікальні шестибайтові апаратні адреси. Плати мереж Token Ring мають аналогічні шестибайтові адреси. У деяких мережах з двоточковим з'єднанням (наприклад, РРР; див. параграф 13.8) апаратні адреси взагалі не потрібні: адреса пункту призначення вказується безпосередньо при встановленні з'єднання.

Шестибайтові адреси Ethernet розбиваються на дві частини: перші три байти визначають виробника плати, а останні три байти виступають як унікальний серійного номера, що призначається виробником. Поточний список виробників мережі можна отримати за адресою

http://www.iana.org/assignments/ethernet-numbers

Свого часу ця інформація регулярно публікувалася у вигляді документів RFCАле потім така практика припинилася. Останнім документому серії Assigned Numbers(призначені номери) був документ RFC1700 (1994 р.). Офіційним сховищем усіх спеціальних імен, що діють у мережі Internet, є Web-сторінка www.iana.org/numbers.htm.

Апаратні адреси Ethernet мають бути постійними та незмінними. На жаль, деякі мережеві платидопускають програмне завдання апаратних адрес. Особливо складно в цьому відношенні з платами бездротового зв'язку. Уникайте призначення адрес з діапазону групового мовлення та інших спеціальних адрес. У Solaris та Red Hatможна міняти апаратну адресу будь-якого мережного інтерфейсу, але краще цього не робити.

Наступного, більше високому рівнівикористовується Internet-адресація (яку частіше називають IP-адресацією). Кожному мережному інтерфейсу надається чотирибайтова IP-адреса. Ці адреси глобально унікальні та апаратно незалежні. Ми приділимо їм чимало уваги i параграфі 13.4.

Відповідність між IP-адресами та апаратними адресами реалізується на канальному рівні моделі TCP/IP. У мережах, що допускають широкомовний режим (тобто в мережах, що дозволяють адресувати пакети всім комп'ютерам цієї фізичної мережі), протокол ARP забезпечує автоматичну прив'язку адрес без втручання системного адміністратора.

Оскільки IP-адреси є довгими, на перший погляд випадковими, числами, то запам'ятати їх важко. UNIX-системи дозволяють пов'язувати текстові імена з IP-адресами, щоб замість telnet 128.138.242.1користувач міг ввести telnet anchor.

Існує кілька способів здійснення подібної прив'язки: за допомогою статичного файлу (/etc/hosts), баз даних NIS та NIS+ і, нарешті. DNS - глобальної системидоменних імен. Пам'ятайте, що ім'я комп'ютера є просто скороченим способом запису IP-адреси; низькорівневе мережеве програмне забезпечення його не розуміє.

Порти

IP-адреси ідентифікують комп'ютери, точніше, мережеві інтерфейсикомп'ютера; вони недостатньо конкретні для адресації окремих процесівта сервісів. Протоколи TCP та UDP розширюють концепцію IP-адрес, вводячи поняття порту. Порт у цьому випадку являє собою двобайтове число, що додається до IP-адреси і вказує конкретний канал взаємодії. Усе стандартні сервіси UNIX, зокрема електронна пошта, FTP, сервер віддаленого доступузв'язуються з "відомими" портами, які визначені у файлі /etc/services. Для запобігання спробам сторонніх процесів замаскуватися під стандартні сервіси, UNIX-системи обмежують доступ до портів з номерами до 1024 тільки для користувача root.

Типи адрес

У протоколі IP і канальному рівні підтримується кілька типів адрес:

  • спрямована — адреса, яка позначає окремий комп'ютер(Насправді мережевий інтерфейс);
  • груповий - адреса, що ідентифікує групу вузлів;
  • широкомовна - адреса, що позначає всі вузли локальної мережі.

Режим групового мовлення використовується в таких програмах, як, наприклад, відеоконференції, де та сама послідовність пакетів надсилається всім учасникам конференції. Протокол IGMP (Internet Group Management Protocol – протокол управління групами Internet) відповідає за управління групами вузлів, що ідентифікуються як один груповий адресат. Режим групового мовлення все ще експериментальний. Тим не менш, він знаходить все ширше застосування в таких областях, як передача голосових даних по IP-мережах та передача відео на запит.

На канальному рівні молодший біт старшого байта групової адреси (перший байт, що передається кабелем) встановлено рівним 1, тобто. будь-яка адреса з непарним першим байтом розглядається як груповий. Такі адреси використовуються різними апаратними пристроями протоколах початкової конфігурації. Адреса групового мовлення в Internet - 01:00:5Е.

Широкомовні адреси канального рівня, якщо розглядати їх у двійковому вигляді, складаються з одних одиниць.

У протоколі IP групові адреси починаються з байта, значення якого в діапазоні 224—239. У широкомовних адресах остання частина адреси у двійковому вигляді складається з одних одиниць.

Мережева модель - теоретичний опис принципів роботи набору мережевих протоколів, що взаємодіють один з одним. Модель зазвичай ділиться на рівні, так, щоб протоколи вищого рівня використовували б протоколи нижчого рівня (точніше, дані протоколу вищого рівня передавалися б за допомогою нижчележачих протоколів - цей процес називають інкапсуляцією, процес вилучення даних вищого рівня з даних нижчестоящого - деінкапсуляцією). Моделі бувають як практичні (що використовуються в мережах, іноді заплутані та/або не повні, але вирішальні поставлені завдання), так і теоретичні (що показують принципи реалізації мережевих моделей, що приносять в жертву продуктивність/можливості).

Інкапсуляція в комп'ютерних мережах- це метод побудови модульних мережевих протоколів, при якому логічно незалежні функції мережі абстрагуються від механізмів нижчележачих шляхом включення або інкапсулювання цих механізмів в більш високорівневі об'єкти.

Мережева модель OSI (англ. Open Systems Interconnection Reference Model – модель взаємодії відкритих систем) - абстрактна модельдля мережевих комунікацій та розробки мережевих протоколів.

Представляє рівневий підхід до мережі. Кожен рівень обслуговує свою частину процесу взаємодії. Завдяки такій структурі спільна роботамережного обладнання та програмного забезпечення стає набагато простіше та зрозуміліше.

7 Прикладний

6 Представницький

5 Сеансовий

4 Транспортний

3 Мережевий

2 Канальний

1 Фізичний

19 Стек протоколів TCP/IP. Відповідність рівням моделі OSI.

Стек протоколів TCP/IP (англ. Transmission Control Protocol/Internet Protocol) - набір мережевих протоколів різних рівнів моделі мережевого, що у мережах. Протоколи працюють один з одним у стеку (англ. stack, стос) - це означає, що протокол, що розташовується на рівні вище, працює «поверх» нижнього, використовуючи механізми інкапсуляції. Наприклад, протокол TCP працює поверх протоколу IP.

Стек протоколів TCP/IP включає у собі протоколи чотирьох рівнів: прикладного (application),транспортного (transport),мережевого (internet),рівня доступу до середовища (network access).

Протоколи цих рівнів повністю реалізують функціональні можливості OSI. На стеку протоколів TCP/IP побудовано всю взаємодію користувачів в IP-мережах. Стек є незалежним від фізичного середовища передачі.

Існують розбіжності у тому, як вписати модель TCP/IP у модель OSI, оскільки рівні у цих моделях не збігаються. До того ж, модель OSI не використовує додатковий рівень – «Internetworking» – між транспортним та мережевим рівнями.

Зазвичай у стеку TCP/IP верхні 3 рівня (прикладний, представницький та сеансовий) моделі OSI поєднують в один - прикладний. Оскільки в такому стеку не передбачається уніфікований протокол передачі даних, функції визначення типу даних передаються додатком.

Протокол ІР.

Internet Protocol чи IP (англ. internet protocol - між мережевий протокол) - маршрутизований мережевий протокол, протокол мережного рівня сімейства TCP/IP.

Протокол IP використовується для негарантованої доставки даних, поділюваних на звані пакети від одного вузла мережі до іншого. Це означає, що на рівні цього протоколу (третій рівень мережевої моделі OSI) немає гарантій надійної доставкипакета до адресата. Зокрема, пакети можуть прийти не в тому порядку, в якому були відправлені, продублюватись (коли приходять дві копії одного пакета; насправді це буває вкрай рідко), виявитися пошкодженими (зазвичай пошкоджені пакети знищуються) або не прибути зовсім. Гарантію безпомилкової доставки пакетів дають протоколи вищого (транспортного рівня) мережевої моделі OSI - наприклад, TCP - які використовують IP як транспорт.

У сучасній Інтернеті використовується IP четвертої версії, також відомий як IPv4. У протоколі IP цієї версії кожному вузлу мережі ставиться у відповідність IP-адреса завдовжки 4 октети (4 байти). При цьому комп'ютери в підмережах поєднуються спільними початковими бітами адреси. Кількість цих біт, загальне для даної підмережі, називається маскою підмережі (раніше використовувався розподіл простору адрес за класами - A, B, C; клас мережі визначався діапазоном значень старшого октету і визначав кількість вузлів, що адресуються в даній мережі, зараз використовується безкласова адресація).

Стек протоколів TCP/IP має у своєму розпорядженні засоби підтримки цілого ряду фізичних мереж і транспортних систем, включаючи технології IZERNET, DSL, Wi-Fi і т.д.

Управління хостами, а саме апаратною частиною хостів здійснюється на канальному рівні архітектури TCP/IP. Протоколам вищих рівнів невідомо, як саме використовуються апаратні засоби. Дані передаються по мережі у вигляді пакетів, пакети мають максимальний розмір, що визначається обмеженнями канального рівня. Кожен пакет складається із заголовка та корисного вмісту. Заголовок містить інформацію про те, звідки прибув пакет і куди він направляється, також у заголовку може бути контрольна сума, інформація характерна для конкретного протоколу та інші інструкції щодо обробки вмісту пакета. Корисний вміст пакета – це дані, що підлягають пересиланню. Назва базового блоку даних, що передаються, залежить від рівня протоколу архітектури стека TCP/IP. На канальному рівні використовується термін кадр або кадр, на рівні IP використовується термін пакет, а на транспортному рівні використовується термін сегмент. Готовий до відправки пакет передається стеком протоколів і кожен протокол додає власний заголовок. Таким чином, сформований пакет одного протоколу стає корисним вмістом пакета генерованого наступним протоколом. Ця операція називається інкапсуляція (запечатування). На стороні, що приймається, інкапсульовані пакети відновлюються у зворотному порядку при проходженні вгору по стеку.

ARP – протокол перетворення адрес.

Протоколи ARP апаратно-незалежні. Для фактичної передачі даних на канальному рівні повинні застосовуватись апаратні адреси (MAC-адреси). Протокол ARP визначає яка саме апаратна адреса пов'язана з тією чи іншою IP-адресою. ARP можна застосовувати у будь-яких мережах, які підтримують широкомовний режим на канальному рівні. Коли ПК А хоче надіслати пакет ПК Б він використовує протокол ARP для знаходження апаратної адреси ПК Б. Вихід. запит протоколу ARP включає IP-адресу та MAC-адресу запитуючої сторони, завдяки чому розшукуючий пристрій може відповісти не надсилаючи власний ARP-запит, це дозволяє обом комп'ютерам дізнатися адреси один одного за один сеанс обміну пакетами. Інші комп'ютери, які чули вихідний широкомовний запит, можуть записати IP-адресу запитувача до себе в свою таблицю. Кожен комп'ютер, підключений до мережі, створює в пам'яті спеціальну таблицю, яка називається КЕШ ARP. У цій таблиці зберігаються результати останніх ARP-запитів.

Формат IP-пакету

Є прямий зв'язок між кількістю полів заголовка пакета та функціональною складністю протоколу. Що простіше заголовок, то простіше протокол. Більшість дій протоколу перенесено у полі заголовка пакета, вивчаючи назву кожного поля заголовка IP-пакета ми маємо як функціональні знання, а й знайомимося з основними функціями протоколу. IP-пакет складається із заголовка та даних.

Маршрутизація в мережах tcp/ip

Термін маршрутизація використовується у 2 випадках:

    Процедура пошуку мережевої адресиу спеціальних таблицях передачі пакета у вузол призначення.

    Процес побудови такої таблиці.

Таблиця маршрутизації

Хости надсилають пакети лише тим шлюзам, які фізично підключені до тієї самої мережі. Локальні хости можуть переміщувати пакети лише на 1 крок у напрямку вузла призначення. Тому в них не включається інформація про шлюзи, що не є суміжними в таблиці локальної маршрутизації. Кожен шлюз, через який проходить пакет, приймає рішення про його переміщення, аналізуючи власну таблицю маршрутизації.

Таблиці маршрутизації ведуться (бувають) статичними, динамічними чи комбінованим способом.

Статичний метод – у шлюзі формується таблиця маршрутизації, що залишається постійної протягом усього часу системи. Статична маршрутизація є ефективним рішенням щодо стабільної локальної мережі. Вона проста в управлінні, надійна в експлуатації, але вимагає знання топології мережі на момент формування цієї таблиці. Більшість комп'ютерів такої локальної обчислювальної мережі мають єдиний вихід до інших мереж, тому маршрутизація здійснюється стандартним маршрутом. У мережах з більш складною топологією потрібна динамічна маршрутизація, що здійснюється спеціальним процесом провідним та маршрутизуючим таблиці маршрутизації. Процес маршрутизації фіксується на різних хостах, що взаємодіють один з одним з метою визначення топології мережі та вирішення питання про доставку пакета у віддалений вузол.