1 MAC Table ဆိုတာ 30th March 2010, 12:13 pm
z3r0c00l
Administrator
MAC Table ဆိုတာ MAC Address ေတြ စုစည္းထားတဲ့ ဇယားတစ္ခုပါပဲ။ Hub/Switch တို႔၊ Bridge တို႔မွာဆိုရင္
၎တုိ႔နဲ႔ ခ်ိတ္ဆက္ထားတဲ့ Computer အားလံုးနဲ႔ MAC Address ေတြကို ဇယားတစ္ခုနဲ႔ ျပဳလုပ္ျပီး သိမ္းထားပါတယ္။
၎ဇယားကို MAC Table လို႔ ေခၚပါတယ္။ MAC Table အေၾကာင္း မေျပာခင္ MAC Address
အေၾကာင္းနည္းနည္းေလာက္ ေျပာခ်င္ပါတယ္။ MAC ရဲ႕ အရွည္က Media Access Control ျဖစ္ပါတယ္။ MAC Address
ေတြဟာ Network Card ေတြမွာပါရွိတာ ျဖစ္ပါတယ္။ Network Card ေတြမွာ ၎တုိ႔ိကုိ ထုတ္လုပ္လိုက္စဥ္ကတည္းက
စက္ရံုကေန တစ္ပါတည္း ထည့္ေပးလိုက္တဲ့ MAC Address ေတြ ပါပါတယ္။ Network Card တိုင္းမွာ MAC Address
ပါရွိပါတယ္။ ဒါေပမယ့္ Network Card တစ္ခုစီရဲ႕ MAC Address ေတြက မတူၾကပါဘူး။ တူလို႔လည္း မရပါဘူး။
ဘာျဖစ္လုိ႔လဲဆိုေတာ့ Network Card ေတြမွာ MAC Address ေတြတူေနရင္ Network ခ်ိတ္လိုိ႔ မရပါဘူး။ MAC Address
ကို Hardware Address (or) Physical Address လို႔လည္း ေခၚပါတယ္။ MAC Address မွာ 12-digit Hexadecimal
Number (48 bits in length) ပါရွိပါတယ္။ (ဥပမာ-00:A0:09:14:C8:29)ေပါ႔။ MAC Address ေတြဟာ OSI 7 Layer
ရဲ႕ Data Link Layer (Layer 2) မွာ အလုပ္လုပ္ပါတယ္။ MAC Table ေတြဟာလည္း MAC Address ေတြ
စုစည္းထားတာ ျဖစ္တဲ့အတြက္ Data Link Layer မွာပဲ အလုပ္လုပ္ပါတယ္။ အဲ...........MAC Table အေၾကာင္း
စေနျပီေနာ္။
Hub ေတြ switch ေတြမွာဆိုရင္ MAC Table ေတြပါရွိပါတယ္။ မိမိရဲ႕ ကြန္ရက္မွာ Hub ကိုအသံုးျပဳ ျပီး
ကြန္ရက္ခ်ိတ္ဆက္ထားတယ္ဆိုရင္ ၄င္း Hub ထဲမွာ Network Administrator ကေနျပီးေတာ႔ MAC Table ကို manual
လုိက္ျပီးသတ္မွတ္ေပးရမွာျဖစ္ပါတယ္။ ဒါေပမယ္႔ Switch ေတြမွာဆိုရင္ေတာ႔ အဲဒီလို MAC Table ကို manual
လိုက္ျပီးသတ္မွတ္ေပးစရာ မလိုပါဘူး။ ဘာျဖစ္လို႔လဲဆိုေတာ႔ Switch ေတြဟာ MAC Address ေတြကို Learning
လုပ္ႏိုင္လို႔ပါပဲ။ ဘယ္လို Learning လုပ္ႏိုင္တာလဲဆိုေတာ႔ .........
ဥပမာ-ကၽြန္ေတာ္က Switch တစ္ခုနဲ႔ Computer (၁၀)လံုးကို Network ခ်ိတ္ဆက္ထားတယ္ ဆိုပါစို႔။ Switch ေတြ ၊
Hub ေတြမွာ ၎နဲ႔ ခ်ိတ္ဆက္ထားတဲ့ Computer အားလံုးရဲ႕ MAC Address ေတြကို Table တစ္ခုနဲ႔ ျပဳလုပ္ထားတယ္လို႔
ေျပာခဲ့တယ္ေနာ္။ လုပ္ငန္းေတြ မေဆာင္ရြက္ရေသးခင္ (Data ေတြ မေပးပို႔ေသးခင္) ၎ Switch ကို Power ဖြင့္လိုက္တဲ့
အခ်ိန္မွာ ၄င္းရဲ႕ MAC Table မွာ ဘာ Address မွ မရွိေသးပါဘူး။ ဗလာၾကီးပါ။ ၎ေနာက္ Computer1 ကေန
Computer5 ဆီကို Data ပို႔လႊတ္လိုက္တယ္ဆိုပါစို႔။ အဲဒီလုိ Data ေတြ ပို႔လႊတ္တဲ့အခါမွာ ၎ Data ေတြကို Frame
Packet ေလးေတြအျဖစ္ပိုင္းျပီး၊ ၎ Packet ေတြထဲမွာ Source & Destination MAC Address ေတြ၊ Error Check Sum
ေတြ၊ Data ေတြ ထည္႔ျပီးေပးပို႔လိုက္ပါတယ္။ Computer1 က ပို႔လႊတ္္လိုက္တဲ့ Data Packet ဟာ Switch ဆီကို
ေရာက္ရွိလာတယ္။ အဲဒီလုိေရာက္ရွိလာတဲ႔အခါမွာ Switch ကေနျပီးေတာ႔ "ဟာ ...မင္းကဘယ္ computer ကလာတာလဲ
၊ မင္းကငါ႔ Network ထဲကေပါ႔ ဒါဆိုရင္ မင္းရဲ႕ MAC Address ကို မွတ္သားထားလိုက္မယ္။ ေနာက္ျပီး မင္းက
ဘယ္သူ႔ဆီကို သြားမွာလဲ ၊ မင္းသြားရမဲ႔ computer ရဲ႕ MAC Address လည္းမင္းဆီပါမွာေပါ႔ ဒါဆိုအဲဒီ MAC Address
ကိုေရာ မွတ္ထားလိုက္မယ္။" အဲဒီလိုနဲ႔ Switch ထဲမွာ computer 1 နဲ႔ computer 5 တို႔ရဲ႔ MAC Address
ေတြေရာက္ရွိသြားပါတယ္။ ဒါေပမယ္႔ Switch ဟာ ေပးပို႔ရမယ္႔ computer 5 ရဲ႕ Port ကိုမသိေသးတဲ႔အတြက္ ေပးပို႔တဲ့
Computer (Computer1) ကလြဲလို႔ အျခား Computer အားလံုးဆီကုိ ၄င္း Packet ကို ထပ္ဆင္႔ေပးပို႔ လိုက္ပါတယ္။
တစ္နည္းအားျဖင္႔ Broadcast လုပ္ လိုက္ပါတယ္။ အဲဒီလို ထပ္ဆင႔္ေပးပို႔လုိက္တဲ့ ၎ Data Packet ေလးဟာ
ေပးပို႔လိုက္တဲ့ Computer က လြဲလို႔ က်န္တဲ့ Computer ေတြဆီကို ေရာက္ရွိသြားတဲ့အခါမွာ လက္ခံရမယ္႔ Computer
(Computer5) ကလြဲလို႔ က်န္တဲ့ Computer ေတြက သူတို႔ လက္ခံရမယ့္ဟာ မဟုတ္တဲ့အတြက္ ပယ္ဖ်က္လိုက္ပါတယ္။
Computer 5 ကေတာ့ သူလက္ခံရမယ့္ Data ျဖစ္တဲ့အတြက္ လက္ခံလုိက္ျပီး ၎ Data Packet ေပးပို႔လိုက္တဲ့
Computer 1 ဆီကို Data လက္ခံရရွိေၾကာင္း Acknowledgement အေၾကာင္းျပန္ရပါတယ္။ ထိုနည္းတူစြာ အျခား
computer ေတြ ( Computer 2 ကေန Computer 6, Computer 3 ကေန Computer 4...စသျဖင္႔) Data
ေတြေပးပို႔ၾကတဲ့အခါ ၄င္း Switch ကေန သူ႔ဆီေရာက္လာတဲ႔ Data packet ေတြရဲ႕ source and destination address
ေတြကို မွတ္သားထားျခင္းအားျဖင္႔ Switch ရဲ႔ MAC Table ထဲမွာ ၄င္းနဲ႔ခ်ိတ္ဆက္ထားတဲ႔ computer 10 လံုးလံုးရဲ႕ MAC
Address ေတြအားလံုးေရာက္ရွိသြားပါတယ္။ ဤကဲ႔သို႔ MAC Address ေတြကို အလိုအေလ်ာက္မွတ္သားထားႏိုင္တာကို
Learning လုပ္တယ္လို႔ ေခၚပါတယ္။ အဲဒီအခါမွာ Switch ဟာ Data ေတြကို ရရွိလာတဲ့အခါမွာ ၎နဲ႔ ခ်ိတ္ဆက္ထားတဲ့
Computer အားလံုးဆီကို Data ေတြ ထပ္ဆင့္မေပးပို႔ေတာ့ပဲ ၄င္း Packet ထဲမွာပါတဲ႔ Destination Address ကို MAC
Table ထဲမွာသြားေရာက္ၾကည့္႐ႈျပီး ပို႔ရမယ့္ Computerရွိတဲ႔ Port ဆီကိုပဲ Data ကို ပို႔လႊတ္လိုက္တာ ျဖစ္ပါတယ္။
Switch ေတြဟာ MAC Table ကို အသံုးျပဳျပီး Data ေတြကို လိုရာသို႔ တိုက္ရိုက္ပို႔ေဆာင္ႏိုင္တဲ့အတြက္ Data ေတြေပးပို႔
တဲ့ေနရာမွာ ပိုမိုျမန္ဆန္လာပါတယ္။ ဒါေၾကာင္႔ switch တို႔ ၊ Bridge တို႔ မွာဆိုရင္ MAC Table ကိုအသံုးျပဳျပီး Data
သြားရမယ္႔ လမ္းေၾကာင္းကိုေရြးခ်ယ္ေပးရတာျဖစ္ပါတယ္။ ကဲ ........... ဒီေလာက္ဆိုရင္ေတာ႔ MAC Table
ကိုနားလည္ေလာက္ျပီလို႔ထင္ပါတယ္ေနာ္။
Credit to Ko Kyaw Si Thu
၎တုိ႔နဲ႔ ခ်ိတ္ဆက္ထားတဲ့ Computer အားလံုးနဲ႔ MAC Address ေတြကို ဇယားတစ္ခုနဲ႔ ျပဳလုပ္ျပီး သိမ္းထားပါတယ္။
၎ဇယားကို MAC Table လို႔ ေခၚပါတယ္။ MAC Table အေၾကာင္း မေျပာခင္ MAC Address
အေၾကာင္းနည္းနည္းေလာက္ ေျပာခ်င္ပါတယ္။ MAC ရဲ႕ အရွည္က Media Access Control ျဖစ္ပါတယ္။ MAC Address
ေတြဟာ Network Card ေတြမွာပါရွိတာ ျဖစ္ပါတယ္။ Network Card ေတြမွာ ၎တုိ႔ိကုိ ထုတ္လုပ္လိုက္စဥ္ကတည္းက
စက္ရံုကေန တစ္ပါတည္း ထည့္ေပးလိုက္တဲ့ MAC Address ေတြ ပါပါတယ္။ Network Card တိုင္းမွာ MAC Address
ပါရွိပါတယ္။ ဒါေပမယ့္ Network Card တစ္ခုစီရဲ႕ MAC Address ေတြက မတူၾကပါဘူး။ တူလို႔လည္း မရပါဘူး။
ဘာျဖစ္လုိ႔လဲဆိုေတာ့ Network Card ေတြမွာ MAC Address ေတြတူေနရင္ Network ခ်ိတ္လိုိ႔ မရပါဘူး။ MAC Address
ကို Hardware Address (or) Physical Address လို႔လည္း ေခၚပါတယ္။ MAC Address မွာ 12-digit Hexadecimal
Number (48 bits in length) ပါရွိပါတယ္။ (ဥပမာ-00:A0:09:14:C8:29)ေပါ႔။ MAC Address ေတြဟာ OSI 7 Layer
ရဲ႕ Data Link Layer (Layer 2) မွာ အလုပ္လုပ္ပါတယ္။ MAC Table ေတြဟာလည္း MAC Address ေတြ
စုစည္းထားတာ ျဖစ္တဲ့အတြက္ Data Link Layer မွာပဲ အလုပ္လုပ္ပါတယ္။ အဲ...........MAC Table အေၾကာင္း
စေနျပီေနာ္။
Hub ေတြ switch ေတြမွာဆိုရင္ MAC Table ေတြပါရွိပါတယ္။ မိမိရဲ႕ ကြန္ရက္မွာ Hub ကိုအသံုးျပဳ ျပီး
ကြန္ရက္ခ်ိတ္ဆက္ထားတယ္ဆိုရင္ ၄င္း Hub ထဲမွာ Network Administrator ကေနျပီးေတာ႔ MAC Table ကို manual
လုိက္ျပီးသတ္မွတ္ေပးရမွာျဖစ္ပါတယ္။ ဒါေပမယ္႔ Switch ေတြမွာဆိုရင္ေတာ႔ အဲဒီလို MAC Table ကို manual
လိုက္ျပီးသတ္မွတ္ေပးစရာ မလိုပါဘူး။ ဘာျဖစ္လို႔လဲဆိုေတာ႔ Switch ေတြဟာ MAC Address ေတြကို Learning
လုပ္ႏိုင္လို႔ပါပဲ။ ဘယ္လို Learning လုပ္ႏိုင္တာလဲဆိုေတာ႔ .........
ဥပမာ-ကၽြန္ေတာ္က Switch တစ္ခုနဲ႔ Computer (၁၀)လံုးကို Network ခ်ိတ္ဆက္ထားတယ္ ဆိုပါစို႔။ Switch ေတြ ၊
Hub ေတြမွာ ၎နဲ႔ ခ်ိတ္ဆက္ထားတဲ့ Computer အားလံုးရဲ႕ MAC Address ေတြကို Table တစ္ခုနဲ႔ ျပဳလုပ္ထားတယ္လို႔
ေျပာခဲ့တယ္ေနာ္။ လုပ္ငန္းေတြ မေဆာင္ရြက္ရေသးခင္ (Data ေတြ မေပးပို႔ေသးခင္) ၎ Switch ကို Power ဖြင့္လိုက္တဲ့
အခ်ိန္မွာ ၄င္းရဲ႕ MAC Table မွာ ဘာ Address မွ မရွိေသးပါဘူး။ ဗလာၾကီးပါ။ ၎ေနာက္ Computer1 ကေန
Computer5 ဆီကို Data ပို႔လႊတ္လိုက္တယ္ဆိုပါစို႔။ အဲဒီလုိ Data ေတြ ပို႔လႊတ္တဲ့အခါမွာ ၎ Data ေတြကို Frame
Packet ေလးေတြအျဖစ္ပိုင္းျပီး၊ ၎ Packet ေတြထဲမွာ Source & Destination MAC Address ေတြ၊ Error Check Sum
ေတြ၊ Data ေတြ ထည္႔ျပီးေပးပို႔လိုက္ပါတယ္။ Computer1 က ပို႔လႊတ္္လိုက္တဲ့ Data Packet ဟာ Switch ဆီကို
ေရာက္ရွိလာတယ္။ အဲဒီလုိေရာက္ရွိလာတဲ႔အခါမွာ Switch ကေနျပီးေတာ႔ "ဟာ ...မင္းကဘယ္ computer ကလာတာလဲ
၊ မင္းကငါ႔ Network ထဲကေပါ႔ ဒါဆိုရင္ မင္းရဲ႕ MAC Address ကို မွတ္သားထားလိုက္မယ္။ ေနာက္ျပီး မင္းက
ဘယ္သူ႔ဆီကို သြားမွာလဲ ၊ မင္းသြားရမဲ႔ computer ရဲ႕ MAC Address လည္းမင္းဆီပါမွာေပါ႔ ဒါဆိုအဲဒီ MAC Address
ကိုေရာ မွတ္ထားလိုက္မယ္။" အဲဒီလိုနဲ႔ Switch ထဲမွာ computer 1 နဲ႔ computer 5 တို႔ရဲ႔ MAC Address
ေတြေရာက္ရွိသြားပါတယ္။ ဒါေပမယ္႔ Switch ဟာ ေပးပို႔ရမယ္႔ computer 5 ရဲ႕ Port ကိုမသိေသးတဲ႔အတြက္ ေပးပို႔တဲ့
Computer (Computer1) ကလြဲလို႔ အျခား Computer အားလံုးဆီကုိ ၄င္း Packet ကို ထပ္ဆင္႔ေပးပို႔ လိုက္ပါတယ္။
တစ္နည္းအားျဖင္႔ Broadcast လုပ္ လိုက္ပါတယ္။ အဲဒီလို ထပ္ဆင႔္ေပးပို႔လုိက္တဲ့ ၎ Data Packet ေလးဟာ
ေပးပို႔လိုက္တဲ့ Computer က လြဲလို႔ က်န္တဲ့ Computer ေတြဆီကို ေရာက္ရွိသြားတဲ့အခါမွာ လက္ခံရမယ္႔ Computer
(Computer5) ကလြဲလို႔ က်န္တဲ့ Computer ေတြက သူတို႔ လက္ခံရမယ့္ဟာ မဟုတ္တဲ့အတြက္ ပယ္ဖ်က္လိုက္ပါတယ္။
Computer 5 ကေတာ့ သူလက္ခံရမယ့္ Data ျဖစ္တဲ့အတြက္ လက္ခံလုိက္ျပီး ၎ Data Packet ေပးပို႔လိုက္တဲ့
Computer 1 ဆီကို Data လက္ခံရရွိေၾကာင္း Acknowledgement အေၾကာင္းျပန္ရပါတယ္။ ထိုနည္းတူစြာ အျခား
computer ေတြ ( Computer 2 ကေန Computer 6, Computer 3 ကေန Computer 4...စသျဖင္႔) Data
ေတြေပးပို႔ၾကတဲ့အခါ ၄င္း Switch ကေန သူ႔ဆီေရာက္လာတဲ႔ Data packet ေတြရဲ႕ source and destination address
ေတြကို မွတ္သားထားျခင္းအားျဖင္႔ Switch ရဲ႔ MAC Table ထဲမွာ ၄င္းနဲ႔ခ်ိတ္ဆက္ထားတဲ႔ computer 10 လံုးလံုးရဲ႕ MAC
Address ေတြအားလံုးေရာက္ရွိသြားပါတယ္။ ဤကဲ႔သို႔ MAC Address ေတြကို အလိုအေလ်ာက္မွတ္သားထားႏိုင္တာကို
Learning လုပ္တယ္လို႔ ေခၚပါတယ္။ အဲဒီအခါမွာ Switch ဟာ Data ေတြကို ရရွိလာတဲ့အခါမွာ ၎နဲ႔ ခ်ိတ္ဆက္ထားတဲ့
Computer အားလံုးဆီကို Data ေတြ ထပ္ဆင့္မေပးပို႔ေတာ့ပဲ ၄င္း Packet ထဲမွာပါတဲ႔ Destination Address ကို MAC
Table ထဲမွာသြားေရာက္ၾကည့္႐ႈျပီး ပို႔ရမယ့္ Computerရွိတဲ႔ Port ဆီကိုပဲ Data ကို ပို႔လႊတ္လိုက္တာ ျဖစ္ပါတယ္။
Switch ေတြဟာ MAC Table ကို အသံုးျပဳျပီး Data ေတြကို လိုရာသို႔ တိုက္ရိုက္ပို႔ေဆာင္ႏိုင္တဲ့အတြက္ Data ေတြေပးပို႔
တဲ့ေနရာမွာ ပိုမိုျမန္ဆန္လာပါတယ္။ ဒါေၾကာင္႔ switch တို႔ ၊ Bridge တို႔ မွာဆိုရင္ MAC Table ကိုအသံုးျပဳျပီး Data
သြားရမယ္႔ လမ္းေၾကာင္းကိုေရြးခ်ယ္ေပးရတာျဖစ္ပါတယ္။ ကဲ ........... ဒီေလာက္ဆိုရင္ေတာ႔ MAC Table
ကိုနားလည္ေလာက္ျပီလို႔ထင္ပါတယ္ေနာ္။
Credit to Ko Kyaw Si Thu