Tuesday, June 17, 2008

Tunneling Protocols (1)


Tunneling Protocol ေတြဟာ ေတာ္ေတာ္ ရွုပ္ေထြးတဲ့နည္းပညာျဖစ္လုိေလ့လာသူတုိင္း အနည္းနဲ႔အမ်ား အခက္အခဲ ေတြ႔ရေလ့ရွိပါတယ္။ Tunneling Protocol ကုိေလ့လာဖုိ႔အတြက္ Protocol Layering သေဘာကုိ ေသခ်ာနားလည္ဖုိ႔ လုိပါတယ္။ အင္တာနက္မွာ ကြန္ပ်ဴတာတစ္လုံးနဲ႔ တစ္လုံးဆက္သြယ္ၾကတဲ့အခါ Protocol တစ္လႊာျပီး တစ္လႊာျဖတ္ သြားရပါတယ္။

Web Server မွာရွိတဲ့ HTML Page တစ္ခုကုိ Browser ကေနဖတ္တယ္ဆုိပါစုိ႔ -
Web server မွာ
၁၊ Web Page ကုိ HTTP Protocol (application layer) က သယ္ယူျပီး Transport Layer ကုိေပးလုိက္တယ္၊
၂၊ Transport layer မွာရွိတဲ့ TCP က HTTP data ကုိယူ၊ ျပင္ဆင္စရာရွိတာျပင္ဆင္ျပီး Network Layer ကုိေပးလုိက္မယ္၊
၃၊ Network Layer မွာရွိတဲ့ IP က TCP segment ကုိယူ၊ လိပ္စာတပ္၊ လုိအပ္တာေတြ လုပ္ျပီး Data Link အလႊာ ကုိပုိ႔ေပးလုိက္ပါမယ္။ (Data Link အလႊာဆုိတာ ကြန္ပ်ဴတာမွာရွိတဲ့ Network Card တုိ႔၊ Network ၾကိဳး တုိ႔ကုိ ရည္ညႊန္း ပါတယ္။)

ဒီအဆင့္ ၃ ဆင့္ကုိ အထုပ္ထုပ္ျခင္း (Encapsulation) လုိ႔ေခၚျပီး၊ အဆင့္ ၃ဆင့္လုံးဟာ ကြန္ပ်ဴတာ တစ္လုံးထဲမွာလုပ္တဲ့ အဆင့္ေတြျဖစ္ပါတယ္။ အဆင့္ ၃ ျပီးတဲ့အခါမွာ Data ေတြဟာ ၀ါယာၾကဳိးေပၚမွာ IP Packet ေတြအေနနဲ႔ ျဖတ္သြားျပီး Browser ရွိတဲ့ ကြန္ပ်ဴတာကုိ Network ကတဆင့္ ပုိ႔ေပးမွာ ျဖစ္ပါတယ္။

Browser ရွိတဲ့ ကြန္ပ်ဴတာကုိ ေရာက္တဲ့အခါ အဆင့္ ၃၊ ၂၊ ၁ ဆုိျပီး ေျပာင္းျပန္ျပန္လုပ္ပါတယ္။ အဲဒါကုိေတာ့အထုပ္ေျဖျခင္း (De-encapsulation)လုိ႔ေခၚပါတယ္။



ပုံမွာ Host A က Web Server ျဖစ္ျပီး Host B က Browser ရွိတဲ့ ကြန္ပ်ဴတာျဖစ္ပါတယ္။

ေအာက္အလႊာေတြက Protocol ေတြက အေပၚအလႊာက Data ကုိ သယ္ေပး၊ ထုပ္ေပး (တနည္းေျပာရင္ encapsulate လုပ္ေပး) ရပါတယ္။
အင္တာနက္မွာ အသုံးအမ်ားတဲ့ Protocol တခ်ဳိ. -
(4) Application Layer - HTTP, HTTPS, SSH, DNS
(3) Transport Layer - TCP, UDP
(2) Network Layer - IP
(1) Data Link - Ethernet

