Header — paket, xabar, fayl yoki ma’lumot blokining boshida joylashib, uning qanday qayta ishlanishini bildiradigan xizmat ma’lumoti.
Header odatda payloadning manzili, turi, hajmi, tartibi, holati yoki himoya parametrlarini saqlaydi. Har protokol o‘z header formatiga ega.
Tarmoqda bir xabar bir nechta header bilan kapsulalanadi.
Qatlamli headerlar
HTTPS so‘rovi quyidagicha tashilishi mumkin:
Ethernet header
IPv4 yoki IPv6 header
TCP header
TLS record header
HTTP header
HTTP body
Har qatlam faqat o‘z headerini tahlil qiladi.
Switch Ethernet headerga, router IP headerga, operatsion tizim TCP headerga, web server HTTP headerga qaraydi.
Ethernet header
Ethernet header quyidagi asosiy ma’lumotlarni saqlaydi:
U lokal segmentda frame’ni yetkazish uchun ishlatiladi.
FCS frame oxirida bo‘lgani sababli trailer sifatida qaraladi.
IPv4 header
IPv4 header maydonlari:
- version;
- header length;
- DSCP va ECN;
- total length;
- identification;
- fragmentation flaglari;
- TTL;
- protocol;
- checksum;
- source IP;
- destination IP;
- options.
Router destination IP, TTL va boshqa maydonlarni o‘qiydi.
IPv6 header
IPv6 asosiy headeri soddalashtirilgan va 40 bayt.
Unda:
mavjud.
Kam ishlatiladigan funksiyalar extension headerlarga chiqarilgan.
TCP header
TCP header:
- source port;
- destination port;
- sequence number;
- acknowledgement number;
- flags;
- window;
- checksum;
- urgent pointer;
- options
ni saqlaydi.
TCP header minimum 20 bayt. Optionlar bilan kattalashadi.
UDP header
UDP header 8 bayt:
Soddaligi UDP overheadini kichik qiladi.
HTTP header
HTTP header matnli yoki HTTP/2 va HTTP/3da siqilgan fieldlar ko‘rinishida ishlaydi.
Misollar:
Host: uzbekdevs.uz
Content-Type: application/json
Content-Length: 120
Authorization: Bearer ...
Cache-Control: no-cache
HTTP header request yoki response semantikasini boshqaradi.
Header uzunligi
Ba’zi protokolda header doimiy, boshqasida o‘zgaruvchan uzunlikda.
- UDP — 8 bayt;
- IPv6 asosiy header — 40 bayt;
- IPv4 — minimum 20 bayt;
- TCP — minimum 20 bayt;
- HTTP — fieldlar soniga bog‘liq.
O‘zgaruvchan headerda uzunlik maydoni yoki terminator kerak.
Option va extension
Header option protokolni kengaytiradi.
TCP optionlar:
- MSS;
- window scale;
- SACK permitted;
- timestamp.
Ko‘p yoki noto‘g‘ri option firewall va parser uchun murakkablik yaratadi.
Header overhead
Header foydali ma’lumot emas, lekin uzatish uchun zarur.
Kichik payloadlarda header ulushi katta.
Masalan, 20 bayt IPv4 + 20 bayt TCP header bilan 10 bayt payload yuborilsa, transport va network overhead payloaddan to‘rt baravar katta.
Batching va persistent connection overheadni kamaytiradi.
Kapsulalash
Tunnel yangi tashqi header qo‘shadi.
Outer IP header
ESP header
GRE header
Inner IP header
TCP header
Payload
Har header MTUdan joy oladi.
Decapsulation
Qabul tomonda har qatlam o‘z headerini tekshiradi va payloadni yuqori qatlamga uzatadi.
Misol:
- NIC Ethernet headerni qabul qiladi.
- OS EtherType bo‘yicha IPga beradi.
- IP Protocol maydoni bo‘yicha TCPga beradi.
- TCP destination port bo‘yicha socketga beradi.
- Ilova HTTP headerni o‘qiydi.
Header checksum
IPv4 header checksum faqat IPv4 headerni tekshiradi.
TTL har routerda o‘zgargani uchun checksum yangilanadi.
TCP va UDP checksum header hamda payloaddan tashqari IP pseudo-headerni ham hisobga oladi.
Ethernet FCS esa frame bo‘yicha hisoblanadi.
Byte order
Tarmoq headeridagi ko‘p sonli qiymatlar network byte order, ya’ni big-endian formatda yoziladi.
Little-endian host qiymatni yuborishdan oldin aylantiradi.
Dasturlashda:
htons;htonl;ntohs;ntohl
kabi funksiyalar ishlatiladi.
Header parsing
Parser quyidagilarni tekshirishi kerak:
- minimal uzunlik;
- e’lon qilingan uzunlik;
- option chegarasi;
- field qiymati;
- checksum;
- nesting depth;
- duplicate field;
- encoding.
Noto‘g‘ri parsing buffer overflow, request smuggling yoki bypassga sabab bo‘lishi mumkin.
HTTP header xavfsizligi
Web tizimlarda headerlar xavfsizlikni boshqaradi.
Misollar:
Content-Security-Policy;Strict-Transport-Security;X-Content-Type-Options;Set-Cookie;Authorization;Origin;Host.
Proxy va backend headerni turlicha talqin qilsa, request smuggling yuz berishi mumkin.
Header compression
HTTP/2 HPACK, HTTP/3 QPACK orqali takroriy headerlarni siqadi.
Bu cookie va boshqa uzun fieldlar overheadini kamaytiradi.
Compression state va maxfiy qiymatlar side-channel xavfini hisobga oladi.
Metadata
Header ko‘pincha metadata hisoblanadi, ammo maxfiy bo‘lishi mumkin.
Masalan:
- Authorization token;
- Cookie;
- internal hostname;
- tracing ID;
- foydalanuvchi agenti.
Loglarda headerlarni to‘liq chiqarish credential sizishiga olib kelishi mumkin.
Diagnostika
Header bilan bog‘liq muammoda:
- protocol version;
- field uzunligi;
- source va destination;
- flags;
- checksum;
- content type;
- encoding;
- proxy rewrite;
- duplicate field;
- MTU;
- packet capture
tekshiriladi.
Payload to‘g‘ri bo‘lsa ham, noto‘g‘ri header receiver uni boshqa protocol yoki uzunlikda talqin qilishiga sabab bo‘ladi.
Header va marshrutlash qarori
Router barcha payloadni o‘qimasdan IP header orqali forwarding qarorini qabul qiladi. Load balancer esa IP va TCP headerdan tashqari TLS yoki HTTP headerning ayrim qismini ham tekshirishi mumkin.
Network device qanchalik yuqori qatlam headerini tahlil qilsa, shuncha ko‘p hisoblash va state talab etiladi. Shifrlangan trafikda application headerlari ko‘rinmasligi mumkin.
Header fieldlarini ishonchli deb qabul qilishdan oldin ular qaysi qurilma tomonidan yozilgani va proxy tomonidan o‘zgartirilganligi aniqlanadi.
Bog‘liq tushunchalar
Payload, Packet, Frame, Protocol, Encapsulation, Checksum, TCP header, IP header, HTTP header, Metadata