Multicast for beginners

One Source to One Destination ဆိုရင် Unicast
One Source to Everyone ဆိုရင် Broadcast
One Source to Group of Devices ဆိုရင် Multicast ဆိုတာကိုတော့ အားလုံး သိထားပြီးဖြစ်ပါလိမ့်မယ်။
Multicast ကို ဘာလို့လိုအပ်တာလဲ၊ ဘယ်လို အသုံးချတာလဲ ဆိုတာကို unicast, broadcast တွေနဲ့ယှဉ်တွဲပြီး ဥပမာလေးတွေနဲ့ ရှင်းပြပါရစေ။
အောက်ကပုံကို ကြည့်ပါ။


Video Streaming Server နဲ့ သူ့ဆီက Video ကို unicast ကိုသုံးပြီး ကြည့်မယ့် Host လေးလုံးရှိပါတယ်။
Host လေးလုံးမှာ နှစ်လုံးက Local ထဲမှာ ရှိနေပြီး နောက် Host နှစ်လုံးက WAN ဖက်မှာပါ။
WAN link bandwidth က 30Mbps ရှိပြီး 6Mbps Bandwidth လိုအပ်တဲ့ High Definition Video Stream တခုကို Video Streaming Server က နေ Host တခုချင်းစီက ယူကြည့်တယ်ပေါ့ဗျာ။
unicast ဖြစ်တဲ့အတွက် Host တလုံးစီအတွက် 6Mbps ကိုသုံးတယ်ဗျာ။ ၄ လုံးဆိုတော့ 4x6Mbps=24Mbps Bandwidth ကိုသုံးထားတယ်ပေါ့။
တကယ်လို့များ Host ၄ လုံးထပ်ပိုလာမယ် ပိုလာတဲ့ Host တွေကလဲ Video ကို ကြည့်မယ်ဆိုရင်တော့ ပြဿနာ စတက်ပြီပေါ့ဗျာ။
ဒါက unicast သုံးထားတဲ့အတွက် ဖြစ်တဲ့ ပြဿနာပေါ့။


အပေါ်က ပုံအတိုင်းပဲ broadcast ကို သုံးကြည့်မယ်ဗျာ။
ပုံမှာ ပြထားသလိုပဲ Router 1 မှာ broadcast က drop ဖြစ်သွားပြီး WAN ဖက်က Host တွေလိုချင်တဲ့ Video မရတော့ဘူးပေါ့။
နောက်ပြီး LAN ဖက်က Host တလုံးက Video မကြည့်ဘူးဆိုရင်လဲ traffic က သူ့ဆီ လာနေမှာပါပဲ။
ဒီအခြေအနေဟာဆိုရင်လဲ လိုတဲ့သူက braoadcast ကို drop လုပ်တဲ့ router ရဲ့ သဘာဝကြောင့် လိုချင်တာကို မရသလို၊ မလိုတဲ့သူကို ပေးနေတဲ့အတွက်လဲ bandwidth တွေဆုံးရှုံးနေတာပေါ့။
ဒါက broadcast သုံးလို့ ဖြစ်တဲ့ ပြဿနာပေါ့။

Same Topology ကိုပဲ multicast ကိုသုံးကြည့်အုံးမယ်ဗျာ။

ဒီတခါတော့ LAN ဖက်က Host တလုံးရယ်၊ WAN ဖက်က Host တလုံးရယ်ပဲ Video Streaming ကိုကြည့်ဖို့လိုတယ်ဗျာ။
Video Streaming Server က Video Packets တွေကို တကြိမ်ပဲ Send ဖို့လိုပါတယ်။ Network မှာရှိတဲ့ Router, Switch တွေက multicast traffic ကို လိုတဲ့ Host ဆီကို Forward လုပ်ပေးပါတယ်။
unicast လို လိုတဲ့ Host တိုင်းကို အကြိမ်ကြိမ် send စရာမလိုသလို၊ broadcast လိုလဲ လိုလို မလိုလို send ရတာမျိုးလဲ မရှိပါဘူး။
ဒါ multicast ပါပဲဗျာ။

ဒါပေမယ့် multicast ဟာ သူ့ချည်းပဲတော့ အလုပ်မလုပ်ဘူးဗျ။ သူကောင်းကောင်းအလုပ်လုပ်နိုင်ဖို့ တခြား component တွေလိုသေးတယ်။
ပထမဆုံးကတော့ multicast traffic အတွက် IP address တွေပေါ့ဗျာ။ multicast IP address တွေကို သိချင်ရင်တော့ Internet မှာ ရှာကြည့်နိုင်ပါတယ်။
နောက်ပြီး multicast ကို support လုပ်တဲ့ application တွေလဲ လိုပါသေးတယ်။ ဥပမာအနေနဲ့ဆိုရင် VLC mediaplayer လိုမျိုးပေါ့။

နောက်တခုက အောက်ကပုံကိုကြည့်ပါ

