Bosh sahifa Wiki Header

Header

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:

  • destination MAC;
  • source MAC;
  • EtherType;
  • ixtiyoriy VLAN tag.

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:

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.

IPv6 extension headerlar:

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.

GRE over IPsec misol:

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:

  1. NIC Ethernet headerni qabul qiladi.
  2. OS EtherType bo‘yicha IPga beradi.
  3. IP Protocol maydoni bo‘yicha TCPga beradi.
  4. TCP destination port bo‘yicha socketga beradi.
  5. 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:

Loglarda headerlarni to‘liq chiqarish credential sizishiga olib kelishi mumkin.

Diagnostika

Header bilan bog‘liq muammoda:

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