протокол ipv4

протокол ipv4

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

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

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

Алгоритм роботи протоколу ip на якомусь вузлі мережі приймає дейтаграмму з мережі виглядає наступним чином:

протокол ipv4

Формат заголовка IP

Структура IP пакетів версії 4 представлена ​​на малюнку

протокол ipv4

  • Версія - для 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:

протокол ipv4

Фрагментація 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). Цей прапор використовується у випадках, коли відправнику відомо, що у одержувача немає достатньо ресурсів по відновленню пакетів з фрагментів.

протокол ipv4

У таблиці наведено діапазони номерів мереж і максимальне число вузлів, відповідних кожному класу мереж.

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

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

  • клас А - 11111111. 00000000. 00000000. 00000000 (255.0.0.0);
  • клас В - 11111111. 11111111. 00000000. 00000000 (255.255.0.0);
  • клас С - 11111111. 11111111.11111111. 00000000 (255.255.255.0).

Розрахунок номера мережі і номера вузла за допомогою маски:

протокол ipv4

або в десяткового формі запису - номер мережі 129.64.128.0, а номер вузла 0.0.6.5.

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

Для наочності в таблиці відображається відповідність префікса з маскою:

протокол ipv4

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