IGMP پروتکلی است که به چندین دستگاه اجازه میدهد یک آدرس IP را به اشتراک بگذارند؛ به طوری که همهی آنها بتوانند دادههای یکسانی را دریافت کنند. IGMP یک پروتکل لایهی شبکه است که جهت راهاندازی انتقال اطلاعات از رایانهی مرکزی به رایانههای شبکه با استفاده از پروتکل اینترنت نسخهی 4 (IPV4) استفاده میشود.
به ویژه، IGMP به چندین دستگاه این امکان را میدهد که به گروه مخصوص ارسال دادها از کامپیوتر مرکزی به سایر کامپیوترها ملحق شوند.
Multicasting چیست؟
زمانی که تمامی دستگاههای یک گروه، پیامها و دادههای یکسانی را دریافت میکنند، Multicasting رخ میدهد. Multicasting با به اشتراک گذاری یک آدرس IP بین چندین دستگاه کار میکند.
بنابراین ترافیکی که به یک دستگاه با آدرس آی پی مورد نظر هدایت میشود، به سایر دستگاهها با همان آدرس آی پی نیز ارسال میشود. این حالت تقریبا مانند زمانی است که گروهی از کارمندان یک شرکت، ایمیلهای شرکت را با نام مستعار خاص ایمیل دریافت میکنند.
IGMP چگونه عمل میکند؟
رایانهها و سایر دستگاههای متصل به شبکه زمانی که قصد دارند به گروه Multicasting ملحق شوند، از IGMP استفاده میکنند. روتری که از IGMP پشتیبانی میکند، به انتقالات IGMP توجه میکند تا بداند کدام دستگاه به کدام گروه Multicasting تعلق دارد.
IGMP از آدرسهای آی پی که برای Multicasting اختصاص داده شده است، استفاده میکند. آدرسهای IP چندپخشی (Multicast) در محدودهی بین 224.0.0.0 و 239.255.255.255 قرار دارند.
برعکس آن، شبکههای Anycast میتوانند از هر آدرس آی پی منظمی استفاده کنند. هر یک از گروههای Multicast، یکی از این آدرسهای آی پی را به اشتراک میگذارد.
کاری که روتر انجام میدهد این است که دادههایی که به آدرس IPهای به اشتراک گذاشته هدایت شده را دریافت میکند، سپس آنها را کپی نموده و یک نسخه برای تمامی اعضا گروه Multicast ارسال میکند.
قابل ذکر است گروههای IGMP Multicast در هر زمانی میتوانند تغییر کنند. یک دستگاه قادر است در هر لحظه پیام “ملحق شدن به گروه” و یا “ترک گروه” را ارسال کند.
IGMP مستقیما تحت کنترل پروتکل اینترنت (IP) کار میکند. هر پکت IGMP، دارای IGMP header و IP header میباشد. IGMP نیز درست مانند ICMP، از پروتکل لایهی انتقال مانند TCP یا UDP استفاده نمیکند.
انواع پیامهای IGMP
پروتکل IGMP، امکان چندین نوع پیام IGMP را فراهم میآورد:
- Membership reports: دستگاهها، این پیامها را به روتر Multicast ارسال نموده تا بتوانند به گروه Multicast ملحق شوند.
- Leave group” messages”: این پیامها از یک دستگاه به روتر ارسال شده و به دستگاه این امکان داده میشود که گروه Multicast را ترک کند.
- General membership queries: یک روتر با قابلیت Multicast این پیامها را به کل دستگاههای موجود در شبکه ارسال میکند تا عضویت گروه Multicast را برای تمامی گروههای شبکه بروزرسانی کند.
- Group-specific membership queries: روترها چنین پیامهایی را فقط به گروههای خاصی از Multicast ارسال میکنند؛ نه به کل شبکه.
IGMP Snooping چیست؟
IGMP یک پروتکل لایهی شبکه است و تنها دستگاههای شبکه که از لایهی شبکه مطلع هستند، قادر به ارسال و دریافت پیامها میباشند. یک روتر در لایهی شبکه کار میکند، درحالیکه سوییچ شبکه تنها نسبت به لایهی دو (لایهی data link) آگاهی دارد.
در نتیجه، ممکن است سوییچ هیچ اطلاعاتی مبنی بر این که کدام دستگاههای شبکه، بخشی از گروههای Multicast هستند و کدام نیستند، نداشته باشد. بنابراین، این امکان وجود دارد که ترافیک Multicast را به دستگاههایی که به آن نیاز ندارند ارسال کند، که این امر باعث کاهش قدرت پردازش شبکه، پهنای باند و سرعت کل شبکه میشود.
IGMP snooping با فعال کردن سوییچهای “جستجوی اسکن” در پیامهای IGMP این مشکل را حل میکند. به طور معمول، یک سوییچ لایهی 2 از پیامهای IGMP با خبر نیست، اما میتواند به کمک IGMP snooping نسبت به آنها آگاهی پیدا کند.
همین امر به سوییچ لایهی 2 این امکان را میدهد که مسیر هدایت پیامهای Multicast را شناسایی کند. به این ترتیب تنها دستگاههایی که باید، ترافیک Multicast را دریافت میکنند.
تفاوت Multicasting در IPV4 و IPV6
IPV4 و IPV6، دو نسخهی متفاوت از پروتکل اینترنت (IP) میباشند. IPV6 جدیدتر است اما از IPV4 هنوز هم استفاده میشود. Multicast Listener Discovery (MLD) در IPV6 یک پروتکل برای Multicasting است نه برای IGMP.
Multicasting چه تفاوتی با Anycast و Unicast دارد؟
– تفاوت Multicast و Anycast
Anycast، یک تکنولوژی است که به ارتباطات شبکه این امکان را میدهد که به چندین مکان بروند. شبکهی Anycast نیز مانند Multicast به یک گروه از سرورها اجازه میدهد که یک یا چند آدرس IP را به اشتراک بگذارند.
با این حال، به جای این که تمامی سرورها همهی ترافیک هدایت شده به آن آدرسهای IP را دریافت کنند، شبکه بر اساس مجموعهای از معیارهای از پیش تعیین شده، ترافیک را به یکی از آن سرورها هدایت میکند. در ضمن شبکههای Anycast در مقایسه با گروههای Multicast ، طیف وسیعتری از آدرسهای IP را میتوانند پشتیبانی کنند.
– تفاوت Multicast و Unicast
Unicast نحوهی عملکرد اینترنت را توصیف میکند. در شبکههای Unicast، هر دستگاه متصل به شبکه دارای آدرس مخصوص به خود میباشد. پیامهای هدایت شده به آدرس مورد نظر (در اینترنت آدرس IP) فقط به آن دستگاه میرود، نه مانند Multicasting به چندین دستگاه متعدد.