Forward proksi TCP segmentlari chegaralarini saqlamaydi
Forward proksining ikki tomonidagi trafikni tekshirganda TCP segmentatsiyasi, socket o’qishlari va HTTP ramkalashni ajratib turing.
Faraz qilaylik, HTTP javobi Squid orqali o’tgandan keyin yozib olingan bir nechta TCP segmentida ko’rinadi. Bu TCP ning odatiy xatti-harakati bo’lishi mumkin, javob noto’g’ri bo’linganiga dalil emas.
Forward proksida odatda ikkita ulanish bo’ladi:
client ⇄ TCP connection A ⇄ proxy ⇄ TCP connection B ⇄ origin
Har bir ulanishning o’z TCP holati, tartib raqamlari va paketlashuvi bor. Proksi bir ulanishdan ma’lumot o’qib, ikkinchisiga yozishi mumkin, asl segment o’lchamlarini saqlamasdan. Buferlash, yuborish vaqti, tirbandlik va yo’lning o’lcham chegaralari boshqa guruhlash hosil qilishi mumkin.
Alohida saqlashga arziydigan uchta chegara
| Chegara | Uni nima belgilaydi |
|---|---|
| TCP segmenti | Transport va tarmoq yo’li |
| Socket o’qishining natijasi | Mavjud oqim baytlari va chaqiruvchining buferi |
| HTTP xabari yoki ramkasi | HTTP protokolining ramkalash qoidalari |
Bitta o’qish sarlavhaning bir qismini, butun sarlavhani tana baytlari bilan birga yoki birdan ortiq amaliyot darajasidagi chegarani kesib o’tuvchi ma’lumotni o’z ichiga olishi mumkin. TCP «HTTP javobining oxiri»ni muvaffaqiyatli o’qish oxiriga bog’lamaydi.
Shu sababli HTTP/1.1 tahlilchisi sarlavhalarni to’playdi va tegishli tana ramkalash qoidalarini qo’llaydi, jumladan uzunlik, uzatish kodlash yoki ruxsat etilgan ulanish yopilishi. HTTP/2 ramkasi o’zi TCP segmentlaridan o’ta oladigan protokol tuzilmasi; bu tarmoq paketining boshqa nomi emas.
Muvaffaqiyatli CONNECT tunnel tunnel ichidagi bayt oqimini saqlaydi, ammo baribir ikkita TCP oyog’idan foydalanadi. Proksi tunnel ichidagi baytlarni o’zgartirmagan bo’lsa ham uning segment chegaralari farq qilishi mumkin.
Buzilishni tekshirganda qayta yig’ilgan amaliyot ma’lumotlarini solishtiring. Paketlar sonini solishtirish yoki ikki tomonda bir xil paket uzunligini kutish TCP dan u bermaydigan chegara kafolatini so’rashdir.