מתג (רשתות מחשבים)

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
רכיבי תקשורת במודל ה־OSI
מחשב (לקוח), טלפון IP Application
Presentation
Session
Transport
נתב BRouter Network
מתג, כרטיס רשת, גשר Data Link
מרכזת, משחזר, מודם Physical
מתג ביתי בעל 5 פורטים
מתג בתוך ארון תקשורת, כאשר חלק מהיציאות שלו מחוברות למנויים

מֶתֶג (בריבוי: מְתָגִים; באנגלית: Switch) הוא רכיב ברשת מחשבים המחבר בין צמתים שונים ברשת, בין אם הם מכשירי קצה (כגון מחשבים) ובין אם הם מרכיבי רשת בסיסיים (כגון רכזות). מתגים יכולים להכיל מספר כניסות מועט, במקרים של מתגים ביתיים, ועד למאות כניסות, במקרים של רשתות תקשורת גדולות.

המתג הקלאסי מבצע העברה של נתונים בין הציוד שמחובר לכניסות השונות שלו באופן סלקטיבי על-פי כתובות MAC של היעד המבוקש של כל חבילת נתונים שנשלחת דרכו. המתג הקלאסי מתפקד בשכבת הקישוריות של מודל ה־OSI ובשכבה הפיזית של מודל ה־TCP/IP ומחבר בין שני חלקים או יותר של הרשת, כאשר כל אחד מהם הוא מתחם התנגשות (collision domain) נפרד, אך הם מהווים מתחם שידור (Broadcast domain) אחד. ניתן לראות מתג כזה כגשר מרובה פורטים (multiport bridge), אם כי באופן היסטורי גשרים היו מבוססי תוכנה בעוד שמתגים היו מבוססי חומרה.

מתג הוא גם שם כללי לרכיב המיצר רשת גדולה מצרוף של צמתים או רשתות. בגלל שהרחבה של רשתות היא פעולה בסיסית ברשתות מקומיות, מכנים מתגים גם רכיבים שמעבירים חבילות בהתאם לכתובת ה-IP, כלומר נתבים. וזאת על אף שחבילה משויכת לשכבת הרשת של מודל ה־OSI. לעתים יכונו מתגים גם רכיבים הפועלים לפי מאפיינים של שכבות גבוהות יותר.

אופן הפעולה[עריכת קוד מקור | עריכה]

מתג "לומד" את כתובות הMAC של הרכיבים המחוברים לכל כניסה שלו על ידי קריאת נתוני הבקרה בחבילות המידע המגיעות אליו ושמירתן בטבלה פנימית הנקראת טבלת CAM (קיצור של Content Addressable Memory). כאשר חבילה מגיעה אל המתג הוא בודק מה היא כתובת ה־MAC אליה מיועדת החבילה: אם הכתובת מוכרת למתג בטבלת CAM הוא יעביר את החבילה אך ורק אל הכניסה שתוביל את החבילה ליעדה, אם הכתובת לא מוכרת המתג יעביר את החבילה לכל הכניסות פרט לזו שממנה היא התקבלה. מתג מאפשר למספר תעבורות שונות להתבצע דרכו במקביל, על ידי חיבור של כל שני קצוות המתקשרים ביניהם בנפרד (microsegmentation). שיטה זו מקטינה לאפס (כאשר לכל כניסה של המתג מחובר מחשב אחד) את מתחמי ההתנגשות (collision domain) ומגדילה את תפוקת הרשת - במיוחד ברשתות עמוסות.

