MTU — tarmoq interfeysi yoki kanal bitta frame yoki packet ichida fragmentatsiyasiz tashiy oladigan eng katta payload hajmi. Uning to‘liq nomi Maximum Transmission Unit hisoblanadi.
MTU noto‘g‘ri sozlansa, ayrim kichik paketlar ishlaydi, katta paketlar esa yo‘qoladi yoki fragmentlanadi. Bu veb sahifaning qisman ochilishi, VPN orqali fayl uzatishning qotishi va ilova sessiyalarining beqaror ishlashiga sabab bo‘lishi mumkin.
Ethernet MTU
Oddiy Ethernet tarmog‘ida IP MTU ko‘pincha 1500 bayt.
Bu qiymat Ethernet frame’ning barcha qismini emas, yuqori qatlam payloadini bildiradi.
mavjud.
IP MTU 1500 bo‘lsa, IPv4 packetning header va data qismi jami 1500 baytdan oshmaydi.
IPv4 packet
Agar MTU 1500 bo‘lsa:
1500 - 20 = 1480 bayt IP payload
TCP header odatda 20 bayt bo‘lsa:
1500 - 20 IP - 20 TCP = 1460 bayt TCP payload
Bu klassik TCP MSS 1460 qiymatiga olib keladi.
IP va TCP optionlar bo‘lsa, haqiqiy payload kichrayadi.
IPv6
IPv6 asosiy headeri 40 bayt.
MTU 1500 bo‘lsa, TCPning oddiy 20 baytli headeri bilan:
1500 - 40 - 20 = 1440 bayt
TCP MSS hosil bo‘ladi.
IPv6 har link uchun kamida 1280 bayt MTUni qo‘llashi kerak.
Fragmentatsiya
Paket link MTUsidan katta bo‘lsa, ikki yo‘l mavjud:
- paketni fragmentlarga bo‘lish;
- paketni tashlab, manbaga kichraytirish haqida xabar berish.
IPv4 router ayrim holatda paketni yo‘lda fragmentlashi mumkin.
IPv6 router paketni yo‘lda fragmentlamaydi. Fragmentatsiyani faqat manba endpoint bajaradi.
IPv4 DF biti
IPv4 headerdagi Don’t Fragment biti paketni yo‘lda fragmentlamaslikni bildiradi.
Router kichik MTUli linkka katta DF paketni uzata olmasa:
- packetni tashlaydi;
- ICMP Fragmentation Needed yuboradi;
- manba paket hajmini kamaytiradi.
ICMP xabari bloklansa, Path MTU Discovery ishlamay qolishi mumkin.
Path MTU
Path MTU — manba va destination orasidagi yo‘ldagi eng kichik MTU.
Masalan:
Ethernet: 1500
PPPoE: 1492
VPN tunnel: 1430
Path MTU 1430 bo‘ladi.
Endpoint barcha linklarni ko‘rmaydi. U ICMP xabarlari yoki packet probe orqali eng kichik qiymatni aniqlaydi.
Path MTU Discovery
IPv4 PMTUD:
- sender DF bitli packet yuboradi;
- kichik MTUli router packetni tashlaydi;
- ICMP Fragmentation Needed qaytaradi;
- sender packetni kichraytiradi.
IPv6da ICMPv6 Packet Too Big xabari ishlatiladi.
ICMPni to‘liq bloklash PMTUDni buzadi.
PMTUD black hole
Kichik packetlar o‘tadi, katta packetlar esa jimgina yo‘qoladi.
Belgilar:
- ping ishlaydi;
- TCP handshake ishlaydi;
- veb sahifa qisman ochiladi;
- SSH terminal ishlaydi, katta fayl qotadi;
- VPN ichida ayrim saytlar ishlamaydi;
- TLS handshake ma’lum bosqichda to‘xtaydi.
Sabab ko‘pincha zarur ICMP xabarining bloklanishi.
TCP MSS
Maximum Segment Size TCP endpoint bir segmentda qancha TCP payload qabul qilishini bildiradi.
MSS TCP SYN paketida kelishiladi.
Router tunnelga kirishda MSSni kichraytirishi mumkin. Bu MSS clamping deb ataladi.
Masalan, tunnel MTU 1400 bo‘lsa, IPv4 TCP MSS taxminan:
1400 - 20 - 20 = 1360
bo‘lishi mumkin.
MSS faqat TCPga ta’sir qiladi. UDP va boshqa protokollarda MTU muammosi alohida qoladi.
Tunnel overhead
Har kapsulalash yangi header qo‘shadi.
Misollar:
Ichki packet 1500 bayt bo‘lsa, tashqi packet 1500dan kattalashadi.
Underlay jumbo frame qo‘llamasa, tunnel interfeys MTUsi kamaytiriladi.
GRE misoli
overhead qo‘shadi.
1500 bayt underlay MTUda ichki IP MTU taxminan 1476 bo‘lishi mumkin.
GRE ustiga IPsec qo‘shilsa, yana kamayadi.
Aniq qiymat algoritm, NAT-T va optionlarga bog‘liq.
IPsec overhead
IPsec overhead tarkibi:
AES-GCM va AES-CBC variantlarida overhead turlicha.
Shu sababli IPsec tunnel MTUsi taxmin bilan emas, platforma hujjati va packet capture bilan tekshiriladi.
VXLAN
VXLAN over IPv4 odatda qariyb 50 bayt overhead qo‘shadi:
Inner Ethernet frame’ni 1500 MTU bilan saqlash uchun underlay jumbo frame kerak bo‘lishi mumkin.
Jumbo frame
1500 baytdan katta Ethernet MTU odatda jumbo frame deb ataladi.
Keng tarqalgan qiymat 9000 bayt atrofida.
Afzalliklari:
- bir xil ma’lumot uchun kamroq packet;
- kamroq header overhead;
- CPU interrupt kamayishi;
- storage va data center trafigida samaradorlik.
Kamchiliklari:
- barcha link va qurilma mos bo‘lishi kerak;
- noto‘g‘ri joyda black hole;
- diagnostika murakkab;
- internet bo‘ylab kafolat yo‘q.
Layer 2 va Layer 3 MTU
Switch portda frame hajmi limiti, router interfeysda IP MTU alohida bo‘lishi mumkin.
Qurilma terminlari:
MPLS label stack qo‘shimcha bayt talab qiladi. Provider core linklarda MPLS MTU kattaroq sozlanadi.
Fragmentatsiyaning ta’siri
Fragmentatsiya:
- packet sonini oshiradi;
- CPU yukini ko‘paytiradi;
- bitta fragment yo‘qolsa butun packetni yaroqsiz qiladi;
- firewall va NATni murakkablashtiradi;
- security inspectionni qiyinlashtiradi;
- throughputni pasaytiradi.
Shu sababli fragmentatsiyadan ko‘ra to‘g‘ri Path MTU ma’qul.
Ping bilan tekshirish
Ko‘p tizimda ping payload hajmini va DF bitini belgilash mumkin.
IPv4 uchun taxminiy formula:
Ping payload + 8 ICMP + 20 IP = packet size
1500 MTUni tekshirish uchun payload 1472 bayt bo‘lishi mumkin.
Buyruq sintaksisi operatsion tizimga qarab farq qiladi.
MTU va NIC offload
Packet capture hostda 1500dan katta TCP packet ko‘rsatishi mumkin.
Sabab:
- TCP Segmentation Offload;
- Generic Segmentation Offload;
- Large Receive Offload.
Operatsion tizim katta buffer beradi, NIC uni tarmoqqa chiqishda kichik framelarga bo‘ladi.
Bu real wire packet hajmi bilan adashtirilmasligi kerak.
Diagnostika
MTU muammosida:
- har interfeys MTUsi;
- tunnel overhead;
- DF;
- ICMP;
- PMTUD;
- TCP MSS;
- fragment counter;
- packet capture;
- jumbo frame;
- PPPoE;
- VPN;
- load balancer;
- firewall
tekshiriladi.
Pingning kichik va katta payload natijalari solishtiriladi.
Bog‘liq tushunchalar
Ethernet, IPv4 fragmentation, IPv6, Path MTU Discovery, ICMP, TCP MSS, Jumbo frame, Tunnel overhead, GRE, IPsec, VXLAN