Тема Фрагментація дейтаграм у складових мережах із різними значеннями MTU

Мета: Дослідити процеси маршрутизації та фрагментації дейтаграм при передачі повідомлень у мережі

10100000.01010001.00000101.10000011 = 160.81.5.131.

224.0.0.1 - всім хостам цієї мережі;

224.0.0.2 - усім маршрутизаторам цієї мережі;

224.0.0.5 - всімOSPF-маршрутизаторам;

тема

У класі А виділено дві спеціальні мережі, їх номери 0 і 127. Мережа 0 використовується при маршрутизації як вказівку на маршрут за умовчанням та інших особливих випадках.

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

Приклад:IP= 205.37.193.134/26 або, що те саме,

IP= 205.37.193.134netmask= 255.255.255.192.

Розпишемо у двійковому вигляді:

IP= 11001101 00100101 11000111 10000110

netmask= 11111111 11111111 11111111 11000000

Помноживши побітно, отримуємо номер мережі (у хостовій частині - нулі):

network= 11001101 00100101 11000111 11000000

або, в октетному поданні, 205.37.193.128/26, або, що те саме, 205.37.193.128netmask255.255.255.192.

Очевидно, що мережі класів А, В, С безкласової моделі представляються за допомогою масок, відповідно, 255.0.0.0 (або /8), 255.255.0.0 (або /16) і 255.255.255.0 (або /24).

Маршрутизація у складових мережах

Маршрутизація дейтаграм складає рівні протоколуIP.

Маршрутизація виконується з урахуванням даних, які у таблиці маршрутів. Рядок у таблиці маршрутів складається з наступних полів:

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

Приклад підключення локальної мережі організації до Інтернету

дейтаграм

Значення прапорів:U (Up)- маршрут працює;H(Host)- пунктом призначення є окремий вузол (хост), а не мережа;G (Gateway)- маршрут до мережі призначення проходить через один або кілька проміжних маршрутизаторів. Інтерфейсle0означаєEthernet, lo0- інтерфейс зворотного зв'язку(loopback).

Зауважимо, що у цій таблиці для простоти опущені маски мереж.

Приклад таблиці маршрутів маршрутизатора, що з'єднує локальну мережу з провайдером виділеного каналу (G1на рис.6.2):

Створення статичних маршрутів

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

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

Залежно від алгоритму роботи розрізняютьдистанційно-векторніпротоколи(distance vector protocols)та протоколистану зв'язків (link state protocols).

За сферою застосування існує поділ на протоколизовнішньої (exterior)тавнутрішньої (interior)маршрутизації.

Дистанційно-векторні протоколиреалізують алгоритм Беллмана-Форда(Bellman-Ford).Загальна схема їх роботи така: кожен маршрутизатор періодично широкомовно розсилає інформацію про відстань від себе до всіх відомих йому мереж ("вектор відстаней"). У початковий момент часу, зрозуміло, надсилається інформація тільки про ті мережі, до яких маршрутизатор підключений безпосередньо.

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

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

Поширений протокол такого типу,OSPF, базується на алгоритміSPF (Shortest Path First)пошуку найкоротшого шляху у графі, запропонованому Дейкбудом(Dijkstra).

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

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

Формат заголовкаIP-дейтаграми

IP-дейтаграма складається із заголовка та даних. Заголовок дейтаграми складається з 32-розрядних слів і має змінну довжину, що залежить від розміру поля"Options",але завжди кратну 32 бітам. За заголовком безпосередньо слідують дані, що передаються в дейтаграмі.

Значення полів заголовка

Ver (4 біти) - версія протоколуIP, зараз використовується версія 4, нові розробки мають номери версій 6-8.

IHL (Internet Header Length) (4 біти) - довжина заголовка в 32-бітових словах; діапазон допустимих значень від 5 (мінімальна довжина заголовка, поле"Options"відсутня) до 15 (тобто може бути максимум 40 байт опцій).

TOS (Type Of Service) (8 біт) – значення поля визначає пріоритет дейтаграми та бажаний тип маршрутизації.

Структура байта TOS

Три молодші біти(“Precedence”)визначають пріоритет дейтаграми:

111 - керування мережею,

110 - міжмережеве управління,

100 - більш ніж миттєво,

БітиD,T,R,Cвизначають бажаний тип маршрутизації:

D (Delay)- вибір маршруту з мінімальною затримкою,

T (Throughput)- вибір маршруту з максимальною пропускною спроможністю,

R (Reliability)- вибір маршруту з максимальною надійністю,

C (Cost)- вибір маршруту з мінімальною вартістю.

У дейтаграмі може бути встановлений лише один із бітівD,T,R,C.Старший біт байта не використовується.

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

Total Length (16 біт) - довжина всієї дейтаграми в октетах, включаючи заголовок та дані, максимальне значення 65535, мінімальне - 21 (заголовок без опцій та один октет у полі даних).

ID (Identification) (16 біт),Flags (3 біти),Fragment Offset (13 біт) використовуються для фрагментації та складання дейтаграм і будуть докладніше розглянуті нижче .

TTL (Time To Live) (8 біт) - "час життя" дейтаграми. Встановлюється відправником, вимірюється за секунди. Кожен маршрутизатор, через який проходить дейтаграма, переписує значенняTTL, попередньо віднімаючи від нього час, витрачений на обробку дейтаграми. Так як в даний час швидкість обробки даних на маршрутизаторах велика, на одну дейтаграму зазвичай витрачається меншесекунди, тому практично кожен маршрутизатор віднімає зTTLодиницю. При досягненні значенняTTL=0 дейтаграма знищується, при цьому відправнику може бути надіслано відповіднеICMP-повідомлення. КонтрольTTLзапобігає зациклюванню дейтаграми в мережі.

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

Header Checksum (16 біт) - контрольна сума заголовка, являє собою 16 біт, що доповнюють біти в сумі всіх 16-бітових слів заголовка. Перед обчисленням контрольної суми значення поля“Header Checksum”обнулюється. Оскільки маршрутизатори змінюють значення деяких полів заголовка при обробці дейтаграми (як мінімум поля“TTL”), контрольна сума кожним маршрутизатором перераховується заново. Якщо під час перевірки контрольної суми виявляється помилка, дейтаграма знищується.

Options - опції, поле змінної довжини. Опцій може бути одна, кілька чи жодної. Опції визначають додаткові послуги модуляIPз обробки дейтаграми, в заголовок якої вони включені.

Padding - вирівнювання заголовка по межі 32-бітного слова, якщо список опцій займає неціле число 32-бітових слів. Поле"Padding"заповнюється нулями.

Різні середовища передачі мають різний максимальний розмір блоку даних, що передається(MTU - Media Transmission Unit), це число залежить від швидкісних характеристик середовища і ймовірності виникнення помилки при передачі. Наприклад, розмірMTUу 10 Мбіт/сEthernetдорівнює 1536 октетам, у 100 Мбіт/сFDDI- 4096 октетам.

При передачі дейтаграми з середовища з більшимMTUв середу з меншимMTUможевиникне необхідність у фрагментації дейтаграми. Фрагментація та складання дейтаграм здійснюються модулем протоколуIP. Для цього застосовуються поля“ID” (Identification), “Flags”та“Fragment Offset”заголовка дейтаграми.

Flags -поле складається з 3 біт, молодший з яких завжди скинутий: