TCP/UDP Deep Dive
Tarmoq protokoli — bu ikki yoki undan ortiq qurilma o‘rtasida ma’lumot almashish tartibini belgilovchi qoidalar to‘plami. Oddiy qilib aytganda, bu kompyuterlar qanday qilib bir-biri bilan "gaplashishini" aniqlab beradi.
Protokollar kompyuterlarga:
- ma’lumotni qanday yuborish,
- qayerga yuborish,
- qanday qilib yuborilgan ma’lumot to‘g‘ri yetib borganini tekshirish kabi muhim vazifalarni bajarishga yordam beradi.
Protokollarga misollar
- HTTP — veb sahifalarni ko‘rish uchun
- FTP — fayllarni uzatish uchun
- SMTP — email yuborish uchun
- DNS — domen nomlarini IP manzillarga o‘zgartirish uchun
- TCP/UDP — transport qatlamida ishlaydi, ya'ni yuqoridagi protokollarni asoslaydi
TCP (Transmission Control Protocol) va UDP (User Datagram Protocol) — bu OSI va TCP/IP modelining transport qatlamida ishlaydigan eng muhim protokollaridan hisoblanadi. Har ikkisi ham ma'lumot uzatishda ishlatiladi, lekin har xil yondashuvlarga ega. Ular yuqoridagi HTTP, FTP, DNS kabi protokollar ishlashi uchun asosiy poydevor vazifasini bajaradi. Ya'ni, bu protokollar orqali haqiqiy ma’lumot ishonchli yoki tez tarzda tarmoqqa uzatiladi.
OSI va TCP/IP modellari haqida qisqacha
Tarmoq texnologiyalarini to‘liq tushunish uchun avvalo OSI va TCP/IP modellari haqida bilish muhim. Bu modellar tarmoqdagi ma’lumot qanday uzatilishini qatlamlar asosida tushuntirib beradi.
OSI modeli (Open Systems Interconnection)
OSI modeli — bu tarmoq aloqasini 7 qatlamga ajratgan konseptual model. Har bir qatlam o‘ziga xos vazifani bajaradi va ma’lumotni yuqoridan pastga yoki aksincha uzatishda o‘z rolini o‘ynaydi.
| Qatlam raqami | Qatlam nomi | Tavsifi |
|---|---|---|
| 7 | Application | Foydalanuvchi bilan bevosita ishlaydi |
| 6 | Presentation | Ma'lumotni kodlash/enkodlash |
| 5 | Session | Seanslarni boshqaradi |
| 4 | Transport | Ma'lumotni ishonchli yetkazadi (TCP/UDP) |
| 3 | Network | IP manzillash va marshrutlash |
| 2 | Data Link | MAC manzillar, ramkalar (frames) |
| 1 | Physical | Fizik uzatish (kabellar, signal) |
📝 Izoh: OSI modeli o‘quv va tushunish uchun qulay bo‘lsa-da, real hayotda ko‘proq TCP/IP modeli ishlatiladi.
🌐 TCP/IP modeli
TCP/IP — bu internetning asosiy protokollar to‘plami va real tizimlarda keng qo‘llaniladi. U 4 qatlamga ega:
| Qatlam nomi | OSI'dagi mos qatlamlar | Tavsifi |
|---|---|---|
| Application | 7, 6, 5 | HTTP, FTP, DNS, SMTP va boshqalar |
| Transport | 4 | TCP, UDP — ma’lumot yetkazish |
| Internet (Network) | 3 | IP, ICMP — manzillash, routing |
| Network Access | 2, 1 | Ethernet, MAC, fizik uzatish |
Natija: TCP/IP amaliy va real tarmoqlarda ishlatiladigan model bo‘lib, biz o‘rganayotgan TCP va UDP ushbu modelning transport qatlamida joylashgan.
Segment, Datagram va Paket farqlari
Tarmoqda ma’lumot uzatishda paket, segment va datagram tushunchalari ko‘p ishlatiladi. Ular qanday farqlanadi?
| Atama | Qaerda ishlatiladi | Tavsif |
|---|---|---|
| Segment | TCP | Ma’lumotning TCP orqali bo‘lingan qismlari |
| Datagram | UDP | UDPda bo‘lingan mustaqil ma’lumot birligi |
| Paket | IP qatlamida | IP sarlavhasi bilan birga yuboriladigan ma’lumot birligi |
- TCP segmenti ichida IP paketi mavjud
- UDP datagrami ham IP paketga o‘raladi
- Shunday qilib, paket — IP asosidagi umumiy konteyner
🎯 Misol: HTTP so‘rovi → TCP segment → IP paket → Ethernet frame
TCP (Transmission Control Protocol)
Asosiy Xususiyatlari
-
Aloqa o‘rnatilgan (Connection-oriented): TCP orqali ma’lumot yuborishdan oldin aloqani o‘rnatish kerak bo‘ladi. Bu, aloqaning ishonchli bo‘lishini ta'minlaydi.
-
Ishonchli (Reliable): Agar biror paket yo'qolsa, TCP uni qayta yuboradi. Har bir yuborilgan ma’lumot qabul qilinganiga ishonch hosil qilinadi.
-
Oqim nazorati (Flow Control): Agar qabul qiluvchi qurilma sekin ishlayotgan bo‘lsa, TCP yuborishni sekinlashtiradi. Buning uchun "sliding window" texnikasi ishlatiladi.
-
Tiqilish nazorati (Congestion Control): Tarmoqda yuklama bo‘lsa, TCP avtomatik ravishda yuborish tezligini kamaytiradi.
-
🤝 3-bosqichli qo‘l siqish (Three-Way Handshake):
- Mijoz → Server:
SYN— aloqani boshlash - Server → Mijoz:
SYN-ACK— javob va tasdiq - Mijoz → Server:
ACK— aloqa o‘rnatildi
- Mijoz → Server:
TCP Sarlavhasi (Header) Tuzilishi
| 🏷️ Maydon | 📝 Tavsif |
|---|---|
| Source Port | Ma’lumot yuboruvchining porti |
| Destination Port | Qabul qiluvchining porti |
| Sequence Number | Paketlar ketma-ketligini ko‘rsatadi |
| Acknowledgment Number | Oldingi paketni tasdiqlaydi |
| Flags | SYN, ACK, FIN va boshqalar |
| Window Size | Oqim nazorati oynasi hajmi |
| Checksum | Xatolikni tekshiruvchi qiymat |
| Urgent Pointer | Zudlik bilan yuboriladigan data |
TCP Flaglar
SYN— Aloqa boshlanmoqdaACK— Qabul qilinganini tasdiqlashFIN— Aloqani tugatish istagiRST— Aloqani tiklash (agar xatolik bo‘lsa)PSH— Ma’lumot darhol yuborilishi kerakURG— Muhim (shoshilinch) ma’lumot bor
TCP Qo‘llanilish Joylari
- 🌐 Web sahifalar (HTTP/HTTPS)
- 📥 Fayl yuklash va uzatish (FTP)
- 📧 E-mail protokollari (SMTP, IMAP, POP3)
Hayotiy Misol
Siz https://example.com saytiga kirdingiz:
- Brauzer TCP orqali server bilan aloqa o‘rnatadi (SYN → SYN-ACK → ACK)
- Brauzer HTTP so‘rov yuboradi:
GET / - Server HTML sahifani yuboradi (yuzlab TCP segmentlarida)
- Brauzer har bir segmentni yig‘ib, to‘liq sahifa shakllantiriladi
- Aloqa tugatiladi (FIN → ACK → FIN → ACK)
TCP Afzalliklari va Kamchiliklari
Afzalliklari:
- Ishonchli
- Paketlar tartibda
- Qo‘shimcha nazorat mexanizmlari
Kamchiliklari:
- Tizim resursini ko‘proq ishlatadi
- Sekinroq (Qo‘shimcha tekshiruvlar sabab)
UDP (User Datagram Protocol)
Asosiy Xususiyatlari
- Aloqasiz (Connectionless): UDP ma’lumotni aloqasiz uzatadi, ya'ni oldin aloqa o‘rnatmaydi.
- Ishonchsiz (Unreliable): Paketlar yo‘qolib qolishi mumkin, tizim qayta yubormaydi.
- Yuqori tezlik: UDP minimal kechikish bilan tez ishlaydi.
- Oddiy sarlavha: UDP sarlavhasi faqat 8 baytdan iborat.
UDP Sarlavhasi Tuzilishi
| 🏷️ Maydon | 📝 Tavsif |
|---|---|
| Source Port | Yuboruvchining porti |
| Destination Port | Qabul qiluvchining porti |
| Length | Paket uzunligi |
| Checksum | Xatolikni tekshirish |
UDP Qo‘llanilish Joylari
- 🎮 Onlayn o‘yinlar (masalan, CS:GO, Fortnite)
- 📺 Video/audio translatsiyalar (YouTube Live, Twitch)
- 🟢 DNS so‘rovlari
- 📡 VoIP xizmatlari (Zoom, Skype, Telegram call)
Hayotiy Misol
Siz onlayn o‘yinda yurib ketayapsiz:
- Har bir harakat (yurish, otish) UDP orqali yuboriladi
- Agar paket yo‘qolsa, tizim kutmaydi — yangi harakat yuboriladi
- Bu tezkorlikni ta’minlaydi, lekin aniqlikni emas
UDP Afzalliklari va Kamchiliklari
Afzalliklari:
- Juda tez
- Kam resurs ishlatadi
- Real-time (real vaqtli) ilovalar uchun mos
Kamchiliklari:
- Ishonchsiz
- Paketlar tartibsiz keladi
TCP va UDP Taqqoslash
| Xususiyat | TCP | UDP |
|---|---|---|
| Aloqa turi | Connection-oriented | Connectionless |
| Ishonchlilik | Ha (ma’lumot yo‘qolmaydi) | Yo‘q (yo‘qolishi mumkin) |
| Tezlik | Sekinroq | Tezroq |
| Tizim yuklanishi | Ko‘proq | Kamroq |
| Paket tartibi | Kafolatlanadi | Kafolatlanmaydi |
| Qo‘llanish | HTTP, FTP, Email | DNS, video, o‘yinlar |