1.4 שכבת הרשת הרצאה
מבוא¶
- עד כה דיברנו על תקשורת בין שני מחשבים שמחוברים ישירות בכבל (בשכבת הקו). מה קורה אם נרצה לתקשר עם מחשב מרוחק ואנחנו לא מחוברים אליו ישירות? התהליך הזה נקרא ניתוב, ונדבר עליו בהרחבה בהרצאה זו.
- שכבת הרשת מאפשרת לנו לגלוש ולתקשר עם מחשבים בכל העולם, גם אם איננו מחוברים אליהם ישירות. הכלים לכך הם ניתוב.
- מטרת השכבה היא להעביר פקטות בין מחשבים מרוחקים, שאינם מחוברים ישירות, ובפועל לנתב את הפקטות ברשת.

- דמיינו שיש לנו שתי רשתות מחשבים, כפי שמוצג בתמונה, והן אינן מחוברות ישירות. קיימים רכיבים בדרך (עליהם נלמד בהמשך). אם נרצה שמחשב PC1 יוכל לתקשר עם מחשב PC8, בדיוק כאן נכנסת לתמונה שכבת הרשת. פעולתה נקראת ניתוב.
- ההבדל בין מיתוג לניתוב: מיתוג הוא פעולה בשכבת הקו שמחברת מחשבים שמחוברים ישירות ביניהם (לדוגמה, רכיב ה-switch שמחבר רכיבים אלו). ניתוב, מצד שני, מתבצע כאשר המחשבים אינם מחוברים ישירות, כמו בדוגמה של PC1 ו-PC8.
כתובות IP¶
מבוא לכתובת IP¶
- כתובת IP היא כתובת שכל רכיב מקבל ברשת, ששכבת הרשת משתמשת כדי להעביר פקטות ממחשב למחשב. (נדבר בהמשך כיצד חלוקת כתובות IP עוזרות לנו כדי לנתב פאקטות)
- כתובת הIP היא כתובת לוגית, היא למעשה כתובת שמשתנה כל הזמן, לעומת כתובת MAC (כתובת פיזית) שלא ניתן לשנות, כי הכתובת צרובה על הכרטיס רשת של הרכיב.
כתובות IP הן כתובות משתנות, כך שהIP של המחשב שלנו משתנה כל הזמן. - כאשר מכשיר מקבל כתובת IP, היא יכולה להשתנות מהמון סיבות, למשל:
- הטלפון שלנו יקבל כתובת IP שונה, כל פעם שהוא מתחבר לרשת WIFI אחרת.
- אחרי שאנחנו מקבלים כתובת IP למחשב שלנו למשל, אנחנו יכולים לשנות אותה בהגדרות.
- בגלל שהמון רשתות מחשבים מכשירים מתחברים ומתנתקים מהרשת במהירות, קיימים מנגונים שאחראים להביא למכשירים החדשים שמצטרפים כתובת IP ברשת, וגם למחוק כתובות IP ממכשירים שמתנתקים.
מבנה כתובת IP¶
-
כתובת IP בנויה מ4 בתים, (בית הוא 8 ביטים, כך שהמספר המקסימלי שאפשר ליצג עם בית הוא 256) אז כל בית בכתובת נע בין הערך 0 עד 255. כך שכתובות IP נעים בין הערכים 0.0.0.0 ל- 255.255.255.255
- דוגמה לכתובת: 143.214.13.43
-
בדומה לכתובת פיזית (כתובת mac), מחלקים את כתובת הIP לשני חלקים, הnetwork id ו- host id. כאשר הnetwork id הוא החלק בכתובת שמייצג לאיזה רשת אנחנו מחוברים, והhost id מציין בדיוק את המחשב שלנו ברשת.
- לעומת כתובות פיזיות שהחלוקה היא ברורה (3 בתים לmanuf ו3 בתים לid) בip החלוקה הזו לא קבועה, כך שברשת אחת יכול להיות שהnetwork id יהיה בית אחד, וברשת אחרת הnetwork id יהיה 20 ביטים. ערך זה נקרא "מסיכת הרשת" - subnet mask. הsubnet mask הוא מספר שמייצג את כמות הביטים שמייצגים בכתובת הip את הnetwork id, ושאר הביטים מייצגים את הhost id. נהוג לציין את הsubnet mask קרוב לip, למשל: 192.168.0.1/24 פה הכתובת ip היא 192.168.0.1 והsubnet mask הוא 24.
-
דוגמה: נפרק את הכתובת הבאה: 192.168.0.1/24, הsubnet mask מעיד על כך ש24 ביטים (שזה 3 בתים) הראשונים בכתובת הם מיצגים את הnetwork id, את הרשת: "192.168.0" ושאר הביטים (בית 1) מייצג את הhost id, שזה המחשב ברשת. (1)
-
סיכום: אז נניח ויש לנו רשת מחשבים עם הsubnet הבא: 192.168.0.0/24, זה אומר שיכולים להיות בערך 255 מחשבים ברשת, כי רק הבית האחרון נשאר ליצוג הhost id (אמרנו קודם שהערך המקסימלי שבית אחד מייצג הוא 256).
ברשת הזו, כל מחשב יקבל IP משלו שתואם את הsubnet, דוגמה: 192.168.0.1, 192.168.0.2, 192.168.0.3 וכו עד 192.168.0.255.
אם נרצה לבנות רשת שכמות המכשירים המחוברים עלולה להיות יותר מבערך 255, עדיף לנו להגדיל את הsubnet של הרשת: ללמשל 192.168.0.0/16 כך שהפעם יהיו 2 בתים שיוקצו לhost id וכמות המכשירים (הhost-ים) תגדל ל2 בחזקת 16, שזה בערך 65000 מכשירים שונים.
כתובות IP מיוחדות¶
קיימות כתובות IP מיוחדות, שכדאי שנכיר אותם:
כתובת Broadcast¶
כתובת ה-Broadcast היא כתובת מיוחדת שמאפשרת שליחה של פקטות לכל הרכיבים ברשת. היא נועדה להעביר את המידע לכל מחשב או מכשיר הנמצא בתוך הרשת, ללא הבחנה מי הוא היעד הספציפי. הכתובת המוכרת ביותר לביצוע Broadcast היא: 255.255.255.255. כתובת זו משמשת למשל כאשר מחשב או שרת רוצים לשלוח מידע לכל המחשבים ברשת המקומית (LAN) מבלי לדעת את ה-IP של כל אחד מהם.
כתובת Loopback¶
- כתובת הloopback: לפעמים נרצה שהמחשב שלנו יוכל לשלוח פאקטות לעצמו, דמיינו שני תוכנות שרצות על המחשב שלכם שרוצות לתקשר אחד עם השניי באמצעות פקטות. (זה מאוד נפוץ) ובדיוק בשביל זה הומצא כתובת הloopback, כתובת שכאשר אנחנו שולחים לה פקטה, היא לא באמת מוציאה פקטה מהכרטיס רשת, ופשוט שולחת את הפקטה לתוכנות שרצות במחשב (בעתיד נראה דוגמאות לכך, אז אל תדאגו אם זה פחות מובן) - הsubnet השמור הוא 127.0.0.0/8. זכרו שאיי אפשר להשתמש בטווח כתובות הזה למטרות תקשורת בין מחשבים.
כתובות IP שמורות לרשתות פנימיות (Private IPs)¶
ישנם אזורים שלמים של כתובות IP שמורים לשימוש ברשתות פרטיות בלבד, ולא מיועדים לתקשורת באינטרנט. הכתובות הללו נחשבות לחיצוניות ונכנסות לניהול אופרציות פנימיות בלבד. שלושת תחום הכתובות האלו הם:
10.0.0.0/8- הכתובת הזו מקצה כתובות IP מרחב של 16,777,216 כתובות IP.172.16.0.0/12- נועדה עבור רשתות עם פחות מחשבים, מכילה 1,048,576 כתובות.192.168.0.0/16- מוגבלת עד 65,536 כתובות IP, נפוצה ביותר ברשתות ביתיות ועסקיות.
שימוש בכתובות IP אלו מאפשר למנהלי רשת לבנות רשתות פנימיות מבלי להוציא כתובות IP ציבוריות מתוך המאגר הקיים.
- נרחיב בהמשך למה יש הפרדה בין כתובות IP לשימוש רשתות פנימיות וכתובות IP לשימוש "האינטרנט"
- כך יראה הציור שלנו עם כתובות IP:

