အင်ဂျင်နီယာဆရာယောဟနျ Nagle ပြီးနောက်အမည်ရှိအဆိုပါ Nagle algorithm ကို, နှငျ့အတူ "သေးငယ်တဲ့ packet ကိုပြဿနာများ" ကြောင့်ဖြစ်ရတဲ့ကွန်ယက်ကိုကြောပိတ်ဆို့မှုကိုလျှော့ချရန်ဒီဇိုင်းရေးဆွဲခဲ့သည် ကို TCP applications များ ။ UNIX တွင် ကလပ်စ 1980 ခုနှစ် Nagle ရဲ့ algorithm ကိုသုံးပြီးစတင်ခဲ့ပြီးကြောင့်ယနေ့သည် TCP တစ် standard feature အနေဆဲဖြစ်သည်။
ဘယ်လို Nagle Algorithm အလုပ်လုပ်
Nagle ရဲ့ algorithm ကို nagling လို့ခေါ်တဲ့နည်းလမ်းအားဖြင့်သည် TCP applications များ၏ပေးပို့ဘက်မှာ data တွေကို process လုပ်တယ်။ ဒါဟာအသေးအရွယ်အစားမက်ဆေ့ခ်ျကို detect နှင့်အားဖြင့်သေးငယ်တဲ့ packets တွေကို၏မလိုအပ်ဘဲကြီးမားနံပါတ်များ၏မျိုးဆက်ရှောင်ရှား, ထိုဝါယာကြိုးဖြတ်ပြီးဒေတာပေးပို့ခြင်းမပြုမီပိုမိုကြီးမားသည် TCP packet များကိုသို့သူတို့ကိုငါစုဆောင်း။ Nagle ရဲ့ algorithm ကိုများအတွက်နည်းပညာဆိုင်ရာသတ်မှတ်ချက်ကို RFC 896 အဖြစ် 1984 ခုနှစ်တွင်ပုံနှိပ်ထုတ်ဝေခဲ့သည်။ စုပြုံရန်နှင့်ယင်း၏အလုံးစုံစွမ်းဆောင်ရည်မှဝေဖန်နေကြသည်ပို့ပေးတို့အကြားအဘယ်မျှကာလပတ်လုံးအတွက်စောင့်ဆိုင်းဖို့အများကြီးဒေတာအတွက်အဆိုပါဆုံးဖြတ်ချက်များ။
Nagling ပိုပြီးထိထိရောက်ရောက်အဆိုပါအသုံးချနိုင်ပါတယ် bandwidth ကို နှောင့်နှေး (ဖြည့်စွက်၏ကုန်ကျစရိတ်မှာ network connection များ အောင်းနေချိန် ) ။ RFC 896 မှာဖော်ပြထားတဲ့ဥပမာတစ်ခုအလားအလာ bandwidth ကိုအကျိုးခံစားခွင့်နှင့်၎င်း၏ဖန်တီးမှုများအတွက်အကြောင်းပြချက်သရုပ်ဖော်:
- ကီးဘုတ်ခလုတျကှကျကိုကြားဖြတ်နားထောင်ကာလက်ခံမှရိုက်နှိပ်ထားကြောင်းဦးချင်းစီဇာတ်ကောင်ဆကျသှယျဖို့လိုလားကြောင်းတစ်ဦးကို TCP လျှောက်လွှာ, 1 ်မက်ဆေ့ခ်ျတစ်ခုချင်းစီ၏စီးရီး generate နိုင်ပါတယ် က byte အချက်အလက်များ၏။
- ဤအမက်ဆေ့ခ်ျများကွန်ယက်ကိုဖြတ်ပြီးလှေတျတျောမူရနိုင်မီ, တစျဦးစီနှင့်အတူထုပ်ပိုးထားရပါမည် ကို TCP header ကို TCP / IP ကတောင်းဆိုတဲ့အဖြစ်သတင်းအချက်အလက်။ တစ်ခုချင်းစီကိုခေါင်းစဉ် 20 နှင့် 60 bytes အကြားအရွယ်အစားနေကြပါတယ်။
- nagling မရှိရင်ဒီဥပမာ application ကိုပေးပို့သူရဲ့ကီးဘုတ်ကနေ 95% သို့မဟုတ်ထိုထက်ပို header ကိုသတင်းအချက်အလက် (21 bytes ထဲကအနည်းဆုံး 20) နှင့် 5% သို့မဟုတ်ထိုထက်နည်းအမှန်တကယ်အချက်အလက်များ၏ပါဝင်သည်ဟုကွန်ယက်ကိုမက်ဆေ့ခ်ျကို generate လိမ့်မယ်။ အဆိုပါ Nagle algorithm ကိုသုံးပြီးတူညီတဲ့ data တွေကိုအစားအများအပြားနည်းပါးလာမက်ဆေ့ခ်ျကိုအသုံးပြုခြင်းနှင့်ကီးဘုတ်သတင်းအချက်အလက်ဖြစ်ခြင်းအကြောင်းအရာ၏ 95% ရှိခြင်းကိုအပ်နိုင် - တစ်ဦးအလွန်ကြီးမား bandwidth ကိုငွေစု။
လျှောက်ထား TCP_NODELAY အတူ Nagle algorithm ကိုသူတို့ရဲ့အသုံးပြုမှုကိုထိန်းချုပ် socket programming ကို option ကို။ Windows, Linux နဲ့ Java စနစ်များကိုသူတို့အားပတ်ဝန်းကျင်မှာအဘို့ကျမ်းစာ၌ရေးထား applications များဟာ algorithm ကိုပိတ်ထားဖို့လိုတဲ့အခါမှာ TCP_NODELAY သတ်မှတ်ဖို့လိုအပ်ပါတယ်ဒါကြောင့်အားလုံးပုံမှန်အားဖြင့်, ပုံမှန်အားဖြင့် Nagle enable ။
ကန့်သတ်
Nagle ရဲ့ algorithm ကိုကို TCP နှင့်အတူသာအသုံးဝင်သည်။ အပါအဝင်အခြား protocol များ UDP ကို ကထောကျပံ့ပေးပါဘူး။
မြန်ဆန်သောကွန်ယက်တုံ့ပြန်မှုလိုသည် TCP applications များကဲ့သို့ အင်တာနက်ကိုဖုန်းကခေါ်ဆိုမှု Nagle ကို enable လုပ်ထားတဲ့အချိန်မှာသို့မဟုတ်ဦးပထမဦးဆုံးပုဂ္ဂိုလ်တစ်ဦးသေနတ်သမားဂိမ်းများ, ကောင်းစွာအလုပ်မလုပ်မည်မဟုတ်ပါ။ အဆိုပါနှောင့်နှေးသည့် algorithm ကိုအချက်အလက်များ၏သေးငယ်တုံးစုဝေးဖို့အပိုအချိန်ကြာမြင့်နေချိန်တွင်အတူတကွသိသာဖြစ်ပေါ်နိုင်ပါတယ်စေသော သုံးနေပြီ အမြင်အာရုံမျက်နှာပြင်ပေါ်တွင်သို့မဟုတ်ဒစ်ဂျစ်တယ်ဒီယိုစီး၌တည်၏။ ဒီလုပ်ငန်းသုံးကိရိယာတွေကိုပုံမှန်အား Nagle disable ။
ဤသည် algorithm ကိုမူလကကွန်ပျူတာကွန်ရက်များသူတို့ကယနေ့ပြုပါထက်အများကြီးလျော့နည်း bandwidth ကိုထောက်ခံသည့်အခါတစ်ကြိမ်ဖွံ့ဖြိုးခဲ့သည်။ အထက်ဖော်ပြထားတဲ့ဥပမာသူတို့ရဲ့နှေးကွေး, အကြီးအကျယ်-loaded ရှည်လျားသောအကွာအဝေးကွန်ယက်ပေါ်တွင် nagling ကုန်ချင်းလဲလှယ်ဥာဏ်ကောင်းသောလုပ်ရှိရာ 1980 နှစ်များအစောပိုင်းတွင် Ford ကားလေကြောင်းမှာယောဟန်က Nagle ရဲ့အတွေ့အကြုံများကိုပေါ်တွင်အခြေခံခဲ့သည်။ ကွန်ယက်ကို applications များယနေ့မိမိ၏ algorithm ကိုကနေအကြိုးပွုနိုငျဘယ်မှာ ပို. ပို. နည်းပါးလာအခြေအနေများရှိနေပါသည်။