مبحث multicast از مباحث گسترده و کاربردی دورهی CCIE R&S است. در این مبحث میخواهیم نگاهی اجمالی بر multicast داشته باشیم تا با این شیوه انتقال ترافیک تا حدودی آشنا شویم. توضحیات کامل multicast را در آیندهای نزدیک برایتان منتشر خواهیم کرد.
سناریو
فرض کنید میخواهیم از یک مبدا داخل شبکه مانند شکل زیر، ترافیک ویدئو برای کاربرهای (A و B و C و D) ارسال کنیم.
ارسال به صورت unicast
در حالت عادی و بدون در نظر گرفتن روش multi-cast این ترافیک برای کاربرهای دریافت کننده به صورت مجزا و unicast ارسال شود. اگر ترافیک ویدئو ارسالی 1mbps پهنای باند اشغال کند، بایستی حداقل به تعداد کاربران دریافت کننده (در تصویر چهار کاربر)، ضرب در پهنای باند ترافیک ویدئو معادل 4mbps، پهنای باند وجود داشته باشد تا این داده به مقصد برسد. حال اگر تعداد کاربران درخواست دهنده 1000 نفر باشد، بایستی پهنای باندی معادل 1Gbps داشته باشیم، تا بتوان ویدئو مورد نظر را برای همه به نمایش درآورد.
شروع ماجرای multicast
برای حل این مشکل، دکتر دیرینگ در تز دکترای خود، در سال 1990، تکنولوژی multi-cast را ارائه کرد. از بزرگترین مزایای این روش، صرفهجویی بسیار زیاد در پهنای مورد نیاز برای این نوع درخواستهاست.
در این روش، برای ارسال دادهها، مقصد به صورت گروهی مشخص میشود (فرض کنید مقصد، کامپیوترهایی که ضربدر قرمز خوردهاند هستند). در این حالت ارسال کننده یکبار ترافیک را برای gateway خود ارسال میکند. روتری که بسته multi-cast را دریافت میکند آدرس مقصد بسته را multi-cast گروه کامپیوتر قرمزها میبیند. سپس، بهترین مسیر برای ارسال ترافیک به گروه مشخص شده پیدا میشود.
ساختار پروتکلهای multi-cast، درختی است. یعنی از یک جا شروع شده و به چند مقصد منتهی میشود تا نهایتا درخت مورد نظر تشکیل شود. به ازای هر گروه multicast یک درخت تشکیل میشود.
ارسال به صورت multicast
برای پیدا کردن بهترین مسیرها از پروتکل multi-cast routing protocol استفاده میشود. از معروف ترین پروتکلهای multi-cast، MOSPF (Multicast OSPF) است. سیسکو این پروتکل را پشتیبانی نمیکند. سیسکو با پروتکل PIM(Protocol Independent Multicasting) کار میکند. در multicast، ترافیک زمانی به چند copy تبدیل میشود که ملزم به تقسیم ترافیک باشد.
دو نوع نحوه تشکیل درخت وجود دارد: 1- PIM dense mode. 2- PIM sparse mode. تفاوت این دو روش در نحوه تشکیل درخت از گراف موجود است.
PIM dense mode
در روش اول ترافیک برای همه ارسال میشود (همه عضو درخت هستند)، سپس کسانی که نمی خواهند ترافیک را دریافت کنند از درخت حذف می شوند.
PIM sparse mode
در روش دوم، یک نقطهی شروع مشخص میشود. سپس، مشخص میشود که هیچ کسی عضو درخت نیست مگر کسی که به نقطه مشخص شده درخواست بدهد و از آن نقطه درخت تشکیل میشود. به آن نقطه Rendezvous Point (RP) گفته میشود.
روش اول سریعتر است اما پهنای باند بیشتری اشغال میکند. در شبکههای WAN از روش دوم که پهنایباند کمتری اشغال میکند استفاده میشود. در شبکههای LAN با توجه به عدم وجود مشکل پهنای باند روش اول شیوه متداول است.
نحوه قرارگرفتن در درخت
یک سیستم میخواهد یک ویدئو را تماشا کند. سیستم عامل به سوئیچ یا روتر درخواست میدهد که من عضو این گروه هستم و این ترافیک را برای من ارسال کن. برخی برنامه ها مانند VLC Player میتوانند از طریق سیستم عامل اعلام کنند که می خواهند عضو گروه multi-cast باشند.
درخواستی که سیستم عامل برای عضویت در گروه ارسال میکند درخواستهای IGMP(Internet Group Membership Protocol) است که اصطلاحا درخواست group membership است که درخواست عضویت در گروهی را میدهد. در نتیجه، پروتکل روتر انتهایی (اولین روتر مرتبط با درخواست دهنده) که اعلام کرده میخواهد عضو گروه باشد را در درخت خود قرار میدهد.
در IGMP v1 تا 90 ثانیه ترافیک برای کاربر ارسال میشود و پس از آن سوالی می کند تا متوجه شود کاربر همچنان ترافیک را دریافت میکند یا خیر. در صورتیکه دریافت کننده ایی وجود نداشت آن قسمت از درخت را حذف میکند. در IGMP v2 ویژگی pruning دارد که سیستم میتواند از عضویت در بیاید و در v3 ویژگی ایی به نام source specific multicasting وجود دارد که در صورتیکه با source های مختلف در حال multicasting است کاربر می توان مشخص کند از کدام source دریافت ترافیک داشته باشد.
با توجه به اینکه آدرسهای multicast به صورت دستی روی سیستم تنظیم نمیشود و برنامه مشخص میکند کاربر در چه گروهی قرار دارد، در آدرسهای multicast ، conflict نداریم. آدرس multicast همیشه در قسمت destination است.
سوئیچها در multicast
از سوئیچها در انتقال ترافیک multicast میتوان استفاده کرد. در حالت پیش فرض سوئیچها ترافیک به آدرس ذکر شده را به همه پورتها flood میکنند. روشهایی برای جلوگیری از flood شدن ترافیک multicast وجود دارد، اما در ابتدا بایستی برای سوئیچ MAC address های multicast محاسبه شود.
با توجه به اینکه سوئیچ براساس MAC Address کار میکند، بایستی آدرس فیزیکی مقصدی که در گروه multicast محاسبه شود. محاسبه destination MAC به وسیله الگوی 0100 5EXX XXXX که X ها از روی بیتهای 3 اکتد آخر IP آدرس گروه multicast ساخته میشود، بدست میآید.
روشهای جلوگیری از flood شدن ترافیک multicast در سوئیچ
بهترین روش برای اینکه سوئیچ multicast را flood نکند IGMP SNOOPING است. این ویژگی بروی سوئیچ اجرا میشود. زمانی که کاربر اعلام میکند میخواهد عضو گروه multicast باشد و بسته IGMP ارسال میکند، با توجه به ارسال این بسته سوئیچ متوجه میشود که کاربر میخواهد در کدام گروه قرار بگیرد و به همین علت آن پورت را (به علاوه تخصیص MAC در حالت unicast به پورت) در گروه multicast درخواستی اش قرار میدهد.
از روشهای دیگر میتوان به CGMP (Cisco IGMP Snooping) اشاره کرد. ساختار CGMP به این صورت است که سوئیچ از روتر سوال می کند چه کاربرانی در کدام گروه ها هستند و به درخواست کاربر کاری ندارد. به علت سیسکویی بودن این روش، دستگاهها باید همگی سیسکو باشند تا ترافیک همدیگر را متوجه شوند.
به صورت پیش فرض Multicast غیر فعال است.
مثالی برای درک بهتر multicast:
در جمعی، بحثی مطرح میشود که “نیمار دیشب پنالتی را خیلی خوب گل کرد”!! این حرف را همه شنوندهها شنیده و تحلیل میکنند، اما کسانی که اهل فوتبال بودند به این حرف واکنش نشان میدهند. در این حالت همه افراد در جمع اطلاعات منتشر شده را تحلیل میکنند که همان broadcast است.
روش دیگر در مطرح کردن بحث به اینگونه است: “کسایی که دیشب فوتبال را نگاه کردید، نیمار پنالتی را خیلی خوب گل کرد”!! در مرحلهی اول، نفرات بررسی میکنند که پیغام به آنها مربوط است یا خیر. این قسمت مانند مشخص شدن درخت multicast است. در مرحلهی دوم، نفراتی که فوتبال را دیدهاند و یا مشاهده کردهاند (کسانی که در درخت multicast قرار گرفتهاند) به تحلیل پیغام ” نیمار پنالتی را خیلی خوب گل کرد ” میپردازند.
آدرسهای multicast همانند IP، رنج public و private دارد که از private ها در داخل شبکههای local استفاده میشود و زمانی که AS خریداری می کنید یکسری آدرس public multicast Address را در اختیارتان قرار داده میشود که در دنیای اینترنت قابل استفاده است.
نکتهای که قابل اهمیت است: از multicast فقط به دید کم شدن ترافیک نگاه نمیشود بلکه در کم شدن پردازشها نیز موثر است.
برای بررسی مورد خیلی ساده multicast در LAN می توان از نرم افزار VLC Player استفاده نمود.
این نرم افزار دو قسمت open network stream و streaming دارد که یا میتواند stream های multicast شده را ببیند و یا خودش داده ایی را به صورت multicast، stream کند.