- שימו לב שיש לנו שני רשתות נפרדות, אחת עם subnet של 192.168.0.0/24 ושנייה עם subnet של 10.0.0.0/24.
ניתוב¶
נענה על השאלות המרכזיות שקשורות לניתוב פקטות:
איך אנחנו מנתבים פקטות בין רשתות שונות?¶
כיצד מחשב שכתובתו 10.0.0.4 יכול לדבר עם מחשב שכתובתו 192.168.0.2? על מנת שהפקטה תעבור בהצלחה מה-PC1 (10.0.0.4) ל-PC2 (192.168.0.2), על הפקטה לעבור דרך רכיבי ניתוב שונים, והדרך שלה תיראה כך:

המסלול הכחול הוא המסלול של הפקטה, וחשוב לציין כי על מנת שהפקטה תגיע בהצלחה, שני תנאים חייבים להתממש:
- כתובת ה-IP מקור וכתובת ה-IP יעד נשארות קבועות לאורך כל הדרך. כל רכיב בדרך (נתב או מחשב) צריך לדעת את כתובת ה-IP של המחשב השולח (source IP) וכתובת ה-IP של המחשב היעד (destination IP) כדי להעביר את הפקטה בצורה נכונה.
- ה-MAC address משתנה בכל תחנה בדרך. כל רכיב בדרך (כגון נתב) משנה את כתובת ה-MAC של הפקטה כך שיתאימו לו. ה-MAC address של כל רכיב בדרך ישתנה בהתאם לכל "קפיצה" של הפקטה בנתב, אך כתובת ה-IP נשארת קבועה לכל אורך הדרך.
רכיבי הניתוב¶
המרכיב העיקרי בתהליך ניתוב הפקטות הוא הראוטר (Router). הראוטר הוא רכיב רשת המפנה פקטות לרשתות אחרות, וכדי להבין איך הוא עושה זאת, נבחן את פעולתו בצורה מעמיקה.
מהו נתב?¶
נתב (Router) הוא רכיב המפנה פקטות בין רשתות שונות. כל נתב יכול להיות מחובר ליותר מרשת אחת. עבור כל פקטה שהוא מקבל, הנתב בודק את כתובת ה-IP שלה ומעביר אותה אל התחנה הבאה בהתאם לחוקי טבלת הניתוב שלו.

