SOCKS qo'l siqishi muvaffaqiyatli o'tdi. Endi relay mijozdan o'qiydi, manzilga yozadi, to'liq javobni kutadi va shundan keyingina yana mijozdan o'qiydi. Bu ketma-ketlik mutlaqo to'g'ri ilovani bloklashi mumkin.

TCP tunnel o'rnatilgach, SOCKS uning ichidagi xabarlarni belgilamaydi. Manzil birinchi bo'lib yuborishi mumkin. Ikkala tomon mustaqil yuborishi mumkin. Bir tomon qisqa yozuv yuborib, keyin ikkinchisining javobini kutishi mumkin.

Taxmin qilingan bitimlarni emas, baytlarni uzating

Qabul qilish chaqiruvi o'z bayroqlari va soket holatiga ko'ra mavjud baytlarni qaytaradi. U umumiy relayga ilova javobi tugallanganini aytmaydi. O'zboshimchalik bilan katta buferning to'lishini kutish, hamkor davom etishi uchun kerak bo'lgan kichik xabarni uzatishga to'sqinlik qilishi mumkin.

Ikkala yo'nalishga xizmat qilish uchun ilovaning mavjud parallellik modelidan foydalaning: hodisalar tsikli, asinxron I/O yoki ataylab tanlangan boshqa dizayn. Muhim xatti-harakat shundaki, bir yo'nalishdagi taraqqiyot boshqa yo'nalishda o'ylab topilgan xabar chegarasini talab qilmaydi.

Ikkita cheklangan kutayotgan bufer saqlang

Mijozdan o'qilgan ma'lumotlar hali ham manzilga yetib borishni kutayotgan bo'lishi mumkin, manzildan kelgan ma'lumotlar esa mijozga yetib borishni kutadi. O'sha kutayotgan baytlarni alohida kuzatib boring.

Yuborish so'ralgandan kamroq bayt yozishi mumkin. Yozilmagan qismni saqlang; uni tashlab yubormang yoki butun buferni qayta ijro etmang. Vaqtincha yozib bo'lmaydigan soket to'g'ri tayyorlik hodisasini kutish uchun sabab, doimiy aylanish uchun emas.

Buferlarni cheklang. Agar manzil sekin bo'lsa, cheksiz mijoz ma'lumotlarini o'qishni davom ettirish navbatni relay xotirasiga ko'chiradi xolos. Teskari bosim tegishli kutayotgan bufer to'lganda o'qishni to'xtatish va yozishlar joy bo'shatganda qayta boshlash demakdir.

Bir yo'nalishdagi tugatish siyosatni talab qiladi

TCP boshqa yo'nalishda hali foydali ma'lumotlar bo'lsa-da, yuborish yo'nalishini yopishi mumkin. Buferlangan baytlar tugagach bu holatni qanday tarqatishni hal qiling va tartibli yopilishni xato yoki muddatdan ajrating.

Bularning hech biri relaydan ilova yukini shifrdan chiqarishni yoki tahlil qilishni talab qilmaydi. Unga to'g'ri oqim bilan ishlash kerak. Faqat bufer hajmini oshirish noto'g'ri tomonni kutayotgan yoki har bir o'qishni bitta butun so'rovga mos deb hisoblaydigan relayni tuzata olmaydi.

O'xshash maqolalar