Search

۱۳۹۰ اسفند ۲, سه‌شنبه

آشنایی با Multicast در شبکه


آشنایی با Multicast در شبکه
هدف از Multicast ارسال پيام تنها به گروهی از گیرندگان است که علاقه مشترکی در دریافت یک Data بخصوص دارند. پس جهت دریافت ترافيک مورد نظر عضو آن گروه ميشوند. Multicast کاربردهايی نظير IPTV، CCTV، Online Training – ELearning، Software Distribution، Video Conferencing و غيره دارد و در لايه دو و لايه سه قابل پياده سازی است.
در شبکه سه نوع ترافيک IP منتقل ميشود:
· Unicast بسته ای که از يک فرستنده به يک گيرنده ارسال ميشوند.
· Broadcast بسته ای که از يک فرستنده به همه ارسال (منتشر) ميشود. این نوع بسته ها، توسط روتر به بخشهای ديگر شبکه منتقل نميگردد مگر آنکه بدلیل خاصی آنرا برای اين کار تنظيم کنيم. نظیر درخواستهای DHCP
· Multicast بسته ای که از یک فرستنده به سمت یک گروه از گيرندگان ارسال ميشود.
Ethernet و FDDI ارسال Unicast، Multicast و Broadcast را پشتيبانی کردند و Token Ring نيز توسط Functional Address اين مزیت را پیاده سازی کرد. اگر کاربرد برای يک LAN باشد، استفاده از L2 Multicast (لايه دو) در شبکه LAN کافی بنظر میرسد، اما در جاييکه پراکندگی بين گيرنده ها در سطح چندین شبکه یا VLAN باشد، باید از Multicast Routing استفاده کنیم. هرچند که برای پیاده سازی Multicast درون یک شبکه لایه دو نیاز به برخی از Feature های لایه سه نظیم IGMP Querierداریم.
رفتار روتر با Multicast مشابه Broadcast است. روتر Multicast را در ورودی Interface و بين شبکه ها فیلتر میکند (بصورت پيش فرض).
گيرندگان Multicast ميتوانند در سطح شبکه پراکنده باشند. اگر نياز به ارتباط با بيرون باشد، بايد Multicast Routing تنظيم گردد.
برای Route کردن ترافيک Multicast بايد از Multicast Routing Protocol استفاده کنيم. پروتکل هايی نظير DVMRP، MOSPF، PIM-SM و يا PIM-DM.
آدرس های Multicast بصورت Class D و هميشه با 1110 شروع می شوند. صرف نظر از 4 بیت اولیه که همیشه یکسان است، 28 بيت باقيمانده آدرس گروه را تشکیل میدهند (از 224.0.0.0 تا 239.255.255.255) هر گروه نيازمند يک آدرس است. توجه داشته باشید که آدرس تنها به گروه اشاره میکند و بصورت Destination Address ظاهر میشود نه Source Address.
برای Map کردن اين آدرس لایه سه (IP) به لايه دو (Data-Link)، از ARP نميتوان استفاده کرد. اما روش آدرس دهی وجود دارد که بصورت خودکار براساس آدرس لایه 3 میتوان آدرس لایه 2 را بدست آورد. آدرسهای MAC با 0100.5E شروع میشوند و برای اين کار رزرو شدند. از 28 بيت IP گروه، 23 بيت به باقی OUI اضافه میگردد و فرم آدرس لایه دو را به ازای آدرس لایه سه بخود اختصاص میدهد. (آدرس لایه دو 48 بیتی است).


ترافيک Multicast
گيرنده يک Multicast گروهی از Host ها هستند که در گروه Join شده و شروع به دريافت اطلاعات ميکنند. به اين گروه Multicast Group ميگوييم. اعضا برای پاسخ يا درخواست از فرستنده، از Unicast استفاده میکنند. Multicast بصورت Connectionless و Best-Effort ارسال شده و از UDP استفاده ميکند.
آدرس Multicast
کلاس D برای آدرس دهی Multicast در نظر گرفته شده است:
غیرقابل Route   
224.0.0.255    
224.0.0.0        
Link-Local address
قابل Route        
238.255.255.255        
224.0.1.0        
Globally Scoped address

خصوصی درون شبکه      
239.255.255.255        
239.0.0.0        
Administratively Scope address

CLASS D          
239.255.255.255        
224.0.0.0        
Complete Multicast address


ردیف اول جدول بالا، به آدرس های Multicast که توسط Routing Protocol ها و تنها درون Broadcast Domain ارسال ميشود، اشاره ميکند. مثل آدرس All-Hosts که 224.0.0.1 است يا آدرس All-Routers که 224.0.0.2 است. اين رنج (224.0.0.0) تحت عنوان Fixed-group addresses تعريف شده اند.

رديف دوم جدول بنام آدرس های جهانی Multicast بین شبکه ها استفاده میشود. نه Local است نه Private. رديف سوم به آدرس های Private اشاره ميکند که بصورت درون شبکه ای، قابل استفاده بوده و نباید به بیرون Route شوند. رديف آخر جدول، به کل آدرس های Multicast که در برگیرنده ردیف های بالاتر میباشد، بعنوان Class D اشاره ميکند.

برای Multicasting در شبکه، گيرنده بايد عضو Multicast Group شود – اين کار توسط پروتکل IGMP صورت می گيرد. این پروتکل سه نسخه دارد، IGMPv3 نسخه جدیدتر IGMP است که بدليل کفايت عملکرد IGMPv2 و عدم نياز به خصوصيات پيچيده تر رش

IP Multicast

در شبكه هاي IP قديمي ،يك بسته مي توانست به يك دستگاه  ( Unicast ) يا به همه دستگاه ها ( Broadcast) فرستاده شود. يك انتقال واحد خاص براي يك گروه از دستگاه ها ممكن نبود. بهرحال ، در طي چند سال گذشته ، مجموعه جديدي از برنامه هاي كاربردي ( application  ) ها پديدار شده بود.اين application  ها براي فراهم كردن ارتباطي موثر بين گروه هايي از اين دستگاه ها از انتقالات Multicast  استفاده مي كنند. داده به يك IP آدرس Multicast  واحد انتقال داده مي شود و بوسيله هر دستگاهي كه نيازمند دريافت اين انتقال است ، دريافت مي گردد.

     1. آدرس دهي
Multicast

دستگاه هاي
Multicast از IP آدرس هاي كلاس D  براي برقراري ارتباط استفاده مي كنند. اين آدرس ها در رنج  224.0.0.0 تا 239.255.255.255 قرار گرفته اند. براي هر آدرس Multicast ، يك مجموعه از صفر ميزبان يا بيشتر كه براي بسته هاي انتقال يافته به اين آدرس پذيرفته مي شوند ، موجود است. اين مجموعه از دستگاه ها يك گروه ميزبان ناميده مي شوند.يك ميزبان كه بسته ها را به يك گروه خاص مي فرستد ، نيازي نيست كه يك عضو از اين گروه باشد. اين ميزبان حتي ممكن است كه اعضاي معمولي كه در اين گروه حضور دارند را نشناسد.دو نوع گروه ميزبان وجود دارد:

   
ثابت (دائمي) :
 
application  هايي كه بخشي از اين گروه هستند ،‌داراي IP آدرس هايي مي باشند كه بطور دائمي توسط IANA تخصيص مي يابد.عضويت در اين كروه ميزبان دائمي نيست، يك ميزبان در صورت نياز مي تواند به گروه بپيوندد يا گروه را ترك كند. يك گروه دائمي حتي اگر هيچ عضوي هم نداشته باشد ، موجود باقي     مي ماند. ليستي از  IP آدرس هاي  تخصيص يافته به گروه هاي ميزبان دائمي در RFC  3232 موجود است. اين آدرس هاي رزرو شده عبارتند از :
224.0.0.0  :  آدرس هاي پايه رزرو شده
224.0.0.1 : تمام سيستم ها ذر اين زير شبكه
224.0.0.2 : تمام روتر ها در اين زير شبكه
224.0.0.9 : تمام روتر هاي RIP2
ساير آدرس هاي نمونه شامل آن هايي است كه براي OSPF رزرو شده اند.اين آدرس ها عبارتند از :
224.0.0.5   : تمام روتر هاي OSPF
224.0.0.6 : تمام روتر هاي تخصيص داده شده به OSPF.
بعلاوه ، IGMPv3  ( تعريف شده در RFC  3376 ) آدرس زير را رزرو مي كند :
224.0.0.22 : روتر هاي  Multicast مستعد.

