"Connection-Oriented and Connectionless"

No automatic alt text available.
Zawgyi version

Connection-Oriented Service ကတစ္နည္းေျပာရရင္ Connction တစ္ခုသည္ Data ပို့ လႊတ္တဲ့ ေနရာမွာ reliable ျဖစ္ေအာင္ ယံုႀကည္စိတ္ခ်ရေအာင္ ပို့လႊတ္သူနဲ့ လက္ခံသူႀကားမွာ Virtual Circuit Connection တစ္ခုတည္ေဆာက္ေပးတာပါပဲ.. ဘယ္လို့တည္ေဆာက္ေပးလဲဆိုေတာ့ Transport Layer Protocol တစ္ခုျဖစ္တဲ့ TCP(Transmission Control Protocol) ကို ဥပမာအေနနဲ့ႀကည့္က်ရေအာင္ဗ်ာ.. TCP သည္ Data မပို့လႊတ္ခင္မွာ အရင္ဆံုး Three Way handshake လုပ္ျပီး connection တစ္ခုကိုအစျပဳပါတယ္. 3 Way HandShake ဆုိတာ ဘယ္လို့လဲဆို ေတာ့ ပထမဆံုး ပုိ့လႊတ္မယ့္ေကာင္(client)က လက္ခံမယ့္ေကာင္(server)ဆီကို SYN(synchronization) packet တစ္ခုပို့လုိက္ပါတယ္. လက္ခံမယ့္ေကာင္(server)ဘက္ျခမ္္းကလဲ SYN-ACK packet တစ္ခုျပန္ပို့ေပးပါလိမ့္မယ္. သူ ့ဘက္ကလက္ခံရရွိျပီး ခ်ိတ္ဆက္လို့ရပါတယ္ဆိုတာကို ေျပာတာပါ. အဲ့ေနာက္ Client ဘက္ကေနျပီး ACK တစ္ခု ပို့လိုက္ျပီးဆိုေတာ့က်မွ အဲ့ဆင့္သံုးဆင့္ျပီးသြားေတာ့မွ connection တစ္ခုစတင္ခ်ိတ္ဆက္ေပၚေပါက္လာတာပါ. TCP Connection တစ္ခုတည္ေဆာက္ျပီးသြားမွာသာ data ေတြကို စတင္ပို့လႊတ္ပါတယ္. Connection-oriented မွာ ပို့လႊတ္သမွ် Data packet တိုင္းအတြက္ လက္ခံတဲ့ေကာင္ကေနျပီး sender ကို ACK ျပန္ပို့ေပးရပါတယ္. အဲ့တာမွလဲ ပို့လိုက္သမွ် data ေတြကို ေကာင္းေကာင္းမြန္မြန္နဲ့ လက္ခံရရွိတယ္ဆုိတာကို sender ကသိမွာျဖစ္ပါတယ္. အကယ္လို့ sender ဟာ Data packet တစ္ခုအတြက္ အခ်ိန္အတုိင္းအတာတစ္ခုအထိ ACK မရခဲ့ဘူးဆုိရင္ အဲ့ Data Packet သည္ ပ်က္စီးေပ်ာက္ဆံုးျပီးလို့ယူဆျပီး ေနာက္တစ္ႀကိမ္(Retransmit) ျပန္ပို့ပါတယ္. ေနာက္တစ္ခါ လက္ခံတဲ့ ေကာင္ဘက္ကလဲ လက္ခံရရွိတဲ့ data ျပသနာ ရွိရင္ ေနာက္တစ္ႀကိမ္ျပန္ပို့ဖုိ့ request လုပ္နိုင္ပါတယ္. ေျပာရရင္ေတာ့ Connection-Oriented သည္ Reliable ျဖစ္တယ္ data Packet ေတြအတြက္ ACK ျပန္ရတဲ့ အခ်ိန္ေတြ Retransmit လုပ္ရတဲ့ အခ်ိန္ေတြ ရွိတဲ့ အတြက္ အခ်ိိန္ႀကာပါတယ္.
Connectionless Service မွာကေတာ့ Three Way handshake တုိ ့ Data Packet ေတြအတြက္ ACK ျပန္တာတုိ့ Error ရွိလို့ Retransmit လုပ္ရတာေတြဘာေတြမရွိပါဘူး. Error ရွိလို့ျဖစ္ျဖစ္ connection ေႀကာင့္ data ေရာက္မလာတာ ေပ်ာက္သြားတာပဲ ျဖစ္ျဖစ္ ျပန္မပို့ပါဘူး. reliable ေတာ့မျဖစ္ဘူးေပါ့. အဲ့တာေတြ မရွိတဲ့အတြက္ ေကာင္းတာတစ္ခုကေတာ့ Speed ပါပဲ. တစ္ဘက္နဲ့ တစ္ဘက္ data ပို့တဲ့ေနရာမွာေတာ့ Conneciton-Oriented ထက္ပုိျမန္ပါတယ္. ဘယ္မွာ အသံုးမ်ားလဲဆိုေတာ့ Live stream လြင့္တဲ့အခါမ်ိဳးမွာ အသံုမ်ားပါတယ္. Live Stream မွာဆုိ အေႀကာင္းအမ်ိဳးေႀကာင့္ ပ်က္စီးဆံုးရွံဳးသြားတဲ့ Data ကိုျပန္မပို့ပါဘူး အခ်ိန္နဲ့ တစ္ေျပးညီပဲဆက္ျပေနတာပါ အဲ့သေဘာပါပဲ ကၽြန္ေတာ္တုိ့ေတြ သူငယ္ခ်င္းနဲ့ viber ကေန video call ေခၚရင္ ျဖစ္ဖူးက်မယ္ထင္ပါတယ္ ပံုႀကီးျပတ္က်န္ခဲ့တာ ျပီးေတာ့ ထစ္လိုက္ဆက္သြားလိုက္ ျဖစ္ေနတာမ်ိဳးေလ ဟိုဘက္မွာ ရွိတဲ့ေနတဲ့ ပံုရိပ္ကို အခ်ိန္နဲ့တစ္ေျပးညီ capture လုပ္ျပီးပို့တဲ့ အခ်ိန္မွာ လိုင္းမေကာင္းတာေႀကာင့္ အကုန္မေရာက္တဲ့အတြက္အဲ့လို ျဖစ္ေနတာပါ ျပန္ေတာ့ မပို့ပါဘူး အသံုးမ်ားတဲ့ Connectionless protocol ကေတာ့ UDP(User Datagram Protocol) ျဖစ္ပါတယ္ Transport Layer protocol ပါပဲ.
Unicode Version

