ဒီနေ့မှာတော့ TCP ကို အဓိကထားပြီး စကြရအောင်။ layering အခန်းရဲ့ အစောပိုင်းမှာ အရေးကြီးတဲ့အချက်တစ်ခုကို ဖော်ပြခဲ့ပါတယ်။ network layer နဲ့ အောက်က layer မှာဆိုရင် host to host connections တွေအကြောင်းပါ။ ဆိုလိုတာက သင့်ကွန်ပျူတာက ချိတ်ဆက်ဖို့အတွက် တခြားကွန်ပျူတာတစ်လုံး ဘယ်မှာရှိလဲဆိုတာ သိဖို့ လိုအပ်ပါတယ်။ ဒါပေမယ့် network တစ်ခုမှာ ဆက်သွယ်ရေးဟာ intermachine communication မဟုတ်ဘဲ interprocess communication ဖြစ်နိုင်ပါတယ်။ ဒါကြောင့် TCP protocol က port ရဲ့ concept ကို မိတ်ဆက်ပေးပါတယ်။ port တစ်ခုကို process တစ်ခုတည်းကသာ အသုံးပြုနိုင်ပြီး၊ host အမျိုးမျိုးမှာ run နေတဲ့ application process တွေကြားမှာ တိုက်ရိုက်ဆက်သွယ်မှုကို ပေးစွမ်းပါတယ်။
transport layer ရဲ့ တာဝန်ကတော့ မတူညီတဲ့ host တွေမှာ run နေတဲ့ application process တွေကြားမှာ တိုက်ရိုက်ဆက်သွယ်ရေးဝန်ဆောင်မှုတွေကို ဘယ်လိုပေးမလဲဆိုတာပါပဲ၊ ဒါကြောင့် end-to-end protocol လို့လည်း လူသိများပါတယ်။ transport layer က network ရဲ့ အဓိကအသေးစိတ်အချက်အလက်တွေကို ဖုံးကွယ်ထားပြီး application process အနေနဲ့ transport layer entity နှစ်ခုကြားမှာ logical end-to-end communication channel တစ်ခုရှိမရှိ မြင်နိုင်ပါတယ်။
TCP ဆိုတာ Transmission Control Protocol ရဲ့ အတိုကောက်ဖြစ်ပြီး connection-oriented protocol လို့လည်း လူသိများပါတယ်။ ဆိုလိုတာက application တစ်ခုဟာ တခြားတစ်ခုကို data ပို့လွှတ်နိုင်ခင်မှာ process နှစ်ခုဟာ handshake လုပ်ရပါမယ်။ Handshake ဆိုတာ ယုံကြည်စိတ်ချရတဲ့ transmission နဲ့ data တွေကို စနစ်တကျလက်ခံနိုင်အောင် သေချာစေတဲ့ logic ကျကျ ချိတ်ဆက်ထားတဲ့ process တစ်ခုပါ။ Handshake လုပ်နေစဉ်အတွင်း source နဲ့ destination host တွေကြားမှာ control packet တွေကို ဖလှယ်ပြီး data ပို့လွှတ်မှုအောင်မြင်စေဖို့ parameter တွေနဲ့ rules တွေကို သဘောတူညီခြင်းအားဖြင့် connection တစ်ခု တည်ဆောက်ပါတယ်။
TCP ဆိုတာ ဘာလဲ။ (မိုင်လင့်ကင်းရဲ့ကွန်ရက်ပုတ်ခြင်းနှင့်ကွန်ရက်ပက်ကက် ပွဲစားTCP သို့မဟုတ် UDP packets နှစ်မျိုးလုံးကို လုပ်ဆောင်နိုင်သည်)
TCP (Transmission Control Protocol) သည် ချိတ်ဆက်မှုကို ဦးတည်သော၊ ယုံကြည်စိတ်ချရသော၊ byte-stream ကို အခြေခံသည့် transport layer ဆက်သွယ်ရေး protocol တစ်ခုဖြစ်သည်။
ချိတ်ဆက်မှုကို ဦးတည်သောConnection-oriented ဆိုသည်မှာ TCP ဆက်သွယ်ရေးသည် one-to-one၊ ဆိုလိုသည်မှာ point-to-point end-to-end ဆက်သွယ်ရေးဖြစ်ပြီး UDP သည် တစ်ချိန်တည်းတွင် host များစွာသို့ မက်ဆေ့ချ်များပေးပို့နိုင်သောကြောင့် one-to-many ဆက်သွယ်ရေးကို မရရှိနိုင်ပါ။
ယုံကြည်စိတ်ချရသောTCP ၏ ယုံကြည်စိတ်ချရမှုသည် ကွန်ရက်လင့်ခ်တွင် ပြောင်းလဲမှုများရှိသော်လည်း ပက်ကက်များကို လက်ခံသူထံ ယုံကြည်စိတ်ချစွာ ပို့ဆောင်ပေးကြောင်း သေချာစေပြီး၊ ၎င်းက TCP ၏ protocol ပက်ကက်ပုံစံကို UDP ထက် ပိုမိုရှုပ်ထွေးစေသည်။
Byte-stream-basedTCP ရဲ့ byte-stream-based သဘောသဘာဝက အရွယ်အစားမရွေး မက်ဆေ့ချ်တွေ ပို့လွှတ်နိုင်စေပြီး မက်ဆေ့ချ်အစီအစဉ်ကို အာမခံပါတယ်- အရင် မက်ဆေ့ချ်ကို အပြည့်အဝ မလက်ခံရရှိသေးရင်တောင်၊ နောက်ဆက်တွဲ byte တွေကို လက်ခံရရှိပြီးရင်တောင် TCP က application layer ကို processing အတွက် မပို့ပေးဘဲ duplicate packet တွေကို အလိုအလျောက် drop လုပ်ပါလိမ့်မယ်။
host A နှင့် host B တို့သည် ချိတ်ဆက်မှုတစ်ခု တည်ဆောက်ပြီးသည်နှင့် application သည် data ပေးပို့ခြင်းနှင့် လက်ခံခြင်းအတွက် virtual communication line ကိုသာ အသုံးပြုရန် လိုအပ်ပြီး data ပို့လွှတ်မှုကို သေချာစေသည်။ TCP protocol သည် ချိတ်ဆက်မှုတည်ဆောက်ခြင်း၊ ဖြတ်တောက်ခြင်းနှင့် သိမ်းဆည်းခြင်းကဲ့သို့သော လုပ်ငန်းဆောင်တာများကို ထိန်းချုပ်ရန် တာဝန်ရှိသည်။ virtual line ဆိုသည်မှာ ချိတ်ဆက်မှုတစ်ခု တည်ဆောက်ရန်သာ ဆိုလိုကြောင်း ဤနေရာတွင် ကျွန်ုပ်တို့ပြောထားပြီး TCP protocol ချိတ်ဆက်မှုသည် နှစ်ဖက်စလုံးသည် data ပို့လွှတ်မှုကို စတင်နိုင်ကြောင်းနှင့် data ၏ ယုံကြည်စိတ်ချရမှုကို သေချာစေရန်သာ ညွှန်ပြကြောင်း သတိပြုသင့်သည်။ routing နှင့် transport node များကို network device များမှ ကိုင်တွယ်သည်။ TCP protocol ကိုယ်တိုင်က ဤအသေးစိတ်အချက်အလက်များကို မသက်ဆိုင်ပါ။
TCP ချိတ်ဆက်မှုဆိုသည်မှာ full-duplex ဝန်ဆောင်မှုတစ်ခုဖြစ်ပြီး၊ host A နှင့် host B တို့သည် TCP ချိတ်ဆက်မှုတွင် data ကို နှစ်လမ်းသွား ပေးပို့နိုင်သည်။ ဆိုလိုသည်မှာ data ကို host A နှင့် host B အကြား နှစ်လမ်းသွား စီးဆင်းမှုဖြင့် လွှဲပြောင်းနိုင်သည်။
TCP သည် ချိတ်ဆက်မှု၏ send buffer တွင် data ကို ယာယီသိမ်းဆည်းသည်။ ဤ send buffer သည် three-way handshake အတွင်း တည်ဆောက်ထားသော cache များထဲမှ တစ်ခုဖြစ်သည်။ ထို့နောက် TCP သည် send cache ရှိ data ကို သင့်လျော်သောအချိန်တွင် destination host ၏ receive cache သို့ ပေးပို့လိမ့်မည်။ လက်တွေ့တွင်၊ peer တစ်ခုစီတွင် send cache နှင့် receive cache တစ်ခုစီ ရှိမည်ဖြစ်ပြီး၊ ဤနေရာတွင်ပြထားသည့်အတိုင်းဖြစ်သည်။
send buffer ဆိုသည်မှာ sender ဘက်ရှိ TCP အကောင်အထည်ဖော်မှုမှ ထိန်းသိမ်းထားသော မှတ်ဉာဏ်ဧရိယာတစ်ခုဖြစ်ပြီး ပို့ရမည့်ဒေတာကို ယာယီသိမ်းဆည်းရန်အသုံးပြုသည်။ ချိတ်ဆက်မှုတစ်ခုတည်ဆောက်ရန် three-way handshake ပြုလုပ်သောအခါ၊ send cache ကို setup လုပ်ပြီး ဒေတာသိမ်းဆည်းရန်အသုံးပြုသည်။ send buffer ကို ကွန်ရက်ပိတ်ဆို့မှုနှင့် receiver မှ feedback ပေါ်မူတည်၍ dynamically ချိန်ညှိသည်။
receive buffer ဆိုသည်မှာ လက်ခံရရှိထားသောဒေတာကို ယာယီသိမ်းဆည်းရန်အသုံးပြုသည့် လက်ခံရရှိသည့်ဘက်ရှိ TCP အကောင်အထည်ဖော်မှုမှ ထိန်းသိမ်းထားသော မှတ်ဉာဏ်ဧရိယာတစ်ခုဖြစ်သည်။ TCP သည် လက်ခံရရှိထားသောဒေတာကို လက်ခံရရှိသည့် cache တွင် သိမ်းဆည်းပြီး အပေါ်ပိုင်း application က ၎င်းကိုဖတ်ရန်စောင့်ဆိုင်းသည်။
ပေးပို့သည့် ကက်ရှ်နှင့် လက်ခံသည့် ကက်ရှ်၏ အရွယ်အစားသည် အကန့်အသတ်ရှိကြောင်း သတိပြုပါ၊ ကက်ရှ်ပြည့်သွားသောအခါ၊ TCP သည် ယုံကြည်စိတ်ချရသော အချက်အလက်ပို့လွှတ်မှုနှင့် ကွန်ရက်တည်ငြိမ်မှုကို သေချာစေရန် congestion control၊ flow control စသည်တို့ကဲ့သို့သော နည်းဗျူဟာအချို့ကို အသုံးပြုနိုင်သည်။
ကွန်ပျူတာကွန်ရက်များတွင် host များအကြား data ပို့လွှတ်ခြင်းကို segment များမှတစ်ဆင့် လုပ်ဆောင်သည်။ ဒါဆိုရင် packet segment ဆိုတာဘာလဲ။
TCP သည် ဝင်လာသော stream ကို chunk များအဖြစ် ပိုင်းခြားပြီး TCP header များကို chunk တစ်ခုစီတွင် ထည့်သွင်းခြင်းဖြင့် TCP segment သို့မဟုတ် packet segment တစ်ခုကို ဖန်တီးသည်။ Segment တစ်ခုစီကို ကန့်သတ်ထားသော အချိန်အတိုင်းအတာတစ်ခုအထိသာ ပေးပို့နိုင်ပြီး Maximum Segment Size (MSS) ထက် မကျော်လွန်နိုင်ပါ။ အောက်သို့ဆင်းသွားသည့်လမ်းတွင် packet segment သည် link layer မှ ဖြတ်သန်းသွားသည်။ link layer တွင် Maximum Transmission Unit (MTU) ရှိပြီး ၎င်းသည် data link layer မှ ဖြတ်သန်းနိုင်သော အများဆုံး packet အရွယ်အစားဖြစ်သည်။ အများဆုံး transmission unit သည် communication interface နှင့် ဆက်စပ်နေလေ့ရှိသည်။
ဒါဆိုရင် MSS နဲ့ MTU ဘာကွာခြားလဲ။
ကွန်ပျူတာကွန်ရက်များတွင်၊ အဆင့်ဆင့်တည်ဆောက်ပုံသည် မတူညီသောအဆင့်များအကြား ကွာခြားချက်များကို ထည့်သွင်းစဉ်းစားသောကြောင့် အလွန်အရေးကြီးပါသည်။ အလွှာတစ်ခုစီတွင် မတူညီသောအမည်များရှိသည်။ transport layer တွင် data ကို segment ဟုခေါ်ပြီး network layer တွင် data ကို IP packet ဟုခေါ်သည်။ ထို့ကြောင့် Maximum Transmission Unit (MTU) ကို network layer မှ ပို့လွှတ်နိုင်သော Maximum IP packet Size အဖြစ် ယူဆနိုင်ပြီး Maximum Segment Size (MSS) သည် TCP packet မှ တစ်ကြိမ်လျှင် ပို့လွှတ်နိုင်သော အများဆုံးဒေတာပမာဏကို ရည်ညွှန်းသည့် transport layer သဘောတရားတစ်ခုဖြစ်သည်။
Maximum Segment Size (MSS) သည် Maximum Transmission Unit (MTU) ထက် ပိုကြီးသောအခါ၊ IP fragmentation ကို network layer တွင် လုပ်ဆောင်မည်ဖြစ်ပြီး TCP သည် ပိုကြီးသော data ကို MTU အရွယ်အစားအတွက် သင့်လျော်သော segment များအဖြစ် မပိုင်းခြားကြောင်း သတိပြုပါ။ network layer တွင် IP layer အတွက် ရည်စူးထားသော အပိုင်းတစ်ခု ရှိလိမ့်မည်။
TCP ပက်ကက် အပိုင်းဖွဲ့စည်းပုံ
TCP header တွေရဲ့ format နဲ့ content တွေကို လေ့လာကြည့်ရအောင်။
စီးရီးနံပါတ်: TCP ချိတ်ဆက်မှုတည်ဆောက်ပြီးသောအခါ ကွန်ပျူတာမှ ၎င်း၏အစတန်ဖိုးအဖြစ် ချိတ်ဆက်မှုတည်ဆောက်ပြီးသောအခါ ထုတ်ပေးသော ကျပန်းနံပါတ်တစ်ခုဖြစ်ပြီး sequence နံပါတ်ကို SYN packet မှတစ်ဆင့် receiver သို့ပေးပို့သည်။ ဒေတာထုတ်လွှင့်နေစဉ်အတွင်း ပေးပို့သူသည် ပေးပို့သောဒေတာပမာဏအလိုက် sequence နံပါတ်ကို တိုးသည်။ receiver သည် လက်ခံရရှိသော sequence နံပါတ်အလိုက် ဒေတာ၏အစီအစဉ်ကို ဆုံးဖြတ်သည်။ ဒေတာသည် အစီအစဉ်မကျကြောင်းတွေ့ရှိပါက receiver သည် ဒေတာ၏အစီအစဉ်ကို သေချာစေရန် ဒေတာကို ပြန်လည်စီစဉ်ပေးလိမ့်မည်။
အသိအမှတ်ပြုနံပါတ်: ဤသည်မှာ ဒေတာလက်ခံရရှိမှုကို အသိအမှတ်ပြုရန် TCP တွင်အသုံးပြုသော sequence number တစ်ခုဖြစ်သည်။ ၎င်းသည် ပေးပို့သူလက်ခံရရှိရန် မျှော်လင့်ထားသော နောက်ဒေတာ၏ sequence number ကို ညွှန်ပြသည်။ TCP ချိတ်ဆက်မှုတွင်၊ receiver သည် လက်ခံရရှိသော ဒေတာ packet segment ၏ sequence number အပေါ်အခြေခံ၍ မည်သည့်ဒေတာကို အောင်မြင်စွာလက်ခံရရှိခဲ့သည်ကို ဆုံးဖြတ်သည်။ receiver သည် ဒေတာကို အောင်မြင်စွာလက်ခံရရှိသောအခါ၊ acknowledgement acknowledge number ပါရှိသော ACK packet ကို ပေးပို့သူထံ ပေးပို့သည်။ ACK packet ကို လက်ခံရရှိပြီးနောက်၊ reply number ကို အသိအမှတ်ပြုခြင်းမပြုမီ ဒေတာကို အောင်မြင်စွာလက်ခံရရှိကြောင်း ပေးပို့သူသည် အတည်ပြုနိုင်သည်။
TCP segment ရဲ့ control bit တွေမှာ အောက်ပါတို့ ပါဝင်ပါတယ်။
ACK bit: ဤ bit သည် 1 ဖြစ်သောအခါ၊ acknowledgement reply field သည် မှန်ကန်ကြောင်း ဆိုလိုသည်။ TCP သည် ချိတ်ဆက်မှုကို အစပိုင်းတွင် တည်ဆောက်သောအခါ SYN packets များမှအပ ဤ bit ကို 1 ဟု သတ်မှတ်ရမည်ဟု သတ်မှတ်သည်။
RST bitဒီ bit က 1 ဖြစ်တဲ့အခါ TCP connection မှာ exception တစ်ခုရှိနေကြောင်းနဲ့ connection ကို ဖြတ်တောက်ဖို့ မဖြစ်မနေလိုအပ်ကြောင်း ညွှန်ပြပါတယ်။
SYN bit: ဤ bit ကို 1 သို့သတ်မှတ်ထားသောအခါ၊ ချိတ်ဆက်မှုကို တည်ဆောက်ရန်ဖြစ်ပြီး sequence number ၏ ကနဦးတန်ဖိုးကို sequence number field တွင် သတ်မှတ်ထားသည်ဟု ဆိုလိုသည်။
FIN bitဒီ bit က 1 ဖြစ်တဲ့အခါ အနာဂတ်မှာ data ထပ်ပို့တော့မှာ မဟုတ်ဘူးလို့ ဆိုလိုပြီး ချိတ်ဆက်မှုကို လိုချင်ပြီလို့ ဆိုလိုပါတယ်။
TCP ရဲ့ လုပ်ဆောင်ချက်တွေနဲ့ ဝိသေသလက္ခဏာတွေကို TCP packet segment တွေရဲ့ ဖွဲ့စည်းပုံက ပုံဖော်ပေးပါတယ်။
UDP ဆိုတာ ဘာလဲ။ (Mylinking ရဲ့ကွန်ရက်ပုတ်ခြင်းနှင့်ကွန်ရက်ပက်ကက် ပွဲစားTCP သို့မဟုတ် UDP ပက်ကေ့ခ်နှစ်ခုလုံးကို လုပ်ဆောင်နိုင်သည်)
User Datagram Protocol (UDP) သည် ချိတ်ဆက်မှုမရှိသော ဆက်သွယ်ရေး protocol တစ်ခုဖြစ်သည်။ TCP နှင့် နှိုင်းယှဉ်ပါက UDP သည် ရှုပ်ထွေးသော ထိန်းချုပ်မှု ယန္တရားများကို မပေးစွမ်းနိုင်ပါ။ UDP protocol သည် application များအား ချိတ်ဆက်မှု မတည်ဆောက်ဘဲ encapsulated IP packets များကို တိုက်ရိုက်ပေးပို့နိုင်စေပါသည်။ developer သည် TCP အစား UDP ကို အသုံးပြုရန် ရွေးချယ်သောအခါ၊ application သည် IP နှင့် တိုက်ရိုက် ဆက်သွယ်ပါသည်။
UDP Protocol ရဲ့ အပြည့်အစုံနာမည်က User Datagram Protocol ဖြစ်ပြီး header က ရှစ်ဘိုက် (64 bits) သာရှိတာကြောင့် အလွန်တိုတောင်းပါတယ်။ UDP header ရဲ့ format က အောက်ပါအတိုင်းပါ။
ဦးတည်ရာနှင့် အရင်းအမြစ်ဆိပ်ကမ်းများသူတို့ရဲ့ အဓိက ရည်ရွယ်ချက်ကတော့ UDP က packet တွေကို ဘယ် process ကို ပို့သင့်လဲဆိုတာ ညွှန်ပြဖို့ပါ။
ပက်ကေ့ချ်အရွယ်အစားpacket size field မှာ UDP header ရဲ့ အရွယ်အစားနဲ့ data ရဲ့ အရွယ်အစားကို သိမ်းဆည်းထားပါတယ်။
ချက်ဆမ်UDP headers များနှင့် data များကို ယုံကြည်စိတ်ချစွာ ပေးပို့နိုင်ရန် ဒီဇိုင်းထုတ်ထားသည်။ checksum ၏ အခန်းကဏ္ဍမှာ data များ၏ သမာဓိကို သေချာစေရန်အတွက် UDP packet ပေးပို့စဉ်အတွင်း error သို့မဟုတ် corruption ဖြစ်ပွားခဲ့ခြင်း ရှိမရှိကို ထောက်လှမ်းရန်ဖြစ်သည်။
Mylinking မှာ TCP နဲ့ UDP ကွာခြားချက်တွေကွန်ရက်ပုတ်ခြင်းနှင့်ကွန်ရက်ပက်ကက် ပွဲစားTCP သို့မဟုတ် UDP packets နှစ်မျိုးလုံးကို လုပ်ဆောင်နိုင်သည်
TCP နှင့် UDP တို့သည် အောက်ပါရှုထောင့်များတွင် ကွဲပြားသည်-
ချိတ်ဆက်မှုTCP သည် ဒေတာများ လွှဲပြောင်းနိုင်မီ ချိတ်ဆက်မှုတစ်ခု တည်ဆောက်ရန် လိုအပ်သော ချိတ်ဆက်မှုကို အခြေခံသည့် သယ်ယူပို့ဆောင်ရေး ပရိုတိုကော တစ်ခုဖြစ်သည်။ အခြားတစ်ဖက်တွင်မူ UDP သည် ချိတ်ဆက်မှု မလိုအပ်ဘဲ ဒေတာများကို ချက်ချင်း လွှဲပြောင်းနိုင်သည်။
ဝန်ဆောင်မှုအရာဝတ္ထုTCP သည် one-to-one two-point service တစ်ခုဖြစ်ပြီး၊ connection တွင် တစ်ခုနှင့်တစ်ခု ဆက်သွယ်ရန် endpoint နှစ်ခုသာရှိသည်။ သို့သော်၊ UDP သည် one-to-one၊ one-to-many နှင့် many-to-many interactive communication များကို ပံ့ပိုးပေးပြီး တစ်ချိန်တည်းတွင် host များစွာနှင့် ဆက်သွယ်နိုင်သည်။
ယုံကြည်စိတ်ချရမှု: TCP သည် ဒေတာများကို အမှားအယွင်းကင်းစင်၊ ဆုံးရှုံးမှုကင်းစင်၊ ထပ်တူမကျဘဲ လိုအပ်သလို ရောက်ရှိကြောင်း သေချာစေပြီး ယုံကြည်စိတ်ချရသော ဒေတာပေးပို့ခြင်း ဝန်ဆောင်မှုကို ပေးပါသည်။ အခြားတစ်ဖက်တွင်မူ UDP သည် ၎င်း၏ အကောင်းဆုံးကြိုးစားအားထုတ်မှုကို လုပ်ဆောင်ပြီး ယုံကြည်စိတ်ချရသော ပေးပို့မှုကို အာမမခံနိုင်ပါ။ UDP သည် ထုတ်လွှင့်နေစဉ်အတွင်း ဒေတာဆုံးရှုံးမှုနှင့် အခြားအခြေအနေများကို ခံစားရနိုင်သည်။
ယာဉ်ကြောပိတ်ဆို့မှု ထိန်းချုပ်ခြင်း၊ စီးဆင်းမှု ထိန်းချုပ်ခြင်း: TCP တွင် ပိတ်ဆို့မှု ထိန်းချုပ်မှုနှင့် စီးဆင်းမှု ထိန်းချုပ်ရေး ယန္တရားများ ရှိပြီး ဒေတာ ထုတ်လွှင့်မှု၏ လုံခြုံရေးနှင့် တည်ငြိမ်မှုကို သေချာစေရန် ကွန်ရက် အခြေအနေများအလိုက် ဒေတာ ထုတ်လွှင့်မှုနှုန်းကို ချိန်ညှိနိုင်သည်။ UDP တွင် ပိတ်ဆို့မှု ထိန်းချုပ်မှုနှင့် စီးဆင်းမှု ထိန်းချုပ်ရေး ယန္တရားများ မပါရှိပါ၊ ကွန်ရက်သည် အလွန်ပိတ်ဆို့မှု ရှိနေသော်လည်း UDP ပေးပို့မှုနှုန်းကို ချိန်ညှိမှုများ ပြုလုပ်မည်မဟုတ်ပါ။
ခေါင်းစီးအထက်ပိုင်းTCP မှာ header အရှည်ရှည်ပြီး ပုံမှန်အားဖြင့် 20 bytes ရှိပြီး option field တွေကိုသုံးတဲ့အခါ အရှည်တိုးလာပါတယ်။ အခြားတစ်ဖက်မှာ UDP မှာ 8 bytes သာရှိတဲ့ fixed header ဖြစ်တာကြောင့် UDP မှာ header overhead နည်းပါးပါတယ်။

