протокол ipv4

- вручну, налаштовується системним адміністратором під час налаштування обчислювальної мережі;
- автоматично, з використання спеціальних протоколів (зокрема, за допомогою протоколу DHCP - Dynamic Host Configuration Protocol, протокол динамічної настройки хостів).
Недоліком протоколу IP є ненадійність протоколу, тобто перед початком передачі не встановлюється з'єднання, це говорить про те, що не підтверджується доставка пакетів, які не здійснюється контроль коректності отриманих даних (за допомогою контрольної суми) і не виконується операція квітірованія (обмін службовими повідомлення з вузлом -Призначення і його готовністю прийому пакетів).
Протокол IP відправляє і обробляє кожну дейтаграмму як незалежну порцію даних, тобто не маючи ніяких інших зв'язків з іншими дейтаграммами в глобальній мережі інтернет.
Алгоритм роботи протоколу ip на якомусь вузлі мережі приймає дейтаграмму з мережі виглядає наступним чином:

Формат заголовка IP
Структура IP пакетів версії 4 представлена на малюнку

- Версія - для IPv4 значення поля має дорівнювати 4.
- IHL - (Internet Header Length) довжина заголовка IP-пакета в 32-бітових словах (dword). Саме це поле вказує на початок блоку даних в пакеті. Мінімальна коректне значення для цього поля дорівнює 5.
- Тип обслуговування (Type of Service, акронім TOS) - байт, що містить набір критеріїв, що визначають тип обслуговування IP-пакетів, представлений на малюнку.
Опис байта обслуговування побитно:
- 0-2 - пріоритет (precedence) даного IP-сегмента
- 3 - вимога до часу затримки (delay) передачі IP-сегмента (0 - нормальна, 1 - низька затримка)
- 4 - вимога до пропускної здатності (throughput) маршруту, по якому повинен відправлятися IP-сегмент (0 - низька, 1 - висока пропускна здатність)
- 5 - вимога до надійності (reliability) передачі IP-сегмента (0 - нормальна, 1 - висока надійність)
- 6-7 - ECN - явне повідомлення про затримку (управління IP-потоком).
- Довжина пакета - довжина пакета в октетах, включаючи заголовок і дані. Мінімальна коректне значення для цього поля дорівнює 20, максимальне 65535.
- Ідентифікатор - значення, яка призначається відправником пакету і призначене для визначення коректної послідовності фрагментів при складанні пакету. Для фрагментированного пакета всі фрагменти мають однаковий ідентифікатор.
- 3 біта прапорів. Перший біт повинен бути завжди дорівнює нулю, другий біт DF (do not fragment) визначає можливість фрагментації пакета і третій біт MF (more fragments) показує, чи не є цей пакет останнім в ланцюжку пакетів.
- Зсув фрагмента - значення, що визначає позицію фрагмента в потоці даних. Зсув задається кількістю восьми байтових блоків, тому це значення вимагає множення на 8 для перекладу в байти.
- Час життя (TTL) - число маршрутизаторів, які повинен пройти цей пакет. При проходженні маршрутизатора це число зменшаться на одиницю. Якщо значення цього поля дорівнює нулю то, пакет повинен бути відкинутий і відправнику пакета може бути надіслано повідомлення Time Exceeded (ICMP код 11 тип 0).
- Протокол - ідентифікатор інтернет-протоколу наступного рівня вказує, дані якого протоколу містить пакет, наприклад, TCP або ICMP.
- Контрольна сума заголовка - обчислюється відповідно до RFC 1 071
Перехоплений IPv4 пакет за допомогою сніффер Wireshark:

Фрагментація IP пакетів
На шляху пакета від відправника до одержувача можуть зустрічатися локальні і глобальні мережі різних типів з різними допустимими розмірами полів даних кадрів канального рівня (Maximum Transfer Unit - MTU). Так, мережі Ethernet можуть передавати кадри, що несуть до 1500 байт даних, для мереж X.25 характерний розмір поля даних кадру в 128 байт, мережі FDDI можуть передавати кадри розміром в 4500 байт, в інших мережах діють свої обмеження. Протокол IP вміє передавати дейтаграми, довжина яких більше MTU проміжної мережі, за рахунок фрагментації - розбиття "великого пакету" на деяку кількість частин (фрагментів), розмір кожної з яких задовольняє проміжну мережу. Після того, як всі фрагменти будуть передані через проміжну мережу, вони будуть зібрані на вузлі-одержувачі модулем протоколу IP назад в "великий пакет". Відзначимо, що складання пакета з фрагментів здійснює тільки одержувач, а не який-небудь з проміжних маршрутизаторів. Маршрутизатор можуть тільки фрагментувати пакети, але не збирати їх. Це пов'язано з тим, що різні фрагменти одного пакета не обов'язково будуть проходити через одні й ті ж маршрутизатори.
Для того, щоб не переплутати фрагменти різних пакетів, використовується поле Ідентифікації, значення якого повинно бути однаковим для всіх фрагментів одного пакета і не повторюватися для різних пакетів, поки у обох пакетів не минув час життя. При розподілі даних пакета, розмір усіх фрагментів, крім останнього, повинен бути кратний 8 байтам. Це дозволяє відвести менше місця в заголовку під поле Зміщення фрагмента.
Другий біт поля Прапори (More fragments), якщо дорівнює одиниці, вказує на те, що даний фрагмент - не останній в пакеті. Якщо пакет відправляється без фрагментації, прапор "More fragments" встановлюється в 0, а поле Зміщення фрагмента - заповнюється нульовими бітами.
Якщо перший біт поля Прапори (Do not fragment) дорівнює одиниці, то фрагментація пакета заборонена. Якщо цей пакет повинен бути переданий через мережу з недостатнім MTU, то маршрутизатор змушений буде його відкинути (і повідомити про це відправника за допомогою протоколу ICMP). Цей прапор використовується у випадках, коли відправнику відомо, що у одержувача немає достатньо ресурсів по відновленню пакетів з фрагментів.

У таблиці наведено діапазони номерів мереж і максимальне число вузлів, відповідних кожному класу мереж.
А що якщо використовувати будь-якої іншої ознака, за допомогою якого можна було б більш гнучко встановлювати межу між номером мережі і номером вузла? В якості такого ознаки зараз набули широкого поширення маски.
Для стандартних класів мереж маски мають таке значення:
- клас А - 11111111. 00000000. 00000000. 00000000 (255.0.0.0);
- клас В - 11111111. 11111111. 00000000. 00000000 (255.255.0.0);
- клас С - 11111111. 11111111.11111111. 00000000 (255.255.255.0).
Розрахунок номера мережі і номера вузла за допомогою маски:

або в десяткового формі запису - номер мережі 129.64.128.0, а номер вузла 0.0.6.5.
Існує також короткий варіант запису маски, званий префіксом або короткою маскою. Зокрема мережу 80.255.147.32 з маскою 255.255.255.252, можна записати у вигляді 80.255.147.32/30, де «/ 30» вказує на кількість двійкових одиниць в масці, тобто тридцять бінарних одиниць (відлік ведеться зліва направо).
Для наочності в таблиці відображається відповідність префікса з маскою:

Вас також можуть зацікавити: