Download presentation
Presentation is loading. Please wait.
1
רשתות תקשורת מחשבים שכבת האינטרנט (רשת)
מרצה עמית דביר מצגות הקורס עושות שימוש בתרשימים של Kurose & Ross © ראו גם: ומתבססות על שקפים של בעז בן משה אמיר הרצברג ואיציק קיטורזר רשתות תקשורת מחשבים 1 1
2
שכבת האינטרנט (רשת) מטרות הפרק: הבנת העקרונות מאחורי שרותי שכבת הרשת:
סקירה: שרותי שכבת הרשת עקרונות ניתוב: בחירת נתיב ניתוב היררכי IP פרוטוקולי ניתוב באינטרנט: - תוך-דומיין - בין-דומיין מטרות הפרק: הבנת העקרונות מאחורי שרותי שכבת הרשת: - ניתוב (בחירת נתיב) - טיפול בקנה מידה מופעים ומימוש באינטרנט רשתות תקשורת מחשבים 2
3
שכבת האינטרנט (פרק 4 בספר)
4.5 אלגוריתמי ניתוב - מצב הקישור – נתיבים בעלי עלות מינימלית - וקטור מרחק - ניתוב היררכי 4.6 פרוטוקולי ניתוב סטנדרטיים באינטרנט - RIP - OSPF - BGP 4.7 שידור וניתוב מבוזר 4.1 מבוא 4.2 רשתות מתגים ו-datagrams וירטואליות 4.3 מה יש בתוך הנתב 4.4 IP: פרוטוקול אינטרנט - מבנה datagram - כתובות IPv4 - ICMP - IPv6 רשתות תקשורת מחשבים 3
4
פונקציונליות של שכבת האינטרנט (רשת)
מעבירות חבילות בין תחנת קצה שולחת למקבלת פרוטוקולי שכבת האינטרנט הם בכל תחנת קצה ונתב 3 פעולות חשובות: קביעת נתיב: נתיב בו עוברות חבילות משלוח אל מקבל. אלגוריתמי ניתוב קידום: העברת חבילות מהקלט של הנתב אל הפלט המתאים. IP הקמת שיחה: חלק מארכיטקטורות הרשת מחייבות את הנתב להקים שיחה לפני שליחת המידע. application transport network data link physical network data link physical רשתות תקשורת מחשבים 4
5
שכבת האינטרנט (רשת) העברת מקטע משולח אל מקבל
עוטף מקטעים בתוך datagrams בצד השולח מעביר מקטעים אל שכבת התעבורה בצד המקבל פרוטוקולי רשת בכל תחנת קצה, נתב נתב בוחן פתיח בכל ה-IP datagrams אשר עוברים דרכו application transport network data link physical network data link physical רשתות תקשורת מחשבים 5
6
פעולות מפתח בשכבת הרשת קידום: העברת חבילה מהקלט של הנתב אל הפלט המתאים
קידום: העברת חבילה מהקלט של הנתב אל הפלט המתאים ניתוב: קביעת הנתיב הנבחר בין המקור ליעד - אלגוריתמי ניתוב וגם אפשרות להקמת שיחות/ מעגלים אנלוגיה: ניתוב: תהליך של תכנון טיול בין הבית ליעד קידום: תהליך המעבר בתוך מחלף בודד. רשתות תקשורת מחשבים 6
7
מה בין "ניתוב" לבין "קידום" 1 רשתות תקשורת מחשבים value in arriving
2 3 0111 value in arriving packet’s header routing algorithm local forwarding table header value output link 0100 0101 1001 רשתות תקשורת מחשבים 7
8
צורות שירות שתי צורות מופשטות מרכזיות של שירות: Datagram vs. Virtual Circuit שאלה: איזו צורת שירות עבור "ערוץ" המעביר חבילות בין שולח למקבל? תשובה שנייה: מעגל וירטואלי - כל אחד מ... משלוח ללא אובדן משלוח לפי סדר הבטחת רוחב פס תשובה אחת: datagram - "הכי טוב שאני יכול" שירות אינטרנט קלאסי. רשתות תקשורת מחשבים 8
9
שירות מעגל וירטואלי הקמת שיחה / מעגל: לפני העברת מידע
"מעגל כמו טלפון" - היבט של ביצועים - פעולות של הרשת לאורך הנתיב מקור-אל-יעד הקמת שיחה / מעגל: לפני העברת מידע - הקמת נתיב למעגל נבחר על ידי מנגנון הניתוב - כאשר השיחה/חיבור מסתיים, פירוק המעגל משאבי קישור, נתב (רוחב פס, באפרים) מוקצים למעגל הוירטואלי - לביצועים כמו במעגל, הבטחת רוחב פס/ עיכוב כל נתב על הנתיב מקור-אל-יעד מחזיק "מצב" לכל חיבור שעובר דרכו - חיבור בשכבת התעבורה מעורב רק בשתי תחנות הקצה חבילות נושאות מספר מעגל וירטואלי (לא את זהות היעד) רשתות תקשורת מחשבים 9
10
מעגלים וירטואליים: מימוש
משמש להקמה, תחזוקה ופירוק של מעגלים וירטואליים - פירוק יכול להיות יזום מכל צד – בכל נתב לאורך המעגל הוירטואלי - תרגיל: תכננו פרוקטוקול מעגל וירטואלי פשוט. משמש ב-ATM, SNA, X.25 גם בשרותי "פרימיום" באינטרנט application transport network data link physical application transport network data link physical 5. Data flow begins 6. Receive data 4. Call connected 3. Accept call 1. Initiate call 2. incoming call רשתות תקשורת מחשבים 10
11
מעגלים וירטואליים: פרוטוקולים מסמנים
מעגל וירטואלי מורכב מ: נתיב בין מקור ליעד מספרי מעגל וירטואלי – מספר אחד לכל קישור לאורך הנתיב רשומות בטבלאות קידום בנתבים לאורך הנתיב חבילה השייכת למעגל וירטואלי נושאת מספר מעגל וירטואלי המספר משתנה בכל קישור - מספר מעגל וירטואלי חדש מגיע מטבלת הקידום (נקבעים על ידי תהליך הקמת החיבור) - או מספרי מעגל וירטואלי גלובליים (פחות יעיל) רשתות תקשורת מחשבים 11
12
טבלת קידום Forwarding table in northwest router:
12 22 32 1 2 3 VC number interface number Forwarding table in northwest router: Incoming interface Incoming VC # Outgoing interface Outgoing VC # … … … … Routers maintain connection state information! רשתות תקשורת מחשבים 12
13
רשתות datagrams: מודל האינטרנט
אין הקמת שיחה בשכבת הרשת נתבים: אין שמירת מצב לגבי חיבורים מקצה-אל-קצה - אין מושג של "חיבור" ברמת הרשת קידום חבילות באמצעות שימוש בכתובת היעד - חבילות על אותו חיבור יכולות להשתמש בנתיבים שונים application transport network data link physical application transport network data link physical 1. Send data 2. Receive data רשתות תקשורת מחשבים 13
14
Datagram או מעגל וירטואלי: למה?
החלפת מידע בין מחשבים - שרות "גמיש", לא נדרשות מגבלות קשיחות תחנות קצה "חכמות" (מחשבים) - יכולות להתאים את עצמן, לבצע בקרה, תיקון שגיאות - פשוטים בתוך רשת, הסיבוך הוא בקצוות שרותי קישור רבים - מאפיינים שונים, מקשה על שרות אחיד ATM (מעגל וירטואלי) התפתח מטלפוניה דיון אנושי: - מגבלות קשוחות, דרישות אמינות - צורך בשרות מובטח מערכות קצה "טפשות" - טלפונים - סיבוך בתוך הרשת רשתות תקשורת מחשבים 14
15
שכבת האינטרנט (רשת) פעולות שכבת הרשת של תחנת קצה, נתב Internet layer
Transport layer: TCP, UDP IP protocol addressing conventions datagram format packet handling conventions Routing protocols path selection RIP, OSPF, BGP Internet layer forwarding table ICMP protocol error reporting router “signaling” Link layer physical layer רשתות תקשורת מחשבים 15
16
כתובות IP כתובת IP: מזהה בן 32 ביטים לתחנת הקצה, בממשק הנתב.
ממשק: קשר בין תחנת קצה/נתב לקו הפיזי - נתבים הם בדרך כלל בעלי מספק ממשקים - גם תחנת קצה יכולה להיות בעלת מספר ממשקים - כתובות IP משוייכות לכל ממשק = 223 1 1 1 רשתות תקשורת מחשבים 16
17
כתובות IP - המשך כתובת IP: - חלק הרשת (subnet – הביטים הראשונים)
- חלק תחנת הקצה (ביטים אחרונים) מה זה subnet? - ממשקים ליחידות עם חלק רשת זהה בכתובת ה-IP - יכולים לגשת פיזית זה אל זה מבלי לערב את הנתב Subnet internet consisting of 3 IP subnets (for IP addresses starting with 223, first 24 bits are network address) רשתות תקשורת מחשבים 17
18
קידום IP – דוגמה פשוטה טבלת קידום ב-A
misc fields טבלת קידום ב-A data Dest. Net. next router Nhops התחל ב-A, שלח IP Datagram ממוען ל-B חפש כתובת רשת של B בטבלת קידום גלה כי B באותה subnet כמו A - שכבת הקישור יכולה לנתב אל B חפש כתובת שכבת קישור של B - שכבת הקישור מעבירה Datagram ישירות ל-B, בתוך מסגרת שכבת הקישור A B E רשתות תקשורת מחשבים 18
19
קידום IP – דוגמה נוספת טבלת קידום ב-A
misc fields טבלת קידום ב-A data Dest. Net. next router Nhops מגיעה ל ממוענת אל חפש כתובת רשת של E בטבלת קידום של נתב גלה כי E ב-subnet של - נתב ו-E מקושרים ישירות שכבת הקישור שולחת datagram לנתב בתוך מסגרת שכבת הקישור דרך ממשק ה-datagram מגיעה ל ! A B E רשתות תקשורת מחשבים 19
20
קידום IP – העברת datagram ממקור ליעד
misc fields טבלת קידום ב-A data Dest. Net. next router Nhops התחל ב-A, שלח IP Datagram ממוען ל-E חפש כתובת רשת של E בטבלת קידום גלה כי B ב-subnet שונה מ-A - A ו-E לא מקושרים ישירות טבלת ניתוב: הקפיצה הבאה לנתב ל-E היא: שכבת הקישור שולחת datagram לנתב בתוך מסגרת שכבת הקישור ה-datagram מגיעה ל A B E רשתות תקשורת מחשבים 20
21
כתובות IP - רשת לעומת חלק של תחנת קצה
כתובות מבוססות מחלקה: סכמת הכתובות הראשונית של IP מאפשרת תת-רשתות ב-3 גדלים: class to A network host B to 10 network host to C 110 network host to D 1110 multicast address 32 bits רשתות תקשורת מחשבים 21
22
ניצול מרחב הכתובות IPv4 32 ביטים -> עד 232<1010
כתובות מבוססות מחלקה הן בזבוז: - רשת מחלקה B: 65K כתובות גם אם יש רק 2K תחנות קצה פתרונות... CIDR – Classes InterDomain Routing - חלוקה שרירותית של כתובת IP לחקלי רשת ותחנת קצה (פחות בזבוז) - מבנה הכתובות: a.b.c.d/x, כאשר x הוא מספר הביטים בחלק של הרשת של הכתובת - כתובות היררכיות... רשתות תקשורת מחשבים 22
23
כתובות IP: CIDR CIDR – Classes InterDomain Routing
- מבנה הכתובות: a.b.c.d/x, כאשר x הוא מספר הביטים בחלק של הרשת של הכתובת - כתובות היררכיות: מאפשרות קיבוץ נתיבים של תת-רשתות עם פתיח זהה subnet part host /23 רשתות תקשורת מחשבים 23
24
הקצאת כתובות היררכית: קיבוץ נתיבים
הקצאת כתובות היררכית מאפשרת פרסום יעיל של מידע הנוגע לניתוב: Organization 0 /23 Organization 1 /23 “Send me anything with addresses beginning /20” Organization 2 /23 . Fly-By-Night-ISP . Internet Organization 7 /23 “Send me anything with addresses beginning /16” ISPs-R-Us רשתות תקשורת מחשבים 24
25
הקצאת כתובות היררכית: נתיבים ספציפיים יותר
ISPs-R-Us הוא בעל כתובת ספציפית יותר עבור ארגון מס' 1 Organization 0 /23 “Send me anything with addresses beginning /20” Organization 2 /23 . Fly-By-Night-ISP . Internet Organization 7 /23 “Send me anything with addresses beginning /16 or /23” ISPs-R-Us Organization 1 /23 רשתות תקשורת מחשבים 25
26
הקצאת כתובות היררכיות שאלה: איך תחנת קצה מקבלת כתובת IP?
מקודד על ידי מנהל המערכת... או... DHCP: Dynamic Host Configuration Protocol - מקבל כתובת באופן דינמי משרת DHCP. - ניהול יותר פשוט, ניידות - לחסכון בכתובות IP: נשתמש רק בכמה שצריך שאלה: איך תת-רשת מקבלת כתובת IP? כתובות היררכיות: ISP מקצה חלק ממרחב הכתובות שלו מאפשר קיבוץ נתיבים: שלח לי חבילות אשר מתחילות ב /20 שאלה: איך ISP מקבל בלוק של כתובות? ICANN: Internet Corp. for Assigned Names & Numbers - מקצה כתובות, מנהל DNS, מקצה שמות דומיין - או מ-ISP ברמה גבוהה יותר רשתות תקשורת מחשבים 26
27
ניצול מרחב הכתובות IPv4 - המשך
32 ביטים -> עד 232<1010 כתובות מבוססות מחלקה הן בזבוז: - רשת מחלקה B: 65K כתובות גם אם יש רק 2K תחנות קצה פתרונות... CIDR – Classes InterDomain Routing - חלוקה שרירותית של כתובת IP לחקלי רשת ותחנת קצה (פחות בזבוז) DHCP – הקצאת כתובות רק כאשר מחוברים שתיהן עוזרות, אבל – לא מספיק... פתרונות נוספים: - Network Address/Port Translation (NAT or NAPT) - מעבר ל-IPv6 (כתובת IP בת 128 ביטים) - שיפורים נוספים: QOS, אבטחה. רשתות תקשורת מחשבים 27
28
NAT: Network Address/Port Translation
שאר האינטרנט רשת מקומית (לדגומה רשת ביתית) 10.0.0/24 כל ה-datagrams אל/מ- רשת מקומית בעלות NAT IP זהה: אבל מספרי פורטים שונים של מקור, או כתובת IP מקור מטווח קטן Datagramsעם מקור או יעד בתוך הרשת הם בעלי כתובת /24 עבור מקור, יעד (כרגיל) רשתות תקשורת מחשבים 28
29
ניצול מרחב הכתובות IPv4 - המשך
- לא צריך טווח כתובות מה-ISP: כתובת IP אחת משמשת את כל תחנות הקצה - יש אפשרות לשנות כתובות של תחנות בתוך הרשת המקומית בלי להודיע לעולם החיצון - אפשר להחליף ISP בלי לשנות כתובות של תחנות ברשת המקומית - תחנות ברשת המקומית לא ניתנות לאיתור במפורש, או ניתנו לזיהוי על ידי העולם החיצון (עוזר לאבטחה) - לעיתים קרובות NAT משתמש במספרי פורטים בני 16 ביטים -> 60,000 חיבורים במקביל על כתובת אחת מצד ה-LAN. רשתות תקשורת מחשבים 29
30
WAN side addr LAN side addr
NAT: Network Address/Port Translation NAT translation table WAN side addr LAN side addr 1: host sends datagram to , 80 2: NAT router changes datagram source addr from , 3345 to , 5001, updates table , , 3345 …… …… S: , 3345 D: , 80 1 S: , 80 D: , 3345 4 S: , 5001 D: , 80 2 S: , 80 D: , 5001 3 4: NAT router changes datagram dest addr from , 5001 to , 3345 3: Reply arrives dest. address: , 5001 רשתות תקשורת מחשבים 30
31
32 bit destination IP address
מבנה IP Datagram ver length 32 bits data (variable length, typically a TCP or UDP segment) 16-bit identifier Internet checksum time to live 32 bit source IP address IP protocol version number header length (bytes) max number remaining hops (decremented at each router) for fragmentation/ reassembly total datagram length (bytes) upper layer protocol to deliver payload to head. len type of service “type” of data – for Quality of Service flgs fragment offset Next protocol 32 bit destination IP address Options (if any) E.g. timestamp, record route taken, specify list of routers to visit. how much overhead with TCP? 20 bytes of TCP 20 bytes of IP = 40 bytes + app layer overhead רשתות תקשורת מחשבים 31
32
פירוק לחלקים והרכבה מחדש של IP
קישורי רשת הם בעלי MTU (max transfer unit size) – מסגרת גדולה ביותר ברמת הקישור - קישורים שונים – MTU שונה IP Datagram גדולה מחולקת ("פירוק") בתוך הרשת - Datagram אחת הופכת למספר Datagrams - "מורכבת מחדש" רק ביעד הסופי - עושה שימוש בפתיח ה-IP כדי לזהות, ולסדר חלקים (הרכבה מחדש) fragmentation: in: one large datagram out: 3 smaller datagrams reassembly רשתות תקשורת מחשבים 32
33
פירוק לחלקים והרכבה מחדש של IP
דוגמה: Datagram בגודל בייטים (כולל פתיח בגודל בייטים) MTU = 1500 בייטים 3 חלקים: 1500, 1500, (בייטים) 40 בייטים ל-2 פתיחים נוספים תרגיל" מה יקרה אם נשלח על קישור בעל MTU = בייטים? ID =x offset =0 fragflag length =4000 =1 =1500 =1480 =2960 =1040 One large datagram becomes several smaller datagrams רשתות תקשורת מחשבים 33
34
IPv6 מוטיבציה ראשונית: כתובות בעלות 32 ביטים יקוצו במלואן בקרוב.
מוטיבציה נוספת: - מבנה פתיח עוזר לעיבוד/קידום מהיר - שינויי פתיח לשמש QoS פורמט Datagrams IPv6: - פתיח קבוע בגודל 40 בייטים (אפשרויות לא כלולות בפתיח) (מנגנון 'הרחבות' תומך (גם ב-) אפשרויות - אין אפשרות לפירוק רשתות תקשורת מחשבים 34
35
פתיח IPv6 - המשך עדיפות: זהה עדיפות בין Datagrams בזרם
תגית זרימה: זהה Datagrams באותו "זרם" (שניהם משמשים ל-QOS לא במסגרת קורס זה) פתיח הבא: זהה פרוטוקול של שכבה גבוהה יותר למידע רשתות תקשורת מחשבים 35
36
שינויים נוספים מ-IPv4 מוטיבציה ראשונית: כתובות בעלות 32 ביטים יקוצו במלואן בקרוב. מוטיבציה נוספת: - מבנה פתיח עוזר לעיבוד/קידום מהיר - שינויי פתיח לשמש QoS פורמט Datagrams IPv6: - פתיח קבוע בגודל 40 בייטים (אפשרויות לא כלולות בפתיח) (מנגנון 'הרחבות' תומך (גם ב-) אפשרויות - אין אפשרות לפירוק רשתות תקשורת מחשבים 36
37
שינויים נוספים מ-IPv4 Checksum: הוסר לחלוטין כדי להקטין זמן עיבוד בכל קפיצה Extensions: IPv6 מאפשר ל-'פתיח הבא' להיות הרחבה שרירותית, לטובת גמישות Options: בהרחבות, לא פתיח - שתי הרחבות סטנדרטיות לאופציות: Hop By Hop Options Destination Options (גם עבור 'נתבים מיוחדים') רשתות תקשורת מחשבים 37
38
מעבר מ-IPv4 ל-IPv6 לא ניתן לשדרג כל נתב בו-זמנית - אין "ימי סימון"
Tunneling: IPv6 אשר נישא כמטען ייעודי ב-IPv4 datagram לאורך נתבי IPv4 רשתות תקשורת מחשבים 38
39
Tunneling: A B E F Logical view: Physical view: A B E F
IPv6 tunnel Logical view: Physical view: A B E F IPv6 IPv4 רשתות תקשורת מחשבים 39
40
Tunneling: A B E F Logical view: A B C D E F Physical view: Src:B
IPv6 IPv6 IPv6 IPv6 A B C D E F Physical view: IPv6 IPv6 IPv4 IPv4 IPv6 IPv6 Flow: X Src: A Dest: F data Flow: X Src: A Dest: F data Src:B Dest: E Flow: X Src: A Dest: F data Src:B Dest: E Flow: X Src: A Dest: F data A-to-B: IPv6 E-to-F: IPv6 B-to-C: IPv6 inside IPv4 B-to-C: IPv6 inside IPv4 רשתות תקשורת מחשבים 40
41
ניתוב מטרה: לקבוע נתיב "טוב" (רצף של נתבים דרך הרשת) מהמקור ועד ליעד
פרוטוקול ניתוב 5 מטרה: לקבוע נתיב "טוב" (רצף של נתבים דרך הרשת) מהמקור ועד ליעד 3 B C 2 5 A 2 1 F 3 1 2 D E 1 המחשה גרפית לאלגוריתמי ניתוב: קודקודי הגרף הם הנתבים צלעות הגרף הן ערוצים - באינטרנט: רשת - עלות קישור: עיכוב, עלות כספית, רמת עומס, אמינות (מדיד!) נתיב "טוב": - בדרך כלל מתכוונים לנתיב בעל העלות הנמוכה ביותר - עלות לא תמיד מתבצעת לפי חיבור מתמטי - ישנן אפשרויות נוספות להגדרת עלות רשתות תקשורת מחשבים 41
42
סווג אלגוריתמי ניתוב סטטי או דינמי? גלובלי, או מידע מבוזר, החלטות?
סטטי: לא מטפל בשינויים / כשלים באופן לא מפורש: אתחל במקרה של שינוי דינמי: שנה נתיבים (עקב שינויים בטופולוגיה) - אחת לפרק זמן מסויים - בתגובה לשינוי בעלות/ טופולוגיה / כשלים / התאוששות גלובלי, או מידע מבוזר, החלטות? גלובלי: כל הנתבים בעלי טופולוגיה מלאה, מידע לגבי עלויות קישורים אלגוריתמי "מצב קישור" מבוזרים: נתב מכיר שכנים מחוברים פיזית, עלויות קישורים לשכנים תהליך איטרטיבי של חישוב, החלפת מידע עם שכנים אלגוריתמי "וקטור מרחק" רשתות תקשורת מחשבים 42
43
ניתוב לפי מצב קישור: אלג' נתיב קצר ביותר
ניתוב סטטי, גלובלי,לפי מצב קישור מקור: מצב הקישור קבוע: c(i,j) עלות מ-i ל-j (אינסופית אם אין קישור) - מוערך על ידי כל נתב לקישורים המחוברים אליו - ידוע לכל מקור (A) דרך "שידור מצב קישורים" ניתוב מקור: מציאת נתיב מכל מקור A לכל שאר הקודקודים בעיית נתיב קצר ביותר ממקור יחיד: בהנתן גרף G=(V,E), קודקוד מקור A שייך ל-V מצא נתיב קצר ביותר T מוכל בגרף ל-A, עבור כל קודקוד ב-V: - DA(V) עלות הנתיב המינימלי בין מקור A ל-v. נפשט ונכתוב D(v) - כל המסלולים ב-T הם הקצרים ביותר: D(v)=∑(u,w)path(A,v)c(u,w) - לא עץ פורש מינימלי (מדוע?) - לא עץ זהה עבור כל המקורות (מדוע?) רשתות תקשורת מחשבים 43
44
האלגוריתם של דיקסטרא בונה עץ פורש מינימלי T אחרי k איטרציות, T מכיל k קשתות ו-k+1 קודקודים
Given graph G=(V,E), source node AV, and link cost function c(x,y)0 let T ={ A } Let D(x)={0 if x=A, ∞ otherwise) while (T does not contain all nodes) { find edge (x,y)E with x in T and y not in T minimizing D(x)+c(x,y) add (x,y) to T D(y)=D(x)+c(x,y) } Output T, D This usually holds… Why needed? Alg for negative costs? רשתות תקשורת מחשבים 44
45
האלגוריתם של דיקסטרא: דוגמה
Step 1 2 3 4 5 Nodes A AD ADE ADEB ADEBC ADEBCF D(B) 2 D(C) 5 4 3 D(D) 1 D(E) infinity 2 D(F) infinity 4 5 3 B C 2 5 A 2 1 F 3 1 2 D E 1 רשתות תקשורת מחשבים 45
46
האלגוריתם של דיקסטרא, דיון
סיבוכיות האלגוריתם: n קודקודים, עלות קישורים קבועה כל איטרציה: צריך לבדוק את כל הקודקודים, w, שאינם ב-T n(n+1)/2 השוואות: O(n2) מימוש חסכוני יותר (ערימה): O(nlogn) עלויות דינמיות (לדוגמה: c(i,j)=|traffic(i,j)|) עלולות לטלטל: B,C,D שולחים ל-A (1,e,1 יחידות), כל אחד משתמש בדיקסטרא מצב הגיוני התחלתי: D->A, C->B->A מטלטל בין: B->C->D->A, D->C->B->A A A A 1 A 1+e 2+e 2+e 2+e D B D B D B D B 1+e 1 1+e 1 e 1 C 1+e e C C C 1 1 e … recompute routing … recompute … recompute initially רשתות תקשורת מחשבים 46
47
אלגוריתם ניתוב "וקטור מרחקים"
מבנה נתונים של טבלת מרחקים: לכל קודקוד טבלה משלו שורה עבור כל יעד אפשרי טור עבור כל שכן דוגמה: בקודקוד X, עבור יעד Y, דרך שכן Z: איטרטיבי, דינמי: ממשיך עד שאין קודקודים שמחליפים מידע "עוצר לבד": אין סימן לעצירה מתחיל מחדש עם שינוי א-סינכרוני: קודקודים לא צריכים להחליף מידע/ לבצע איטרציות במצב נעול מבוזר: כל קודקוד מתקשר רק עם שכנים המחוברים ישירות אליו D (Y,Z) X distance from X to Y, via Z as next hop c(X,Z) + min {D (Y,w)} Z w = רשתות תקשורת מחשבים 47
48
טבלת מרחקים: דוגמה D () A B C D 1 7 6 4 14 8 9 11 5 2 D (C,D) D (A,D)
E cost to destination via destination 1 B C 7 A 8 2 1 E D 2 D (C,D) E c(E,D) + min {D (C,w)} D w = 2+2 = 4 D (A,D) E c(E,D) + min {D (A,w)} D w = 2+3 = 5 loop! D (A,B) E c(E,B) + min {D (A,w)} B w = 8+6 = 14 loop! רשתות תקשורת מחשבים 48
49
טבלת מרחקים מספקת טבלת ניתוב
D () A B C D 1 7 6 4 14 8 9 11 5 2 E cost to destination via destination Outgoing link to use, cost A B C D A,1 D,5 D,4 destination Distance table Routing table רשתות תקשורת מחשבים 49
50
ניתוב וקטור מרחקים: סקירה
איטרטיבי, א-סינכרוני: כל איטרציה מקומית נגרמת על ידי: עלות קישור מקומי משתנה הודעה משכן: הנתיב בעל העלות הנמוכה ביותר משכן מבוזר: כל קודקוד מודיע לשכנים רק כאשר הנתיב בעל העלותל הנמוכה ביותר שלו ליעד כלשהוא משתנה - שכנים מודיעים אז לשכנים שלהם במידת הצורך כל קודקוד: wait for (change in local link cost or msg from neighbor) recompute distance table if least cost path to any dest has changed, notify neighbors רשתות תקשורת מחשבים 50
51
אלגוריתם וקטור מרחקים בקודקוד x:
Initialization: for all nodes y and all neighbors v: DX(y,v) = {c(x,v) for y=v, else ∞} On Detect_cost_of_link to neighbor v (i.e. c(x,v)) changes by d /* change cost to all dest's via neighbor v by d */ /* note: d could be positive or negative */ for all destinations y: DX(y,v) = DX(y,v) + d On Rcv <y, D> from neighbor v: /* shortest path from v to some y has changed */ /* v sent a new value for its minWDV(y,w) */ DX(y,v) = c(x,v) + D Every T seconds (or always, if T=0): If DX(y)=minWDX(y,w) changed (for any destination y), then send <y, DX(y)> to all neighbors רשתות תקשורת מחשבים 51
52
אלגוריתם וקטור מרחקים: דוגמה
X Z 1 2 7 Y D (Y,Z) X c(X,Z) + min {D (Y,w)} w = 7+1 = 8 Z D (Z,Y) X c(X,Y) + min {D (Z,w)} w = 2+1 = 3 Y רשתות תקשורת מחשבים 52
53
אלגוריתם וקטור מרחקים: דוגמה
X Z 1 2 7 Y רשתות תקשורת מחשבים 53
54
וקטור מרחקים: שינוי בעלות קישור
שינוי בעלות של קישור: קודקוד מזהה שינוי בעלות של קישור מקומי מעדכן טבלת מרחקים אם השינוי במסלול בעל העלות המינימליות, תודיע לשכנים דוגמה: כאשר המסלול מ-X ל-Y השתנה: 1 Y 4 1 X Z 50 האלגוריתם עוצר כאשר אין פעילות חדשות טובות מופצות מהר (ובלי לולאות...) רשתות תקשורת מחשבים 54
55
וקטור מרחקים: התלכדות If network stabilizes, then DV eventually outputs shortest paths (and halts) Assuming FIFO, max delay Δ, min weight w [why?] Consider single, fixed target node y; DY(y)=0 Let x(0)=y, x(0), x(1),…x(n) be the nodes by order of min-distance from y Claim: for all i (0≤i≤n), eventually Dx(i)(y)=D(i), the min- distance from x(i) to y. Proof: by induction on i. Trivially holds for i=0 (i.e. x(0)=y). Assume from time t, there are no new `detect cost change` events, and x(0)…x(i) stabilized to D(i). We prove the claim holds for i+1 as well. For every j>i, eventually Dx(j)(y)D(i+1) [why?] Then, eventually x(i+1) receives D(j) from x(j), s.t. j≤i and D(i)=D(j)+c(x(j),x(i))… Claim follows! But… convergence can be veeery sloooooooow… רשתות תקשורת מחשבים 55
56
התלכדות איטית: "ספירה לאינסוף"
שינוי בעלות של קישור: חדשות רעות מופצות באיטיות! - חדשות רעות: עלות עלתה (לדוגמה קישור נפל) זמן התלכדות: תלוי ביחסים בין העלויות, לא רק ב-n 60 Y 4 1 X Z 50 אלגוריתם ממשיך וממשיך... חבילות הנשלחות מ-Z,Y ל-X יבצעו לולאה בין Z,Y!!! רשתות תקשורת מחשבים 56
57
וקטור מרחקים: poisoned reverse
אם Z מנתב ל-X דרך Y: Z מספר ל-Y שמרחקו מ-X אינסופי (כדי ש-Y לא ינתב ל-X דרך Z) עוזר לרוב – אבל הסיבוכיות עדיין תלויה ביחס בין העלויות, לא רק n. תרגיל: הדגימו! 60 Y 4 1 X Z 50 אלגוריתם עוצר רשתות תקשורת מחשבים 57
58
ניתוב היררכי המחקר שלנו לגבי ניתוב עד כה – אידאליזציה כל הנתבים זהים
המחקר שלנו לגבי ניתוב עד כה – אידאליזציה כל הנתבים זהים הרשת "שטוחה" לא באמת נכון... אוטונומיה ניהולית: אינטרנט = רשת של רשתות כל מנהל רשת יכול לרצות לנהל את הניתוב בתוך הרשת שלו קנה מידה: עם 200 מליון יעדים: אי אפשר לציין את כל היעדים בטבלאות ניתוב החלפת מידע בין טבלאות ניתוב תציף את הקישורים! רשתות תקשורת מחשבים 58
59
ניתוב היררכי נתבי שער-גישה: נתבים מיוחדים ב-AS
מריצים פרוטוקול Intra-AS יחד עם כל שאר הנתבים ב-AS בנוסף אחראים על טבלאות ניתוב מחוץ ל-AS - מריצים פרוטוקול inter-AS עם נתבי שער גישה אחרים נתבים מאוגדים לאזורים, "מערכות אוטונומיות" (AS – Autonomous systems) נתבים באותו AS מריצים את אותו פרוטוקול ניתוב - פרוטוקול ניתוב “intra-AS” - נתבים ב-AS שונים יכולים להריץ פרוטוקולי Intra-AS שונים רשתות תקשורת מחשבים 59
60
ניתוב בשתי רמות באינטרנט
האינטרנט הגלובלי מורכב מ-AS מחוברים ביניהם: - Stub AS - ארגון קטן: חיבור אחד ל-AS אחרים. - Multihomed AS – ארגון גדול: חיבורים מרובים ל-AS אחרים. - Transit AS – ספק, מחבר הרבה AS יחד. ניתוב בשתי רמות: - inter-AS – סטנדרט ייחודי לניתוב בין AS – BGP - intra-AS – מנהל אחראי לבחירת אלגוריתם הניתוב בתוך הרשת (יכול להיות ניתוב intra AS היררכי – עבור AS ענק) רשתות תקשורת מחשבים 60
61
היררכית AS באינטרנט Inter-AS border (exterior gateway) routers
Intra-AS interior (gateway) routers רשתות תקשורת מחשבים 61
62
ניתוב Intra-AS לעומת ניתוב inter-AS
C.b Gateways: perform inter-AS routing amongst themselves perform intra-AS routing with other routers in their AS B.a A.a b A.c c a a C b a B d c A b network layer inter-AS, intra-AS routing in gateway A.c link layer physical layer רשתות תקשורת מחשבים 62
63
ניתוב Intra-AS וניתוב inter-AS
routing between A and B a b C A B d c A.a A.c C.b B.a Host h2 Host h1 Intra-AS routing within AS B Intra-AS routing within AS A מיד נבחן פרוטוקולי ניתוב ספציפיים של inter-AS ו-intra-AS... רשתות תקשורת מחשבים 63
64
ניתוב Intra-AS Also known as Interior Gateway Protocols (IGP)
Most common Intra-AS routing protocols: RIP: Routing Information Protocol OSPF: Open Shortest Path First IGRP: Interior Gateway Routing Protocol (Cisco proprietary) Not covered OSPF, IGRP support hierarchical routing RIP is simpler, for smaller networks רשתות תקשורת מחשבים 64
65
RIP ( Routing Information Protocol)
Distance vector algorithm Included in BSD-UNIX Distribution in 1982 Now only version 2 in use Distance metric: # of hops (≤15hops; =unreachable) Distance vectors: exchanged among neighbors every 30 sec via RIP reply packet (called advertisement) Each advertisement: list of up to destination nets within AS Sent using UDP (why?) Or: 24 destinations + authentication tag רשתות תקשורת מחשבים 65
66
RIP: דוגמה z w x y A D B C y B 2 z B 7 x -- 1
Destination Network Next Router Num. of hops to dest. w A 2 y B 2 z B 7 x …. … טבלת ניתוב ב-D רשתות תקשורת מחשבים 66
67
RIP: דוגמה z w x y A D B C y B 2 z B A 7 5 x -- 1 Advertisement
Dest Next hops w x z C 4 …. … Advertisement from A to D z w x y A D B C Destination Network Next Router Num. of hops to dest. w A 2 y B 2 z B A 7 5 x …. … טבלת ניתוב ב-D רשתות תקשורת מחשבים 67
68
RIP – כשל בקישור והתאוששות
If no advertisement heard after 180 sec > neighbor/link declared dead routes via neighbor invalidated new advertisements sent to neighbors neighbors in turn send out new advertisements (if tables changed) link failure info quickly propagates to entire net poison reverse used to prevent ping-pong loops Send infinite distance (= 16 hops) to first hop toward destination Exercises: pseudo-code, convergence for RIP רשתות תקשורת מחשבים 68
69
OSPF (Open Shortest Path First)
“open”: publicly available Uses Link State algorithm LS packet dissemination Topology map at each node Route computation using Dijkstra’s algorithm OSPF advertisement carries one entry per neighbor router Advertisements disseminated to entire AS (flooding) Carried in OSPF messages directly over IP רשתות תקשורת מחשבים 69
70
OSPF – אפשרויות מתקדמות (לא ב-RIP)
Security: all OSPF messages authenticated (to prevent malicious intrusion) more later… Multiple same-cost paths allowed (only one path in RIP) For each link, multiple cost metrics for different Type Of Service [TOS] (e.g., satellite link cost set “low” for best effort; high for real time) Integrated uni- and multicast support: Multicast OSPF (MOSPF) uses same topology data base as OSPF Hierarchical OSPF for large domains. רשתות תקשורת מחשבים 70
71
ניתוב inter-AS באינטרנט: BGP
( OSPF intra - AS AS1 AS2 routing) (RIP intra - AS ( OSPF BGP routing) intra - AS routing) R1 R2 רשתות תקשורת מחשבים 71
72
ניתוב inter-AS באינטרנט - BGP
BGP (Border Gateway Protocol): the de facto standard Path Vector protocol: similar to Distance Vector protocol each Border Gateway broadcast to neighbors (peers) entire path (i.e., sequence of AS’s) to destination BGP routes to networks (ASs), not individual hosts E.g., Gateway X may send its path to dest. Z: Path (X,Z) = X,Y1,Y2,Y3,…,Z רשתות תקשורת מחשבים 72
73
ניתוב inter-AS באינטרנט - BGP
Suppose: gateway X send its path to peer gateway W W may or may not select path offered by X cost, policy (don’t route via competitors AS), loop prevention reasons. If W selects path advertised by X, then: Path (W,Z) = w, Path (X,Z) Note: X can control incoming traffic by controlling its route advertisements to peers: e.g., don’t want to route traffic to Z -> don’t advertise any routes to Z רשתות תקשורת מחשבים 73
74
BGP: שליטה במי מנתב עבורך
a simple BGP scenario A B C W X Y legend: customer network: provider network A,B,C are provider networks X,W,Y are customer (of provider networks) X is dual-homed: attached to two networks X does not want to route from B via X to C .. so X will not advertise to B a route to C רשתות תקשורת מחשבים 74
75
BGP: שליטה במי מנתב עבורך
a simple BGP scenario A B C W X Y legend: customer network: provider network A advertises to B the path AW B advertises to X the path BAW Should B advertise to C the path BAW? No way! B gets no “revenue” for routing CBAW since neither W nor C are B’s customers B wants to force C to route to w via A B wants to route only to/from its customers! רשתות תקשורת מחשבים 75
76
פעולת BGP Q: What does a BGP router do?
Receiving and filtering route advertisements from directly attached neighbor(s). Route selection. To route to destination X, which path (of several advertised) will be taken? Policy-based (as above) Among policy-equivalent routes: use one with fewer ASs; or with closest next-hop router. Sending route advertisements to neighbors. BGP messages exchanged using TCP (port 179) רשתות תקשורת מחשבים 76
77
מדוע יש ניתוב שונה ב-intra-AS וב-inter-AS?
Policy: Inter-AS: admin wants control over how its traffic routed, who routes through its net. Intra-AS: single admin, so no policy decisions needed Scale: hierarchical routing saves table size, reduced update traffic But: intra-AS routing protocol can support hierarchy (OSPF) Performance: Intra-AS: focus on performance Inter-AS: policy may dominate over performance רשתות תקשורת מחשבים 77
78
שכבת הרשת: סיכום החומר עליו עברנו: שרותי שכבת הרשת
עקרונות ניתוב: מצב קישור ווקטור מרחקים ניתוב היררכי IP פרוטוקולי ניתוב באינטרנט: RIP, OSPF, BGP רשתות תקשורת מחשבים 78
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.