Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра ІСМ
Лабораторна робота №7
на тему: “Структура IP-пакета”
Мета роботи
Вивчити структуру IP- пакета і призначення всіх його полів.
Теоретичні відомості
IP-пакет складається із заголовку і поля даних. Заголовок, що, як правило, має довжину 20 байт, має наступну структуру (мал. 1).
4 біта
номер версії
4 біта
довжина заголовка
8 біт
тип сервісу
16 біт
Загальна довжина
PR
D
T
R
16 біт
ідентифікатор пакета
3 біта
Прапори
13 біт
Зсув фрагмента
D
M
8 біт
Час життя
8 біт
протокол верхнього рівня
16 біт
Контрольна сума
32 біта
IP-адреса джерела
32 біта
IP-адреса джерела
Опції та вирівнювання
Мал.1. Структура IP-пакету
Поле Номер версії, що займає 4 біти, вказує на версію протоколу IP.
Поле Довжина заголовка IP-пакету вказує значення довжини заголовка, вимірюване в 32-бітових словах. Звичайно заголовок має довжину 20 байт, але при збільшенні обсягу службової інформації ця довжина може бути збільшена за рахунок використання додаткових байт у полі Опції.
Поле Тип сервісу задає пріоритетність пакета і вид критерію вибору маршруту. Перші три біти цього поля утворюють підполе пріоритету пакета. Пріоритет може мати значення від найнижчого – 0 (нормальний пакет) до найвищого – 7 (пакет керуючої інформації). Маршрутизатори і комп’ютери можуть брати до уваги пріоритет пакета і обробляти більш важливі пакети в першу чергу. Поле Тип сервісу містить також 3 біти, що визначають критерії вибору маршруту. Реально вибір здійснюється між трьома альтернативами: малою затримкою, високою вірогідністю і високою пропускною здатністю. Встановлений біт D говорить про те, що маршрут повинен вибиратися для мінімізації затримки доставки даного пакета, біт T – для максимізації пропускної здатності, а біт R – для максимізації надійності доставки. У багатьох мережах поліпшення одного з цих параметрів пов’язано з погіршенням іншого, крім того, обробка кожного з них вимагає додаткових обчислювальних витрат. Тому рідко, коли має сенс встановлювати одночасно хоча б два із цих трьох критеріїв вибору маршруту. Зарезервовані біти мають нульове значення.
Поле Загальна довжина означає загальну довжину пакета з урахуванням заголовка і поля даних. Максимальна довжина пакета обмежена розрядністю поля, що визначає цю величину, і становить 65535 байт, однак у більшості хост-комп’ютерів і мереж настільки великі пакети не використовуються. При передачі по мережах різного типу довжина пакета вибирається з урахуванням максимальної довжини протоколу нижнього рівня, що несе IP-пакети. Якщо це кадр Ethernet, то вибираються пакети з максимальною довжиною 1500 байт, що вміщають поле даних кадру Ethernet. У стандарті передбачається, що всі хости повинні бути готові приймати пакети довжиною аж до 576 байт. Хостам рекомендується відправляти пакети розміром більш ніж 576 байт, тільки якщо вони впевнені, що приймаючий хост або проміжна мережа готові обслуговувати пакети такого розміру.
Поле Ідентифікатор пакета використовується для розпізнавання пакетів, що утворилися шляхом фрагментації вхідного пакета. Всі фрагменти повинні мати однакове значення цього поля.
Поле Прапори містить ознаки, пов’язані з фрагментацією. Встановлений біт DF забороняє маршрутизатору фрагментувати даний пакет, а встановлений біт MF гопорить про те, що даний пакет є проміжним фрагментом. Біт, що залишився, зарезервований.
Поле Зсув фрагмента задає зсув у байтах поля даних цього пакета від початку загального поля даних вихідного пакета, підданого фрагментації. Використовується при зборці/розбиранні фрагментів пакетів при передачах їх між мережами з різними величинами MTU. Зсув повинен бути кратним 8 байт.
Поле Час життя значає граничний строк, протягом якого пакет пакет може переміщатися в мережі. Час життя даного пакета вимірюється в секундах і задається джерелом передачі. На маршрутизаторах і в інших вузлах мережі після закінчення кожної секунди з поточного часу життя віднімається одиниця. Одиниця віднімається і у тому випадку, коли час затримки меньше секунди. Оскільки сучасні маршрутизатори рідко обробляють пакет довше, ніж за одну секунду, то час життя можна вважати рівним максимальному числу вузлів, які дозволено пройти даному пакету до того, як він досягне місця призначення. Якщо параметр часу життя стане нульовим до того, як пакет досягне отримувача, цей пакет буде знищений.
Ідентифікатор Протокол верхнього рівня займає один байт і вказує, якому протоколу верхнього рівня належить інформація, розміщена в полі даних пакета (наприклад, це можуть бути сегменти протоколу TCP, дейтаграми UDP, пакети ICMP або OSPF).
Контрольна сума розраховується тільки по заголовку. Оскільки деякі поля заголовку міняють свої значення в процесі передачі пакета по мережі, контрольна сума перевіряється і повторно розраховується при кожні обробці IP-заголовка. Контрольна сума – підраховується як доповнення до суми всіх 16-бітових слів заголовка. При обчисленні контрольної суми значення самого поля «контрольна сума» встановлюється в нуль. Якщо контрольна сума невірна, то пакет буде відкинутий, як тільки помилка буде виявлена.
Поля IP-адреса джерела і IP-адреса призначення мають однакову довжину – 32біта – і однакову структуру.
Поле Опції є необов’язковим і використовується звичайно тільки при налагодженні мережі. Механізм опцій надає функції керування, які необхідні або просто корисні при певних ситуаціях, однак він не потрібний при звичайних комунікаціях. Це поле складається з декількох підполей, кожне з яких може бути одним з восьми визначених типів. У цих підполях можна вказувати точний маршрут проходження маршрутизаторів, пеєструвати пройдені пакетом маршрутизатори, поміщати дані системи безпеки, а також тимчасові оцінки. Тому що число підполей може бути довільним, то наприкінці поля Опції повинне бути додане трохи байт для вирівнювання заголовка пакета по 32-бітній границі.
Поле Вирівнювання використовується для того, щоб переконатися в тому, що IP-заголовок закінчується на 32-бітній границі. Вирівнювання здійснюється нулями.
Приклад IP-пакету
Висновок
У цій лабораторній роботі я вивчив структуру IP-пакету.