ဥပမာ ၁ -
SSH(4) ကုိ TCP(3) က သယ္၊ ထုပ္၊ encapsulate လုပ္ေပးမယ္၊
TCP(3) ကုိ IP(2) က သယ္၊ ထုပ္၊ encapsulate လုပ္ေပးမယ္၊
IP(2) ကုိ Ethernet(1) က သယ္၊ ထုပ္၊ encapsulate လုပ္ေပးမယ္။


ဥပမာ ၂ -
DNS(4) ကုိ UDP(3) က သယ္၊ ထုပ္၊ encapsulate လုပ္ေပးမယ္၊
UDP(3) ကုိ IP(2) က သယ္၊ ထုပ္၊ encapsulate လုပ္ေပးမယ္၊
IP(2) ကုိ Ethernet(1) က သယ္၊ ထုပ္၊ encapsulate လုပ္ေပးမယ္။

Tunneling Protocol မွာေတာ့ encapsulation လုပ္တဲ့ အဆင့္ေတြ ၄၊၃၊၂၊၁ အစီအစဥ္အတုိင္းမဟုတ္ေတာ့ဘဲ ကေျပာင္းကျပန္ျဖစ္သြားပါတယ္။ ဘယ္အလႊာက ဘယ္အလႊာကုိ encapsulate လုပ္မယ္ဆုိတာကေတာ့ Tunneling Protocol တစ္ခုနဲ႔ တစ္ခုမတူပါဘူး။

IPSec Tunnel မွာ Layer 3 Protocol ျဖစ္တဲ့ IPSec Protocol က Layer 3 Protocol ျဖစ္တဲ့ IP Protocol ကုိ သယ္၊ ထုပ္၊ encapsulate လုပ္ပါတယ္။ IPSec (IP Secured) Tunnel ကုိသံုးၾကတဲ့အေၾကာင္းရင္းတစ္ခုကေတာ့ - အင္တာနက္ေပၚမွာ ပုိ႔လုိက္တဲ့အခ်က္အလက္ ေတြကုိ ၾကားလူတစ္ေယာက္ေယာက္က ဖတ္လုိ႔နားမလည္ေအာင္ စကား၀ွက္နဲ႔ ဖြက္ထားႏုိင္လုိ႔ျဖစ္ပါတယ္။
(IPSec Encapsulation Order - ၄၊၃၊၃၊၂၊၁)

SSH (Secure SHell) Tunnel မွာ Layer 4 Protocol ျဖစ္တဲ့ SSH Protocol က အျခား Layer 4 Protocol ျဖစ္တဲ့ SMB, HTTP စတာေတြကုိ သယ္၊ ထုပ္၊ encapsulate လုပ္ေပးပါတယ္။ SSH Tunnel ကုိသံုးၾကတဲ့အေၾကာင္းရင္းတစ္ခုကေတာ့လည္း IPSec နဲ႔တူပါတယ္။
(IPSec Encapsulation Order - ၄၊၄၊၃၊၂၊၁)

Tunneling Protocol မ်ဳိးစုံရွိတဲ့အထဲက အသုံးမ်ားတဲ့အခ်ဳိ ့ကုိစာရင္းျပဳရလ်င္ -
၁၊ IP Sec Tunnel
၂၊ GRE Tunnel
၃၊ IP in IP Tunnel
၄၊ SSH Tunnel
၅၊ MPLS
၆၊ PPPoE
ရ၊ HTTP Tunnel

ဆက္ေရးသြားပါမယ္။

မွတ္ခ်က္ -
သုံးထားတဲ့ Protocol Layer ေတြက DoD TCP/IP 4 Layers Model ကုိညႊန္းထားပါတယ္။ ISO's OSI 7 Layers Model ကုိေလ့လာထားသူေတြအတြက္ Layer ရဲ့ နံပါတ္ေတြမတူတာကုိ သတိျပဳပါ။ OSI မွာ Application Layer က No.7 ျဖစ္ျပီး TCP/IP မွာ No.4 ျဖစ္ပါတယ္။

Post a Comment