ישנן שלוש שיטות בהן יכול לתפקד מתג להעברת נתונים -

  • Cut Through (קיצור דרך) - המתג קורא את הפתיח של חבילת הנתונים, וברגע שהוא יודע לאן עליו לשלוח את החבילה הוא מעביר אותה הלאה ללא בדיקה נוספת של תוכן החבילה. דרך זו היא המהירה ביותר, אך היא לא מאפשרת לוודא שחבילת הנתונים היא תקינה, ולכן הנתונים יעברו את כל הדרך שוב במקרה ונוצרה שגיאה בחבילת הנתונים.
  • Store and forward (שמור ושלח) - המתג יקרא את כל חבילת הנתונים, יוודא את תקינותה ורק אם היא תקינה יעביר אותה הלאה. שיטה זו איטית יותר מהקודמת מכיוון שהמתג מקבל את כל תוכן החבילה לפני שהוא מעביר אותה הלאה, אך היא מבטיחה שרק חבילות נתונים תקינות יעברו את המתג. שיטה זו דורשת שמירה זמנית (caching) של החבילות בזיכרון המתג.
  • error free cut-through (קיצור דרך ללא שגיאות) - כמו בטכנולוגיית cut through המתג קורא את הפתיח של חבילת הנתונים, וברגע שהוא יודע לאן עליו לשלוח את החבילה הוא מעביר אותה הלאה. אך בשיטה הזו המתג ממשיך לבדוק את התקשורת, ובאם הוא מגלה שגיאה בחבילת נתונים הוא מעביר את החיבור ממנו הגיעה החבילה למצב Store and forward ובודק כל חבילה שמגיעה מאותו המקור לפני שהוא מעביר אותה, כאשר מספר חבילות מאותו המקור הגיעו תקינות החיבור חוזר לפעול בשיטת Cut Through. שיטה זו מבטיחה את הטוב שבשני העולמות - כל עוד הרשת מתפקדת ללא שגיאות המתג מספק מהירות העברה מקסימלית, וברגע שמתגלה שגיאה הוא דואג לנפות חבילות נתונים שגויות.

מתגים הפכו בשנים האחרונות לעמודי התווך של הרשתות המקומיות בזכות מספר טכנולוגיות שהוכנסו בהם ובעיקר איגוד מספר מחשבים לרשת מקומית וירטואלית (VLAN), והגדרה של רשתות מקומיות וירטואליות על ידי יותר ממתג אחד.

טבלת CAM[עריכת קוד מקור | עריכה]

טבלת cam(קיצור של Content Addressable Memory) היא הטבלה שמחזיק המתג על מנת למפות כל כתובת MAC לפורט פיזי על המתג עצמו.

כתובת MAC פורט פיזי במתג
00-0E-A6-A7-63-F7 2
10-AD-CC-47-35-11 5
00-36-C2-00-8A-E3 5
- -
- -
- -

כל שורה בטבלה ממירה כתובת MAC לפורט פיזי. כאשר ברשת ה-LAN ישנם כמה מתגים, אפשר שכמה כתובות MAC יופנו לאותו הפורט (אליו מחובר מתג נוסף המחובר לאותם רכיבים). לכל רשומה בטבלה זמן חיים מוגבל שבסופו היא נמחקת. עדכון של שורה חדשה נעשה אוטומטית בשני אופנים:

  1. הודעה נכנסת - כאשר הודעה נכנסת מפורט פיזי מסוים, המתג משייך לו בטבלה את כתובת MAC המופיעה בהודעה.
  2. הודעה יוצאת - במידה והמתג צריך לשלוח הודעה לכתובת שאינו מכיר, הוא שולח הודעה כללית (Broadcast) לכל יתר הפורטים בה הוא מודיע שהוא מחפש את אותה כתובת MAC. הפורט שדרכו חוזרת ההודעה (הזדהות של תחנת היעד) משויך בטבלה לכתובת.

עדכון זמן החיים של רשומה בטבלה נעשה לכתובות המקור והיעד של כל הודעה מטופלת.

באופן הזה, טבלת CAM מאפשרת למתג שליחת מידע למחשב היעד בלבד ולא לרשת כולה כפי שעושה רכזת (hub). למעשה, הטבלה היא אחד ההבדלים המרכזיים בין מתג לרכזת. עקב כך, פגיעה בתקינות טבלת ה-CAM או לחלופין היכולת לשתול בה רשומות מזויפות, מהווה יעד לתקיפות שמטרתן להעביר תעבורה המיועדת למחשב אחד ברשת דרך מחשב אחר, ובכך לאפשר למחשב הנוסף "להסניף" אותה באמצעות רחרחן. דוגמה לתקיפה על טבלת CAM ניתן למצוא ב-MAC flooding, שיטה המנסה להגדיל את טבלת ה-CAM מעבר לגודל בו המתג מסוגל לתמוך ובכך גורמת לו לוותר על החיפוש בה, ולשלוח כל חבילה לכלל הפורטים ברשת מלבד הפורט השולח עצמו.

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