Router တလုံး multicast traffic ကို လက်ခံရပြီဆိုတာနဲ့ သူနဲ့ ချိတ်ထားတဲ့ Host တွေထဲက ဒီ multicast traffic ကို လိုချင်တဲ့သူ ရှိမရှိသိအောင် လုပ်ရပါတယ်။
အဲဒီလို သိအောင် လုပ်ဖို့အတွက် IGMP (Internet Group Management Protocol) ဆိုတာကို သုံးပါတယ်။
Multicast Traffic ကိုလိုချင်တဲ့ Host ဟာ IGMP ကိုသုံးပြီး Router ကို အသိပေးရပါတယ်။
IGMP က Router ကို ဘယ် Interface က Multicast Traffic ကိုလိုနေတာဖြစ်ကြောင်းသိစေပြီး Forward လုပ်လို့ရအောင် ကူညီပေးပါတယ်။

ဟုတ်ပါပြီ။ တကယ်လို့များ အောက်ကပုံလို Router နောက်မှာ Switch တလုံးရှိနေသေးတယ်ဆိုရင် ဘယ်လိုလုပ်မလဲ။ 

Switch က သူ့ရဲ့ ဘယ် Interface ကို Multicast Traffic ကို Forward လုပ်ရမလဲ ဆိုတာ မသိပါဘူး။
မပူပါနဲ့ဗျာ။ ဒီလိုအခြေအနေမှာ သုံးဖို့ IGMP snooping ဆိုတာ ရှိပါတယ်။
Switch က Router နဲ့ Host တွေကြားထဲကနေ ပြီး IGMP message တွေကို နားထောင်တယ် ပြီးတော့မှ ဘယ် Interface ကနေ Multicast Traffic ကို Forward လုပ်ရမလဲဆိုတာကို ဆုံးဖြတ်တယ်ပေါ့။
IGMP snooping လိုမျိုး Cisco မူပိုင် CGMP (Cisco Group Management Protocol) ဆိုတာလဲ ရှိပါသေးတယ်။ ဒါပေမယ့် သိပ်မသုံးကြပါဘူး။

ကဲ...အခုထိ ပြောလာတာက simple topology အတွက်ဗျ။ တကယ်လို့ အောက်ကပုံလို Router တွေ နည်းနည်းများလာမယ် နည်းနည်းရှုပ်လာမယ်ဆိုရင် ဘယ်လိုလုပ်မလဲ။

Host 1 က လိုချင်တဲ့ Video ကို Router 1 က multicast traffic နဲ့ ပို့မယ်ဆိုပါတော့။
unicast မှာဆိုရင်တော့ Router တွေက destination address ကို ကြည့်ပြီး routing table အတိုင်း traffic ကို forward လုပ်လိုက်ယုံပဲ။
multicast မှာဆိုရင်တော့ ဒီလောက်မလွယ်ကူပါဘူး။ Destination Address က Multicast Group Address ဖြစ်နေတဲ့အတွက် Traffic ဟာ Multiple Receiver ကို ပို့ရမှာ ကြောင့်ပဲ ဖြစ်ပါတယ်။
အဲဒီလို Multiple Receiver တွေဆီကို Packet ကို Forward လုပ်ဖို့  အတွက် DVMRP (Distance Vector Multicast Rrouting Protocol), MOSPF (Multicast Open Shortest Path First) နဲ့ PIM (Protocol Independent Multicast) ဆိုတာတွေကို သုံးဖို့လိုပါတယ်။
Popular အဖြစ်ဆုံးကတော့ PIM ပေါ့။

Multicast မှာ advantage တွေကတော့ အများကြီးပေါ့ဗျာ။ unicast traffic နဲ့ အဓိကကျတဲ့ advantage ကိုယှဉ်မယ်ဆိုရင်တော့ multicast က scability ဖြစ်တာပါပဲ။
ဒါပေမယ့် multicast က udp ကိုပဲ support လုပ်တဲ့ disadvantage တခုတော့ရှိပါတယ်။

Multicast ကို Youtube , Netflix လို Video Streaming လုပ်တဲ့ Company တွေက Internet မှာ အသုံးချလား လို့မေးရင်တော့ မသုံးပါဘူးလို့ပဲ ဖြေရမှာပါပဲ။
သူတို့က unicast တွေအများကြီးနဲ့ ပဲ သူတို့ရဲ့ Online Video တွေကို သူတို့ Customer တွေဆီကို deliver လုပ်ပါတယ်။
ဒါပေမယ့် Local ISP တွေမှာတော့ Multicast ကို သုံးတာကို တွေ့ရမှာပါ။ ဥပမာ အနေနဲ့ Singapore မှာဆိုရင် SingTel ရဲ့ IPTV လိုမျိုးပေါ့ဗျာ။
ကဲ ဒီလောက်ဆိုရင် Multicast အခြေခံလေး နည်းနည်းရသွားပြီလို့ ယူဆပါတယ်။
နည်းနည်း ပိုပြည့်စုံသွားအောင် CCIE တွေရေးထားတဲ့ Multicast အကြောင်းလေးတွေကို ဒီအောက်က လင့် တွေမှာ သွားဖတ်နိုင်ပါသေးတယ်။