TCP နှင့် UDP အပလီကေးရှင်း အခြေအနေများ-
TCP နှင့် UDP တို့သည် မတူညီသော transport layer protocol နှစ်ခုဖြစ်ပြီး application scenarios များတွင် ကွာခြားချက်အချို့ရှိသည်။
TCP သည် ချိတ်ဆက်မှုကိုဦးတည်သော protocol တစ်ခုဖြစ်သောကြောင့် ယုံကြည်စိတ်ချရသော data delivery လိုအပ်သည့် အခြေအနေများတွင် အဓိကအသုံးပြုပါသည်။ အဖြစ်များသော အသုံးပြုမှုအချို့တွင် အောက်ပါတို့ပါဝင်သည်-
FTP ဖိုင်လွှဲပြောင်းခြင်း: TCP သည် လွှဲပြောင်းနေစဉ်အတွင်း ဖိုင်များ ပျောက်ဆုံးခြင်း သို့မဟုတ် ပျက်စီးခြင်း မရှိစေရန် သေချာစေနိုင်သည်။
HTTP/HTTPS: TCP သည် ဝဘ်အကြောင်းအရာ၏ သမာဓိနှင့် မှန်ကန်မှုကို သေချာစေသည်။
UDP သည် ချိတ်ဆက်မှုမရှိသော protocol တစ်ခုဖြစ်သောကြောင့် ယုံကြည်စိတ်ချရမှုအာမခံချက် မပေးနိုင်သော်လည်း ထိရောက်မှုနှင့် အချိန်နှင့်တပြေးညီ လုပ်ဆောင်ချက်များ၏ ဝိသေသလက္ခဏာများ ရှိပါသည်။ UDP သည် အောက်ပါအခြေအနေများအတွက် သင့်လျော်ပါသည်။
DNS (Domain Name System) ကဲ့သို့သော packet traffic နည်းခြင်းDNS query များသည် ပုံမှန်အားဖြင့် တိုတောင်းသော packet များဖြစ်ပြီး UDP သည် ၎င်းတို့ကို ပိုမိုမြန်ဆန်စွာ ပြီးမြောက်စေနိုင်သည်။
ဗီဒီယိုနှင့် အသံကဲ့သို့သော မာလ်တီမီဒီယာ ဆက်သွယ်ရေးအချိန်နှင့်တပြေးညီ လိုအပ်ချက်မြင့်မားသော မာလ်တီမီဒီယာ ထုတ်လွှင့်မှုအတွက်၊ UDP သည် ဒေတာများကို အချိန်မီ ထုတ်လွှင့်နိုင်စေရန်အတွက် နှောင့်နှေးမှု နည်းပါးစေနိုင်သည်။
ထုတ်လွှင့်ဆက်သွယ်ရေး: UDP သည် one-to-many နှင့် many-to-many ဆက်သွယ်ရေးကို ပံ့ပိုးပေးပြီး broadcast message များ ပေးပို့ရန်အတွက် အသုံးပြုနိုင်သည်။
အနှစ်ချုပ်
ဒီနေ့ TCP အကြောင်း ကျွန်တော်တို့ လေ့လာခဲ့ပါတယ်။ TCP ဆိုတာ ချိတ်ဆက်မှုကို အခြေခံတဲ့၊ ယုံကြည်စိတ်ချရတဲ့၊ byte-stream ကို အခြေခံတဲ့ transport layer communication protocol တစ်ခုပါ။ ချိတ်ဆက်မှု၊ လက်ဆွဲနှုတ်ဆက်မှုနဲ့ အသိအမှတ်ပြုမှုတွေကို တည်ဆောက်ခြင်းအားဖြင့် ယုံကြည်စိတ်ချရတဲ့ ပို့လွှတ်မှုနဲ့ ဒေတာတွေကို စနစ်တကျ လက်ခံမှုကို သေချာစေပါတယ်။ TCP protocol ဟာ လုပ်ငန်းစဉ်တွေအကြား ဆက်သွယ်ရေးကို သိရှိဖို့အတွက် port တွေကို အသုံးပြုပြီး မတူညီတဲ့ host တွေမှာ လည်ပတ်နေတဲ့ application လုပ်ငန်းစဉ်တွေအတွက် တိုက်ရိုက်ဆက်သွယ်ရေး ဝန်ဆောင်မှုတွေကို ပေးပါတယ်။ TCP ချိတ်ဆက်မှုတွေက full-duplex ဖြစ်ပြီး တစ်ပြိုင်နက်တည်း နှစ်လမ်းသွား ဒေတာလွှဲပြောင်းမှုတွေကို ခွင့်ပြုပါတယ်။ ဆန့်ကျင်ဘက်အနေနဲ့ UDP ကတော့ connectionless oriented communication protocol တစ်ခုဖြစ်ပြီး ယုံကြည်စိတ်ချရမှု အာမခံချက်တွေ မပေးစွမ်းနိုင်ဘဲ real-time လိုအပ်ချက် မြင့်မားတဲ့ scenario အချို့အတွက် သင့်တော်ပါတယ်။ TCP နဲ့ UDP တို့ဟာ connection mode, service object, reliability, congestion control, flow control နဲ့ အခြားရှုထောင့်တွေမှာ ကွဲပြားပြီး သူတို့ရဲ့ application scenario တွေလည်း ကွဲပြားပါတယ်။
ပို့စ်တင်ချိန်: ၂၀၂၄ ခုနှစ်၊ ဒီဇင်ဘာလ ၃ ရက်



