Monday, August 11, 2008

Latency (4)



၄၊ Processing/Forwarding Delay (Packet တစ္ခု Router သုိ႔မဟုတ္ Switch အထဲမွာ "ၾကာတဲ့အခ်ိန္")

Router အလုပ္လုပ္ပုံ အေျခခံ

၁၊ ေရာက္လာတဲ့ Frame ရဲ့ CRC (FCS) တန္ဖုိးကုိ တြက္ခ်က္စစ္ေဆးတယ္။ တန္ဖုိး မကုိက္ဖူး၊ မွားေနတယ္ဆုိရင္ Frame ကုိ လက္မခံဘဲ ဖ်က္ျပစ္လုိက္တယ္။ (ဒီအဆင့္ကေတာ့ Switch မွာ အလုပ္လုပ္ပုံနဲ႔ တူပါတယ္၊)
၂၊ CRC (FCS) တန္ဖုိး မွန္တယ္ဆုိရင္ Frame ထဲကေန Layer 3 အခ်က္အလက္ကုိ ထုတ္ယူပါတယ္။ အထုပ္ေျဖခ်င္း (de-encapsulation) လုိ႔ ေခၚပါတယ္။
၃၊ De-encapsulate လုပ္ျပီးရလာတဲ့ Packet ရဲ့ ထိပ္မွာပါတဲ့ Header Checksum ကုိ တြက္ခ်က္စစ္ေဆးပါတယ္။ တန္ဖုိးမကုိက္ဖူး မွားေနတယ္ဆုိရင္ Packet ကုိ လက္မံဘဲ ဖ်က္ျပစ္လုိက္တယ္။
၄၊ Packet မွာပါတဲ့ Destination IP address ကုိဖတ္ျပီး Routing Table ထဲမွာ လုိက္ရွာတယ္။ Routing Table ဆုိတာ IP address ရယ္၊ ေနာက္တဆင့္မွာသြားရမဲ့ Router ရဲ့ IP address (next hop IP) ရယ္၊ Router ရဲ့ထြက္ေပါက္ (output interface)ဆုိတဲ့ အခ်က္ ၃ ခုကုိ တြဲမွတ္ထားတဲ့ ဇယားျဖစ္ပါတယ္။ Router Table ထဲမွာ လုိက္ရွာလုိ႔ေတြ႔ရင္၊ ေနာက္တဆင့္သြားရမဲ့ Router ရဲ့ IP address (next hop IP) နဲ႔ Router ရဲ့ထြက္ေပါက္ (output interface) ေတြကုိသိမွာျဖစ္ပါတယ္။ Routing Table ထဲမွာ ရွာလုိ႔မေတြ႔ရင္ေတာ့ အဲဒီ Packet ကုိ ဖ်က္ျပစ္လုိက္မွာ ျဖစ္ျပီး Packet ကုိပုိ႔ေပးတဲ့ မူလကြန္ပ်ဴတာဆီကုိ မပုိ႔ေပးႏုိင္တဲ့သတင္း ICMP နဲ႔ ျပန္လည္ အေၾကာင္းၾကားေပးမွာျဖစ္ပါတယ္။ ဒီလုိျဖစ္တာကုိ (Routing Table Lookup Failure) လုိ႔ေခၚပါတယ္။

