Короткий огляд доставки пакета IP
Доставка IP пакетів даних
Аналогія Поставки Пошти
Відправник поміщає лист у конверт і кидає його в місцевий поштову скриньку.
Місцевий маршрутизатор отримує фрейм, розпаковує його, і посилає фрейм процесу маршрутизації.
Місцеве поштове відділення отримує конверт поряд з іншими конвертами з поштової скриньки. Лист відокремлено для обробки.
Місцеве поштове відділення визначає місто і держава, яка хоче послати лист.
Місцеве поштове відділення надсилає лист центральному поштовому відділенню для обробки.
Центральне поштове відділення визначає контейнер, в який лист повинен бути вміщено для поставки в місто одержувача.
Лист поміщено в контейнер, який посилають поштовому відділенню в місті одержувача.
Кроки 2 - 7 повторюються, поки не буде досягнутий маршрутизатор мережі одержувача.
Контейнер переміщається по маршруту пошти, поки не досягає поштового відділення в місті одержувача.
Маршрутизатор розпаковує фрейм і посилає датаграмму мережному рівню.
Поштове відділення в місті одержувача витягує лист від контейнера.
Поштове відділення перевіряє, що конверт потрібно доставити в одержувачу листи.
Поштове відділення поміщає конверт в контейнер для місцевих листів.
4 біти використовуються для відображення версії протоколу IP. Поточна версія - четверта. Наступною буде шоста.
Header Length (Довжина заголовка)
4 біти використовуються для відображення кількості 32-бітних слів у заголовку IP-пакета. Мінімальний розмір слова - 20 байт, отже, довжина мінімального заголовка - 0x5. Опції IP можуть збільшити мінімальний розмір заголовка на 4 байта. Якщо опція не використовує їх все, то що залишилися біти заповнюються нулями, тому довжина заголовка завжди кратна 4 байтам.
Type of Service (Тип обслуговування)
8 біт використовуються для позначення необхідного для цієї датаграми якості обслуговування при доставці через маршрутизатори об'єднаної IP-мережі. У них є біти, виділені для пріоритету, затримки, пропускної спроможності і характеристики надійності.
Total Length (Загальна довжина)
16 біт використовуються в якості ідентифікатора даного IP-пакета. Якщо IP-пакет фрагментований, то всі фрагменти мають однакові ідентифікатори, використовувані при складанні вузлом-одержувачем.
Fragmentations Flags (Фрагментаціонние прапори)
3 біта зарезервовані для прапорів фрагментації, однак тільки 2 біта визначені для поточного використання. Один прапор служить для позначення фрагментированного пакета, інший - для ідентифікації останнього фрагмента.
Fragment Offset (Зсув фрагмента)
13 біт використовуються як лічильник зсуву для вказівки положення фрагментів щодо початку поля даних IP-пакета. Якщо фрагментації немає, то зсув дорівнює 0x0.
Time To Live (Час існування)
8 біт використовуються як індикатор часу (транзитів IP-пакета), максимально допустимого перед тим, як пакет буде відкинутий. Поле TTL використовується як лічильник часу (в секундах), проведеного пакетом на маршрутизаторі, який відповідно зменшує TTL. Сучасні маршрутизатори майже завжди перенаправляють датаграми менш ніж за 1 секунду, проте, за вимогами RFC 791, вони повинні зменшувати TTL не менше ніж на одиницю. Тому TTL стає лічильником максимального числа транзитів.
8 біт використовуються в якості ідентифікатора протоколу, дані якого вміщені в IP-пакет. Поле протоколу застосовується для передачі IP-пакета протоколу верхнього рівня.
Header Checksum (Контрольна сума заголовка)
16 біт використовуються в якості контрольної суми заголовка IP-пакета. Дані пакета не враховуються і можу мати свою власну контрольну суму для перевірки помилок. Коли вузол отримує пакет, він проводить перевірку контрольної суми і при розбіжності значень відкидає пакет. Коли маршрутизатор пересилає пакет, він, як мінімум, зменшує TTL. Тому контрольна сума обчислюється знову при кожному транзиті ну шляху від відправника до одержувача.
Options and Padding (Опції і заповнення)
Для зберігання опцій використовується кратне 32 число біт. Якщо ж опції не займають це місце цілком, залишок заповнюється нулями. Таким чином, довжина IP-заголовка завжди може бути виражена кількістю четвірок байт і записана в поле Header Length.
Поле - протокол
IP використовує поле Протокол в датаграммной заголовку, щоб ідентифікувати протокол, яким будуть передаватися область даних датаграми. Кожен протокол має свій унікальний індефікатор.
Хост або маршрутизатор зчитують поле протоколу, порівнюють його значення зі значеннями в транспортній таблиці протоколу, і потім передають датаграмму до відповідного протоколу. Наприклад, якщо число протоколу - 6, IP поставляє датаграмму TCP. Якщо протокол - 17, датаграмму поставляють UDP. Хоча більшість трафіку використовує TCP або UDP, є інші протоколи, які можуть використовувати IP. Є приблизно 100 протоколів транспортного рівня, використовуваних в інших спеціальних цілях.
протокол ICMP
Перевірка пункту призначення за допомогою протоколу ICMP
Якщо маршрутизатор отримує пакет, який не може бути доставлений в кінцевий пункт призначення, то він посилає відправнику ICMP-повідомлення "Пункт призначення недосяжний". Але спочатку він пошле маршрутизатора - одержувачу луна-запит. Повідомлення може бути не доставлено через те, що маршрут до пункту призначення невідомий, а луна-відповідь являє собою успішний відповідь на видачу команди ping. Однак результатом виконання цієї команди можуть бути і інші повідомлення, наприклад повідомлення про недосяжність або повідомлення, про закінчення часу очікування.
НОВИНИ ФОРУМУ
Лицарі теорії ефіру