Forward proxy သည် TCP segment နယ်နိမိတ်များကို မထိန်းသိမ်းပါ
Forward proxy ၏ နှစ်ဖက်စလုံးရှိ traffic ကို စစ်ဆေးစဉ် TCP segment ခွဲခြားမှု၊ socket ဖတ်ခြင်းနှင့် HTTP ဘောင်ခတ်မှုကို သီးခြားခွဲပါ။
Squid ကို ဖြတ်သွားပြီးနောက် HTTP တုံ့ပြန်ချက်တစ်ခုသည် ဖမ်းယူထားသော TCP segment များစွာတွင် ပေါ်လာသည်ဟု ဆိုပါစို့။ ၎င်းသည် သာမန် TCP အပြုအမူ ဖြစ်နိုင်ပြီး တုံ့ပြန်ချက်ကို မှားယွင်းစွာ ခွဲခြမ်းခဲ့သည်ဟူသော အထောက်အထား မဟုတ်ပါ။
Forward proxy တွင် များသောအားဖြင့် ချိတ်ဆက်မှု နှစ်ခု ရှိသည်−
client ⇄ TCP connection A ⇄ proxy ⇄ TCP connection B ⇄ origin
ချိတ်ဆက်မှုတစ်ခုစီတွင် ကိုယ်ပိုင် TCP အခြေအနေ၊ အစဉ်နံပါတ်များနှင့် packet ဖွဲ့စည်းမှု ရှိသည်။ Proxy သည် ချိတ်ဆက်မှုတစ်ခုမှ ဒေတာဖတ်ပြီး အခြားတစ်ခုသို့ ရေးနိုင်သည်၊ မူလ segment အရွယ်အစားများကို မထိန်းသိမ်းဘဲ။ Buffer လုပ်ခြင်း၊ ပို့သည့်အချိန်၊ လမ်းကြောင်းကျပ်တည်းမှုနှင့် လမ်းကြောင်း အရွယ်ကန့်သတ်ချက်များက အခြားအုပ်စုဖွဲ့မှုကို ဖြစ်စေနိုင်သည်။
သီးခြားထားသင့်သော နယ်နိမိတ် သုံးခု
| နယ်နိမိတ် | မည်သည်က သတ်မှတ်သည် |
|---|---|
| TCP segment | သယ်ယူပို့ဆောင်ရေးနှင့် ကွန်ရက်လမ်းကြောင်း |
| Socket ဖတ်ခြင်း၏ ရလဒ် | ရရှိနိုင်သော stream byte များနှင့် ခေါ်သူ၏ buffer |
| HTTP မက်ဆေ့ချ် သို့မဟုတ် ဘောင် | HTTP ပရိုတိုကော၏ ဘောင်ခတ်စည်းမျဉ်းများ |
ဖတ်ခြင်းတစ်ကြိမ်တွင် header ၏ အစိတ်အပိုင်း၊ header တစ်ခုလုံးနှင့် body byte များ၊ သို့မဟုတ် အပလီကေးရှင်းအဆင့် နယ်နိမိတ်တစ်ခုထက်ပို၍ ဖြတ်သွားသော ဒေတာများ ပါဝင်နိုင်သည်။ TCP သည် “HTTP တုံ့ပြန်ချက်၏ အဆုံး” ကို အောင်မြင်သော ဖတ်ခြင်း၏ အဆုံးတွင် မချိတ်ဆွဲပါ။
ထို့ကြောင့် HTTP/1.1 parser သည် header များကို စုဆောင်းပြီး သက်ဆိုင်ရာ body ဘောင်ခတ်စည်းမျဉ်းများကို အသုံးပြုသည်၊ ၎င်းတွင် အရှည်၊ ပို့ဆောင်ရေး ကုဒ်ပြောင်းခြင်း သို့မဟုတ် ခွင့်ပြုထားသော ချိတ်ဆက်မှုပိတ်ခြင်း ပါဝင်သည်။ HTTP/2 ဘောင်သည် သူကိုယ်တိုင် TCP segment များကို ဖြတ်နိုင်သော ပရိုတိုကော ဖွဲ့စည်းပုံ ဖြစ်သည်၊ ၎င်းသည် ကွန်ရက် packet ၏ အခြားအမည် မဟုတ်ပါ။
အောင်မြင်သော CONNECT tunnel သည် tunnel အတွင်းရှိ byte စီးကြောင်းကို ထိန်းသိမ်းထားသော်လည်း TCP ခြေနှစ်ချောင်းကို အသုံးပြုနေဆဲ ဖြစ်သည်။ Proxy က tunnel အတွင်းရှိ byte များကို မပြောင်းလဲခဲ့သော်လည်း ၎င်း၏ segment နယ်နိမိတ်များ ကွာခြားနိုင်သည်။
ပျက်စီးမှုကို စုံစမ်းစဉ် ပြန်လည်ပေါင်းစပ်ထားသော အပလီကေးရှင်း ဒေတာများကို နှိုင်းယှဉ်ပါ။ Packet အရေအတွက်ကို နှိုင်းယှဉ်ခြင်း သို့မဟုတ် နှစ်ဖက်စလုံးတွင် တူညီသော packet အရှည်ကို မျှော်လင့်ခြင်းသည် TCP ထံမှ ၎င်းမပေးသော နယ်နိမိတ် အာမခံချက်ကို တောင်းခံခြင်း ဖြစ်သည်။