Routing Table ထဲမွာ ရွာေတြ႔တယ္ဆုိပါစုိ႔၊
၅၊ Router တစ္ခုကုိျဖတ္သြားတာ ျဖစ္တဲ့အတြက္ေၾကာင့္ TTL (Time To Live) တန္ဖုိးကုိ ၁ ႏွုတ္ပါမယ္။ ႏွုတ္ျပီးလုိ႔ TTL တန္ဖုိး သုညထက္ၾကီးဖုိ႔ လုိပါတယ္။ TTL တန္ဖုိး သုညျဖစ္သြားရင္ Packet ရဲ့သက္တန္းကုန္သြားျပီ ျဖစ္တဲ့အတြက္ Router က Packet ကုိဖ်က္ဆီးျပစ္လုိက္ျပီး မူလ ကြန္ပ်ဴတာဆီကုိ TTL သုညျဖစ္သြားလုိ႔ ဖ်က္ဆီုျပစ္လုိက္ရတဲ့အေၾကာင္း ICMP နဲ႔ သတင္းျပန္ပုိ႔ေပးပါတယ္။ (ဒီအလုပ္လုပ္ပုံကုိ Traceroute program မွာ သုံးတဲ့အေၾကာင္း ေခါင္းစဥ္တစ္ခုနဲ့ ေရးခဲ့ဖူးပါတယ္၊)
၆၊ TTL တန္ဖုိး ေျပာင္းသြားတဲ့အတြက္ IP Header ရဲ့ Checksum ကုိျပန္လည္ တြက္ခ်က္ရပါတယ္။ (ကၽြန္ေတာ့ သူငယ္ခ်င္း တစ္ေယာက္ အလုပ္အင္တာဗ်ဴးမွာ အျမဲတန္း ေမးတဲ့ ေမးခြန္းပါ၊)

Routing Table ထဲမွာဘယ္ကုိပုိ႔ရမယ္လုိ႔ ရွာေတြ႔ျပီးတဲ့ေနာက္မွာေတာ့ Packet ကုိ ထြက္ေပါက္ကေန ထုတ္လႊတ္ဖုိ႔ျပင္ဆင္ရပါမယ္။

ရ၊ Packet ကုိ layer 2 အခ်က္အလက္ေတြနဲ႔ ျပန္လည္ ထုပ္ပုိးဖုိ႔ (encapsulation) လုိပါမယ္။ ေနာက္တဆင့္ Router (next hop IP) ရဲ႔ MAC address ကုိ ARP Table (address resolution protocol)ဇယားထဲကေနရွာပါမယ္။
၈၊ ARP Table ကရတဲ့ အခ်က္အလက္ကုိယူျပီး IP Packet ကုိ layer 2 frame ထဲကုိ ထုပ္ပုိးျပီး အတြက္ေပါက္ကေန ထုတ္လႊတ္ေပးလုိက္ပါတယ္။ (Layer 2 CRC (FCS)) တြက္ခ်က္တာလည္း ဒီအဆင့္မွာပါပါတယ္။

Switch - CAM Table ထဲမွာ Destination Address ကုိရွာလုိ႔မေတြ႔ရင္ (lookup failure ျဖစ္လ်င္) Frame ကုိထြက္ေပါက္အားလုံးကုိ ပုိ႔ေပးလုိက္တယ္၊
Router - Routing Table ထဲမွာ Destination Address ကုိရွာလုိ႔မေတြ႔ရင္ (lookup failure ျဖစ္လ်င္) Packet ကုိ ေရွ႔ဆက္မပုိ႔ေတာ့ဘဲ ဖ်က္ဆီးျပစ္လုိက္တယ္။

- ဆုိတာ Router နဲ့ Switch အဓိက ကြာျခားခ်က္ေတြထဲက တစ္ခုျဖစ္ပါတယ္။

အထက္မွာေျပာတဲ့အဆင့္ေတြလုပ္ဖုိ႔ ၾကာတဲ့အခ်ိန္ကေတာ Router တစ္ခုရဲ့ Processing/Forwarding delay ျဖစ္ပါတယ္။ ဘယ္ႏွစ္စကၠန့္ ၾကာတယ္ ဆုိတာကေတာ့ Router ရဲ့ manufacturer, model, software/hardware architecture ေပၚမွာ မူတည္ျပီး အမ်ဳိးမ်ဳိး ကြဲျပားပါတယ္။