בדרך כלל, כל נתב מחובר לשתי או יותר רשתות באמצעות כרטיסי רשת (Interfaces). לכל כרטיס רשת יש כתובת IP משלו, כך שכל רשת מחוברת אליו על פי הכתובת שלה.
טבלת ניתוב¶
הנתב משתמש בטבלת ניתוב כדי לקבוע לאיזה "תחנה הבאה" (Next Hop) עליו לשלוח את הפקטה. טבלת הניתוב כוללת את הכתובות של כל הרשתות שזמינות לנתב, והנתב בוחר את הדרך הכי טובה להעביר את הפקטה.
בכדי להבין את תהליך הקריאה וההבנה של טבלת הניתוב, נוסיף יותר רשתות לדוגמה שלנו:

הנה טבלה לדוגמה של נתב 3:
| Network Destination | Interface | Gateway |
|---|---|---|
| 0.0.0.0/0 | 3.3.3.1 | 3.3.3.2 |
| 192.168.0.0/24 | 1.1.1.1 | 1.1.1.2 |
| 10.0.0.0/24 | 2.2.2.1 | 2.2.2.2 |
איך הקריאה לטבלה מתבצעת?¶
כאשר פקטה מגיעה לנתב 3, הנתב בודק את יעד ה-IP שלה מול הרשומות בטבלה, ומפנה אותה בהתאם:
- אם כתובת ה-IP של הפקטה היא מתוך רשת
10.0.0.0/24, הנתב מפנה את הפקטה דרך התחנה2.2.2.2. - אם כתובת ה-IP של הפקטה היא מתוך רשת
192.168.0.0/24, הנתב מפנה את הפקטה דרך התחנה1.1.1.2. - אם אין התאמה, הפקטה תשלח ל-Gateway ברירת המחדל:
3.3.3.2.
שימו לב: הראוטר לא משנה את כתובת ה-IP של הפקטה, רק את כתובת ה-MAC של כל רכיב בדרך.
איך טבלת הניתוב מתמלאת?¶
לנתבים יש אלגוריתמים מתקדמים (כגון RIP, OSPF, BGP) שממלאים את הטבלאות הללו באופן אוטומטי על ידי חישוב הדרך היעילה ביותר. את הטבלאות אפשר גם להזין ידנית אם המנהל הרשת רוצה לשלוט ישירות בהגדרות.
טבלת ניתוב של מחשב קצה¶
גם במחשבי קצה יש טבלת ניתוב. מטרת הטבלה היא לקבוע לאן יש לשלוח פקטה על בסיס יעד ה-IP שלה. אם היעד נמצא באותה הרשת המקומית, הפקטה תישלח ישירות למחשב היעד (On-link). אם היעד נמצא ברשת אחרת, הפקטה תישלח ל-Gateway (הראוטר). (משם הראוטר אמור לדעת לנתב את הפאקטה ליעד הסופי שלה לפי הטבלת ניתוב שלו)
דוגמה לרשת מחשבים:

