- •Лабораторна робота №2
- •1. Теоретичні відомості
- •1.1. Короткі відомості про tcp/ip
- •1.2.1 Фрагментація ip-пакетів
- •1.3. Протокол icmp
- •1.4. Утиліта ping
- •1.5. Утиліта tracert
- •Які параметри є в команди ping?
- •Яка максимальна довжина ip-пакета?
- •1.6. Засоби вивчення структури ip-пакетів і icmp-повідомлень
- •Контрольні запитання
1.2.1 Фрагментація ip-пакетів
IP-протокол забезпечує перенос IP-пакетів від відправника до одержувача. Однак, можливо, що на шляху від відправника до одержувача дані повинні пройти через ряд підмереж різного типу. Мережі різного типу характеризуються рядом відмінностей, серед яких фігурує таке поняття, як максимальна одиниця транспортування (Maximum Transfer Unit, MTU) – максимальний розмір поля даних пакета. Наприклад, для мережі Ethernet MTU становить 1500 байт, а для мережі FDDI – 4096 байт. У функції IP-протоколу входить розбиття IP-пакетів на коротші IP-пакети, розміри яких не перевищують допустимі для даної підмережі. Таке розбиття називається фрагментацією.
Для фрагментації використовуються поля вже розглянуті поля IP-пакета Ідентифікатор (Identification), Прапорці (Flags) та Зміщення фрагмента (Fragment Offset). Як вже було сказано, поле Ідентифікатор повинно бути однаковим для всіх фрагментованих пакетів, оскільки саме за цим значенням власне розпізнається, що IP-пакети є складовими частинами іншого IP-пакета, що був підданий фрагментації. Поле Зміщення фрагмента, фактично, вказує, в якому порядку слід «поскладати» фрагментовані пакети, щоб відтворити оригінальний IP-пакет. Зокрема, завдяки полю Зміщення фрагмента можливо правильно зібрати оригінальний IP-пакет і тоді, коли фрагментовані пакети приходять по мережі в довільному порядку. Зрештою, прапорець MF вказує, чи є даний IP-пакет останнім серед ряду пакетів-фрагментів вихідного IP-пакета.
Слід зазначити, що маршрутизатори не збирають пакети в більш крупні, навіть якщо збираються відправити ці пакети в мережу, яка дозволяє таке укрупнення. Річ у тім, що окремі фрагменти повідомлення можуть переміщатися по мережі різними маршрутами, а тому немає гарантії, що всі фрагменти проходять саме через даний маршрутизатор.
1.3. Протокол icmp
ICMP (Internet Control Message Protocol – протокол обміну керуючими повідомленнями) – це протокол повідомлення про помилки, тобто, протокол, що дозволяє маршрутизатору повідомити кінцевому вузлу про помилки, з якими маршрутизатор зіткнувся при передачі якогось IP-пакета від даного кінцевого вузла. ICMP не призначений для виправлення помилок, хоча результати його роботи можуть бути використані кінцевим вузлом для усунення помилок.
Керуючі повідомлення ICMP не відправляються проміжному маршрутизатору, що брав участь в передачі «проблемного» IP-пакета, адже IP-пакет несе лише адресу відправника та адресу одержувача, однак у нього не записуються адреси проміжних маршрутизаторів.
Кожне повідомлення протоколу ICMP передається по мережі всередині IP-пакета. Оскільки, як вже говорилося, протокол IP не дає гарантії доставки, то і повідомлення ICMP теж можуть втрачатися.
Для уникнення лавини ICMP-пакетів виконуються наступні правила:
При втраті IP-пакета ніколи не генерується новий.
ICMP-пакети ніколи не генеруються у відповідь на IP-пакети з широкомовною або групповою адресою
При пошкодженні фрагментованого IP-пакета ICMP-повідомлення відправляється лише після одержання першого пошкодженого фрагмента, оскільки відправник все одно надішле повторно весь IP-пакет, що підлягав фрагментації.
Повідомлення ICMP бувають декількох типів. В залежності від типу, повідомлення можуть мати різний формат, однак перші три поля (Тип повідомлення, Код та Контрольна сума) для всіх повідомлень ICMP є однотипні. В найбільш загальному вигляді ICMP-пакет має формат, представлений на рис. 2.
Рис. 2 Структура ICMP-пакета
