Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KM_1 (1).docx
Скачиваний:
58
Добавлен:
10.03.2016
Размер:
507.24 Кб
Скачать

33. Протокол iPv4. Структура ip-пакета.

IPv4 (англ. Internet Protocol version 4) - четверта версія інтернет протоколу (IP). Перша широко використовувана версія. Протокол описаний в RFC 791 (вересень 1981), що замінив RFC 760 (січень 1980 року).

Пакет IP містить 14 полів, з яких 13 є обов'язковими. Чотирнадцяте поле призначене для необов'язкових опцій. Поля використовують порядок байтів від старшого до молодшого, старші біти йдуть першими. Перший біт має номер 0. Таким чином, наприклад, поле з версією знаходиться в чотирьох старших бітах першого байта.

Версія

Першим полем пакету є версія протоколу розміром в чотири біти. Для IPv4 це 4.

Розмір заголовка (Internet Header Length)

Наступні чотири біта містять розмір заголовка пакету в 32-бітових словах. Оскільки число опцій не постійно, зазначення розміру важливо для відділення заголовка від даних. Мінімальне значення дорівнює 5 (5 × 32 = 160 біт, 20 байт), максимальне - 15 (60 байт).

Differentiated Services Code Point (DSCP)

Спочатку називалося «тип обслуговування» (Type of Service, ToS), в даний час визначається RFC 2474 як «Differentiated Services». Використовується для поділу трафіку на класи обслуговування, наприклад для установки чутливого до затримок трафіку, такого як VoIP, більшого пріоритету.

Покажчик перевантаження (Explicit Congestion Notification, ECN)

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

Розмір пакета

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

Ідентифікатор

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

Прапори

Поле розміром три біта містить прапори контролю над фрагментацією. Біти, від старшого до молодшого, означають:

0: зарезервовано, повинен бути рівний 0. [13]

1: Не фрагментировать

2: У пакету ще є фрагменти

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

Прапор «є фрагменти» повинен бути встановлений в 1 у всіх фрагментів пакету, крім останнього. У нефрагментовані встановлюється в 0 - такий пакет вважається власним останнім фрагментом.

Зсув фрагмента

Поле розміром в 13 біт, вказує зсув поточного фрагмента від початку передачі фрагментованого пакета в блоках по 8 байт. Дозволяє (213-1) × 8 = 65528 байт зсуву, що перевищує максимальний розмір пакета. Перший фрагмент в послідовності має нульовий зсув.

«Час життя» (Time to Live, TTL) пакета

Визначає максимальну кількість маршрутизаторів на шляху проходження пакета. Наявність цього параметра не дозволяє пакету нескінченно ходити по мережі. Кожен маршрутизатор при обробці пакету повинен зменшити значення TTL на одиницю. Пакети, час життя яких стало дорівнює нулю, знищуються, а відправнику надсилається повідомлення ICMP Time Exceeded. На відправці пакетів з різним часом життя заснована трасування їх шляху проходження (traceroute). Максимальне значення TTL = 255. Звичайне початкове значення TTL = 64 (залежить від ОС).

Протокол

Вказує, дані якого протоколу IP містить пакет (наприклад, TCP або ICMP). Просування номера протоколів можна знайти на сайті IANA. [14]

Контрольна сума заголовка

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

Оскільки TTL зменшується на кожному кроці проходження пакету, сума теж повинна обчислюватися на кожному кроці. Метод перерахунку контрольної суми визначений в RFC 1071. [15]

Адреса джерела

32-бітову адресу відправника пакета. Може не збігатися з справжнім адресою відправника через трансляцію адрес.

Адреса призначення

32-бітову адресу одержувача пакета.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]