הנה דוגמה לטבלת ניתוב של מחשב PC1:
| Network Destination | Interface | Gateway |
|---|---|---|
| 0.0.0.0/0 | 192.168.0.2 | 192.168.0.1 |
| 192.168.0.0/24 | 192.168.0.2 | On-link |
תהליך הפעולה של המחשב:
- אם היעד הוא מתוך רשת
192.168.0.0/24, המחשב שולח את הפקטה ישירות (On-link). - ממש דמיינו בשכבת ה"קו" - אם היעד הוא רשת אחרת, הפקטה תישלח ל-Gateway (במקרה זה, הראוטר בכתובת
192.168.0.1).
בטלאות ניתוב של מחשבים וראוטרים כמעט תמיד מוגדר gateway מוסיים בתחילת הטבלה שאילו נשלחות כל הפאקטות שלא התאמתו על שום חוק אחר. זה נקרא default gateway או בקיצור DG. לרוב הוא יהיה נתב מרכזי ברשת שיודע לנתב את הפאקטה למחשב הנכון.
שאלות נוספות בנוגע לשכבת הרשת¶
-
איך מחשב יודע מי ה-Default gateway שלו? כדי שידע לאיזה כתובת לפנות למקרה ולא מצא מענה בשכבת ה"קו" (On-Link)
-
איך מחשב יודע לתרגם כתובת IP ל-MAC? זה פעולה הכרחית בשביל תהליך הניתוב.
-
איך מחשבים מקבלים כתובת IP עדכנית בכל חיבור לרשת חדשה? אם הטלפון שלי מתנתק ומתחבר בין רשתות שונות, איך בכל רשת שונה הוא יודע מה הכתובת IP העדכנית שלו?
סיכום¶
בהרצאה הבאה נעבור על פרוטוקולים שונים שנועדו לפתור את ה3 בעיות שהצגנו, כדי להשלים את שכבת הרשת.