يك
application  مي تواند براي بدست آوردن IP آدرس تخصيص يافته به يك گروه ميزبان دائمي با استفاده از دامنه mcast.net از DNS استفاده كند .اين مي تواند به تعيين يك گروه دائمي از يك آدرس با استفاده از يك اشاره كر پرسش و پاسخ در حوزه  224. in-addr.arpa بپردازد.

   
غير دائمي :
 هر گروهي كه دائمي نباشد غير دائمي است. اين گروه براي جايگزيني پويا در صورت نياز در دسترس قرار مي گيرد. گروه هاي غير دائمي زماني كه تعداد اعضايشان صفر شود ، يعني ديگر عضوي نداشته باشد ، از بين خواهد رفت.

    1-1 :
Multicasting  روي يك شبكه فيزيكي واحد
اين فرآيند آسان است. فرآين ارسال ، يك
IP آدرس Multicast  را براي مقصذد تعيين مي كند. برنامه راه انداز اين IP آدرس را به آدرس اترنت متناظر با آن تبديل مي كند و بسته را به آن مقصد ارسال مي نمايد. فرآيندي كه در مقصد انجام مي گيرد ، به بر نامه هاي راه اندلز شبكه آن اطلاع مي دهد كه خواهان دريافت دياگرام هاي معين شده براي يك آدرس Multicast  معين  است. اين برنامه راه انداز دريافت بسته ها را براي اين آدرس ممكن مي سازد.

در مقايسه با ارسال ترافيك
IP Unicast استاندارد ، نگاشت ميان IP آدرس Multicast  مقصد و آدرس     data-link توسط ARP انجام نمي شود. در عوض يك نگاشت ايستا تعريف شده است. در يك شبكه اترنت ، اگر ترتيب هشتايي بالاي آدرس data-link ، 0X'01' باشد ، Multicasting را پشتيباني مي كند. IANA ، محدوده 0X'01005E000000'   تا  0X'01005E7FFFFF را براي آدرس هاي Multicast رزرو كرد ه است. اين محدوده ، 23 بيت قابل استفاده را فراهم مي كند. IP  آدرس Multicast  ، 32 بيتي توسط قرار دادن 23 بيت پاييني آدرس كلاس D درون 23 بيت پاييني بلوك آدرس رزرو شده IANA به يك آدرس اترنت نگاشته مي شود. شكل 1-6 نگاشت IP آدرس Multicast  را به آدرس IP متناظرش نشان مي دهد.
 


بخاطر اينكه 5 بيت بالايي از گروه
Multicast ، IP ناديده گرفته شده است ، 32 گروه Multicast  مختلف به آدرس اترنت يكساني نگاشته شده اند. بدليل يكتا نبودن اين نگاشت ، فيلتر كردن توسط يك برنامه راه انداز نياز است.اين كار بوسيله چك كردن آدرس مقصد قرار گرفته در سرآيند IP قبل از ارسال بسته به لايه IP  انجام      مي شود . اين كار تضمين مي كند كه فرآيند دريافت ، ديتاگرام هاي نادرستي را دريافت نمي كند. در اين جا دو دليل اضافي براي اينكه چرا فيلتر كردن ممكن است مورد نياز باشد ، وجود دارد :
بعضي از مبدل هاي شبكه ( سازگار كنندگان شبكه )به تعداد محدودي از آدرس هاي Multicast مختلف محدود مي شوند. و هنگامي كه از اين محدوده تجاوز كند ، آن ها تمام بسته هاي Multicast را دريافت مي كنند.
فيلتر ها در بعضي از مبدل هاي شبكه به استفاده از مقادير جدول hash براي يك آدرس Multicast  درست مي پردازند . اگر دو آدرس با مقدار hash يكسان در يك زمان مورد استفاده قرار گيرند ، اين فيلتر ممكن است بسته هاي اضافي را عبور دهد.
به وجود اين نيازمندي ها براي فيلتر كردن نرم افزاري ، نقل و انتقالات Multicast هنوز باعث كم شدن عدم ظرفيت براي ميزبان هايي مي شود كه در يك نشست خاص شركت ندارند. بويژه ، ميزبان هايي كه در يك گروه ميزباني شركت ندارند ، براي آدرس Multicast پذيرفته نمي شوند. در اين وضعيت ، بسته هاي Multicast  بوسيله سخت افزار واسط شبكه لايه پايين فيلتر مي شوند.


2-1 :
Multicasting بين قسمت هاي مختلف شبكه
ترافيك
Multicast به يك شبكه فيزيكي واحد محدود نمي شود. بهر حال ، هنگام Multicasting  بين شبكه ها ، خطرات مهمي وجود دارند. اگر محيطي حاوي چندين روتر باشد ، اقدامات محتاطانه خاصي براي تضمين اينكه بسته هاي Multicast بطور دائمي در حلقه شبكه قرار نمي گيرند ، بايد انجام شود. ايجاد يك حلقه مسيريابي Multicast آسان و ساده است. و براي مديريت آن ، پروتكل هاي مسيريابي Multicast به منظور تحويل بسته ها زماني كه به طور همزمان از حلقه هاي مسيريابي و نقل و انتقالات اضافي اجتناب مي كند ، توسعه يافته اند.

