Protocols and Layers (Protocol များနဲ့ network အလွှာများ)
A2.1.4: Network protocols for transport and application, A2.1.5: Function of the TCP/IP model (HL)
မြန်မာလို: A2.1.4: transport (ဒေတာ သယ်ပို့ခြင်း) နဲ့ application အတွက် သုံးတဲ့ network protocol များ၊ A2.1.5: TCP/IP model ရဲ့ လုပ်ဆောင်ချက် (HL အဆင့်မှာပဲ စစ်ဆေးပါတယ်)
အဓိက အယူအဆများ
Protocol ဆိုတာ ဘာလဲ (A2.1.4)
Protocol (ဒေတာ ပို့ပုံအတွက် သဘောတူ စည်းမျဉ်း) ဆိုတာ network (ကွန်ရက်) တစ်ခုပေါ်မှာ ဒေတာကို ဘယ်လို ပုံစံချမလဲ၊ ဘယ်လို ပို့မလဲ၊ ဘယ်လို လက်ခံမလဲ ဆိုတာကို သတ်မှတ်ပေးတဲ့ စည်းမျဉ်း အစုအဝေး တစ်ခုပါ။
အားလုံး သဘောတူထားတဲ့ protocol တွေ မရှိရင် ထုတ်လုပ်သူ မတူတဲ့ စက်တွေ အချင်းချင်း ဆက်သွယ်လို့ မရပါဘူး: စက်တစ်ခုစီက တခြားစက်တွေနဲ့ မကိုက်ညီတဲ့ ကိုယ်ပိုင် ပုံစံကို သုံးနေမှာ ဖြစ်လို့ပါ။ Protocol တွေက စက်အားလုံး နားလည်တဲ့ ဘုံဘာသာစကား တစ်ခု ပေးလို့ မရှိမဖြစ် လိုအပ်ပါတယ်။ အဲဒီ ဘုံဘာသာစကားက interoperability (ထုတ်လုပ်သူ မတူတဲ့ စက်တွေ အတူတကွ အလုပ်လုပ်နိုင်ခြင်း) ကို သေချာစေပြီး အောက်ပါ အရာတွေကို ဖြစ်နိုင်စေပါတယ်:
- Data formatting (ဒေတာ ပုံစံ သတ်မှတ်ခြင်း): ပို့သူရော လက်ခံသူပါ ဒေတာကို တစ်ပုံစံတည်း နားလည်အောင် ဒေတာကို ဘယ်လို ဖွဲ့စည်းမလဲ၊ ဘယ်လို encode (သတ်မှတ်ထားတဲ့ code ပုံစံအဖြစ် ပြောင်း) လုပ်မလဲ သတ်မှတ်ပေးခြင်း
- Addressing (လိပ်စာ သတ်မှတ်ခြင်း): ဒေတာ မှန်ကန်တဲ့ ဦးတည်ရာကို ရောက်အောင် ပို့သူနဲ့ လက်ခံသူကို ခွဲခြား သတ်မှတ်ခြင်း
- Routing (လမ်းကြောင်း ရွေးခြင်း): ဒေတာ network ထဲမှာ ဖြတ်သွားမယ့် လမ်းကြောင်းကို ဆုံးဖြတ်ခြင်း
- Error detection and correction (အမှား ရှာဖွေခြင်းနဲ့ ပြင်ခြင်း): ပျက်စီးသွားတဲ့ ဒါမှမဟုတ် ပျောက်သွားတဲ့ ဒေတာကို ရှာဖွေပြီး လိုအပ်ရင် retransmission (ထပ်ပို့ခြင်း) ကို တောင်းခြင်း
- Flow control (ပို့နှုန်း ထိန်းခြင်း): လက်ခံသူ မနိုင်မနင်း မဖြစ်အောင် ဒေတာ ပို့နှုန်းကို ထိန်းညှိခြင်း
- Security (လုံခြုံရေး): ပို့နေတုန်း ဒေတာကို ကာကွယ်ဖို့ encryption (ဒေတာကို ဖတ်မရအောင် ပြောင်းခြင်း) နဲ့ authentication (အသုံးပြုသူ တကယ် ဟုတ်မဟုတ် စစ်ခြင်း) ကို ပေးခြင်း
- Congestion management (network ကျပ်ညပ်မှုကို စီမံခြင်း): data integrity (ဒေတာ မှန်ကန်ပြီး မပျက်စီးဘဲ ရှိနေခြင်း) ကို ထိန်းထားဖို့ network congestion (network ပေါ်မှာ ဒေတာ များလွန်းလို့ ကျပ်ညပ်ခြင်း) ကို သိရှိပြီး တုံ့ပြန်ခြင်း
အင်တာနက် ဘယ်လို အလုပ်လုပ်လဲ ရှင်းပြပါတယ်: packet switching၊ TCP/IP protocol layer တွေနဲ့ routing ပါ။
Transport Protocol (ဒေတာ သယ်ပို့ပေးတဲ့ protocol) များ (A2.1.4)
Transport layer (ဒေတာ သယ်ပို့တဲ့ အလွှာ) က မတူတဲ့ စက်တွေပေါ်က application (သုံးစွဲသူအတွက် ရေးထားတဲ့ software) တွေကြားမှာ end-to-end (ပို့တဲ့ application ကနေ လက်ခံတဲ့ application အထိ တစ်ဆက်တည်း) ဆက်သွယ်မှုကို ပေးပါတယ်။ အဓိက transport protocol နှစ်ခုက TCP နဲ့ UDP ပါ။
TCP (Transmission Control Protocol၊ ဒေတာကို စိတ်ချရအောင် ပို့တဲ့ protocol)
- Connection-oriented (connection တည်ဆောက်ပြီးမှ ပို့တဲ့): ဒေတာ မပို့ခင် three-way handshake (အဆင့် သုံးဆင့်နဲ့ အပြန်အလှန် အချက်ပြပြီး connection တည်ဆောက်ခြင်း) (SYN → SYN-ACK → ACK) ကို သုံးပြီး connection (ချိတ်ဆက်မှု) ကို အရင် တည်ဆောက်ပါတယ်
- Reliable (စိတ်ချရတဲ့): acknowledgement (ဒေတာ ရောက်ကြောင်း လက်ခံသူက ပြန်ပို့တဲ့ အကြောင်းကြားချက်) တွေနဲ့ ပျောက်သွားတဲ့ packet (network ပေါ် ပို့တဲ့ ဒေတာ အစိတ်အပိုင်းငယ်) တွေကို retransmission လုပ်တာနဲ့ ဒေတာ ရောက်ကြောင်း အာမခံပါတယ်
- Ordered (အစဉ်တကျ): packet တွေကို ဦးတည်ရာ (destination) မှာ မှန်ကန်တဲ့ အစဉ်အတိုင်း ပြန်စုပေါင်းပါတယ်
- Flow control: လက်ခံသူ မနိုင်မနင်း မဖြစ်အောင် ပို့နှုန်းကို ညှိပါတယ်
- Use cases (အသုံးပြုတဲ့ နေရာများ): web browsing (ဝဘ်ဆိုက် ကြည့်ခြင်း)၊ email၊ file transfer (file ပို့ခြင်း)၊ မြန်နှုန်းထက် တိကျမှုက ပိုအရေးကြီးတဲ့ နေရာတွေ
UDP (User Datagram Protocol၊ အမြန်ပို့ပြီး ရောက်ဖို့ အာမမခံတဲ့ protocol)
- Connectionless (connection မတည်ဆောက်ဘဲ ပို့တဲ့): handshake မရှိပါဘူး။ Connection မတည်ဆောက်ဘဲ ဒေတာကို ချက်ချင်း ပို့ပါတယ်
- Unreliable (မစိတ်ချရတဲ့): ရောက်မယ်လို့ အာမခံချက် မရှိ၊ acknowledgement မရှိ၊ retransmission မရှိပါဘူး
- Unordered (အစဉ်မကျ): packet တွေ အစဉ်မှားပြီး ရောက်လာနိုင်ပါတယ်
- Fast (မြန်): overhead (အပို ကုန်ကျတဲ့ အချိန်နဲ့ အလုပ်) အနည်းဆုံးဖြစ်ပြီး latency (တောင်းဆိုမှုနဲ့ တုံ့ပြန်မှုကြား နှောင့်နှေးချိန်) နည်းပါတယ်
- Use cases: live video call (တိုက်ရိုက် ဗီဒီယို ခေါ်ဆိုမှု)၊ online gaming၊ VoIP (အင်တာနက်ကနေ ဖုန်းခေါ်ခြင်း)၊ DNS (domain နာမည်ကို IP လိပ်စာ ပြောင်းပေးတဲ့ စနစ်) lookup (ရှာဖွေမှု)၊ တိကျမှု အပြည့်အဝထက် မြန်နှုန်းက ပိုအရေးကြီးတဲ့ နေရာတွေ
TCP နဲ့ UDP နှိုင်းယှဉ်ချက်
| အချက် | TCP | UDP |
|---|---|---|
| Connection | Connection-oriented (handshake) | Connectionless |
| စိတ်ချရမှု | ရောက်ကြောင်း အာမခံ (ACK) | အာမခံချက် မရှိ |
| အစဉ် | Packet တွေကို အစဉ်အတိုင်း ပြန်စုပေါင်း | အစဉ်မှားပြီး ရောက်နိုင် |
| မြန်နှုန်း | ပိုနှေး (စိတ်ချရဖို့ overhead ရှိ) | ပိုမြန် (overhead အနည်းဆုံး) |
| Error checking (အမှား စစ်ခြင်း) | ရှိ + retransmission | အခြေခံ checksum (ဒေတာ ပျက်မပျက် စစ်ဖို့ တွက်ထားတဲ့ တန်ဖိုး) ပဲ |
| အသုံးပြုတဲ့ နေရာ | Web၊ email၊ file ပို့ခြင်း | Video call၊ gaming၊ VoIP |
စာမေးပွဲအတွက် အကြံပြုချက်: Live video call လို real-time (ချက်ချင်း ဆက်တိုက်) media အတွက် TCP ထက် UDP ကို ဘာကြောင့် ပိုသုံးလဲ ရှင်းပြနိုင်အောင် ပြင်ထားပါ။ အဖြေက: frame (video ထဲက ပုံ တစ်ပုံ) အနည်းငယ် ကျသွားတာကို သတိတောင် မထားမိသလောက်ပါ၊ ဒါပေမယ့် TCP ရဲ့ retransmission လုပ်ပုံကြောင့် ဖြစ်တဲ့ နှောင့်နှေးမှုက မြင်သာတဲ့ lag (ထစ်ပြီး နောက်ကျနေခြင်း) ကို ဖြစ်စေပါလိမ့်မယ်။ Real-time application တွေက တိကျမှု အပြည့်အဝထက် မြန်နှုန်းကို ဦးစားပေးပါတယ်။ On-demand streaming (ကြိုက်တဲ့အချိန် ဖွင့်ကြည့်ရတဲ့ video ကို ဒေတာ ရောက်သလောက် ချက်ချင်း ပြခြင်း) ကတော့ မတူပါဘူး: Netflix လို service တစ်ခုက ရှေ့ စက္ကန့် အနည်းငယ်စာကို buffer (ကြိုတင် download လုပ်ပြီး သိမ်းထား) လုပ်နိုင်လို့ video ကို TCP နဲ့ စိတ်ချရအောင် ပို့ပါတယ်။
Application Protocol (application တွေကို ဝန်ဆောင်မှု ပေးတဲ့ protocol) များ (A2.1.4)
Application protocol တွေက အမြင့်ဆုံး အဆင့်မှာ အလုပ်လုပ်ပြီး user (သုံးစွဲသူ) ရဲ့ application တွေကို ဝန်ဆောင်မှုတွေ တိုက်ရိုက် ပေးပါတယ်။
| Protocol | အမည် အပြည့်အစုံ | လုပ်ဆောင်ချက် | Port (application ကို ခွဲခြားပေးတဲ့ နံပါတ်) |
|---|---|---|---|
| HTTP | Hypertext Transfer Protocol | Browser (ဝဘ်စာမျက်နှာ ဖွင့်တဲ့ software) နဲ့ server (တခြား ကွန်ပျူတာတွေကို ဝန်ဆောင်မှု ပေးတဲ့ ကွန်ပျူတာ) ကြား ဝဘ်စာမျက်နှာတွေကို ပို့ပေးပါတယ်၊ ဒေတာကို plaintext (encrypt မလုပ်ထားလို့ ဘယ်သူမဆို ဖတ်လို့ရတဲ့ စာ) နဲ့ ပို့ပါတယ် | 80 |
| HTTPS | HTTP Secure | HTTP နဲ့ အတူတူပါ၊ ဒါပေမယ့် SSL/TLS (အင်တာနက် traffic ကို encrypt လုပ်တဲ့ protocol) နဲ့ encrypt လုပ်ထားပါတယ်၊ ပို့နေတုန်း ဒေတာကို ကာကွယ်ပေးပါတယ် | 443 |
| DHCP | Dynamic Host Configuration Protocol | Network ထဲ ဝင်လာတဲ့ စက်တွေကို IP address (network ပေါ်က စက်တစ်ခုရဲ့ လိပ်စာ) တွေ အလိုအလျောက် ခွဲပေးပါတယ် | 67/68 |
| DNS | Domain Name System | လူ ဖတ်ရလွယ်တဲ့ domain name (ဝဘ်ဆိုက် နာမည်) တွေ (ဥပမာ www.example.com) ကို network ပေါ်မှာ ကွန်ပျူတာတွေ အချင်းချင်း ခွဲခြားသိဖို့ သုံးတဲ့ IP address တွေအဖြစ် ပြောင်းပေးပါတယ်: DNS server အသေးစိတ်အတွက် Network Architecture (A2.2.2 HL) ကို ကြည့်ပါ | 53 |
HTTP နဲ့ HTTPS: HTTP က ဒေတာကို plaintext နဲ့ ပို့ပါတယ်: traffic (network ပေါ်က ဒေတာ အသွားအလာ) ကို ကြားဖြတ် ယူတဲ့ ဘယ်သူမဆို ဖတ်လို့ရပါတယ် (ဥပမာ password တွေ၊ credit card နံပါတ်တွေ)။ HTTPS က SSL/TLS certificate (public key ကို ပိုင်ရှင်နဲ့ ချိတ်ပေးတဲ့ အီလက်ထရွန်နစ် စာရွက်) တွေကို သုံးပြီး ဒေတာ အားလုံးကို encrypt လုပ်လို့ ကြားဖြတ် ယူရင်လည်း အသုံးမဝင်တော့ပါဘူး။ ခေတ်မီ browser တွေက HTTP site တွေကို ဖွင့်တဲ့အခါ user ကို သတိပေးပါတယ်။ Address bar (ဝဘ်လိပ်စာ ရိုက်တဲ့ အကွက်) မှာ သော့ခလောက် ပုံ (padlock icon) ကို အမြဲ ရှာကြည့်ပါ။
DHCP လုပ်ငန်းစဉ် (DORA)
စက်တစ်ခု network ထဲ ဝင်တဲ့အခါ IP address တစ်ခု လိုပါတယ်။ DHCP (IP address ကို အလိုအလျောက် ခွဲပေးတဲ့ protocol) က ဒါကို အဆင့် လေးဆင့်နဲ့ အလိုအလျောက် လုပ်ပေးပါတယ်:
- Discover (ရှာဖွေ): စက်အသစ်က “IP address တစ်ခု လိုပါတယ်” လို့ network ကို broadcast (network ပေါ်က စက်အားလုံးဆီ တစ်ပြိုင်နက် ပို့ခြင်း) လုပ်ပါတယ်
- Offer (ကမ်းလှမ်း): DHCP server က အသုံးပြုလို့ရတဲ့ IP address တစ်ခုနဲ့ ပြန်ဖြေပါတယ်
- Request (တောင်းဆို): စက်က ကမ်းလှမ်းထားတဲ့ address ကို လက်ခံပါတယ်
- Acknowledge (အတည်ပြု): server က address ခွဲပေးမှုကို အတည်ပြုပါတယ်
Device DHCP Server
|--- DISCOVER (broadcast) --->|
|<--- OFFER (IP: 192.168.1.5) ---|
|--- REQUEST (accept offer) -->|
|<--- ACKNOWLEDGE (confirmed) ---|
ပုံထဲမှာ Device (စက်) နဲ့ DHCP Server ကြား message လေးခု အသွားအပြန် ပြထားပါတယ်: DISCOVER (broadcast)၊ OFFER (ပေးမယ့် IP: 192.168.1.5)၊ REQUEST (accept offer၊ ကမ်းလှမ်းချက်ကို လက်ခံ) နဲ့ ACKNOWLEDGE (confirmed၊ အတည်ပြုပြီး)။
ကိုယ့် browser နဲ့ web server ကြားမှာ HTTP request နဲ့ response တွေ ဘယ်လို အလုပ်လုပ်လဲ ရှင်းပြပါတယ်။
ထပ်ဆောင်း လေ့လာစရာ: Protocol ရဲ့ လုပ်ဆောင်ချက်များ
ဒီအပိုင်းက IB syllabus (IB သင်ရိုး) ထက် ကျော်လွန်တဲ့ အပိုင်းပါ။ ဒါကြောင့် IB Computer Science (နိုင်ငံတကာ ကျောင်းတွေမှာ သင်တဲ့ ကွန်ပျူတာသိပ္ပံ သင်ရိုး) စာမေးပွဲမှာ အကဲဖြတ် စစ်ဆေးတာ မရှိပါဘူး။
Protocol တွေက အရေးကြီးတဲ့ လုပ်ဆောင်ချက် အများကြီးကို လုပ်ပါတယ်:
- Data integrity: checksum တွေက ပို့နေတုန်း ပျက်စီးသွားတဲ့ ဒေတာကို ရှာဖွေ တွေ့ရှိပါတယ်
- Flow control: လက်ခံသူ မနိုင်မနင်း မဖြစ်အောင် ပို့သူက ပို့နှုန်းကို ညှိပါတယ်
- Congestion management: protocol တွေက network congestion ကို သိရှိပြီး တုံ့ပြန်ပါတယ် (ဥပမာ TCP slow start၊ ပို့နှုန်းကို နည်းနည်းကနေ စပြီး တဖြည်းဖြည်း တိုးတဲ့ နည်း)
- Deadlock prevention (အချင်းချင်း စောင့်ရင်း ပိတ်မိနေတာကို ကာကွယ်ခြင်း): protocol တွေမှာ အဆုံးမရှိ စောင့်နေတာကို ကာကွယ်ဖို့ timeout (သတ်မှတ်ချိန် ကျော်ရင် ဆက်မစောင့်တော့ခြင်း) နည်းလမ်းတွေ ပါပါတယ်
- Port numbers: ဝင်လာတဲ့ ဒေတာကို ဘယ် application က လက်ခံရမလဲ ခွဲခြားပေးပါတယ် (ဥပမာ port 80 = HTTP၊ port 443 = HTTPS၊ port 53 = DNS)
Parity bit (အမှား စစ်ဖို့ ထည့်ပေးတဲ့ bit အပို) နဲ့ checksum လို error detection နဲ့ correction နည်းတွေက network ဒေတာကို ဘယ်လို စိတ်ချရအောင် ထိန်းပေးလဲ ရှင်းပြပါတယ်။
TCP/IP Model (network အလွှာ လေးလွှာ model) (A2.1.5)
TCP/IP model ရဲ့ layer လေးခု ဘယ်လို ပူးပေါင်း အလုပ်လုပ်လဲ ဆိုတာကို HL အဆင့်မှာပဲ အကဲဖြတ် စစ်ဆေးပါတယ်။ SL (Standard Level) နဲ့ HL (Higher Level) ဆိုတာ IB Computer Science သင်တန်းရဲ့ အဆင့်နှစ်ဆင့်ဖြစ်ပြီး HL အပိုင်းတွေက ပိုနက်နက်ရှိုင်းရှိုင်း လေ့လာရတဲ့ အပိုင်းတွေပါ။ SL ကျောင်းသားတွေက protocol တွေ (A2.1.4) နဲ့ network စက် တစ်ခုစီ ဘယ် layer မှာ အလုပ်လုပ်လဲ ဆိုတာကို သိဖို့ လိုပါတယ်၊ အဲဒါကို Network Devices and the TCP/IP Layers မှာ သင်ပေးထားပါတယ်။
TCP/IP model (Internet Protocol Suite လို့လည်း ခေါ်ပါတယ်) က network ဆက်သွယ်မှုကို layer လေးခု ခွဲပြီး စီစဉ်ထားပါတယ်။ Layer တစ်ခုစီမှာ သီးခြား တာဝန် ရှိပြီး သူ့အပေါ်နဲ့ အောက်က layer တွေနဲ့ ဆက်သွယ် အလုပ်လုပ်ပါတယ်။
| Layer | အမည် | တာဝန် | Protocol များ | စက်များ |
|---|---|---|---|---|
| 4 | Application | User ရဲ့ application တွေကို ဝန်ဆောင်မှု တိုက်ရိုက် ပေးပါတယ် | HTTP, HTTPS, DHCP, DNS, SMTP (email ပို့တဲ့ protocol) | Application protocol မတူတာတွေကြား ဘာသာပြန်ပေးတဲ့ gateway (protocol မတူတဲ့ network တွေကို ဆက်ပေးတဲ့ စက်) တွေ၊ application ဒေတာကို စစ်ဆေးတဲ့ firewall (network အဝင်အထွက်ကို စစ်ထုတ်တဲ့ အကာအကွယ်) တွေ |
| 3 | Transport | စိတ်ချရတဲ့ (TCP) ဒါမှမဟုတ် မြန်တဲ့ (UDP) end-to-end ပို့ဆောင်မှုကို သေချာစေပါတယ် | TCP, UDP | Port number နဲ့ စစ်ထုတ်တဲ့ firewall တွေ |
| 2 | Internet | Network တွေကို ဖြတ်ပြီး packet တွေရဲ့ addressing နဲ့ routing ကို ကိုင်တွယ်ပါတယ် | IP (IPv4, IPv6) | Router (network တွေကြား packet ကို လမ်းကြောင်းပြတဲ့ စက်) တွေ၊ IP address နဲ့ စစ်ထုတ်တဲ့ firewall တွေ |
| 1 | Network Interface | ဒေတာကို medium (ကြိုး ဒါမှမဟုတ် radio လှိုင်းလို ဒေတာ သွားရာ ကြားခံ) ပေါ်မှာ ရုပ်ပိုင်းဆိုင်ရာ ပို့တာကို စီမံပါတယ် | Ethernet (ကြိုးနဲ့ ချိတ်တဲ့ network စံ), Wi-Fi (802.11) (ကြိုးမဲ့ network စံ) | NIC (စက်ကို network နဲ့ ချိတ်ပေးတဲ့ card) တွေ၊ switch (LAN ထဲက စက်တွေကို ချိတ်ပေးတဲ့ စက်) တွေ၊ wireless access point (Wi-Fi signal ထုတ်ပေးတဲ့ စက်) တွေ၊ modem (digital နဲ့ analogue signal ကို အပြန်အလှန် ပြောင်းပေးတဲ့ စက်) တွေ၊ ကြိုးတွေ |
Layer တွေ အပြန်အလှန် ဆက်သွယ်ပုံ
ဒေတာ ပို့တဲ့အခါ (encapsulation၊ layer တစ်ခုစီက ကိုယ့် header ကို ထပ်ထည့်ပြီး ဒေတာကို ထုပ်ပိုးခြင်း):
Application Layer: [DATA]
↓ Transport adds a TCP header: source and destination port numbers
Transport Layer: [TCP Header | DATA]
↓ Internet adds an IP header: source and destination IP addresses
Internet Layer: [IP Header | TCP Header | DATA]
↓ Network Interface adds a frame header (MAC addresses) and a trailer (error checking)
Network Interface: [Frame Header | IP Header | TCP Header | DATA | Frame Trailer]
↓
Transmitted as electrical, optical or radio signals
ပုံထဲက စာတွေရဲ့ အဓိပ္ပာယ်: Application Layer မှာ ဒေတာ (DATA) ပဲ ရှိပါတယ်။ Transport layer က ပို့သူနဲ့ လက်ခံသူရဲ့ port number တွေ ပါတဲ့ TCP header (ဒေတာ ရှေ့မှာ ထည့်တဲ့ ထိန်းချုပ် အချက်အလက်) ကို ထည့်ပါတယ်။ Internet layer က ပို့သူနဲ့ လက်ခံသူရဲ့ IP address တွေ ပါတဲ့ IP header ကို ထည့်ပါတယ်။ Network Interface layer က MAC address (network စက်ရဲ့ hardware လိပ်စာ) တွေ ပါတဲ့ frame header နဲ့ error checking အတွက် trailer (ဒေတာ နောက်ဆုံးမှာ ထည့်တဲ့ အပိုင်း) ကို ထည့်ပါတယ်။ Frame (Network Interface layer က header နဲ့ trailer ထည့်ပြီး ထုပ်ထားတဲ့ ဒေတာ အထုပ်) ကို နောက်ဆုံးမှာ လျှပ်စစ်၊ အလင်း ဒါမှမဟုတ် radio signal တွေအဖြစ် ပို့ပါတယ်။
ဒေတာ လက်ခံတဲ့အခါ (de-encapsulation၊ header တွေကို ပြန်ဖယ်ခြင်း): ပို့တဲ့ လုပ်ငန်းစဉ်ရဲ့ ပြောင်းပြန်ပါ။ Layer တစ်ခုစီက ကိုယ့် header ကို ဖယ်ပြီး ဒေတာကို အပေါ်က layer ဆီ ဆက်ပေးပါတယ်။
Encapsulation: layer တစ်ခုစီမှာ အဲဒီ layer ရဲ့ အလုပ်အတွက် လိုတဲ့ အချက်အလက်တွေ ပါတဲ့ header တစ်ခုကို ထည့်ပါတယ်။ လက်ခံတဲ့ စက်က header တွေကို ပြောင်းပြန် အစဉ်နဲ့ ဖယ်ပါတယ်။ ဒီလို layer ခွဲထားတဲ့ နည်းကြောင့် layer တစ်ခုစီက ကိုယ့် protocol ကိုပဲ နားလည်ဖို့ လိုပါတယ်: တခြား layer တွေ ဘယ်လို အလုပ်လုပ်လဲ သိစရာ မလိုပါဘူး။
Layer ခွဲထားတဲ့ model ရဲ့ အကျိုးကျေးဇူးများ
- Modularity (သီးခြား အပိုင်းတွေ ခွဲထားခြင်း): layer တစ်ခုစီကို သီးခြားစီ တည်ဆောက်ပြီး update လုပ်နိုင်ပါတယ်
- Interoperability: ထုတ်လုပ်သူ မတူတဲ့ စက်တွေက layer protocol တူတူကို လိုက်နာရင် အချင်းချင်း ဆက်သွယ်နိုင်ပါတယ်
- Troubleshooting (ပြဿနာ ရှာဖွေ ဖြေရှင်းခြင်း): ပြဿနာကို သီးခြား layer တစ်ခုထဲမှာ ကန့်သတ်ပြီး ရှာနိုင်ပါတယ်
- Abstraction (မလိုတဲ့ အသေးစိတ်ကို ဖယ်ပြီး အဓိကကိုပဲ ကြည့်ခြင်း): layer တစ်ခုစီက ရှုပ်ထွေးမှုကို သူ့အပေါ်က layer တွေဆီကနေ ဖုံးထားပေးပါတယ်
ထပ်ဆောင်း လေ့လာစရာ: OSI Model
ဒီအပိုင်းက IB syllabus ထက် ကျော်လွန်တဲ့ အပိုင်းပါ။ ဒါကြောင့် IB စာမေးပွဲမှာ အကဲဖြတ် စစ်ဆေးတာ မရှိပါဘူး။
OSI (Open Systems Interconnection) model မှာ TCP/IP ရဲ့ layer 4 ခုနဲ့ မတူဘဲ layer 7 ခု ရှိပါတယ်။ IB syllabus က TCP/IP model ကိုပဲ သတ်မှတ်ထားပါတယ်။ ဒါပေမယ့် OSI model ကို လုပ်ငန်းခွင်မှာ ကျယ်ကျယ်ပြန့်ပြန့် ကိုးကားကြပါတယ်:
OSI layer TCP/IP မှာ ကိုက်ညီတဲ့ layer 7. Application Application 6. Presentation Application 5. Session Application 4. Transport Transport 3. Network Internet 2. Data Link Network Interface 1. Physical Network Interface အဓိက ကွာခြားချက်: TCP/IP ရဲ့ Application layer က OSI ရဲ့ အပေါ်ဆုံး layer သုံးခုကို ပေါင်းထားပြီး TCP/IP ရဲ့ Network Interface layer က အောက်ဆုံး layer နှစ်ခုကို ပေါင်းထားပါတယ်။
ကိုယ်တိုင် စမ်းကြည့်ပါ: packet ခရီး simulator (တကယ့် ဖြစ်စဉ်ကို ကွန်ပျူတာနဲ့ အတုလုပ်ပြတဲ့ tool) မှာ အောက်က layer အဆင့် 8 ဆင့် trace (တစ်ဆင့်ချင်း လိုက်ကြည့်ပြီး မှတ်ခြင်း) ကို တစ်ဆင့်ချင်း နှိပ်ကြည့်လို့ရတဲ့ stepper အဖြစ် ထည့်ထားပါတယ်။ Packet switching (packet တွေကို သီးခြား လမ်းကြောင်းနဲ့ ပို့ခြင်း) ကိုလည်း တိုက်ရိုက် ပြပေးပါတယ်။
အဆင့်ဆင့် ရှင်းပြထားတဲ့ ဥပမာများ
ဥပမာ 1: သင့်တော်တဲ့ Protocol ကို ရွေးခြင်း
အခြေအနေ တစ်ခုစီအတွက် TCP နဲ့ UDP ဘယ်ဟာက ပိုသင့်တော်လဲ ခွဲခြားပြီး ဘာကြောင့်လဲ ရှင်းပြပါ။
| # | အခြေအနေ | Protocol | ရှင်းလင်းချက် |
|---|---|---|---|
| 1 | Software update တစ်ခု download လုပ်ခြင်း | TCP | File က အပြည့်အစုံ မပျက်မစီး ရောက်ရပါမယ်၊ retransmission က ဒေတာ မကျန်အောင် သေချာစေပါတယ် |
| 2 | သူငယ်ချင်း နှစ်ယောက်ကြား live video call | UDP | Real-time အပြန်အလှန် ဆက်သွယ်မှုပါ၊ frame အဟောင်းတွေကို retransmission လုပ်ရင် lag ဖြစ်ပါလိမ့်မယ်၊ frame အနည်းငယ် ပျောက်တာကို လက်ခံနိုင်ပါတယ် |
| 3 | လုံခြုံတဲ့ ဘဏ် website တစ်ခုကို ဖွင့်ခြင်း | TCP (+ HTTPS) | ငွေကြေးဆိုင်ရာ ဒေတာကို တိတိကျကျ၊ လုံလုံခြုံခြုံ ပို့ရပါမယ်၊ byte တိုင်း အရေးကြီးပါတယ် |
| 4 | Website တစ်ခုရဲ့ IP address ကို ရှာခြင်း (DNS query၊ DNS ဆီ မေးမြန်းခြင်း) | UDP | Request (တောင်းဆိုမှု) အသေးလေး တစ်ခုနဲ့ reply (အကြောင်းပြန်ချက်) အသေးလေး တစ်ခုပဲ ပါပါတယ်၊ TCP connection ကို အရင် တည်ဆောက်ရင် ရှာတဲ့ အလုပ်ထက်တောင် ပိုကြာပါလိမ့်မယ် |
| 5 | Attachment (တွဲပို့တဲ့ file) ပါတဲ့ email ပို့ခြင်း | TCP | Email နဲ့ attachment က အပြည့်အစုံ ရောက်ရပါမယ်၊ စိတ်ချရမှုက မရှိမဖြစ် လိုအပ်ပါတယ် |
ဥပမာ 2: Web request တစ်ခုကို TCP/IP layer တွေ တစ်လျှောက် လိုက်ကြည့်ခြင်း (HL)
ကျောင်းသား တစ်ယောက်က သူ့ browser ထဲမှာ https://www.example.com လို့ ရိုက်ထည့်တဲ့အခါ ဘာတွေ ဖြစ်လဲ တစ်ဆင့်ချင်း ကြည့်ကြရအောင်:
| အဆင့် | Layer | ဖြစ်ပျက်ပုံ |
|---|---|---|
| 1 | Application | Browser က ဝဘ်စာမျက်နှာအတွက် HTTPS request တစ်ခု ဖန်တီးပါတယ် |
| 2 | Transport | TCP က request ကို segment (TCP က ဒေတာကို ခွဲထားတဲ့ အပိုင်း) တွေ ခွဲပြီး port number တွေ ထည့်ပါတယ် (ပို့သူ: ကျပန်း နံပါတ်၊ လက်ခံသူ: 443) |
| 3 | Internet | IP က ပို့သူနဲ့ လက်ခံသူရဲ့ IP address တွေ ထည့်ပြီး routing လမ်းကြောင်းကို ဆုံးဖြတ်ပါတယ် |
| 4 | Network Interface | ဒေတာကို MAC address တွေနဲ့ frame အဖြစ် ထုပ်ပြီး လျှပ်စစ်/အလင်း signal တွေအဖြစ် ပို့ပါတယ် |
| 5 | Network Interface (server) | Server ရဲ့ NIC က frame ကို လက်ခံပြီး frame header ကို ဖယ်ပါတယ် |
| 6 | Internet (server) | IP layer က destination address (လက်ခံသူ လိပ်စာ) ကို စစ်ပြီး IP header ကို ဖယ်ပါတယ် |
| 7 | Transport (server) | TCP က segment တွေကို အစဉ်အတိုင်း ပြန်စုပေါင်းပြီး ACK ပို့ပါတယ် |
| 8 | Application (server) | Web server (ဝဘ်စာမျက်နှာတွေ ပေးတဲ့ server) က HTTPS request ကို လုပ်ဆောင်ပြီး ဝဘ်စာမျက်နှာကို ပြန်ပို့ပါတယ် |
Quick Check (အမြန် စစ်ဆေးမေးခွန်း)
Q1. File တစ်ခုကို TCP နဲ့ segment 40 ခု ခွဲပြီး download လုပ်နေပါတယ်။ လမ်းမှာ segment 17 ပျောက်သွားပါတယ်။ နောက်ထပ် ဘာဖြစ်မလဲ။
Q2. ကျောင်းသား တစ်ယောက်က အတန်းဖော် တစ်ယောက်နဲ့ live video call ပြောနေပါတယ်။ Video ကို သယ်ပို့ဖို့ ဘယ် protocol က အသင့်တော်ဆုံးလဲ။
Q3. HTTP နဲ့ HTTPS ကြားက အဓိက ကွာခြားချက်က ဘာလဲ။
Q4. စက်တစ်ခု network ထဲ ဝင်လာတဲ့အခါ DHCP က အဲဒီ စက်ကို ဘာကို အလိုအလျောက် ခွဲပေးသလဲ။
Q5. (HL) Packet တစ်ခုက web server တစ်ခုဆီ သွားရင်း router အများကို ဖြတ်သွားပါတယ်။ Router တစ်ခုစီက packet ကို နောက် ဘယ်ကို ပို့မလဲ ဆုံးဖြတ်ဖို့ packet ရဲ့ အပိုင်း တစ်ခုကို ဖတ်ပါတယ်။ ဘယ်အပိုင်းကို ဖတ်သလဲ။
DHCP အဆင့်တွေကို တစ်ဆင့်ချင်း လိုက်ကြည့်ပါ
Laptop အသစ် တစ်လုံးက ကျောင်းရဲ့ Wi-Fi network ကို ချိတ်တဲ့အခါ DHCP လုပ်ငန်းစဉ်ကို trace လုပ်ပါ။ အဆင့် တစ်ခုစီမှာ စက် ဒါမှမဟုတ် server က ပို့တဲ့ message အမျိုးအစားကို ဖော်ပြပါ။ Message အမျိုးအစားတွေကို DHCP အဆင့် နာမည်တွေအတိုင်း English လို ရိုက်ထည့်ပါ။
| အဆင့် | လုပ်ဆောင်သူ | လုပ်ဆောင်ချက် | Message အမျိုးအစား |
|---|---|---|---|
| 1 | Laptop | DHCP server ကို ရှာဖို့ broadcast လုပ်ပါတယ် | |
| 2 | DHCP Server | အသုံးပြုလို့ရတဲ့ IP address တစ်ခုနဲ့ ပြန်ဖြေပါတယ် | |
| 3 | Laptop | ကမ်းလှမ်းထားတဲ့ IP address ကို လက်ခံပါတယ် | |
| 4 | DHCP Server | IP address ခွဲပေးမှုကို အတည်ပြုပါတယ် |
Spot the Error (အမှား ရှာခြင်း)
ကျောင်းသား တစ်ယောက်က protocol တွေအကြောင်း ပြန်လေ့ကျင့်ဖို့ အောက်ပါ မှတ်စုတွေကို ရေးထားပါတယ်။ အမှားပါတဲ့ line ကို ရွေးပါ၊ ပြီးရင် ပြင်နည်းကို ရွေးပါ။
Line တွေရဲ့ အဓိပ္ပာယ်: (1) TCP: connection မတည်ဆောက်ဘဲ ဒေတာ ပို့တဲ့ connectionless protocol၊ (2) UDP: video call နဲ့ game တွေမှာ သုံးတဲ့ မြန်ပြီး မစိတ်ချရတဲ့ protocol၊ (3) HTTPS: လုံခြုံရေးအတွက် SSL/TLS နဲ့ web traffic ကို encrypt လုပ်တယ်၊ (4) DHCP: network ပေါ်က စက်တွေကို IP address အလိုအလျောက် ခွဲပေးတယ်။
ဒီ line အတွက် မှန်ကန်တဲ့ ပြင်နည်းကို ရွေးပါ:
Fill in the Blanks (ကွက်လပ် ဖြည့်ခြင်း)
ကွက်လပ်ပါတဲ့ စာကြောင်းတွေက English နဲ့ ဖြစ်ပြီး ကွက်လပ်တွေကိုလည်း English လို ရိုက်ထည့်ရပါမယ်။ PROTOCOL SUMMARY (protocol အနှစ်ချုပ်) က ခေါင်းစဉ်ပါ။ စာကြောင်းတွေရဲ့ အဓိပ္ပာယ်က အောက်ပါအတိုင်းပါ:
- …… က connection-oriented ဖြစ်ပြီး acknowledgement တွေကို သုံးပြီး ဒေတာ ရောက်ကြောင်း အာမခံပါတယ်။
- …… က connectionless ဖြစ်ပြီး စိတ်ချရမှုထက် မြန်နှုန်းကို ဦးစားပေးပါတယ်။
- …… က SSL/TLS certificate တွေကို သုံးပြီး web traffic ကို encrypt လုပ်ပါတယ်။
- …… က စက်တွေ network ထဲ ဝင်လာတဲ့အခါ IP address တွေကို အလိုအလျောက် ခွဲပေးပါတယ်။
- TCP/IP model မှာ …… layer က end-to-end ပို့ဆောင်မှုအတွက် တာဝန်ယူပါတယ်။
Network protocol တွေအကြောင်း အောက်ပါ စာကြောင်းတွေကို ပြည့်စုံအောင် ဖြည့်ပါ:
PROTOCOL SUMMARY
================
is connection-oriented and guarantees delivery using acknowledgements.
is connectionless and prioritises speed over reliability.
encrypts web traffic using SSL/TLS certificates.
automatically assigns IP addresses when devices join a network.
In the TCP/IP model, the layer is responsible for end-to-end delivery. Predict the Output (output ကို ကြိုခန့်မှန်းခြင်း)
Game ကစားသူ တစ်ယောက်က online multiplayer (ကစားသူ အများ တစ်ပြိုင်နက် ပါဝင်တဲ့) game တစ်ခု ကစားနေပါတယ်။ သူ့ အင်တာနက် ချိတ်ဆက်မှု ခဏ ပြတ်သွားလို့ packet 3 ခု ပျောက်သွားပါတယ်။ Game က UDP ကို သုံးပါတယ်။
Game က အဲဒီ packet တွေကို ထပ်ပို့ဖို့ တောင်းမလား။ (Yes (တောင်းမယ်) ဒါမှမဟုတ် No (မတောင်းဘူး) လို့ English လို ရိုက်ထည့်ပါ)
စက်တစ်ခုက network တစ်ခုကို ချိတ်ပြီး DHCP server ဆီကနေ IP address 192.168.1.15 ကို ရပါတယ်။ DHCP lease (IP address ကို ငှားသုံးခွင့် ရတဲ့ ကာလ) က 24 နာရီ ကြာရင် သက်တမ်း ကုန်ပါတယ်။
24 နာရီ lease သက်တမ်း မကုန်ခင် ဒီ IP address ကို ဆက်သုံးခွင့် ရနေဖို့ စက်က ဘာလုပ်ရမလဲ။ (English စကားလုံး တစ်လုံးနဲ့ ရိုက်ထည့်ပါ)
Practice Exercises (လေ့ကျင့်ခန်းများ)
Core (အခြေခံ အဆင့်)
-
Protocol နှိုင်းယှဉ်ချက်: TCP နဲ့ UDP ကို စံနှုန်း ငါးခုနဲ့ နှိုင်းယှဉ်တဲ့ ဇယား တစ်ခု ဆွဲပါ: connection အမျိုးအစား၊ စိတ်ချရမှု၊ မြန်နှုန်း၊ အစဉ်တကျ ရောက်မရောက်နဲ့ protocol တစ်ခုစီအတွက် လက်တွေ့ အသုံးပြုတဲ့ ဥပမာ တစ်ခု။
-
Application Protocol များ: HTTP၊ HTTPS နဲ့ DHCP ရဲ့ လုပ်ဆောင်ချက်ကို Describe (ဖော်ပြရှင်းပြပါ) လုပ်ပါ။ တစ်ခုစီအတွက် နေ့စဉ် ဘဝမှာ သုံးတဲ့ အခြေအနေ တစ်ခုကို explain (ရှင်းပြပါ) လုပ်ပါ။
-
DHCP လုပ်ငန်းစဉ်: DHCP လုပ်ငန်းစဉ်ရဲ့ အဆင့် လေးဆင့် (DORA) ကို ပြတဲ့ ပုံ တစ်ပုံကို Draw (label တွေ ပါတဲ့ ပုံကို တိတိကျကျ ဆွဲပါ) လုပ်ပါ။ အဆင့် တစ်ခုစီမှာ ဘာကို ဘယ်သူ ပို့လဲ Label (ပုံထဲက အစိတ်အပိုင်းတွေမှာ အမည် တပ်ပါ) လုပ်ပါ။
Extension (တိုးချဲ့ အဆင့်)
-
Protocol ရွေးချယ်ခြင်း: အခြေအနေ တစ်ခုစီအတွက် TCP ဒါမှမဟုတ် UDP ကို အကြံပြုပြီး ကိုယ့်ရွေးချယ်မှုကို justify (ဘာကြောင့် ရွေးတာလဲ အကြောင်းပြချက်နဲ့ ပြပါ) လုပ်ပါ: (a) ဆေးရုံ တစ်ခုက လူနာ မှတ်တမ်းတွေကို အထူးကု ဆရာဝန် တစ်ယောက်ဆီ ပို့ခြင်း၊ (b) လုံခြုံရေး camera တစ်ခုက တိုက်ရိုက် ရိုက်ကွင်းတွေကို stream လုပ်ခြင်း၊ (c) online စာမေးပွဲ အဖြေ တင်သွင်းတဲ့ စနစ်၊ (d) ကစားသူ အများ ပါဝင်တဲ့ ကားပြိုင် game တစ်ခု။
-
TCP/IP Layer များ (HL): TCP/IP model ထဲက layer တစ်ခုစီရဲ့ တာဝန်ကို Explain လုပ်ပါ။ Email တစ်စောင် ပို့တဲ့အခါ layer တစ်ခုစီမှာ ဘာဖြစ်လဲ၊ encapsulation လုပ်တဲ့အခါ ဘယ် header တွေ ထည့်လဲ ဆိုတာ အပါအဝင် Describe လုပ်ပါ။
Challenge (စိန်ခေါ်မှု အဆင့်)
- Protocol ဒီဇိုင်း (HL): Video call လုပ်နေစဉ် ပြောတဲ့ စကားကို ဘာသာပြန်ပေးတဲ့ real-time ဘာသာပြန် app တစ်ခုအတွက် protocol အသစ် တစ်ခုကို ဒီဇိုင်းဆွဲနေတယ်လို့ စိတ်ကူးကြည့်ပါ။ အဲဒီ protocol ကို TCP ပေါ် အခြေခံမလား၊ UDP ပေါ် အခြေခံမလား။ အောက်ပါ အချက်တွေကို ဆွေးနွေးပြီး ကိုယ့်ရွေးချယ်မှုကို Justify လုပ်ပါ: (a) မြန်နှုန်းနဲ့ တိကျမှုရဲ့ အရေးပါမှု၊ (b) packet loss (packet ပျောက်ခြင်း) ကို ဘယ်လို ကိုင်တွယ်မလဲ၊ (c) ကိုယ့် protocol က TCP/IP ရဲ့ ဘယ် layer မှာ အလုပ်လုပ်မလဲ၊ (d) flow control က ဘယ်လို အလုပ်လုပ်မလဲ။
ဆက်စပ် ခေါင်းစဉ်များ
- အရင် လေ့လာထားရမယ့် ခေါင်းစဉ်: Network Fundamentals (network အခြေခံများ): network အမျိုးအစားတွေနဲ့ network စက်တွေကို နားလည်ထားရင် protocol တွေ အလုပ်လုပ်တဲ့ ရုပ်ပိုင်းဆိုင်ရာ နောက်ခံကို သိပါတယ်
- ဆက်စပ် ခေါင်းစဉ်: OS Fundamentals (operating system အခြေခံများ): OS (operating system၊ ကွန်ပျူတာကို စီမံတဲ့ အဓိက software) က TCP/IP stack (TCP/IP protocol အစုံကို လုပ်ဆောင်ပေးတဲ့ software အပိုင်း) ကို အကောင်အထည်ဖော်ပြီး protocol လုပ်ငန်းတွေကို စီမံပါတယ်
- နောက်ထပ် လေ့လာမယ့် ခေါင်းစဉ်: Data Transmission (ဒေတာ ပို့လွှတ်ခြင်း): packet switching (A2.3.3) က addressing နဲ့ ပို့ဆောင်မှုအတွက် TCP/IP protocol တွေကို အားကိုးပါတယ်
- နောက်ထပ် လေ့လာမယ့် ခေါင်းစဉ်: Encryption: HTTPS က HTTP traffic ကို လုံခြုံအောင် SSL/TLS encryption (A2.4.4) ကို သုံးပါတယ်
- နောက်ထပ် လေ့လာမယ့် ခေါင်းစဉ်: Network Security (network လုံခြုံရေး): လုံခြုံမှု မရှိတဲ့ protocol တွေက အဓိက အားနည်းချက် (vulnerability) တစ်ခုပါ (A2.4.2)