ပျော်ရွှင်ပါစေဗျာ။

(Be knowledgeable, pass it on then)

Understanding Cisco Switch Virtualization

ကျတော်တို့ Switch Network ကို တည်ဆောက်တဲ့အခါ Core, Distribution, Access Layer တွေနဲ့ တည်ဆောက်ကြသလို Redundant အတွက်လဲ ထည့်စဉ်းစားပြီး Design လုပ်ကြရပါတယ်။
Redundant အတွက်စဉ်းစားတဲ့အခါ loop-free topology ရဖို့အတွက် ပါ ထည့်သွင်းစဉ်းစားပြီး implement လုပ်ကြရပါတယ်။
loop-free topology အတွက် လုပ်တာနဲ့ ပုံမှန် Spanning-tree လို ဟာတွေဟာ redundant link ကို block လုပ်ထားတဲ့အတွက် resource တွေကို အပြည့်အဝ မသုံးရတဲ့ ပြဿနာလေးတွေကြုံလာရပါတယ်။

အောက်က ပုံမှာဆိုရင် မြင်တွေ့နေကြ Switch Topology တခုပေါ့။ အနီရောင်နဲ့ ပြထားတဲ့ link တွေဟာဆိုရင် spanning tree က block လုပ်ထားလို့ သုံးမရတဲ့ အခြေအနေပါ။
ဒီပုံမှာဆိုရင် Distribution Switch ၁ လုံး ပျက်သွားခဲ့ရင် နောက ၁ လုံးက take over လုပ်နိုင်ပေမယ့် Access Switch တွေကတော့ Redundant Link မရှိတဲ့အတွက် Connection Breakdown ဖြစ်သွားမှာပါ။


ဒီအခြေအနေကို ကျော်လွှားနိုင်ဖို့ ဆိုရင် အောက် က ပုံလို Access Switch ၂ လုံးကို Logical Switch ၁ လုံးအနေနဲ့ ပေါင်းပြီး uplink တွေကို EtherChannel သုံးပြီး ပေါင်းထားနိုင်ပါတယ်။
ဒီမှာဆိုရင်လဲ Spanning Tree က Logical Switch ရဲ့ uplink တခုကို block ထားပါသေးတယ်။
ဒီလို အခြေအနေကို ထပ်ကျော်လွှားဖို့အတွက် Distribution Switch ၂ လုံးကိုပါ Logical Switch ၁ လုံးအနေနဲ့ ထပ်ပေါင်းမယ်ဆိုရင် အောက်က ပုံလို ဖြစ်သွားပါမယ်။
ဒါဆိုရင်တော့ Logical Switch ၂ လုံးကြားက Link ၄ ခုစလုံး ကို EtherChannel ၁ ခုအနေနဲ့ setup လုပ်ပြီးတော့ Spanning-tree ကနေ block လုပ်ထားတာကို ကျော်လွှားနိုင်သွားပြီဖြစ်သလို၊ Physical Switches တွေအများကြီးနဲ့ setup လုပ်မရတဲ့ EtherChannel ရဲ့ ကန့်သတ်ချက်ကို လဲ ကျော်လွှားပြီးသားဖြစ်သွားပါပြီ။

နည်းနည်းရှုပ်နေမှာစိုးလို့ ပိုရှင်းသွားအောင် အောက်က ပုံ ၂ ခုနဲ့ ယှဉ်ပြပါမယ်။
ဒီအောက်က ပုံက Physical Switch တွေ ချည်းပဲ ချိတ်ထားတဲ့ပုံပါ။


အခုအောက်ကပုံကတော့တော့ Physical Switch တွေကို Logical Switch အဖြစ် ပြောင်းထားတဲ့ ပုံပါ။
ရှုပ်ယှက်ခတ်နေတဲ့ Link တွေ တော်တော်ရှင်းသွားတာကို မြင်ရပါလိမ့်မယ်။
ဒီလို မျိုး Physical Switch တွေကို Logical Switch အဖြစ် ပြောင်းနိုင်ဖို့ Cisco က Technology ၂ ခုကို ချပြထားပါတယ်။ အဲဒါတွေကတော့...
၁) Cisco Stackwise
၂) VSS (Virtual Switching System) တို့ပဲ ဖြစ်ပါတယ်။

၂ မျိုးစလုံးကို စမ်းကြည့်ဖို့အတွက် လောလောဆယ်တော့ Simulation Application တွေ ကျတော် မတွေ့မိသေးပါဘူး။
စမ်းချင်ရင်တော့ ကိုယ့်အလုပ်မှာ ဒါမျိုးလုပ်ပါစေ လို့ ဆုတောင်းပေါ့ဗျာ။ ဒါမှ မဟုတ်ရင်တော့ Cisco Catalyst 3750 လို stackable switch, Cisco Catalyst 6500/4500 လို VSS ရနိုင်တဲ့ switch မျိုး ဝယ်ပြီး စမ်းပေါ့။

ပျော်ရွှင်ပါစေဗျာ။
(Be knowledgeable, pass it on then)