רב-נתיב

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
Gnome-edit-clear.svg ערך זה זקוק לעריכה: ייתכן שהערך סובל מפגמים טכניים כגון מיעוט קישורים פנימיים, סגנון טעון שיפור או צורך בהגהה, או שיש לעצב אותו.
אתם מוזמנים לסייע ולתקן את הבעיות, אך אנא אל תורידו את ההודעה כל עוד לא תוקן הדף. אם אתם סבורים כי אין בדף בעיה, ניתן לציין זאת בדף השיחה.

סכמת ניתוב

Cast.svg

חד נתיב

Unicast.svg

רחב-נתיב

Broadcast.svg

רב-נתיב

Multicast.svg

כל-נתיב

Anycast.svg

גאו-נתיב

Geocast.svg


רב-נתיב (באנגלית: Multicast) היא פעולת ניתוב יחידה של נתונים או הודעה מאלמנט מקור אל קבוצת אלמנטים של תקשורת באופן מקבילי כגון: מחשבים, מרכזיות, מכשירים סלולרים, נתבים, התקני תקשורת וכו'. פעולה זו גם נודעת בשם מולטיקאסט. קיימות דרכים שונות להעברת נתונים מאלמנט המקור אל אלמנט היעד (כמודגם בטבלה). בשיטת הרב-נתיב נתונים עוברים רק אל אלמנטים ייחודיים מתוך כלל האלמנטים, בניגוד ל-Unicast בו הנתונים עוברים ממקור יחיד ליעד יחיד. ברשתות IPv4 כתובות ה-IP שמיועדות לקבוצות ה-Multicast הן כתובות ממחלקה D.

פרטי מימוש[עריכת קוד מקור | עריכה]

  • כאשר מדברים על עץ multicast מתייחסים לנתבים של ה-subnets ולא לכל host בנפרד ונתייחס אליהם בשם Multicast router.
  • Host מודיע ל-multicast router שלו על רצונו להצטרף\לעזוב קבוצה על ידי פרוטוקול IGMP (פירוט בהמשך).
  • בדרך כלל נתב ה Unicast של ה-host הוא גם נתב ה-multicast שלו.
  • כדי להיות חלק מהקבוצה על ה-host ראשית להודיע לנתב ה-multicast שהוא מעוניין להצטרף לקבוצה, לאחר מכן עליו להודיע לשכבת ה-IP שהוא מעוניין לקבל חבילות נתונים בעלות הכתובת של הקבוצה G, ולבסוף עליו להודיע לחבילת ה-MAC שהוא מעוניין לקבל חבילות עם ה-IP של הקבוצה.
  • מהו ה-MAC (כתובת פיזית) של כתובת היעד כאשר שולחים חבילת multicast? לא broadcast כי אז כל ה-host-ים סתם יעבירו את ההודעה לשכבת ה-IP. לכן מגדירים כתובת MAC עבור multicast.
  • הגדרת כתובת MAC עבור הודעות Multicast בעייתית מאחר שמרחב כתובות ה-MAC מצומצם ניתן על ידי ה-IEEE ולכן במקום כתובת MAC אחת לכל קבוצה נצטרך ליצור כתובת MAC אחת לכל 32 קבוצות.
  • כרטיסי רשת בימינו באים בשתי גרסאות – האחת מקבלת את כל ה-MAC של ה-Multicast והשנייה מקבלת מספר מוגבל של קבוצות MAC.

