יום שני, 25 בינואר 2010

join-group Vs. static-group

הי,

גלעד סונגאוקר הפנה אותי לסוגיה מעניינת בנושא רישום IGMP בנתב. מסתבר שיש שתי פקודות שמגדירות לנתב להצטרף לקבוצת Multicast:

הפקודה הראשונה היא: ip igmp join-group.
הפקודה השנייה היא: ip igmp static-group.

שתי הפקודוץ גורמות לנתב להצטרף לקבוצה שהוגדרה אלא ההבדל הוא האם הנתב מהווה חלק מ receivers של הקבוצה (פקודת join-group) או שאינו חלק מהקבוצה אלא רק מבקש עבור מישהו אחר בסגמנט שצריך את המידע (פקודת static-group).

ונשאלת השאלה, שוב, מהו ההבדל העקרוני? מתי להשתמש בכל סוג?

התשובה היא שההבדל הוא האם הנתב "ירים" את חבילת ה Multicast ויבחן את התוכן שלה. במקרה בו נרצה שתהליך כזה יקרה, נשתמש בפקודה join-group. במקרה בו לא נרצה שתהליך זה יקרה, נשתמש ב static-group. חשוב לציין שיש לפקודת join-group משמעות קריטית לביצועי הנתב במקרה בו קצב ההודעות גבוה והנתב נדרש לבחון באמצעות ה CPU כל הודעה.

אם כן, מתי נשתמש בכל סוג?

כאשר נדרש שהנתב יבחן כל חבילה, לדוגמא ביישום Multicast-Helper (המרת Broadcast ל Multicast), נדרש שהנתב יהיה חבר בקבוצת ה Multicast המייצגת את שדר ה Broadcast וימיר אותו חזרה ל Broadcast. לכן, נהיה חייבים להשתמש ב join-group וגם נאלץ להשתמש בנתבים חזקים בתלות בקצב ההודעות.

לעומת זאת, אם קיימת תקלה לעמדת קצה ואינה מוציאה בקשת JOIN מסיבה כלשהי, ניתן לבקש מהנתב לחשוב שמישהו בסגמנט ביקש את הקבוצה על ידי הפקודה static-group וגם לא להעמיס את ה CPU של הנתב כי הוא אינו מתעניין בהודעות.

מצאתי סיכום יפה של הנושא עם הסבר מפורט בקישור הבא.

תהנו.

תגובה 1: