· Формування пакетів із сегментів транспортного рівня, з попередньої фрагментацією (якщо необхідно) останніх;
· Підтримка процесу маршрутизації
· Просування пакетів від одного вузла комутації до іншого.
Функції IP-протоколу реалізуються за допомогою спеціальної структури заголовка пакета, формат якого наведено на слайді.
Тема містить поля фіксованої довжини (перші 20 байт) і поле змінної довжини (поле опцій), розмір якого може досягати 40 байт. Для вирівнювання цього поля по 32 бітної кордоні передбачено поле «Вирівнювання» (Padding) яке заповнюється нулями. Розглянемо призначення полів заголовка.
Версія (Version) - поле визначає номер версії протоколу. В даний час використовується версія 4 і ведеться активна підготовка до переходу на версію 6. Версія 5 описує протокол ST2, розроблений для передачі даних потокових додатків реального часу. Поле перевіряється перед обробкою пакета і пакети незгоду з протокольним стеком приймача версією, відкидаються. Одночасно, включення версії в кожну дейтограмму дозволяє використовувати різні, але узгоджуються, версії на різних хостах.
Довжина заголовка (Internet Header Length, IHL) - Поле визначає довжину заголовка, виміряну в 32-бітових словах. Коректний заголовок має довжину не менше 5 слів. Довжина поля опцій (в 32-розрядних словах) може бути визначена як значення цього поля мінус 5.
Тип сервісу (Type of service, ToS) - визначає тип необхідного обслуговування пакета. Перші три біта задають рівень пріоритету обслуговування (0-7), 3-5 біти визначають вимоги до затримки (яка вийде, низька), рівень пропускної здатності (звичайний, високий) і надійність доставки (яка вийде, висока). Практично, більшість маршрутизаторів ігнорує дані цього поля. Однак в даний час у зв'язку з розробкою механізмів забезпечення в IP-мережах служб з гаранірованним якістю обслуговування робляться спроби використання значень цього поля.
Загальна довжина (Total length) - поле містить загальну довжину пакета, розмір якого не може перевищувати 65535 байт. Практично пакети такої довжини ніколи не використовуються, оскільки технології канального рівня накладають свої обмеження. Так, Ethernet не допускає кадрів з довжиною понад 1500 байт, FDDI - 4096 байт і т.д. У зв'язку з цим, протокол IP виконує фрагментацію сегментів даних, що надходять до нього від TCP і UDP протоколів. Слід зазначити, що маршрутизатор не виконує складання пакетів, навіть якщо наступна мережа має параметр MTU (Maximum Transmission Unit), що допускає більші пакети. Збірка пакетів в вихідний сегмент проводиться на місці призначення.
Поля «Ідентифікатор», «Прапори» і «Зсув фрагмента» керують процесом складання сегмента.
Час життя (Time to live, TTL) - поле, що визначає максимальний час, який пакет може існувати в мережі. Значення цього поля (в секундах) встановлюється при відправці пакета і зменшується на одиницю в міру проходження їм маршрутизаторів. При досягненні нульового значення цього поля пакет знищується. Максимальне значення поля - 255 секунд. Цей механізм допомагає уникнути перевантажень мережі при виникненні помилок в таблицях маршруізаціі, що призводять до утворення петель.
Протокол (Protocol) - поле вказує модулю якого протоколу (TCP, UDP, ICMP) передати отриманий IP-пакет. На слайді 5. наведені значення цього поля для деяких з протоколів. Надалі нас будуть цікавити TCP, UDP, ICMP.
Контрольна сума (Header checksum) - поле містить значення контрольної суми, розрахованої тільки за назвою. Оскільки значення деяких полів заголовка змінюються в міру проходження пакету по маршруту (поле TTL, наприклад), то значення даного поля перевіряються і перераховуються на кожному маршрутизаторі. Цей механізм є єдиним засобом забезпечення достовірності передачі, що містяться в протоколі IP.
Опції (Options) - необов'язкове поле, яке використовується при налагодженні мереж і для запиту певних специфічних процедур обробки. В даний час використовується вкрай рідко. У зв'язку з розробкою нових протоколів, що забезпечують більшу гнучкість в обробці IP-трафіку, можливість використання цих полів знову стала предметом обговорення комітетів по стандартизації.