در قسمت اول از مقالهی Multicast Forwarding و Reverse path Forwarding موارد مربوط به جداول Multicast Routing معرفی شدند و شرحی از انواع درختها برای توزیع Multicast، یعنی «درخت مبدأ» و «درخت مشترک» ارائه گردید. در این بخش به مزایا و معایب این دو نوع درخت و شرح فرایند انتقال از درخت مشترک به درخت مبدأ پرداخته میشود.
مزیت درخت مبدأ
درختهای مبدأ دارای مزیت ایجاد مسیری بهینه بین مبدأ و دریافتکنندهها هستند. این مزیت تضمین میکند که برای Forward کردن ترافیک Multicast میزان تأخیر به حداقل برسد. اما این بهینهسازی هزینه هم دارد. روترها باید اطلاعات مسیر را برای هر مبدأ حفظ نمایند. در شبکهای که دارای هزاران مبدأ و هزاران گروه است، این سربار به راحتی میتواند به منبعی از مشکلات برای روترها تبدیل گردد. میزان مصرف حافظه به نسبت اندازهی جدول Multicast Routing، عاملی است که طراحان شبکه باید به آن توجه کنند.
مزیت درخت مشترک
درختان مشترک دارای این مزیت هستند که نیازمند حداقل میزان مصرف حافظه در هر روتر میباشند. این مزیت الزامات کلی حافظه را کاهش میدهد تا شبکهای فراهم گردد که تنها اجازهی وجود درختان مشترک را میدهد. اما جنبهی منفی درختان مشترک این است که تحت شرایط خاصی، ممکن است مسیرهای بین منبع و دریافتکنندهها بهینه نباشند و احتمال دارد که این امر باعث ایجاد مقداری تأخیر در تحویل Packet شود. برای مثال، در شکل زیر کوتاهترین مسیر بین Host A (منبع 1) و Host B (یک دریافتکننده)، Router A و Router C خواهد بود. ازآنجایی که از Router D به عنوان ریشهای برای یک درخت مشترک استفاده میگردد، ترافیک باید از روترهای A، B، D و سپس C عبور کند. طراحان شبکه باید در زمان پیادهسازی یک محیط که تنها دارای درخت مشترک است، به دقت RP را بسنجند.
در مسیریابی Unicast، ترافیک از طریق شبکه در مسیری واحد از مبدأ به Host مقصد، مسیریابی میگردد. یک روتر Unicast آدرس مبدأ را در نظر نمیگیرد؛ بلکه تنها آدرس مقصد را در نظر گرفته و اینکه چطور باید ترافیک را به سمت آن مقصد Forward کرد. روتر جدول مسیریابی خود را بررسی میکند تا آدرس مقصد را بیابد و سپس یک نسخهی واحد از Unicast Packet را از اینترفیس صحیح به سمت مقصد میفرستد.
در Multicast Forwarding، مبدأ، ترافیک را به گروه دلخواهی از Hostها میفرستد که یک آدرس گروه Multicast نشانگر آنها است. روتر Multicast باید تعیین کند که جهت Upstream (جهتی که به سمت مبدأ قرار دارد) کدام جهت است و جهت (یا جهتهای) Downstream که به سمت دریافتکنندگان قرار دارند، چه جهتهایی هستند. اگر چندین مسیر Downstream وجود داشته باشد، روتر Packet را همسانسازی کرده و آن را در مسیرهای Downstream مناسب Forward مینماید (بهترین متریک تعیین مسیر Unicast)، تمام مسیرها لزوماً مناسب نیستند. Forward کردن ترافیک Multicast به طوری که از مبدأ دور شود، به جای اینکه به سمت دریافتکننده برود، Reverse Path Forwarding یا به اختصار RPF نام دارد. در ادامه به شرح RPF پرداخته میشود.
درخت مشترک PIM و درخت مبدأ
اعضای یک گروه به طور پیشفرض داده را از فرستندگان به گروه، بر روی یک درخت توزیع دادهی واحد که در RP ریشه دارد، دریافت مینمایند.
شکل زیر این نوع از درخت توزیعی مشترک را نشان میدهد. دادههای فرستندگان برای توزیع بین اعضای گروه که در درخت مشترک Join شدهاند، به RP تحویل داده میشوند.
اگر سرعت دادهها مناسب باشد، روترهای دریافت کننده روی درخت مشترک (روترهایی که هیچ اتصال Downstreamی ندارند) میتوانند از درخت توزیع داده که در مبدأ ریشه دارد، استفاده نمایند. این نوع درخت توزیع، درخت کوتاهترین مسیر یا درخت مبدأ نام دارد. نرمافزار به طور پیشفرض به محض دریافت اولین Packet داده از یک مبدأ، به یک درخت مبدأ متصل میشود.
این فرایند انتقال از یک درخت مشترک به یک درخت مبدأ را توصیف میکند:
- دریافتکننده در گروهی Join میشود، Router C(دریافت کننده) به RP پیام Join ارسال میکند.
- RP در لیست اینترفیس خروجیاش لینکی را در Router C قرار میدهد.
- مبدأ دادهها را میفرستد، Router A دادهها را در قالب یک پیام Register قرار داده و آن را به RP میفرستد.
- داده توسط RP و از طریق درخت مشترک، Forward میشود به Router C و پیام Join به مبدأ فرستاده میشود. در این زمان ممکن است داده دوبار به Router C رسیده باشد، یک بار در قالب پیام Register و یک بار به صورت Native.
- زمانی که داده به صورت Native به RP میرسد، یک پیام توقف (Register (Register-Stop به Router A فرستاده میشود.
- به صورت پیشفرض، دریافت Packet دادهی اول موجب میشود Router C یک پیام Join به مبدأ بفرستد.
- وقتی Router C داده را روی (S, G) دریافت میکند، از طریق درخت مشترک یک پیام Prune را برای مبدأ میفرستد.
- RP لینک Router C را از اینترفیس خروجی (S, G) پاک کرده و یک پیام Prune به سمت مبدأ میفرستد.
پیامهای Join و Prune برای مبدأها و RPها ارسال میشوند. این پیامها به صورت Hop-by-Hop ارسال میگردند و توسط هر دستگاه PIM در مسیر مبدأ یا RP مورد پردازش میگیرند. پیامهای Register و توقف Register به صورت Hop-by-Hop ارسال نمیشوند. این پیامها توسط روتری اختصاصی که به طور مستقیم به یک مبدأ متصل است، ارسال شده و توسط RP برای گروه دریافت میگردند.
منابع متعددی که به گروهها ترافیک میفرستند از درخت مشترک استفاده مینمایند. میتوان تجهیز PIM را طوری پیکربندی کرد تا روی درخت مشترک باقی بماند.
تغییر از درخت مشترک به درخت مبدأ زمانی رخ میدهد که اولین Packet داده به آخرین روتر Last-Hop برسد. این تغییر به آستانهای بستگی دارد که با استفاده از دستور پیکربندی جهانی ip pim spt-threshold پیکربندی شده باشد.
درختِ کوتاهترین مسیر، در قیاس با درخت مشترک نیازمند حافظهی بیشتری بوده اما تأخیر را کاهش میدهد. بهتر است استفاده از آن را به تأخیر انداخت. کاربر به جای اینکه اجازه دهد روتر دریافت کننده بلافاصله به درخت کوتاهترین مسیر برود، میتواند مشخص کند که پیش از آن ترافیک باید به حد آستانهی مشخصی برسد.
همچنین میتوان پیکربندی کرد که چه زمانی یک روتر PIM دریافت کننده، به درخت کوتاهترین مسیر برای گروهی خاص Join شود. اگر یک مبدأ با سرعتی بیشتر یا مساوی با سرعت Kbps مشخص شده ترافیک ارسال کند، سوییچ چندلایه یک پیام PIM Join را به مبدأ میفرستد تا یک درخت مبدأ (درخت کوتاهترین مسیر) تشکیل دهد. اگر سرعت ترافیک از مبدأ، از آستانهی مشخص شده پایینتر برود، روتر دریافت کننده دوباره به سراغ درخت مشترک میرود و یک پیام Prune به سمت مبدأ میفرستد.
میتوان با استفاده از یک Group List (لیست دسترسی استاندارد) مشخص نمود که آستانهی درخت کوتاهترین مسیر به کدام گروه اعمال میشود. اگر مقدار 0 مشخص شود یا اگر از لیست گروه استفاده نگردد، محدودیت آستانه به تمام گروهها اعمال خواهد شد.
همهچیز دربارهی Multicast Forwarding و Reverse Path Forwarding – قسمت اول
همهچیز دربارهی Multicast Forwarding و Reverse Path Forwarding – قسمت دوم
همهچیز دربارهی Multicast Forwarding و Reverse Path Forwarding – قسمت سوم (پایانی)