Internet Group Management Protocol[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – Internet Group Management Protocol
  • כאשר host מעוניין להצטרף לקבוצת multicast הוא שולח הודעת IGMP Report עם כתובת IP יעד ככתובת הקבוצה.
  • בכל פרק זמן נתב ה multicast שולח הודעת IGMP Report ל host-ים ומבקש שיודיעו לו אם הם עדיין מעוניינים להשתייך לקבוצה.
  • בגרסה הראשונה של IGMP אם host מעוניין לעזוב הוא פשוט לא מגיב לנתב כאשר הוא מבקש לדעת מי עדיין רוצה להיות משויך לקבוצה. בגרסה השנייה של IGMP קיימת הודעה מפורשת על רצון host לעזוב שנשלחת ל 224.0.0.2 שזו כתובת כל נתבי ה Multicast וכתוצאה מכך הנתב שולח הודעת בדיקה האם עדיין קיים מישהו שמעוניין לקבל הודעות?
  • בגרסה השלישית של IGMP צומת host יכולה לבקש קבלת הודעות Multicast ממקור

ספציפי (source, Group).

בניית עץ יעיל[עריכת קוד מקור | עריכה]

עבור Unicast המסלול הטוב ביותר הוא המסלול הקצר ביותר אך עבור עץ Multicast לא כך הדבר מאחר שיש להתייחס לכלל גודל העץ ולא לכל מסלול בנפרד.

  • עץ שמכיל את כל המסלולים הקצרים הקרא "shortest path tree" ועץ מינימאלי שמגיע לכל הצמתים נקרא Steiner tree.
  • על כל פנים בניית עץ Steiner הינה NP קשה ולא מגיבה טוב לשינויים בטופולוגיה, על כן לרוב בונים את עץ המסלולים הקצרים.
  • עץ המסלולים הקצרים לא יקר מאוד בהשוואה לעץ Steiner.
  • דרכים לצמצם את מספר העצים שקיימים עבור כל קבוצה בוחרים נקודה בשם RP(rendezvous point) ובכך מצמצמים את מספר העצים.

Multicast Routing Protocol[עריכת קוד מקור | עריכה]

  • MOSPF עובד רק ברשתות בעלות Link-state.
  • PIM עובד בשני הסוגים – הן ב distance vector והן ב link-state.

Multicast OSFG (M-OSPF)[עריכת קוד מקור | עריכה]

  • למעשה פרוטוקול זה הינו הרחבה של OSPF.
  • הנתבים שולחים מידע נוסף ב LSA.
  • המידע הנוסף הוא "איזה נתב מעוניין להקשיב לאילו קבוצות".
  • כאשר נתב מקבל הודעת IGMP מ host ששייך אליו הוא בודק האם הוא כבר שייך לקבוצה ובמידה ולא הוא מפרסם הודעת LSA שמכילה מידע לגבי רצונו של הנתב להיות שייך לקבוצה.
  • כמובן שעץ ה Multicast נבנה לכל קבוצה בנפרד.
  • כמו כן ברור שהעץ צריך להבנות עבור כל מקור בנפרד(נעשה on-demand וגם נשמר במטמון).
  • אם משתמשים בפרוטוקול ניתוב פנימי של RIP אזי ניתן להשתמש ב multicast של DVMRP.

Protocol Independent Multicast (PIM)[עריכת קוד מקור | עריכה]

  • מתחלק לשני תתי פרוטוקולים, האחד עבור קבוצות בעלות מעט משתתפים והשנייה עבור קבוצות שכמעט כולם משתתפים – ניתן להבדיל בין סוגי הקבוצות לפי כתובת ה IP שלהן.

Sparse mode[עריכת קוד מקור | עריכה]

  • משתמש בנתב מרכזי בשם rendezvous point(RP) שמתאם את ה Multicast.
  • כאשר נתב מעוניין להצטרף לקבוצת Multicast הוא שולח הודעת JOIN ל RP וכתוצאה מכך כל נתב בדרך ל RP מבין שמעתה והלאה הוא יצטרך להעביר הודעות Multicast של הקבוצה הספציפית אל הנתב ששלח את ה JOIN.
  • אם הודעת JOIN נשלחת ובדרך ל RP עוברת בנתב שכבר חלק מעץ ה Multicast אזי שם היא תעצר ובסה"כ יתווסף ענף לעץ.
  • כאשר מקור רוצה לשלוח הודעה בעץ הוא שולח אותה לנתב שלו בהודעת IP , הנתב שלו עוטף אותה בעוד IP ושולח אותה ל RP , משם ה RP פותח את המעטפת של הנתב של המקור ושולח אותה לכל העץ.

לאחר מכן(במידה והמקור לא היה כבר חלק מהעץ) ה RP שולח הודעה למקור לגבי הצטרפות לקבוצה וכך כל הנתבים בדרך ידעו גם להעביר לו הודעה.

  • ניתן ליצור חיבור ישיר(ולא דרך ה RP) על ידי שליחת הודעת JOIN מנתב לנתב דרך המסלול הקצר ביותר ובכך יבנה עץ Multicast מהכיוון הקצר ביותר(שימושי כאשר יש תשדורת גבוהה מהמקור הספציפי)(לאחר זה לא ישלחו הודעות מה RP אל הנתב המבקש אלא רק דרך המקור השיר).
  • הודעת ה JOIN שנשלחת (ל RP או לנתב ספציפי) צריכה להישלח באופן קבוע כדי לרענן את העץ.
  • אם נתב עלה מעוניין לצאת מהקבוצה(כי אין יותר host שמעוניינים) הוא ישלח הודעת PRUNE לנתב ה upstream שלו, והוא בתורו יבדוק אם יש לו צורך גם לא להיות חלק מהקבוצה.
  • במידה ויש שינוי טופולוגיה והמסלול ל RP משתנה יש לשלוח JOIN ל RP דרך המסלול החדש ולשלוח PRUNE לנתב הישן.

Source Specific Multicast (PIM-SSM):

  • זהו שינוי של ה PIM-SM.
  • הודעת JOIN שתשלח לא תהיה (*,G) אלא (Source, G) כלומר שנרצה להצטרף לקבוצה נציין גם מיהו המקור המבוקש(כמובן שעל המצטרף להכיר מראש את IP השולח).
  • אין RP מאחר שהנתבים בונים את עץ המקור של הקבוצה שהוא עץ מסלולים קצרים!
  • פרוטוקול זה מניח הנתבים וה-host מריצים IGMP 3.
  • פרוטוקול זה פותר את בעיית חוסר הכתובות ל Multicast מאחר שכעת לכל (Source, G) יש מזהה של 64 סיביות שהוא source_ip | multicast_ip.(למעשה לא מסתכלים על כתובת ה multicast ip)
  • גם פה כאשר עוד חבר רוצה להצטרף לרשת העץ שלו ישתלב עם העץ הקיים.

Dense mode[עריכת קוד מקור | עריכה]

  • למעשה פרוטוקול זה הפוך מה sparse mode בכך ש-host צריך להודיע לנתב שהוא לא מעוניין להיות שייך ורק כאשר כולם מודיעים שהם לא רוצים להיות שייכים הנתב יוצא.
  • בניגוד ל DVRPM נתב שולח הודעות לכל שכיניו.
  • משתמשים ב "flood-and-prune" שבו נתב בוחר מאיזה נתב הוא מעוניין לקבל חבילות ומודיע לכל השאר על ידי prune שלא ישלחו לו חבילות.

דוגמה[עריכת קוד מקור | עריכה]

רב-נתיב
  • הנקודה האדומה מציינת את אלמנט המקור.
  • הנקודות הירוקות מציינות את אלמנטי היעד אליהם יגיע המידע.
  • הנקודות הצהובות מציינות את האלמנטים שאינם היעד ולכן המידע לא יגיע אליהם.

פעולות ניתוב נוספות[עריכת קוד מקור | עריכה]

Postscript-viewer-shaded.png ערך מורחב – שיטות הפצה בתקשורת נתונים
  • כול-נתיב - שיטת ניתוב בה אלמנט התקשורת הקרוב ביותר טופולוגית יקבל את המידע.
  • חד-נתיב - שיטת ניתוב בה רק אלמנט תקשורת אחד נבחר יקבל את המידע.
  • רחב-נתיב - שיטת ניתוב בה כל אלמנטי התקשורת הקיימים יקבלו את המידע.
  • גאו-נתיב - שיטת ניתוב בה רק קבוצה אחת נבחרת של אלמנטי התקשורת יקבלו את המידע.
Telecom-icon.jpg ערך זה הוא קצרמר בנושא תקשורת. אתם מוזמנים לתרום לוויקיפדיה ולהרחיב אותו.