Sobes.tech
Junior

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:

  1. 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.
  2. Ma’lumotlar oqimi bilan uzatish: Ma’lumotlar uzluksiz bayt oqimi sifatida yuboriladi, alohida paketlar sifatida emas. TCP ma’lumotlar oqimini segmentlarga bo‘lib uzatadi.

  3. 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.

  4. Tasdiqlashlar (Acknowledgements - ACK): Qabul qiluvchi, muvaffaqiyatli qabul qilingan ma’lumotlarni bildirish uchun ACK yuboradi. Agar yuboruvchi ma’lum vaqtda ACK olmasa, segmentni qayta yuboradi.

  5. 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.

  6. 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.

  7. 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.

  8. 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