در شبکه وقتی یک دستگاه میخواد دادهای رو برای یک یا چند مقصد بفرسته، بسته بر اساس نوع آدرسدهی میتونه به شکل Unicast، Broadcast، Multicast یا Anycast ارسال بشه.
Unicast یعنی ارتباط یک به یک (1→1). فرستنده مشخصاً
یک مقصد رو انتخاب میکنه و بسته فقط برای همون مقصد ارسال میشه. مثلاً وقتی سیستم شما به IP یک Web Server وصل میشه، ترافیک بین کلاینت و همون سرور به صورت Unicast رد و بدل میشه. بیشتر ارتباطات معمول شبکه همین حالت رو دارن.
Broadcast
یعنی یک به همه (1→All). فرستنده بسته رو برای تمام دستگاههای یک Broadcast Domain ارسال میکنه و همه دستگاهها بسته رو دریافت میکنن، حتی اگر برای بعضیها کاربردی نداشته باشه. مثلاً در IPv4 آدرس
255.255.255.255 یک Local Broadcast محسوب میشه. یکی از نمونههای معروفش DHCP Discover هست؛ کلاینت هنوز IP نداره و برای پیدا کردن DHCP Server درخواست رو Broadcast میکنه. نکته مهم اینکه Router معمولاً Broadcast را از یک شبکه به شبکه دیگر Forward نمیکند.Multicast
یعنی یک به چند عضو مشخص (1→Many). اینجا فرستنده بسته رو برای یک گروه خاص میفرسته و فقط دستگاههایی که عضو اون Multicast Group هستن، ترافیک رو دریافت میکنن. مثلاً اگر 100 سیستم داخل شبکه باشن ولی فقط 10 سیستم عضو یک Multicast Group باشن، بسته برای همون 10 سیستم ارسال میشه، نه هر 100 دستگاه. پروتکلهایی مثل IGMP برای مدیریت عضویت کلاینتها در گروههای Multicast استفاده میشن.
Anycast
کمی متفاوتتره و بیشتر در طراحی سرویسهای توزیعشده دیده میشه. چند سرور میتونن یک آدرس مقصد مشترک داشته باشن و شبکه معمولاً بسته رو به یکی از نزدیکترین/مناسبترین مقصدها بر اساس Routing هدایت میکنه. مثلاً در زیرساخت DNS و CDN از Anycast استفاده میشه تا کاربر به یکی از نقاط سرویسدهنده که از نظر مسیر شبکه مناسبتره برسونه. بنابراین Anycast رو میشه به شکل یک به نزدیکترین/مناسبترین عضو (1→Nearest) در نظر گرفت.
خلاصه اگر بخوای خیلی راحت تو ذهنت بمونه:
Unicast → 1 → 1 یک فرستنده → یک مقصد
Broadcast → 1 → All یک فرستنده → همه
Multicast → 1 → Many یک فرستنده → اعضای یک گروه
Anycast → 1 → Nearest یک فرستنده → یکی از چند مقصد مشابه
تفاوت اصلی Multicast و Broadcast اینه که Broadcast به کل Broadcast Domain میره، ولی Multicast فقط به اعضای یک گروه مشخص میرسه؛ در نتیجه Multicast برای توزیع ترافیک به تعداد زیادی گیرنده میتونه بهینهتر باشه.
@ModernLan