Connection-Oriented Service ကတစ်နည်းပြောရရင် Connction တစ်ခုသည် Data ပို့ လွှတ်တဲ့ နေရာမှာ reliable ဖြစ်အောင် ယုံကြည်စိတ်ချရအောင် ပို့လွှတ်သူနဲ့ လက်ခံသူကြားမှာ Virtual Circuit Connection တစ်ခုတည်ဆောက်ပေးတာပါပဲ.. ဘယ်လို့တည်ဆောက်ပေးလဲဆိုတော့ Transport Layer Protocol တစ်ခုဖြစ်တဲ့ TCP(Transmission Control Protocol) ကို ဥပမာအနေနဲ့ကြည့်ကျရအောင်ဗျာ.. TCP သည် Data မပို့လွှတ်ခင်မှာ အရင်ဆုံး Three Way handshake လုပ်ပြီး connection တစ်ခုကိုအစပြုပါတယ်. 3 Way HandShake ဆိုတာ ဘယ်လို့လဲဆို တော့ ပထမဆုံး ပို့လွှတ်မယ့်ကောင်(client)က လက်ခံမယ့်ကောင်(server)ဆီကို SYN(synchronization) packet တစ်ခုပို့လိုက်ပါတယ်. လက်ခံမယ့်ကောင်(server)ဘက်ခြမ််းကလဲ SYN-ACK packet တစ်ခုပြန်ပို့ပေးပါလိမ့်မယ်. သူ ့ဘက်ကလက်ခံရရှိပြီး ချိတ်ဆက်လို့ရပါတယ်ဆိုတာကို ပြောတာပါ. အဲ့နောက် Client ဘက်ကနေပြီး ACK တစ်ခု ပို့လိုက်ပြီးဆိုတော့ကျမှ အဲ့ဆင့်သုံးဆင့်ပြီးသွားတော့မှ connection တစ်ခုစတင်ချိတ်ဆက်ပေါ်ပေါက်လာတာပါ. TCP Connection တစ်ခုတည်ဆောက်ပြီးသွားမှာသာ data တွေကို စတင်ပို့လွှတ်ပါတယ်. Connection-oriented မှာ ပို့လွှတ်သမျှ Data packet တိုင်းအတွက် လက်ခံတဲ့ကောင်ကနေပြီး sender ကို ACK ပြန်ပို့ပေးရပါတယ်. အဲ့တာမှလဲ ပို့လိုက်သမျှ data တွေကို ကောင်းကောင်းမွန်မွန်နဲ့ လက်ခံရရှိတယ်ဆိုတာကို sender ကသိမှာဖြစ်ပါတယ်. အကယ်လို့ sender ဟာ Data packet တစ်ခုအတွက် အချိန်အတိုင်းအတာတစ်ခုအထိ ACK မရခဲ့ဘူးဆိုရင် အဲ့ Data Packet သည် ပျက်စီးပျောက်ဆုံးပြီးလို့ယူဆပြီး နောက်တစ်ကြိမ်(Retransmit) ပြန်ပို့ပါတယ်. နောက်တစ်ခါ လက်ခံတဲ့ ကောင်ဘက်ကလဲ လက်ခံရရှိတဲ့ data ပြသနာ ရှိရင် နောက်တစ်ကြိမ်ပြန်ပို့ဖို့ request လုပ်နိုင်ပါတယ်. ပြောရရင်တော့ Connection-Oriented သည် Reliable ဖြစ်တယ် data Packet တွေအတွက် ACK ပြန်ရတဲ့ အချိန်တွေ Retransmit လုပ်ရတဲ့ အချိန်တွေ ရှိတဲ့ အတွက် အချိိန်ကြာပါတယ်.
Connectionless Service မှာကတော့ Three Way handshake တို ့ Data Packet တွေအတွက် ACK ပြန်တာတို့ Error ရှိလို့ Retransmit လုပ်ရတာတွေဘာတွေမရှိပါဘူး. Error ရှိလို့ဖြစ်ဖြစ် connection ကြောင့် data ရောက်မလာတာ ပျောက်သွားတာပဲ ဖြစ်ဖြစ် ပြန်မပို့ပါဘူး. reliable တော့မဖြစ်ဘူးပေါ့. အဲ့တာတွေ မရှိတဲ့အတွက် ကောင်းတာတစ်ခုကတော့ Speed ပါပဲ. တစ်ဘက်နဲ့ တစ်ဘက် data ပို့တဲ့နေရာမှာတော့ Conneciton-Oriented ထက်ပိုမြန်ပါတယ်. ဘယ်မှာ အသုံးများလဲဆိုတော့ Live stream လွင့်တဲ့အခါမျိုးမှာ အသုံများပါတယ်. Live Stream မှာဆို အကြောင်းအမျိုးကြောင့် ပျက်စီးဆုံးရှုံးသွားတဲ့ Data ကိုပြန်မပို့ပါဘူး အချိန်နဲ့ တစ်ပြေးညီပဲဆက်ပြနေတာပါ အဲ့သဘောပါပဲ ကျွန်တော်တို့တွေ သူငယ်ချင်းနဲ့ viber ကနေ video call ခေါ်ရင် ဖြစ်ဖူးကျမယ်ထင်ပါတယ် ပုံကြီးပြတ်ကျန်ခဲ့တာ ပြီးတော့ ထစ်လိုက်ဆက်သွားလိုက် ဖြစ်နေတာမျိုးလေ ဟိုဘက်မှာ ရှိတဲ့နေတဲ့ ပုံရိပ်ကို အချိန်နဲ့တစ်ပြေးညီ capture လုပ်ပြီးပို့တဲ့ အချိန်မှာ လိုင်းမကောင်းတာကြောင့် အကုန်မရောက်တဲ့အတွက်အဲ့လို ဖြစ်နေတာပါ ပြန်တော့ မပို့ပါဘူး အသုံးများတဲ့ Connectionless protocol ကတော့ UDP(User Datagram Protocol) ဖြစ်ပါတယ် Transport Layer protocol ပါပဲ.

No automatic alt text available.

Comments