Transport layer — tarmoq arxitekturasida application jarayonlari o‘rtasida ma’lumot uzatishni tashkil qiladigan qatlamdir. Internet modelida TCP, UDP va QUIC transport vazifalarini bajaradi. U port yoki connection identifikatori orqali bir hostdagi bir nechta application oqimini ajratadi va protokolga qarab ishonchlilik, tartib, flow control hamda congestion control beradi.
Multiplexing
IP paketni hostgacha olib keladi, transport esa destination port yoki connection state orqali tegishli socketga beradi. Source va destination manzil-port juftligi flow identifikatsiyasining qismi bo‘ladi. Server odatda ma’lum portni listen qiladi, client ephemeral port tanlaydi.
Port applicationning doimiy identitysi emas. NAT tashqi portni o‘zgartirishi, load balancer connectionni backendga yo‘naltirishi mumkin. QUIC Connection ID manzil-port o‘zgarsa ham ulanishni davom ettirishga yordam beradi.
TCP
TCP connection-oriented, reliable va ordered byte stream beradi. Sequence number yo‘qolgan segmentni aniqlaydi, acknowledgement va retransmission uni qayta yuboradi. Byte stream application message chegarasini saqlamaydi; framing yuqori qatlam vazifasidir.
Flow control receiver bufferini, congestion control network capacityni himoya qiladi. Bitta yo‘qolgan segment keyingi byte lar applicationga berilishini kutdirib, transport head-of-line blocking hosil qiladi. TLS odatda TCP ustida confidentiality va authentication beradi.
UDP
UDP connectionless datagram xizmatidir. Message chegarasini saqlaydi, lekin delivery, tartib, duplicate protection yoki congestion controlni o‘zi kafolatlamaydi. DNS, real-time media va custom protocol UDPdan foydalanishi mumkin.
UDP “har doim tez” degani emas. Application reliability, pacing va securityni o‘zi amalga oshirsa murakkablik ortadi. Katta datagram IP fragmentationga uchrashi mumkin; path MTUga mos hajm tanlanadi.
QUIC
QUIC UDP ustida user-space transport bo‘lib, TLS 1.3ni integratsiya qiladi. Bitta connection ichida ko‘p independent stream, loss recovery, flow va congestion control beradi. Bir streamdagi yo‘qotish boshqa streamning application data sini TCPdagi kabi to‘liq to‘xtatmaydi.
Connection migration mobil path o‘zgarishida ulanishni saqlaydi. QUIC transport funksiyasini UDP ustida bajarsa ham application uni oddiy unreliable datagram deb talqin qilmaydi. HTTP/3 QUIC stream va control mexanizmlaridan foydalanadi.
Ishonchlilik semantikasi
Transport ACK data peer stackiga yetganini ko‘rsatishi mumkin, biznes amali commit bo‘lganini emas. TCP send muvaffaqiyati server databasega yozganini kafolatlamaydi. Application response, idempotency va transaction orqali o‘z semantikasini belgilaydi.
Connection uzilganda oxirgi requestning natijasi noaniq bo‘lishi mumkin. Retry faqat operatsiya takrorlashga xavfsiz bo‘lsa bajariladi. Keepalive o‘lik peer yoki NAT stateini aniqlashga yordam beradi, ammo application-level heartbeatdan farq qiladi.
Checksum va MTU
Transport checksum uzatishdagi ayrim bit xatolarini aniqlaydi, cryptographic integrity o‘rnini bosmaydi. UDP checksum IPv6da majburiy qoidalarga ega. NIC offload sabab packet capture outbound checksumni noto‘g‘ri ko‘rsatishi mumkin, holbuki hardware uni wirega chiqishda hisoblaydi.
Path MTUdan katta packet fragmentation yoki dropga uchraydi. TCP MSS segment payloadini moslaydi, QUIC esa datagram size va path validationni boshqaradi. ICMP bloklangan tarmoqda PMTU black hole timeout sifatida ko‘rinishi mumkin.
Transport endpoint shutdownni orderly FIN yoki error reset orqali bildirishi mumkin. Half-close bir yo‘nalishda data tugab, ikkinchi yo‘nalish davom etishini anglatadi. Application barcha protocol framingni yubormasdan socketni yopsa peer truncated message oladi.
Bog‘liq tushunchalar
TCP, UDP, QUIC, Port, Socket, Congestion control, Flow control