Proksi ya mbele haihifadhi mipaka ya sehemu za TCP
Tenganisha ugawaji wa TCP, usomaji wa socket na uwekaji fremu wa HTTP unapochunguza trafiki pande zote za proksi ya mbele.
Tuseme jibu la HTTP linaonekana katika sehemu kadhaa za TCP zilizonaswa baada ya kupita Squid. Hiyo inaweza kuwa tabia ya kawaida ya TCP, na si ushahidi kwamba jibu liligawanywa vibaya.
Proksi ya mbele kwa kawaida ina miunganisho miwili:
client ⇄ TCP connection A ⇄ proxy ⇄ TCP connection B ⇄ origin
Kila muunganisho una hali yake ya TCP, nambari zake za mfuatano na upangaji wake wa pakiti. Proksi inaweza kusoma data kutoka muunganisho mmoja na kuiandika kwenye mwingine bila kuhifadhi ukubwa wa awali wa sehemu. Uhifadhi wa bafa, muda wa kutuma, msongamano na mipaka ya ukubwa wa njia vinaweza kuzalisha mkusanyiko mwingine.
Mipaka mitatu inayofaa kutenganishwa
| Mpaka | Nini huamua |
|---|---|
| Sehemu ya TCP | Njia ya usafirishaji na mtandao |
| Matokeo ya usomaji wa socket | Baiti za mtiririko zilizopo na bafa ya anayeita |
| Ujumbe au fremu ya HTTP | Kanuni za uwekaji fremu za itifaki ya HTTP |
Usomaji mmoja unaweza kuwa na sehemu ya kichwa, kichwa kizima pamoja na baiti za mwili, au data inayovuka zaidi ya mpaka mmoja wa ngazi ya programu. TCP haiunganishi «mwisho wa jibu la HTTP» na mwisho wa usomaji uliofanikiwa.
Kwa hiyo kichanganuzi cha HTTP/1.1 hukusanya vichwa na kutumia kanuni za uwekaji fremu za mwili zinazohusika, zikiwemo urefu, usimbaji wa uhamishaji au kufungwa kwa muunganisho kunakoruhusiwa. Fremu ya HTTP/2 ni muundo wa itifaki ambao wenyewe unaweza kuvuka sehemu za TCP; si jina lingine la pakiti ya mtandao.
Tuneli ya CONNECT iliyofanikiwa huhifadhi mtiririko wa baiti zilizotunelishwa huku ikitumia miguu miwili ya TCP. Mipaka ya sehemu zake inaweza kutofautiana hata wakati proksi haijabadilisha baiti ndani ya tuneli.
Unapochunguza uharibifu, linganisha data ya programu iliyokwisha kukusanywa upya. Kulinganisha idadi ya pakiti au kutarajia urefu sawa wa pakiti pande zote mbili ni kudai kutoka TCP uhakika wa mipaka ambao hautoi.