TCP oynasi haqida nima bilasiz?
sobes.tech AI
AIdan javob
TCP oynasi (yoki qabul oynasi) TCP protokolida oqimni nazorat qilish mexanizmi. U yuboruvchiga qaysi miqdordagi ma'lumotlarni yuborishi mumkinligini aniqlaydi, bu miqdor qabul qiluvchidan ACK (tasdiqlash) olinishidan oldin yuboriladi. Oynaning o'lchami qabul qiluvchining qabul qilish uchun bo'sh joy miqdorini ko'rsatadi.
TCP oynasidan foydalanish maqsadlari:
- Qabul qilish uchun buferning to'lib ketishini oldini olish: Qabul qiluvchi o'zining hozirgi qabul qilish buferining o'lchamini yuboruvchiga bildiradi, shuning uchun yuboriladigan ma'lumotlar miqdorini cheklaydi.
- Oqimni nazorat qilish: Oyna o'lchamining dinamik o'zgarishi tarmoq yuklamasi va qabul qiluvchining ishlashiga qarab ma'lumotlarni uzatish tezligini boshqarishga imkon beradi.
Ishlash mexanizmi:
- Qabul qiluvchi, yuboruvchiga o'zining qabul oynasi o'lchami (Window Size) haqida ma'lumot beradigan segment yuboradi.
- Yuboruvchi, ko'rsatilgan o'lchamdan oshmaydigan ma'lumotlarni yuborishi mumkin.
- Ma'lumotlar qabul qilinayotganida, qabul qiluvchi bo'sh joyning kamayishini aks ettirish uchun oynaning o'lchamini kamaytiradi.
- Qabul qiluvchi, ma'lumotlarni qabul qilishni tasdiqlovchi ACK segmentlarini yuboradi va hozirgi qabul oynasi o'lchamini o'z ichiga oladi.
- ACK ni olgach, yuboruvchi yangilangan o'lchamga asoslangan holda keyingi ma'lumot partiyasini yuborishi mumkin.
Oyna o'lchamining dinamik o'zgarishi tarmoq kengligini optimallashtirish va bufer to'lib ketishidan kelib chiqadigan paketlar yo'qotilishini oldini olish imkonini beradi.
Misol:
Qabul qiluvchi 65535 bayt o'lchamdagi oynani bildiradi. Yuboruvchi 65535 bayt ma'lumot yuborishi mumkin. 10000 bayt qabul qilgach, qabul qiluvchi yangi oyna o'lchamini 55535 bayt deb bildiradi.
// Oddiy misol (haqiqiy kod emas, faqat prinsipni ko'rsatish)
struct tcp_header {
// ... boshqa maydonlar
uint16_t window_size; // Qabul oynasi o'lchami baytlarda
// ...
};