TCP handshake nima? 3-way handshake qanday ishlaydi
Assalamu Alaykum bugun TCP handshake yani server va client o'rtasidagi ma’lumot almashinuvi uchun kelishuv haqida gaplashamiz.Agarda TCP haqida ko'proq malumot bilmoqchi bo'lsangiz ushbu maqolamni o'qib chiqishingiz mumkin . Maqola
Bizga handshake nimaga kerak ?
TCP bizga so'rovlarni hammasi yetib borishiga kafolat beradi buni qanday amalga oshiradi .So'rov yuboriladi va serverdan qabul qilinganligi haqida ACK qabul qiladi . Agar ACK qaytib kelmasa so'rov qayta uzatiladi.
SYN — bu aloqa o'rnatish uchun yuborilgan so'rov.
ACK — bu uzatuvchi uzatgan ma’lumotni qabul qildim degani .(qayta uzatilmasin)
Xo'sh foydalanuvchi aynan qaysi so'rovga ACK kelganini qayerdan biladi shu muammoni yechish uchun ular handshake qilishlari yani umumiy bir sequence number yani packetlarni ajratib oluvchi raqamlarga kelishib olishlari zarur.
Handshake qanday o`rnatiladi ?
Foydalanuvchi get so'rovini yubordi bu holatda foydalanuvchi va server o'rtasida aloqa yani handshake o'rnatiladi va bundan so'ng get so'rovi yuboriladi . Foydalanuvchi serverga SYN sequence number uzatadi masalan 287 (bu har doim bir xil sondan boshlanmaydi sababi esa ortiqcha hujumlardan himoyalanish uchun) va server buni qabul qiladi va unga qaytib SYN sequence number hamda ACK yuborilgan sequence raqamga va packet uzunligi qiymati qo'shib uzatiladi (handshake jarayonida bu 1 byteni tashkil qiladi ) so'rovi foydalanuvchiga uzatiladi. Foydalanuvchi bunga javoban ACK paketi uzatiladi server sequence raqamiga 1 ni qo'shib. Va bu jarayon 3-way handshake deb ataladi.

Bundan so'ng server haqiqiy so'rovlarni qabul qilishni boshlaydi GET so'rovini va bunga javoban ACK packeti qaytariladi ya’ni men so'rovni qabul qildim degani.
Handshake TCP darajasida bo'ladi — GET esa uning ustidagi HTTP so'rovi. Avval TCP aloqa o'rnatiladi, keyin GET yuboriladi.Shu yerda menda savol vujudga keldi foydalanuvchi ham shu ACKga nisbatan ACK yuboradimi yoki yubora oladimi ?
Yoq ACK faqat qabul qiluvchi tomonidan uzatuvchiga yuboriladi bu holatda serverdagi ACK ning o'zi so'rov qabul qilingani bu so'rov qayta uzatilmasligini taminlab beradi. Va bundan so'ng server so'rovga javobni uzatadi va bunga foydalanuvchi ACK bilan javob beradi ya’ni men javobni qabul qildim degan manoda.
E’tiboringiz uchun rahmat kamchiliklar uchun uzr so`rab qolaman!!!