دو نيازمندي براي ارسال داده ها بصورت
Multicast از ميان شبكه هاي چندگانه وجود دارد :
تعين شركت كنندگان (اعضا) Multicast : مكانيزمي براي تعيين اينكه ، آيا يك ديتاگرام Multicast  نياز دارد كه بر روي يك شبكه خاص ارسال گردد يا نه . اين مكانيزم در RFC  3376 ، پروتكل مديريت گروهي اينترنت (IGMP) نسخه 3 ، تعريف شده است.
تعيين حوزه Multicast : مكانيزمي براي تعيين حوزه يك انتقال. بر خلاف آدرس هاي Unicast ، آدرس هاي Multicast مي توانند در تمام اينترنت گسترش يابند.
فيلد TTL در ديتاگرام Multicast ميتواند به منظور تعيين حوزه يك انتقال مورد استفاده قرار كيرد. مانند ساير ديتاگرام ها ،‌ هر ديتاگرام Multicast داراي يك فيلد TTL مي باشد. (TTL=Time To Live )مقدار قرار گرفته در اين فيلد در هر hop كاهش مي يابد. وقتي كه يك ميزبان يا روتر Multicast ، ديتاگرامي را دريافت    مي كند ،‌ پردازش بسته به هر دو مقدار TTL و IP آدرس مقصد بستگي دارد :
TTL=0  : ديتاگرام دريافتي با مقدار TTL صفر به ميزبان مبدا محدود مي شود.
TTL=1 : ديتاگرام دريافتي با مقدار يك به تمام ميزبان هاي زير شبكه اي كه عضو اين گروه هستند ، مي رسد. روترهاي Multicast اين مقدار را به صفر كاهش مي دهند. بهر حال ، بر خلاف ديتاگرام هاي Unicast ، هيچ پيام خطاي ICMP Time Exceeded به ميزبان مبدا برگردانده نمي شود. انقضاي ديتاگرام يك رويداد استاندارد در محيط هاي Multicast مي باشد.
TTL=2 (يا بيشتر ): ديتاگرام Multicast اي با اين مقدار TTL به تمام ميزبان هاي اين زير شبكه كه عضو اين گروه هستند ، مي رسد.
اين عمل انجام شده بوسيله روتر هاي Multicast به آدرس ويژه گروه بستگي دارد:
224.0.0.0 - 224.0.0.255 : اين محدوده از آدرس ها براي application  هاي Multicast تك hop اي معني دار مي باشد. روتر هاي Multicast ديتاگرام هايي را كه آدرس هاي مقصدشان در اين محدوده قرار دارند را ارسال نخواهند كرد.

با وجود اينكه روتر هاي
Multicast ديتاگرام هايي با اين رنج آدرس را ارسال نخواهند كرد، يك ميزبان بايد عضويت در يك گروه را مطابق با اين رنج گزارش كند. اين گزارش ، براي اطلاع ساير ميزبان ها ي زير شبكه از اينكه ، ميزبان گزارش دهنده يك عضو از اين گروه مي باشد ، مورد استفاده قرار مي گيرد.
سايرين : ديتاگرام هايي با ساير آدرس هاي مقصد معتبر كلاس D ، بصورت نرمال بوسيله روتر Multicast ارسال مي گردند. مقدار TTL در هر hop يكي كم مي شود.
اين به يك ميزبان اجازه مي دهد تا يك expanding ring search را براي قرار دادن نزديك ترين سرور كه به يك آدرس Multicast خاص گوش مي دهد ، پياده سازي نمايد. اين ميزبان ديتاگرامي با مقدار TTL يك را در زير شبكه اي يكسان ارسال مي كند و منتظر پاسخ مي ماند. اگر هيچ پاسخي دريافت نشود ، اين ميزبان ديتاگرامي با اين مقدار TTL را دوباره ارسال        مي كند و اگر باز هم هيچ پاسخي دريافت نشد ،‌ ميزبان بطور سيستماتيك افزايش مقدار TTL را تا زماني كه نزديك ترين سرور پيدا شود ،‌ادامه مي دهد .

هیچ نظری موجود نیست: