Packet — tarmoq orqali uzatiladigan, sarlavha va foydali ma’lumotdan tashkil topgan mantiqiy ma’lumot birligi. “Packet” atamasi ko‘pincha IP qatlamidagi ma’lumot birligini bildiradi.
Ilova ma’lumoti tarmoq stack’idan o‘tayotganda bir nechta sarlavha bilan kapsulalanadi. Qabul tomonda sarlavhalar teskari tartibda olib tashlanadi.
Kapsulalash
Masalan, HTTPS ma’lumoti quyidagicha joylashishi mumkin:
Ethernet frame
└── IP packet
└── TCP segment
└── TLS record
└── HTTP data
Har qatlam o‘z vazifasi uchun header qo‘shadi.
IP packet
IPv4 packet:
IPv6 packet:
Payload TCP segment, UDP datagram, ICMP xabar yoki boshqa protokol bo‘lishi mumkin.
IPv4 header
Keng tarqalgan maydonlar:
- Version;
- IHL;
- DSCP va ECN;
- Total Length;
- Identification;
- Flags;
- Fragment Offset;
- TTL;
- Protocol;
- Header Checksum;
- Source Address;
- Destination Address;
- Options.
IPv6 header
IPv6 asosiy headeri 40 bayt.
Maydonlar:
- Version;
- Traffic Class;
- Flow Label;
- Payload Length;
- Next Header;
- Hop Limit;
- Source Address;
- Destination Address.
Fragmentatsiya va boshqa qo‘shimcha ma’lumot extension headerlarda saqlanadi.
Source va destination
Source manzil packetni yuborgan endpointni, destination manzil qabul qiluvchini bildiradi.
Router destination IP bo‘yicha forwarding qiladi.
NAT source yoki destination manzil va portni o‘zgartirishi mumkin.
Packet va frame
Packet Layer 3 tushuncha, frame esa Layer 2 ma’lumot birligi.
Bir IP packet yo‘l davomida turli framelarga joylanadi.
Masalan:
Router eski frame’ni olib tashlab, packetni yangi link uchun boshqa frame’ga joylaydi.
Packet va segment
TCP ma’lumot birligi ko‘pincha segment deb ataladi.
UDP ma’lumot birligi datagram.
IP ularni payload sifatida packet ichida tashiydi.
Amaliy suhbatda barcha tarmoq birliklari “packet” deb atalishi mumkin, lekin qatlamlarni ajratish diagnostikada muhim.
MTU
MTU link bitta packetni fragmentatsiyasiz tashiy oladigan eng katta hajmni cheklaydi.
Ethernet IP MTU ko‘pincha 1500 bayt.
Tunnel qo‘shimcha header qo‘shsa, inner packet uchun joy kamayadi.
Fragmentatsiya
IPv4 packet link MTUsidan katta bo‘lsa, router ayrim holatda uni fragmentlarga bo‘lishi mumkin.
Har fragment:
ega.
Qabul qiluvchi fragmentlarni qayta yig‘adi.
Bitta fragment yo‘qolsa, butun original packet yaroqsiz bo‘ladi.
IPv6 fragmentatsiya
IPv6 router packetni yo‘lda fragmentlamaydi.
Packet juda katta bo‘lsa, router ICMPv6 Packet Too Big yuboradi. Source packet hajmini kamaytiradi yoki Fragment extension header bilan o‘zi fragmentlaydi.
TTL va Hop Limit
IPv4 TTL va IPv6 Hop Limit har routerda kamayadi.
Qiymat nolga tushsa packet tashlanadi.
Bu routing loopdagi packetning cheksiz aylanishini oldini oladi.
Checksum
IPv4 header checksum faqat headerni tekshiradi.
Router TTLni o‘zgartirgani uchun checksumni yangilaydi.
IPv6 asosiy headerida header checksum yo‘q. Link va transport qatlamidagi checksumlar ishlatiladi.
TCP va UDP checksum pseudo-header orqali IP manzillarni ham hisobga oladi.
DSCP va ECN
DSCP packetning QoS sinfini bildiradi.
ECN congestionni packet tashlamasdan belgilashga yordam beradi.
Router va switch policy asosida bu maydonlarni saqlashi yoki qayta yozishi mumkin.
Packet forwarding
Router packetni qabul qilganda:
- Layer 2 frame tekshiriladi.
- IP header o‘qiladi.
- TTL yoki Hop Limit kamayadi.
- Routing jadvaldan next hop topiladi.
- Firewall va QoS policy qo‘llanadi.
- Packet yangi frame’ga joylanadi.
- Chiqish interfeysga yuboriladi.
Packet destinationga yetguncha bu jarayon takrorlanadi.
Packet loss
Packet quyidagi sabablar bilan yo‘qolishi mumkin:
- queue to‘lishi;
- fizik xato;
- firewall;
- route yo‘qligi;
- TTL tugashi;
- MTU;
- checksum xatosi;
- wireless interference;
- CPU overload;
- policing.
TCP lossni aniqlab qayta uzatadi. UDP ilovasi o‘zi boshqaradi yoki lossni qabul qiladi.
Packet reordering
ECMP, parallel yo‘l yoki retransmission sabab packetlar tartibi o‘zgarishi mumkin.
TCP sequence number orqali tartibni tiklaydi.
Real vaqt UDP ilovasi jitter buffer yoki sequence number ishlatishi mumkin.
Packet duplication
Tarmoq xatosi yoki retransmission sabab bir packet bir necha marta ko‘rinishi mumkin.
TCP duplicate segmentni sequence number bilan aniqlaydi.
Ilova darajasida aynan bir marta bajarish uchun idempotency kerak bo‘lishi mumkin.
Packet capture
Packet capture tarmoqdagi xabarlarni tahlil qilish uchun ishlatiladi.
Ko‘riladigan ma’lumot:
Shifrlangan trafikda payload o‘qilmaydi, lekin metadata ko‘rinadi.
Capture joyi
Bir packet turli nuqtada turlicha ko‘rinishi mumkin.
- clientda NATdan oldin;
- routerda NATdan keyin;
- tunnel ichida inner packet;
- underlayda outer packet;
- serverda firewall’dan keyin.
Muammoni aniqlash uchun capture joyi aniq belgilanadi.
NIC offload
Host capture’da juda katta TCP packet ko‘rinishi mumkin. NIC TSO orqali uni wire’ga chiqishda kichik packetlarga bo‘ladi.
Checksum ham “incorrect” ko‘rinishi mumkin, chunki NIC uni keyin hisoblaydi.
Offload holati tahlilda hisobga olinadi.
Packet filtering
Firewall packetni:
bo‘yicha ruxsat yoki rad qiladi.
Stateless filter har packetni alohida, stateful firewall connection holati bilan birga baholaydi.
Diagnostika
Packet tahlilida:
- qaysi qatlam;
- packet hajmi;
- MTU;
- TTL;
- checksum;
- fragmentation;
- retransmission;
- duplicate;
- reordering;
- firewall;
- NAT;
- tunnel;
- capture nuqtasi
tekshiriladi.
Packet source’dan chiqishi destinationga yetganini anglatmaydi. Yo‘lning ikki tomonida capture foydali.
Bog‘liq tushunchalar
IP, Frame, Segment, Datagram, Header, Payload, MTU, Fragmentation, TTL, Packet capture, Routing