پروتکل Internet Group Management Protocol یا به اختصار IGMP برای ثبت پویای Hostهای مجزا در یک گروه Multicast روی یک قسمت از LAN، مورد استفاده قرار میگیرد. فعالسازی Protocol Independent Multicast یا PIM روی یک InterFace عملیات IGMP را نیز روی آن اینترفیس ممکن میسازد. این ماژول روشهایی را برای سفارشیسازی IGMP شرح میدهد، شامل اینکه چطور باید:
- یک روتر را پیکربندی نمود تا در نبود Hostهای IGMP که به طور مستقیم یه یکدیگر متصلاند، ترافیک Multicast را Forward کند.
- یک IGMP Version 3 (IGMPv3) Host Stack را فعالسازی نمود تا روتر بتواند به عنوان یک Endpoint یا Host متعلق به شبکهی Multicast عملکرد داشته باشد.
- به روترها این توانایی را داد که هر Host مجزایی را که به یک گروه یا کانال خاص در محیط IGMPv3 ملحق شده است، ردیابی نمایند.
- دسترسی به یک شبکهی SSM را با استفاده از لیستهای دسترسی گستردهی (extended access list( IGMP کنترل نمود.
- یک پراکسی IGMP را پیکربندی نمود که به Hostهایی که به طور مستقیم به یک روتر Downstream متصل نیستند توانایی ملحق شدن به یک گروه Multicast را با مبداءی از یک شبکهی Upstream بدهد.
نقش Internet Group Management Protocol چیست؟
IGMP برای ثبت پویای Hostهای مجزا در یک گروه Multicast روی یک LAN مشخص، مورد استفاده قرار میگیرد. فعالسازی یک PIM روی یک اینترفیس، IGMP را هم فعال مینماید. IGMP با استفاده از Querierها و Hostهای Multicast مخصوص، راهی را برای کنترل و محدود کردن جریان ترافیک Multicast در سرتاسر شبکهی کاربر، به طور خودکار فراهم مینماید.
- Querier یک دستگاه شبکه، مانند روتر است که پیامهای Query را ارسال میکند تا مشخص شود کدام تجهیزات شبکه عضوی از یک گروه Multicast خاص هستند.
- Host یک دریافتکننده است که شامل روترها نیز میشود و پیامهای گزارش را (در پاسخ به پیامهای Query) ارسال مینماید تا به Querier در مورد عضویت Host اطلاعرسانی نماید. Hostها از پیامهای IGMP استفاده میکنند تا به گروههای Multicast ملحق شده و یا آنها را ترک کنند.
Hostها با ارسال پیامهای IGMP به دستگاه Local Multicast خود، عضویتهای گروه را شناسایی مینمایند. با استفاده از IGMP، دستگاهها به پیامها گوش میدهند و به صورت دورهای Queryهایی را ارسال میکنند تا مشخص گردد در یک Subnet خاص، چه گروههایی فعال و یا غیرفعال میباشند.
تفاوتهای نسخههای IGMP
همانگونه که در اسناد RFC تعریف شده است، سه نسخه از IGMP وجود دارد. IGMPv2 با اضافه کردن این قابلیت که یک Host بتواند، درخواستاش را برای ترک گروه Multicast مطرح نماید، IGMPv1 را بهبود بخشیده و IGMPv3 با اضافه کردن قابلیت شنیدن Multicast که تنها از مجموعهای از آدرسهای IP مبدا حاصل میشود، IGMPv2 را بهبود میبخشد.
ویژگی های IGMPv1:
مکانیزم اولیهی پاسخ به Query را فراهم مینماید که به دستگاه Multicast این امکان را میدهد که تعیین کند کدام گروه Multicast فعال است و همچنین دیگر فرایندهایی را تعیین نماید که برای Hostها امکان ملحق شدن و یا ترک کردن یک گروه Multicast را فراهم مینمایند. طبق RFC 1112 افزونههای Host متعلق به IGMPv1 را برای IP Multicasting تعریف مینماید.
تجهیزاتی که IGMPv1 را پشتیبانی میکنند، Queryهای IGMP را به آدرس Multicast «All-Hosts» از 224.0.0.1 ارسال مینمایند تا دریافتکنندههای Multicast فعال از گروههای Multicast درخواست کنند. دریافتکنندههای Multicast همچنین میتوانند گزارشات IGMP را به دستگاه ارسال کنند تا به آن اطلاعرسانی نمایند که علاقمند به دریافت یک Multicast Stream خاص میباشند. Hostها میتوانند به صورت غیرهمزمان یا در پاسخ به Queryهای IGMP که توسط دستگاه ارسال میگردد، گزارش را ارسال کنند. اگر بیش از یک دریافتکنندهی Multicast، برای یک گروه Multicast یکسان وجود داشته باشد، تنها یکی از این Hostها، یک پیام گزارش IGMP را ارسال مینماید؛ Hostهای دیگر پیامهای گزارش خود را ارسال نمیکنند.
در IGMPv1، هیچ انتخابی برای IGMP Querier مطرح نیست. اگر بیش از یک دستگاه روی بخش وجود داشته باشد، تمام دستگاهها Queryهای IGMP دورهای ارسال میکنند. IGMPv1 دارای هیچ مکانیزم خاصی نیست که توسط آن Hostها بتوانند گروه را ترک کنند. اگر Hostها دیگر علاقهای به دریافت Packetهای Multicast از یک گروه خاص نداشته باشند، دیگر به Packetهای IGMP Query که از دستگاه ارسال شده بود، پاسخ نمیدهند. دستگاه به ارسال Packetهای Query ادامه میدهد. اگر دستگاه در سه IGMP Query، پاسخی دریافت نکند، گروه Timeout مینماید و دستگاه ارسال Packetهای Multicast را روی آن بخش گروه متوقف مینماید. اگر در آینده، پس از دورهی Timeout، Host بخواهد Packetهای Multicast را دریافت کند، به سادگی یک IGMP Join تازه را به دستگاه میفرستد و دستگاه دوباره شروع به Forward کردن Multicast Packet میکند.
اگر چندین دستگاه روی یک LAN وجود داشته باشد، باید برای اجتناب از تکرار ترافیک Multicast برای Hostهای متصل، یک روتر اختصاص داده شده (DR) انتخاب گردد. دستگاههای PIM، یک پروسهی گزینش را برای انتخاب یک DR طی میکنند. دستگاه PIMی که دارای بالاترین آدرس IP باشد، تبدیل به DR خواهد شد. در واقع DR مسئولیت Taskهای زیر را بر عهده دارد:
- ارسال پیامهای PIM Register (ثبت PIM) و PIM Join (پیوستن PIM) و Prune به نقطهی ملاقات (RP) برای اطلاعرسانی به آن درمورد عضویت گروه Host.
- ارسال پیامهای IGMP Host-Query.
- ارسال پیامهای Host-Query به صورت پیشفرض هر شصت ثانیه، جهت پایین نگه داشتن، سربار IGMP روی Hostها و شبکهها.
ویژگی های IGMPv2:
- IGMP را گسترش داده و قابلیتهایی مانند فرایند ترک IGMP، Queryهای مختص به گروه و مقدار حداکثر واضحی را برای زمان پاسخدهی فراهم مینماید. IGMPv2 همچنین به دستگاهها این قابلیت را میدهد که IGMP Querier را گزینش نمایند، بدون وابستگی به پروتکل Multicast برای انجام این Task. RFC 2236 است که IGMPv2 را تعریف مینماید.
IGMPv2 قابلیتهای پیامرسانی Query در IGMPv1 را بهبود میبخشد. پیامهای گزارش Query و عضویت در IGMPv2 درست همانند پیامهای IGMPv1 هستند، اما با دو تفاوت:
- پیامهای Query در IGMPv2 به دو دسته تقسیم میشوند: Queryهای عمومی (یکسان با Queryهای IGMPv1) و Queryهای مختص به گروه.
- نوع کدهای IGMP در گزارشهای عضویت IGMPv1 و گزارشهای عضویت IGMPv2 متفاوتاند.
IGMPv2 همچنین با پشتیبانی از قابلیتهای زیر IGMP را بهبود میبخشد:
- فرایند گزینش Querier: این قابلیت را فراهم مینماید که دستگاههای IGMPv2 بتوانند بدون وابستگی به پروتکل Multicast Routing برای انجام فرایند، IGMP Querier را گزینش کنند.
- حداکثر محدودهی زمانی پاسخ: محدودهای جدید در پیامهای Query به IGMP Querier این قابلیت را میدهد که حداکثر زمان پاسخ به Query را تعیین کند. این محدوده، تنظیم فرایند پاسخ به Query را ممکن میسازد تا Burstiness پاسخ کنترل گردد و میزانهای تاخیر ترک کردن (Leave Latencies) به طور دقیق تنظیم گردد.
- پیامهای Query مختص به گروه: به IGMP Querier توانایی اجرای عملیات Query را روی یک گروه خاص، به جای تمام گروهها میدهد.
- پیامهای ترک گروه: برای Hostها روشی فراهم میکند که به دستگاههای روی شبکه اطلاعرسانی کنند که میخواند گروه را ترک نمایند.
بر خلاف IGMPv1، که در آن DR و IGMP Querier معمولا دستگاه یکسانی هستند، در IGMPv2 این دو عملکرد از یکدیگر جداسازی شدهاند. DR و IGMP Querier براساس معیارهای متفاوتی انتخاب میگردند و ممکن است دستگاههای متفاوتی روی Subnet یکسانی باشند. DR دستگاهی است که روی Subnet دارای بالاترین آدرس IP باشد، درحالیکه IGMP Querier دستگاهی است که دارای پایینترین آدرس IP باشد.
به شیوهی زیر از پیامهای Query برای گزینش IGMP Querier استفاده میگردد:
- وقتی دستگاههای IGMPv2 شروع به کار میکنند، هر یک از آنها یک پیام Query عمومی را برای آدرس گروه All-Systems از 0.0.1، Multicast میکنند و آدرس InterFace آنها در فیلد آدرس IP مبدا پیام وجود دارد.
- وقتی که یک دستگاه IGMPv2 یک پیام Query عمومی را دریافت مینماید، دستگاه آدرس IP مبدا را در پیام با آدرس رابط کاربری خودش مقایسه مینماید. دستگاه دارای پایینترین آدرس IP روی Subnet به عنوان IGMP Querier برگزیده میگردد.
- تمام دستگاهها (به غیر از Querier) زمانی تایمر Query را آغاز میکنندکه یک پیام Query عمومی از سوی IGMP Querier دریافت شود، این تایمر Reset میگردد. اگر تایمر Query منقضی گردد، فرض بر این است که IGMP Querier خاموش شده است و فرایند گزینش دوباره انجام میگردد تا یک IGMP Querier تازه انتخاب شود.
لازم به ذکر است که به طور پیشفرض، تایمر دوبرابر فاصلهی Query میباشد.
ــــــــــــــــــــــــــــــــ
بررسی پروتکل (Internet Group Management Protocol (IGMP – قسمت اول
بررسی پروتکل (Internet Group Management Protocol (IGMP – قسمت دوم
بررسی پروتکل (Internet Group Management Protocol (IGMP – قسمت سوم (پایانی)