ကၽၽြန္ေတာ္ လက္ေတြ႔ေလ့လာမိသေလာက္ Cisco က ထုတ္လုပ္တဲ့ Router ေတြမွာ ပါတဲ့ software architecture ေတြထဲက -
၁၊ Process switching - ေရွးအက်ဆုံး၊ အေႏွးဆုံး နည္းလမ္းျဖစ္ပါတယ္။ အထက္မွာ ေဖၚျပခဲ့တဲ့ အဆင့္ေတြအားလုုံးကုိ CPU တစ္ခုထဲကတာ၀န္ယူပါတယ္။
၂၊ Fast switching - Packet တစ္ခု Router ထဲမွာျဖတ္သြားျပီးလ်င္ cache entry တစ္ခု memory ထဲမွာ တည္ေဆာက္ လုိက္ပါတယ္။ ေနာက္လာတဲ့ Packet ေတြက အရင္ Packet နဲ့တူတယ္ဆုိရင္ table lookup အဆင့္ေတြ လုပ္စရာမလုိေတာ့ဘဲ cache ကေန အခ်က္အလက္ေတြကုိ ယူျပီး packet ကိုပုိ႔ေပးလုိက္ပါတယ္။ Process switching ထက္ ပုိျမန္တာေပါ့၊
၃၊ CEF switching - Cisco ရဲ့ အဆင့္ျမင့္ packet forwarding နည္းလမ္းျဖစ္ပါတယ္။ Router table ရယ္၊ ARP Table ကုိ ေပါင္းထားတဲ့ CEF Table အျပင္ အနီးအနားမွာရွိတဲ့ Router ေတြရဲ့ အခ်က္အလက္ကုိစုေဆာင္းထားတဲ့ဇယား (adjacency table) တုိ႔တြဲျပီး အလုပ္လုပ္ပါတယ္။ CEF ဆုိတာကေတာ့ Cisco Express Forwarding ျဖစ္ပါတယ္။ Routing table ကုိ 256-way m-trie data structure နဲ႔ တည္ေဆာက္ထားပါတယ္။

အထက္မွာေျပာခဲ့တဲ့ Process switching, fast switching and CEF switching မွာပါတဲ့ switching ဆုိတဲ့စကားလုံး ဟာ Router တစ္ခုထဲမွာ Packet တစ္ခုကုိ အ၀င္ေပါက္ကေန၊ အထြက္ေပါက္ကုိ ဘယ္လုိေရာက္ေအာင္ ပုိ႔ေပးတယ္ဆုိတဲ့ နညး္လမ္းျဖစ္ပါတယ္။ Switch တစ္ခုမွာ အလုပ္လုပ္တဲ့ switching နဲ႔ မတူပါဘူး။
အသးစိတ္ေလ့လာခ်င္လ်င္ ဒီစာအုပ္ကုိ ဖတ္ပါ

Router ထဲမွာ ၾကာတဲ့အခ်ိန္က Packet ကုိ တေနရာက တေနရာကုိပုိ႔ေပးဖုိ႔တင္ မက အျခား အလုပ္ပုိေတြလည္းလုပ္ရတာ ျဖစ္ႏုိင္ပါတယ္။ ဥပမာ
၁၊ NAT - Network Address Translation ကြန္ပ်ဴတာ အမ်ားၾကီးကုိ Public IP address တစ္ခုထည္းမွာ ေ၀ငွ သုံးဖုိ႔ အသုံးမ်ား ပါတယ္။ အိမ္ေတြမွာေရာ၊ ရုံးေတြမွာပါ သုံးၾကပါတယ္။
၂၊ ACL - Access Control List ဘယ္ application ၊ ဘယ္ IP address ကုိခြင့္ျပဳခ်င္တယ္၊ မျပဳခ်င္ဘူး ဆုိတာေပၚ မူတည္ျပီး သုံးပါတယ္။ Internet Service Provider က အိမ္သုံးကြန္ပ်ဴတာေတြ web server မလုပ္ေစခ်င္ရင္ TCP Port 80 ကုိ ပိတ္ထားတာမ်ဳိးေပါ့။
၃၊ QoS - Quality of Service ဘယ္ application ၊ ဘယ္ IP address ကုိ bandwidth မ်ားမ်ားပုိေပးခ်င္တယ္၊ priority ပုိေပးခ်င္တယ္ဆုုိရင္ သုံးတာမ်ဳိးျဖစ္ပါတယ္။ အင္တာနက္ ဖုံးနဲ႔၊ အင္တာနက္ ဗီဒီယုိ အသုံးျပဳသူမ်ားအတြက္ အထူးလုိအပ္ပါတယ္။

Post a Comment