Протокол міжмережевої взаємодії ip

Основу транспортних засобів стека протоколів TCP / IP становить протокол міжмережевої взаємодії - Internet Protocol (IP). До основних функцій протоколу IP відносяться:

Пакет IP складається з заголовка і поля даних. Заголовок пакета має такі поля:

Максимальна довжина поля даних пакета обмежена розрядністю поля, що визначає цю величину, і становить 65535 байтів, проте при передачі по мережах різного типу довжина пакета вибирається з урахуванням максимальної довжини пакета протоколу нижнього рівня, що несе IP-пакети. Якщо це кадри Ethernet, то вибираються пакети з максимальною довжиною в 1500 байтів, вміщується в поле даних кадру Ethernet.

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

У більшості типів локальних і глобальних мереж визначається таке поняття як максимальний розмір поля даних кадру або пакета, в які повинен инкапсулировать свій пакет протокол IP. Цю величину зазвичай називають максимальною одиницею транспортування - Maximum Transfer Unit, MTU. Мережі Ethernet мають значення MTU, що дорівнює 1500 байт, мережі FDDI - 4096 байт, а мережі Х.25 найчастіше працюють з MTU в 128 байт.

Робота протоколу IP по фрагментації пакетів в хостах і маршрутизаторах ілюструється малюнком 4.1.

Нехай комп'ютер 1 пов'язаний з мережею, що має значення MTU в 4096 байтів, наприклад, з мережею FDDI. При надходженні на IP-рівень комп'ютера 1 повідомлення від транспортного рівня розміром в 5600 байтів, протокол IP ділить його на два IP-пакета, встановлюючи в першому пакеті ознака фрагментації і привласнюючи пакету унікальний ідентифікатор, наприклад, 486. У першому пакеті величина поля зсуву дорівнює 0, а в другому - 2800. Ознака фрагментації в другому пакеті дорівнює нулю, що показує, що це останній фрагмент пакета. Загальна величина IP-пакету становить 2800 + 20 (розмір заголовка IP), то тобто 2820 байтів, що вміщується в поле даних кадру FDDI.

Мал. 4.1. Фрагментація IP-пакетів при передачі між мережами з різними
максимальними розмірами пакетів. К1 і Ф1 канальний і фізичний рівень мережі 1,
К2 і Ф2 канальний і фізичний рівень мережі 2

Далі комп'ютер 1 передає ці пакети на канальний рівень К1, а потім і на фізичний рівень Ф1, який відправляє їх маршрутизатора, пов'язаного з даною мережею.

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

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

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

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

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

Мал. 4.2. Вибір маршрутизатора кінцевим вузлом

Довжина маршруту може істотно змінитися в залежності від того, який маршрутизатор обере комп'ютер для передачі свого пакета на сервер, розташований, наприклад, в Німеччині, якщо маршрутизатор 1 з'єднаний виділеною лінією з маршрутизатором в Копенгагені, а маршрутизатор 2 має супутниковий канал, який з'єднує його з Токіо .

У стеці TCP / IP маршрутизатори і кінцеві вузли приймають рішення про те, кому передавати пакет для його успішної доставки вузлу призначення, на підставі так званих таблиць маршрутизації (routing tables).

номер вихідного
порту

(Альтернативою однокроковий підходу є вказівка ​​в пакеті всієї послідовності маршрутизаторів, які пакет повинен пройти на своєму шляху. Такий підхід називається маршрутизацією від джерела - Source Routing. У цьому випадку вибір маршруту проводиться кінцевим вузлом або першим маршрутизатором на шляху пакета, а всі інші маршрутизатори тільки відпрацьовують обраний маршрут, здійснюючи комутацію пакетів, тобто передачу їх з одного порту на інший. Алгоритм Source Routing застосовується в мережах IP тільки для налагодження, коли маршрут задається поле Резерв (IP OPTIONS) пакета.)

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

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

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

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

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

Існують різні алгоритми побудови таблиць для однокрокової маршрутизації. Їх можна розділити на три класи:

  • алгоритми фіксованої маршрутизації,
  • алгоритми простий маршрутизації,
  • алгоритми адаптивної маршрутизації.

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

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

Алгоритми простий маршрутизації поділяються на три підкласи:

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

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

Розглянемо на прикладі інтермережі, наведеною на малюнку 4.3, яким чином відбувається взаємодія комп'ютерів через маршрутизатори і доставка пакетів комп'ютера призначення.

Мал. 4.3. Приклад взаємодії комп'ютерів через интерсеть

для організації ftp-сеансу.

У комп'ютері cit.dol.ru повинні бути задані деякі параметри для стека TCP / IP, щоб він міг виконати поставлене перед ним завдання.

2. Будемо вважати, що комп'ютер cit.dol.ru має файл HOSTS, а в ньому є рядок

5. В результаті комп'ютер cit.dol.ru відправляє по локальній мережі кадр Ethernet, який має такі поля:

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

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

Маска - це число, двійковий запис якого містить одиниці в тих розрядах, які повинні інтерпретуватися як номер мережі.

Наприклад, для стандартних класів мереж маски мають таке значення:

255.0.0.0 - маска для мережі класу А,

255.255.0.0 - маска для мережі класу В,

255.255.255.0 - маска для мережі класу С.

129.44.0.0 (10000001 00101100 00000000 00000000)

129.44.64.0 (10000001 00101100 01000000 00000000)

129.44.128.0 (10000001 00101100 10000000 00000000)

129.44.192.0 (10000001 00101100 11000000 00000000)

129.44.128.0 - номер мережі, 0.0. 13.15 - номер вузла.

Мал. 4.4. Приклад використання масок для структурування мережі

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

Схожі статті