Вступ
Усім нам відомий принцип класифікації та принцип некласифікації IP-протоколу, а також його застосування в мережевому зв'язку. Фрагментація та повторне складання IP-протоколу є ключовим механізмом у процесі передачі пакетів. Коли розмір пакета перевищує ліміт максимальної одиниці передачі (MTU) мережевого з'єднання, фрагментація IP-протоколу розділяє пакет на кілька менших фрагментів для передачі. Ці фрагменти передаються незалежно в мережі, а після прибуття до пункту призначення вони повторно збираються в повні пакети за допомогою механізму повторного складання IP-протоколу. Цей процес фрагментації та повторного складання гарантує, що пакети великого розміру можуть передаватися в мережі, забезпечуючи при цьому цілісність та надійність даних. У цьому розділі ми детальніше розглянемо, як працює фрагментація та повторне складання IP-протоколу.
Фрагментація та повторне складання IP-адрес
Різні канали передачі даних мають різні максимальні одиниці передачі (MTU); наприклад, канал передачі даних FDDI має MTU 4352 байти, а MTU Ethernet — 1500 байт. MTU розшифровується як Maximum Transmission Unit (максимальна одиниця передачі) і позначає максимальний розмір пакета, який може бути переданий мережею.
FDDI (Fiber Distributed Data Interface) – це стандарт високошвидкісної локальної мережі (LAN), яка використовує оптичне волокно як середовище передачі. Максимальний розмір пакета (MTU) – це максимальний розмір пакета, який може бути переданий протоколом канального рівня. У мережах FDDI розмір MTU становить 4352 байти. Це означає, що максимальний розмір пакета, який може бути переданий протоколом канального рівня в мережі FDDI, становить 4352 байти. Якщо пакет, що передається, перевищує цей розмір, його необхідно фрагментувати, щоб розділити пакет на кілька фрагментів, придатних для розміру MTU для передачі та повторного складання на приймачі.
Для Ethernet розмір MTU зазвичай становить 1500 байт. Це означає, що Ethernet може передавати пакети розміром до 1500 байт. Якщо розмір пакета перевищує ліміт MTU, то пакет фрагментується на менші фрагменти для передачі та повторно збирається в пункті призначення. Повторне збирання фрагментованої IP-дейтаграми може бути виконане лише хостом призначення, а маршрутизатор не виконуватиме операцію повторного збирання.
Ми також говорили про сегменти TCP раніше, але MSS розшифровується як максимальний розмір сегмента (Maximum Segment Size), і він відіграє важливу роль у протоколі TCP. MSS позначає розмір максимального сегмента даних, дозволеного для надсилання в TCP-з'єднанні. Подібно до MTU, MSS використовується для обмеження розміру пакетів, але робить це на транспортному рівні, рівні протоколу TCP. Протокол TCP передає дані прикладного рівня, розділяючи дані на кілька сегментів даних, а розмір кожного сегмента даних обмежений MSS.
MTU кожного каналу передачі даних відрізняється, оскільки кожен тип каналу передачі даних використовується для різних цілей. Залежно від мети використання, можуть розміщуватися різні MTU.
Припустимо, що відправник хоче надіслати велику дейтаграму розміром 4000 байт для передачі через з'єднання Ethernet, тому дейтаграму потрібно розділити на три менші дейтаграми для передачі. Це пояснюється тим, що розмір кожної малої дейтаграми не може перевищувати ліміт MTU, який становить 1500 байт. Після отримання трьох малих дейтаграм одержувач знову збирає їх у вихідну велику дейтаграму розміром 4000 байт на основі порядкового номера та зміщення кожної дейтаграми.
При фрагментованій передачі втрата фрагмента призводить до недійсності всієї IP-дейтаграми. Щоб уникнути цього, TCP запровадив MSS, де фрагментація здійснюється на рівні TCP, а не на рівні IP. Перевагою цього підходу є те, що TCP має точніший контроль над розміром кожного сегмента, що дозволяє уникнути проблем, пов'язаних з фрагментацією на рівні IP.
Для UDP ми намагаємося не надсилати пакети даних, розмір яких перевищує MTU. Це пояснюється тим, що UDP — це транспортний протокол, орієнтований на безз'єднання, який не забезпечує надійності та механізмів повторної передачі, як TCP. Якщо ми надсилаємо пакет даних UDP, розмір якого перевищує MTU, він буде фрагментований IP-рівнем для передачі. Після втрати одного з фрагментів протокол UDP не може здійснити повторну передачу, що призводить до втрати даних. Тому, щоб забезпечити надійну передачу даних, нам слід намагатися контролювати розмір пакетів даних UDP у межах MTU та уникати фрагментованої передачі.
Брокер мережевих пакетів Mylinking™може автоматично ідентифікувати різні види тунельних протоколів VxLAN/NVGRE/IPoverIP/MPLS/GRE тощо, може бути визначений відповідно до профілю користувача, відповідно до вихідних характеристик тунельного потоку внутрішніх або зовнішніх характеристик.
○ Може розпізнавати пакети міток VLAN, QinQ та MPLS
○ Може ідентифікувати внутрішню та зовнішню VLAN
○ Пакети IPv4/IPv6 можна ідентифікувати
○ Може ідентифікувати тунельні пакети VxLAN, NVGRE, GRE, IPoverIP, GENEVE, MPLS
○ Можливість ідентифікації фрагментованих IP-пакетів (Підтримується ідентифікація фрагментації IP та підтримується повторне складання фрагментації IP для реалізації фільтрації функцій L4 для всіх пакетів фрагментації IP. Реалізація політики виведення трафіку.)
Чому фрагментований IP та фрагментований TCP?
Оскільки під час передачі по мережі IP-рівень автоматично фрагментує пакет даних, навіть якщо TCP-рівень не сегментує дані, пакет даних буде автоматично фрагментований IP-рівнем і переданий нормально. Тож навіщо TCP фрагментація? Хіба це не надмірність?
Припустимо, що є великий пакет, який не сегментовано на рівні TCP і втрачено під час передачі; TCP повторно передасть його, але лише в цілому великому пакеті (хоча рівень IP розділяє дані на менші пакети, кожен з яких має довжину MTU). Це пояснюється тим, що рівень IP не дбає про надійну передачу даних.
Іншими словами, на транспортному рівні машини до мережевого з'єднання, якщо транспортний рівень фрагментує дані, IP-рівень цього не робить. Якщо фрагментація не виконується на транспортному рівні, фрагментація можлива на IP-рівні.
Простіше кажучи, TCP сегментує дані таким чином, що IP-рівень більше не фрагментується, і під час повторних передач передаються лише невеликі частини фрагментованих даних. Таким чином, можна підвищити ефективність та надійність передачі.
Якщо TCP фрагментований, чи не фрагментований IP-рівень?
У вищезазначеному обговоренні ми згадували, що після фрагментації TCP на рівні відправника, фрагментація на IP-рівні відсутня. Однак, по всьому транспортному каналу можуть бути інші пристрої мережевого рівня, які можуть мати максимальний блок передачі (MTU), менший за MTU на рівні відправника. Таким чином, навіть якщо пакет був фрагментований на рівні відправника, він фрагментується знову, коли проходить через IP-рівень цих пристроїв. Зрештою, всі шарди будуть зібрані на рівні одержувача.
Якщо ми можемо визначити мінімальний MTU по всьому каналу та надсилати дані цієї довжини, фрагментація не відбуватиметься незалежно від того, до якого вузла передаються дані. Цей мінімальний MTU по всьому каналу називається MTU шляху (PMTU). Коли IP-пакет надходить до маршрутизатора, якщо MTU маршрутизатора менший за довжину пакета, а прапорець DF (не фрагментувати) встановлено на 1, маршрутизатор не зможе фрагментувати пакет і зможе лише відкинути його. У цьому випадку маршрутизатор генерує повідомлення про помилку ICMP (Internet Control Message Protocol) під назвою "Fragmentation Needed But DF Set". Це повідомлення про помилку ICMP буде надіслано назад на адресу джерела зі значенням MTU маршрутизатора. Коли відправник отримає повідомлення про помилку ICMP, він може налаштувати розмір пакета на основі значення MTU, щоб уникнути повторної ситуації забороненої фрагментації.
Фрагментація IP-адрес є необхідністю, і її слід уникати на IP-рівні, особливо на проміжних пристроях у з'єднанні. Тому в IPv6 фрагментація IP-пакетів проміжними пристроями заборонена, і фрагментація може здійснюватися лише на початку та в кінці з'єднання.
Базове розуміння IPv6
IPv6 — це 6-та версія інтернет-протоколу, яка є наступником IPv4. IPv6 використовує 128-бітну адресну довжину, що може забезпечити більше IP-адрес, ніж 32-бітна адресна довжина IPv4. Це пояснюється тим, що адресний простір IPv4 поступово вичерпується, тоді як адресний простір IPv6 дуже великий і може задовольнити потреби майбутнього Інтернету.
Коли йдеться про IPv6, окрім більшого адресного простору, він також забезпечує кращу безпеку та масштабованість, а це означає, що IPv6 може забезпечити кращий мережевий досвід порівняно з IPv4.
Хоча IPv6 існує вже давно, його глобальне впровадження все ще відбувається відносно повільно. Це головним чином тому, що IPv6 має бути сумісним з існуючою мережею IPv4, що вимагає переходу та міграції. Однак, з вичерпанням адрес IPv4 та зростанням попиту на IPv6, все більше постачальників інтернет-послуг та організацій поступово впроваджують IPv6 та поступово реалізують подвійну роботу IPv6 та IPv4.
Короткий зміст
У цьому розділі ми детальніше розглянули, як працюють фрагментація та повторна збірка IP. Різні канали передачі даних мають різний максимальний одиницю передачі (MTU). Коли розмір пакета перевищує ліміт MTU, фрагментація IP розділяє пакет на кілька менших фрагментів для передачі та повторно збирає їх у повний пакет за допомогою механізму повторної збірки IP після прибуття до пункту призначення. Мета фрагментації TCP полягає в тому, щоб IP-рівень більше не фрагментувався, а повторно передавалися лише невеликі дані, які були фрагментовані під час повторної передачі, щоб підвищити ефективність та надійність передачі. Однак, по всьому транспортному каналу можуть бути інші пристрої мережевого рівня, MTU яких може бути меншим, ніж у відправника, тому пакет все одно буде знову фрагментований на IP-рівні цих пристроїв. Фрагментації на IP-рівні слід уникати якомога більше, особливо на проміжних пристроях у каналі.
Час публікації: 07 серпня 2025 р.