TCP protocol ကို အခြေခံ. PHP အတွက် PHP အတွက် PHP အတွက် PHP အတွက် PHP အတွက် PHP ကိုအသုံးပြုသောအခါစွမ်းဆောင်ရည်နှင့်ထိရောက်မှုသည် developer များ၏အဓိကအာရုံစိုက်မှုဖြစ်သည်။ Socket_set_option သည် PHP မှ Sockets ၏အပြုအမူကိုသတ်မှတ်ရန်ထောက်ပံ့ပေးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဘုံရွေးချယ်မှုတစ်ခုမှာ TCP_NODEDELAY ဖြစ်သည်။ ဤဆောင်းပါးသည် TCP_NODDELAY ကို ချိန်ညှိခြင်းနှင့် TCP ဆက်သွယ်ရေးထိရောက်မှုကိုတိုးတက်စေရန်လက်တွေ့ကျသောနည်းလမ်းအချို့ကိုဖော်ပြရန်ဤဆောင်းပါးသည်နက်နက်နဲနဲလေ့လာဆန်းစစ်ပါလိမ့်မည်။
TCP_NODODELAY ၏အဓိပ္ပာယ်ကိုနားမလည်မီ Nagle algorithm ကိုကြည့်ကြပါစို့။
Nagle algorithm သည်သေးငယ်သော packets အရေအတွက်ကိုလျှော့ချရန်ဒီဇိုင်းပြုလုပ်ထားသော TCP optimization technique ကိုဖြစ်သည်။ အက်ပလီကေးရှင်းသည်သေးငယ်သော data packets များကိုမကြာခဏပို့သောအခါဤ packets များသည်တစ်ချိန်ကကွန်ယက်ထုတ်လွှင့်မှုကိုတစ်ကြိမ်လျှင်တစ်ကြိမ်လျှင်တစ်ကြိမ်လျှင်တစ်ကြိမ်ပြုလုပ်လိမ့်မည်။ Nagle algorithm သည်ယခင် packet ၏အသိအမှတ်ပြုခြင်း (သို့) ကြားခံဖြည့်ထားသည်။
ဤ algorithm သည် bandwidth ကိုသိမ်းဆည်းထားသော်လည်းအထူးသဖြင့်အချိန်မရွေးလတ်တလောဆက်သွယ်ရေးအခြေအနေများ,
TCP_NODodelay သည် Nagle algorithm ကိုပိတ်ထား သည့် socket option တစ်ခုဖြစ်ပြီး ACK ကိုဖြည့်ရန်သို့မဟုတ်လက်ခံရန်စောင့်ဆိုင်းမည့်အစား packet ကိုချက်ချင်းပို့ပေးရန်အတွက် socket option တစ်ခုဖြစ်သည်။
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$socket) {
die("ဖန်တီး socket ဆုံးရှုံး: " . socket_strerror(socket_last_error()));
}
// ရုပ်သိမ်းခြင်း Nagle algorithm
socket_set_option($socket, SOL_TCP, TCP_NODELAY, 1);
socket_connect($socket, 'gitbox.net', 8080);
socket_write($socket, "GET /data HTTP/1.1\r\nHost: gitbox.net\r\n\r\n");
$response = socket_read($socket, 1024);
echo $response;
socket_close($socket);
အထက်ဖော်ပြပါကုဒ်များတွင် tcp_nodelay သို့ socket_set_set_option ကို socket_set_option ကို socket_set_option ကိုသိသိသာသာလျှော့ချပေးပြီး packets သေးငယ်တဲ့ packets တွေကိုပို့ပေးပါ။
Nagle algorithm ကိုပိတ်ထားနေတုန်း latency-sensitive applications ရဲ့တုန့်ပြန်မှုမြန်နှုန်းကိုတိုးတက်အောင်လုပ်နိုင်ပါတယ်။ TCP_NODodelay ကို သုံးရန်အတွက်သင့်လျော်သောအခြေအနေအချို့မှာဤနေရာတွင်ရှိသည်။
Real-time system : ဥပမာအွန်လိုင်းဂိမ်းများ, အချိန်မှန်ပူးပေါင်းဆောင်ရွက်ရေးအယ်ဒီတာများ,
ကြိမ်နှုန်းမြင့် packet ကိုဆက်သွယ်မှု - သင်၏လျှောက်လွှာသည်ဒေတာ၏ Bytes ၏ Bytes ကိုမကြာခဏပေးပို့ပါက TCP_NODDelay ကို ဖွင့်ရန်ပိုမိုသင့်လျော်ပါလိမ့်မည်။
အနိမ့်အမြင့်ကလတ်တလောလိုအပ်ချက်များ - ဘဏ် financial ာရေးအရောင်းအ 0 ယ်များ,
File Transfer နှင့် Web Page Loading ကဲ့သို့သောဖြစ်ရပ်များအတွက် latency ကိုအထိခိုက်မခံနိုင်သော်လည်း bandwidth-sensitive ကိုအထိခိုက်မခံနိုင်သည့်ဘ 0 ကိုအထိခိုက်မခံသောကြောင့် Nagle algorithm ကို Nagle algorithm ကိုထိန်းသိမ်းထားနိုင်သည်။
Nagle algorithm ကိုပိတ်ထားခြင်းအပြင် TCP ဆက်သွယ်ရေး၏ထိရောက်မှုကိုပိုမိုတိုးတက်စေနိုင်သောနည်းလမ်းအချို့ရှိသည်။
ပေးပို့ခြင်းနှင့်လက်ခံခြင်းခံရသည့်ကြားခံအရွယ်အစားများကို socket_set_option မှတဆင့်သတ်မှတ်နိုင်သည်။
socket_set_option($socket, SOL_SOCKET, SO_SNDBUF, 4096);
socket_set_option($socket, SOL_SOCKET, SO_RCVBUF, 4096);
ဒေတာ volume အရသိရသည် buffer အရွယ်အစားကို dynamically ကိုချိန်ညှိခြင်းနှင့်အညီစနစ်ခေါ်ဆိုမှုများနှင့်ပိတ်ဆို့ခြင်းကိုရှောင်ရှားနိုင်သည်။
concurnencencency အခြေအနေများတွင်လုပ်ငန်းစဉ်တစ်ခုလုံးကိုပိတ်ဆို့ခြင်းမှကာကွယ်ရန် socket သို့ socket သို့ထားပါ။
socket_set_nonblock($socket);
Socket_select () သို့မဟုတ်ဖြစ်ရပ်ကိုမောင်းနှင်သည့်မူဘောင်များကိုအသုံးပြုခြင်းသည် ပို. ကောင်းသည်။
အချိန်ကြာမြင့်စွာမှဒေတာဖလှယ်မှုမရှိဘဲဆက်သွယ်မှုများကိုပိတ်ခြင်းမှအလယ်အလတ် router များကိုတားဆီးပါ။
socket_set_option($socket, SOL_SOCKET, SO_KEEPALIVE, 1);
TCP_Window_SCALING , TCP_RMEM, TCP_WMEM , TCP_RMEM, TCP_WMEM စသည်ဖြင့် TCP protocol parameters များကိုချိန်ညှိခြင်း, အထူးသဖြင့်မြင့်မားသောအဆင့်မြင့်အပလီကေးရှင်းများတွင်သိသိသာသာစွမ်းဆောင်ရည်တိုးတက်မှုများကိုလည်းပြုလုပ်နိုင်သည်။
TCP_NODEDELAY တွင် Socket_set_option သည်အလွန်အရေးကြီးသော်လည်းမကြာခဏလျစ်လျူရှုထားသည့်အကောင်းဆုံးနည်းလမ်းဖြစ်သည်။ အစာရှောင်ခြင်း algorithm ကိုကျိုးကြောင်းဆီလျော်စွာလှည့်ခြင်းကအနိမ့်လက်တင်အပလီကေးရှင်းများတွင်တုံ့ပြန်မှုမြန်နှုန်းကိုအလွန်တိုးတက်စေနိုင်သည်။ ဟုတ်ပါတယ်, ၎င်းကိုဖွင့်နိုင်မလားဆိုတာကိုရွေးချယ်ခြင်းကိုသတ်သတ်မှတ်မှတ်စီးပွားရေးလိုအပ်ချက်အပေါ်အခြေခံပြီးအလေးထားသင့်တယ်။ Buffer Optimization ကိုပေါင်းစပ်ပြီးပိတ်ဆို့ခြင်းမဟုတ်သောပရိုဂရမ်နှင့် kernel-level tuning ကိုပေါင်းစပ်ခြင်းဖြင့်သာထိရောက်စွာ TCP ဆက်သွယ်ရေးလျှောက်လွှာများကိုတည်ဆောက်နိုင်သည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်သင်သည်ရိုးရှင်းသော setup တစ်ခုဖြင့်စတင်ပြီးသင်၏ကွန်ယက်ဝန်ဆောင်မှုစွမ်းဆောင်ရည်ကိုတစ်ဆင့်တိုးမြှင့်ခြင်းဖြင့်စတင်နိုင်သည်။