TCP protokoli qanday ishlaydi?
sobes.tech AI
AIdan javob
TCP (Transmission Control Protocol) — bu uzatish uchun javobgar bo‘lgan, ishonchli va ulanishga asoslangan ma'lumot yetkazish protokoli.
Asosiy ishlash jihatlari:
-
Uch tomonlama qo‘l berish (Three-way Handshake):
- Mijoz SYN (Synchronize) paketini boshlang‘ich ketma-ketlik raqami (ISN) bilan yuboradi.
- Server SYN-ni oladi, o‘zining ISN va mijozning ISN-ga tasdiqlash (ACK) bilan SYN-ACK (Synchronize-Acknowledge) yuboradi (
tasdiqlash raqami = mijoz ISN + 1). - Mijoz SYN-ACK-ni oladi, serverning ISN-ni tasdiqlovchi ACK yuboradi (
tasdiqlash raqami = server ISN + 1). - Ulanish o‘rnatiladi, ma’lumotlarni yuborish mumkin.
-
Ma’lumotlar oqimi bilan uzatish: Ma’lumotlar uzluksiz bayt oqimi sifatida yuboriladi, alohida paketlar sifatida emas. TCP ma’lumotlar oqimini segmentlarga bo‘lib uzatadi.
-
Ketma-ketlik raqamlash (Sequence Numbers): Har bir baytga noyob raqam berilgan. Segmentlar, ularning ichidagi birinchi bayt raqami (ketma-ketlik raqami) va tasdiqlash raqami (acknowledgement number) ni o‘z ichiga oladi; bu, yuboruvchining qaysi baytni kutayotganini ko‘rsatadi.
-
Tasdiqlashlar (Acknowledgements - ACK): Qabul qiluvchi, muvaffaqiyatli qabul qilingan ma’lumotlarni bildirish uchun ACK yuboradi. Agar yuboruvchi ma’lum vaqtda ACK olmasa, segmentni qayta yuboradi.
-
Xato nazorati (Error Control): Ma’lumotlarning yaxlitligini tekshirish uchun checksumlar ishlatiladi. Agar segment buzilgan bo‘lsa, u rad etiladi va yuboruvchi timeout yoki takrorlangan ACK kutadi; bu orqali segmentlar qayta yuboriladi.
-
Oqim nazorati (Flow Control): Qabul qiluvchining buferining to‘lishini oldini olish uchun mexanizm. Qabul qiluvchi ACK paketlarida o‘zining qabul oynasining o‘lchamini bildiradi. Yuboruvchi, faqat oynada ko‘rsatilgan miqdordagi ma’lumotni yuborishi mumkin.
-
Tıg‘ilish nazorati (Congestion Control): Tarmoqning mavjud quvvatini aniqlash va ma’lumot uzatish tezligini dinamik ravishda boshqarish mexanizmi; tıg‘ilishdan saqlanish uchun. Slow start, congestion avoidance, fast retransmit va fast recovery kabi algoritmlarni o‘z ichiga oladi.
-
Ulanishni yopish: Odatda, to‘rt tomonlama qo‘l berish bilan amalga oshiriladi:
- Bir tomon FIN (Finish) paketini yuboradi.
- Boshqa tomon FIN uchun ACK yuboradi.
- Boshqa tomon, qolgan ma’lumotlarini yuborganidan so‘ng, o‘zining FIN-ni yuboradi.
- Birinchi tomon, bu FIN uchun ACK yuboradi.
- Ulanish yopiladi.
TCP segmentining tuzilishi:
| Maydon | Hajmi (bayt) | Tavsifi |
|---|---|---|
| Manba porti | 2 | Yuboruvchining porti |
| Manzil porti | 2 | Qabul qiluvchining porti |
| Ketma-ketlik raqami | 4 | Segmentdagi birinchi bayt raqami |
| Tasdiqlash raqami | 4 | Keyingi kutayotgan bayt raqami |
| Ma’lumotlar offseti / Sarlavha uzunligi | 4 bit | TCP sarlavhasining uzunligi |
| Rezervlar | 6 bitlar | Rezervlangan |
| Boshqarish bayroqlari (Flags) | 6 bitlar | URG, ACK, PSH, RST, SYN, FIN |
| Oyna o‘lchami | 2 | Qabul qiluvchining oynasi o‘lchami |
| Checksum | 2 | Sarlavha va ma’lumotlarning tekshiruvi sumasi |
| Zudlik bilan ko‘rsatkich | 2 | Zudlik bilan ma’lumotlarni ko‘rsatadi (agar URG o‘rnatilgan bo‘lsa) |
| Opsiyalar | O‘zgaruvchan | Qo‘shimcha opsiyalar |
| To‘ldirish (Padding) | O‘zgaruvchan | Sarlavhani tekislash uchun |
| Ma’lumotlar | O‘zgaruvchan | Uzatilayotgan ma’lumotlar |
// Boshqarish bayroqlari (Flags):
// URG: Zudlik bilan ko‘rsatkich maydoni ahamiyatli
// ACK: Tasdiqlash maydoni ahamiyatli
// PSH: Push funktsiyasi
// RST: Ulanishni tiklash
// SYN: Ketma-ketlik raqamlarini sinxronlashtirish
// FIN: Yana ma’lumot yo‘q