ViewWiki

העולם, קצת יותר מקרוב

רשתות והאינטרנט.

הודעה לשרת בצד השני של העולם מגיעה כהרף עין, גם כשכבלים נקרעים. איך היא מוצאת את הדרך?

גלו את הסצנה מאמר אינטראקטיבי

01 / הניסוי

חתכו כבל. ההודעה עדיין מגיעה.

חתכו קישורים בזה אחר זה וצפו בהודעה מוצאת דרך אחרת, ואז פצלו אותה לחבילות.

תמונה של הסצנה התלת־ממדית „רשתות והאינטרנט”, שעוסקת בשאלה: איך הודעה חוצה את האינטרנט, ומה קורה כשכבל נקרע?
סצנה אינטראקטיבית

הגרסה האינטראקטיבית נטענת…

ההסבר שלמטה זמין כבר עכשיו, בזמן שהסצנה נטענת.

כל נתב יודע את האורך של כל כבל ושולח את התעבורה במסלול הקצר ביותר שנותר. המהירויות הואטו מאוד כדי שאפשר יהיה לעקוב אחרי המסע.באינטרנט האמיתי יש מיליוני נתבים שמפעילות אלפי רשתות נפרדות, והחבילות חוצות אותו בדרך כלל בכמה מאיות שנייה. החבילות של הודעה אחת עוברות בדרך כלל באותו מסלול; כאן הן מפוזרות על פני כמה מסלולים כדי להראות שכל אחת מהן מוצאת את דרכה בעצמה.

02 / שלוש צורות

חיתוך אחד, שלוש תוצאות.

אותם שישה מכשירים, מחוברים בשלוש דרכים. בכל אחת מהן נחתך כבל אחד (מסומן ב־×).

דרך אחת בלבד
×

שרשרת

כל הודעה עוברת לאורך כל הקו. כבל אחד שנקרע, ושני החצאים כבר לא יכולים לדבר זה עם זה.

מסלולים בין שני מכשירים
1
כבל אחד נחתך
מפצל אותה לשתיים
איפה פוגשים
קווי טלגרף ישנים שעברו מעיר לעיר
מרכז אחד
×

כוכב

מסלולים קצרים דרך מרכז אחד. חיתוך משאיר מכשיר אחד מבודד; נפילת המרכז מבודדת את כולם.

מסלולים בין שני מכשירים
1
כבל אחד נחתך
מנתק מכשיר אחד
איפה פוגשים
נתב Wi-Fi ביתי והמכשירים שלו
הרבה דרכים לעקוף
×

אריג

לולאות בכל מקום, ולכן כמעט תמיד יש מסלול אחר. הנתבים שולחים את התעבורה מסביב לנתק.

מסלולים בין שני מכשירים
יותר מאחד
כבל אחד נחתך
התעבורה עוקפת
איפה פוגשים
ליבת האינטרנט
הרעיון הגדול

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

הודעה = 1 + 2 + … + n

רשת אריג, לא קו

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

בניסוי, מחשב נייד משמאל שולח הודעה לשרת מימין דרך עשרה נתבים. הכבלים שמוארים בכחול הם אלה שההודעה עוברת בהם.

מציאת המסלול הקצר ביותר

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

צפו בהודעה קופצת מנתב לנתב. בכל נתב היא עוצרת לרגע: הנתב קורא את כתובת היעד שלה, מחפש אותה בטבלה ושולח אותה הלאה. לזה קוראים אחסן ושלח (store and forward).

נסו: העלו את קישורים שנחתכו ל־1. כבל במסלול נקרע, וההודעה הבאה עוקפת את הנתק במסלול קצת יותר ארוך. המשיכו להגדיל את קישורים שנחתכו וראו איך העקיפות מתארכות.

חזרה לניסוי

בנוי לשרוד ניתוקים

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

אבל יש גבולות. ברשת הזאת רק ארבעה כבלים עוברים מהחצי השמאלי לחצי הימני. חתכו את כל הארבעה ולא נשאר שום מסלול: לנתב הראשון אין לאן לשלוח את ההודעה, ולכן הוא זורק אותה ושולח בחזרה הודעת שגיאה.

חבילות

בחרו חבילות בפיצול לחבילות. הודעה ארוכה אף פעם לא נשלחת בחתיכה אחת. היא נחתכת לחבילות, וכל חבילה היא נתח קטן של נתונים עם תווית שאומרת לאן הוא הולך, מאיפה הוא בא ומה מקומו ברצף.

החבילות נוסעות כל אחת בנפרד, ולכן הן יכולות לעבור במסלולים שונים ולהגיע שלא לפי הסדר. המחשב המקבל מתייק כל אחת לפי המספר שלה ומרכיב את ההודעה מחדש, ומבקש שוב כל חבילה שלא הגיעה. הכללים לכך הם TCP/IP: פרוטוקול IP ממען את החבילות ומנתב אותן; TCP ממספר אותן, בודק שכולן הגיעו ומסדר אותן לפי הסדר.

בזכות החבילות מיליוני שיחות יכולות לחלוק את אותם כבלים ולהתחלף בתורות בכל נתב, וחבילה שאבדה מחייבת רק שליחה חוזרת קטנה, לא את ההודעה כולה.

מה המודל הזה משאיר בחוץ

ברשת כאן יש שנים־עשר מכשירים; באינטרנט יש מיליארדים, מאורגנים ברשתות נפרדות שמסכמות ביניהן על מסלולים בעזרת כללים כמו BGP. נתבים אמיתיים בוחרים מסלולים לפי עלות ומדיניות ולא רק לפי מרחק, מחזיקים תורים שמתמלאים וגולשים, ומפזרים את התעבורה על פני מסלולים שעלותם שווה. החבילות של חיבור אחד עוברות בדרך כלל באותו מסלול, אלא אם משהו משתנה. חבילה נושאת עד כ־1,500 בתים, כך שהודעה אמיתית קצרה כזאת הייתה נכנסת בחבילה אחת; כאן היא מפוצלת לשש כדי שאפשר יהיה לראות את הפיצול. אותות בסיב אופטי נעים בערך בשני שלישים ממהירות האור, והכול מואט מאוד כדי שהקפיצות ייראו.

מותר לעשות בהם שימוש חוזר, עם קרדיט ל־ViewWiki וקישור לעמוד הזה.

04 / ללמוד את זה בקורס

תרגול, צעד אחר צעד.

השיעור הזה מלמד את הנושא עם שאלות שנבדקות.

  1. ניתוב חבילות מדעי המחשב · גרפים ורשתות