בעיות מפורסמות במדעי המחשב

TCP\IP ורשת תקשורת של רשתות

הכנה: ססיל יחזקאל ושרה פולק, מכון ויצמן למדע

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

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

 

תיאור הבעיה

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

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

 

היסטוריה על רגל אחת

בשנות השישים ועד תחילת שנות השבעים, בעידן המלחמה הקרה, נערך מחקר במשרד ההגנה האמריקני שמטרתו היה למצוא דרך שתאפשר לשמור את הקשר בין מוקדים צבאיים ושלטוניים שונים במקרה של התקפה על ארה"ב. האמריקאים רצו להבטיח לעצמם כי גם בתנאים של מלחמה גרעינית יוכלו אמצעי הקשר לפעול. באותן השנים רשתות התקשורת היו מבוססות על מיתוג מעגלים ורשתות טלפון, כאשר להעברת תשדורת, נוצר קו פיזי (בין מרכזות טלפונים) המקשר הין המקור והיעד. החשש היה שאם מרכזת טלפונים תפגע, כל השיחות שעברו דרך מרכזת זו יתנתקו מיד. הסוכנות למחקר מתקדם- ARPA מימנה מחקרים שהובילו לשיטת מיתוג חדשה – מיתוג מעגלים. הרעיון היה ליצור רשת מחשבים ללא מרכזיה. כל מחשב ברשת יהווה צומת ויוכל, באופן עצמאי, לקבל ולשגר ידיעות. המידע המיועד להפצה יחולק למעין "חבילות" קטנות שכל אחת תכלול פרטי זיהוי וכתובת יעד, ואלה ינותבו מצומת לצומת עד שיגיעו ליעדן הסופי. לפי תוכנית זו, גם אם חלק מהמחשבים ברשת לא יפעל, תמיד תמצא דרך אחרת ברשת כדי להעביר את המידע ליעד. רעיון הרשת המבוזרת פורסם בשנת 1964 ונבחן לראשונה בבריטניה בשנת 1968. שנה לאחר מכן התקינה הסוכנות למחקר מתקדם של משרד ההגנה האמריקאי את הרשת הראשונה אשר קישרה בין המחשבים של ארבע אוניברסיטאות במערב ארצות הברית. המטרה היתה לאפשר למדענים בכל אחת מאוניברסיטאות אלו לעבוד על מחשבים מרוחקים (אז עדיין לא היו מחשבים אישיים וכל שעת מחשב היתה יקרה ביותר). המערכת כונתה"ARPANET" . ב- 1972 הכילה הרשת 23 מחשבים כשמהנדס חדש בשם ריי טומלינסון המציא תוכנה שאפשרה להעביר הודעות בין משתמשים שונים - תוכנת הדואר האלקטרוני הראשונה.

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

בשנה 1973 הומצאה הפרוטוקול החדש  IP/TCP המאפשר שידור של מידע "ארוז בחבילות" והעברתו בין הרשתות השונות. בעקבות יישום הפרוטקול התחילה התהוות רשת האינטרנט  בתצורה המוכרת לנו היום.  מחברי הפרוטוקול היו Vincton Cerf ו- Bob Kahn. ל- Cerf הוצמד הכינוי "האבא של האינטרנט".

 

הפתרון:  TCP/IP – מודל שכבות

TCP/IP  היא משפחה של פרוטוקולים שמאפשרת לרשתות תקשורת רבות ביניהן, ללא תלות במבנה של כל רשת ובטכנולוגיה שעומדת בבסיסה. IP הוא פרוטוקול האינטרנט (קיצור של inter-network  רשת בין רשתות) והוא מאפשר קישור בין רשתות מסביב לעולם. TCP/IP  בנוי לפי מודל השכבות. מודל זה מחלק את התהליך כולו לשלבים כאשר כל שלב מתבצע בשכבה מסוימת. כל שכבה יכולה לתקשר עם השכבה שמעליה או מתחתיה. כל שכבה בנויה מאוסף של פרוטוקולים המבצעים את השירותים השונים שיועדו לאותה שכבה. כל פרוטוקול יכול לתקשר עם הפרוטוקול המקביל אליו במחשב אחר. התקשרות הזו עובדת לפי סטנדרטים קבועים. ניתן לראות פרוטוקול כשפה בה מדברים פרוטוקולים עמיתים. באינטרנט מוגדרות 4 שכבות:

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

2. תעבורה (transport) - שכבה זו מטפלת בהעברה של מידע מנקודת המוצא לנקודת היעד ברשת, כלומר תקשורת בין נקודות הקצה. כל אפליקציה, מהשכבה שמעל, בוחרת את פרוטוקול התעבורה המתאים לה, לפי צרכיה. לדוגמא של דפדפן האינטרנט, פרוטוקול HTTP משתמש בפרוטוקול התעבורה TCP כדי לשלוח מידע ברשת.

3. אינטרנט – שכבת האינטרנט מטפלת בניתוב של הודעות דרך רשת של רשתות (inter-network). והיא מיושמת ע"י פרוטוקול IP המידע שמוסף לנתונים ע"י שכבה זו מאפשר לנתב את החבילה, וכולל בין השאר את כתובת היעד, כתובת המקור, וערך checksum שמיועד לוודא שהנתונים לא שובשו במהלך ניתובם ברשת. שכבת האינטרנט גם לא מבטיחה העברה נכונה של נתונים – אם למשל מתגלה טעות בחבילה (ע"י בדיקת ערך ה-checksum), השכבה פשוט "זורקת" את החבילה, ולא מדווחת על כך למחשב השולח. שירות שמבטיח העברה נכונה של נתונים יכול להיות מסופק ע"י השכבה שמעל.

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

 

כיצד המידע מגיע ליעדו ?

את העברת מידע ממחשב למחשב ניתן לתאר בצורה הבאה:

*  המידע מן המחשב מחולק לחבילות ולכל חבילה מתווסף המידע הבא:

כתובת IP  של השולח

כתובת IP של היעד

סוג החבילה

מספר סידורי של החבילה

*  החבילות עוברות לשלב ההכנה ובדרכן הן עוברות שערים (נתבים) המכוונים אותם לפרוקסי (Proxy) חיבור לאינטרנט ואבטחת מידע).

*  הפרוקסי פותח כל חבילה, קורא את כתובת IP של היעד ושולח לרשת בדרכה ליעד.

*  החבילות זורמות ברשת האינטרנט דרך תווכי תקשורת שונים

*  מנות מגיעות ליעדן, עוברות סינון חומת אש (Firewall אבטחה) נכנסות דרך שערים שונים ומסתדרות לפי הסדר

*  מנות מתקבלות בשרת והן הופכות למקבץ אחד, אותו קורא השרת ומעביר למחשב היעד.

 

שירותי פרוטוקול TCP

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

*  מעביר ליישום היעד זרם של ביטים באותו סדר שהם יצאו מהמחשב השולח.

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

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

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

 

פרוטוקול וכתובת IP

פרוטוקל IP מספק שירות בלתי מהימן וחסר קישור, כלומר העובדה שחבילה נשלחה לא אומרת שהיא תגיע ליעדה, או שמי ששלח אותה ידע מה קרה לה. השירות הוא חסר-קישור, כיוון שכל חבילה מטופלת באופן בלתי תלוי בחבילות אחרות, גם אם החבילות שייכות לאותה הודעה ויצאו לאותו יעד בזו אחר זו. החבילות יכולות להגיע ליעדן במסלולים שונים לחלוטין, וחלקן יכולות ללכת לאיבוד. שירות ה- IP מספק הובלה "טובה ככל הניתן" (best-effort delivery). כלומר, חבילות לא יזרקו או ילכו לאיבוד סתם כך. חוסר המהימנות לא נובע מתכונות קפריזיות של הפרוטוקול, אלא מכך שרשתות תקשורת פיזיות עלולות לקרוס ולא לעמוד בעומס.

לכל מחשב על האינטרנט ישנו מספר ייחודי שנקרא כתובת IP ( (Internet Protocol. כתובת זו דומה לכתובת דואר ומאפשרת למחשבים המנתבים להוביל את חבילות המידע ליעדו. כתובת ה- IP הינה הכתובת המתארת את יעד המידע בעולם הוירטואלי של האינטרנט. כתובת המקור והיעד של כל חבילת מידע באינטרנט שמורים בכל "אריזת" של חבילת המידע.

 

מבנה של כתובת IP

כתובת IP היא מספר בן 32 סיביות או 4 בתים בני 8 סיביות. כאשר מציגים כתובת IP במספרים עשרוניים מציגים אותה על ידי 4 מספרים מופרדים באמצעות נקודה: 132.77.150.57.

דוגמה לכתובת IP

עשרוני

132.77.150.57

בינארי

10000100.01001101.10010110.00111001

שמית

www.weizmann.ac.il

 

אנו רגילים להשתמש בכתובת שמית כגון שכן היא יותר נוחה למשתמש. כתובת זו מתורגמת לכתובת IP בינארית. שימוש ב- 32 סיביות מאפשר ליצור 4,294,967,296  כתובות שונות (או מחשבים שונים שמקושרים לרשת אינטרנט ברגע נתון).         
אם כך מהו הערך הגבוה ביותר של כל מספר?

יש שני סוגים של כתובות IP:

1. כתובת IP סטטית - כתובת IP קבועה עבור מחשב מסוים שמאפשרת את זיהויו בכל  התחברות.

2. כתובת IP דינאמית - היא כתובת שניתנת ברגע מתחברים לאינטרנט ומשתנה בכל פעם שמתחברים מחדש. במקרה זה כתובת IP היא ייחודית להתחברות אחת. ספק האינטרנט ISP  Internet Service Provider)) מקצה כתובת IP דינאמי למשתמש בהתאם לרשימת כתובות IP דינאמי פנויות במועד ההתחברות.

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

היות שלאנשים קשה לזכור מחרוזות של מספרים, והיות שכתובות IP לעיתים משתנה, לכל השרתים על האינטרנט ישנם שמות מובנים לאנשים, שנקראים שמות Domain. למשל, www.google.com הנו שם קבוע שקל יותר לזכור מאשר מחרוזת 216.27.61.137.  לשם www.google.com יש שלושה חלקים:

*  שם של מחשב מארח – www") host")

*  שם דומיין ("google")

*  שם Domain ראשי ("com")

שמות דומיין מנוהלות על ידי החברה בשם Network Solutions. התפקיד הראשי שלה הוא ליצור שמות דומיין ראשיים ולהבטיח שהם ייחודיים. שם של מחשב מארח נוצר על ידי החברה שמארחת דומיין. "www" הוא שם מארח מאוד נפוץ, אבל רבים כעת משנים אותו לשם שונה. למשל, ב- encarta.msn.com, שם דומיין של אנציקלופדית Encarta שונה מ- "www".

אוסף של שרתים הקרויים (Domain Name Servers (DNS ממפים שמות שנוחים לאנשים לכתובות IP. שרתים אלה הנם בסיסי נתונים פשוטים הפזורים ברשת. רוב החברות ספקי שרות אינטרנט, ISP, ואוניברסיטאות מחזיקים שרתי שמות קטנים כדי למפות שמות מארח לכתובות IP. ישנם גם שרתי שמות מרכזיים שמשתמשים במידע מ- Network  Solutionsכדי למפות שמות דומיין לכתובות IP.

 

וינטון (וינט) סרף (Vinton G. Cerf)

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

"Snuper Computer" - a computer that was designed to remotely observe the execution of programs on another computer.

המחקר שערך הוביל אותו להתעניין בתקשורת מחשבים. ב- 1968, ARPA התחילה פרויקט חדש ב- UCLA ובו  השתתף Cerf כאחראי על בדיקות וניתוח ביצועים של רשת תקשורת. בראש הפרויקט עמד Len Kleinrock, ו-Cerf  היה אחד מאנשי הצוות הזוטרים. בסוף 1968 קבוצה קטנה של סטודנטים בוגרים מ- 4 אוניברסיטאות התחילו בפגישות כדי לדון ברשת תקשורת חדשה ובבעיות הקשורות לפיתוח. הם קראו לעצמם Network Working Group (NWG).. אנשי ה- NWG הוכיחו שהם מצליחים לפתור את רוב הבעיות שהיו בתהליך הפיתוח והיישום של ה- ARPANET אבל הם לא העריכו את החשיבות של ההישגים שלהם באותו זמן. Cerf נזכר " היינו זוטרים וצפינו שאיזו שהיא סמכות תכנס בסוף ותגיד 'הנה כך אנו הולכים לעשות זאת'. אבל אף אחד לא הגיע."

באוגוסט 1969 נמסר IMP ראשון ל- UCLA ולאחר כחודש ה- IMP השני נמסר ל – SRI, וכך היה Cerf נוכח כשההודעה הראשונה נשלחה מהמחשב ב- UCLA למחשב  ב- SRI.  ה- ARPANET המשיך לגדול במהירות מאותה נקודה.  Cerf היה מעורב בבדיקות של החומרה החדשה, ובמהלכן הוא פגש את Bob Kahn ושניהם שיתפו פעולה. באותם השנים נפרסו רשתות תקשורת נוספות. Cerf נזכר "בערך באותו זמן בוב אמר לי 'תראה יש לי בעיה, איך לגרום למחשב שהמחובר ללווין ומחשב מחובר לגלי רשת רדיו ומחשב על רשת ARPANET  לתקשר ביניהם בצורה אחידה זה עם זה, בלי להיות מודעים לדרך שהתקשורת מתבצעת אצל כל אחד מהם."

וכך החל הרעיון לפתח סטנדרטים לתקשורת,  מה שאחר הפך להיות המושג פרוטוקול, היה אחת מהמשימות של NWG. הם בססו את הגישה של השכבות בבניית הפרוטוקול. כלומר הם יצרו מספר פרוטוקולים שהם בלוקים פשוטים שאחר כך אוחדו ביחד וניהלו את כל רשת התקשורת כולה. ב- 1970 הקבוצה שחררה את הפרוטוקול הבסיסי לתקשורת basic host-to-host communication שנקרא Network Control Protocol (NCP)..

 

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

 Cerf ו- Kahn התחילו לעבוד על התכנון ב- 1973 ובספטמבר הם הציגו במאמר את הקווים המנחים של הרעיון שלהם וב- 1974 הם כתבו את המאמר: A Protocol for Packet Network Intercommunication.". במאמר זה הם תיארו את פרוטוקול TCP transmission-control protocol שבו הרעיון הבסיסי היה לצרף חבילות ל- "datagrams." שיפעלו כמו מעטפות המכילות מכתבים. התוכן והתבנית של המכתבים לא משנה למי שאחראי על שליחתם. המידע של המעטפה הוא סטנדרטי כדי לאפשר משלוח. מחשבי השער פשוט יקראו את רק המידע הקשור למעטפה. רק מחשב מארח יוכל לפתוח את המעטפה ולקרוא את התוכן של החבילה. TCP מאפשר לקשר רשתות ולהפכן לרשת של רשתות – מה שנקרא האינטרנט.

Cerf המשיך לעדן את פרוטוקול TCP וב- 1976 הוא קיבל עבודה במנהל פרויקט ב- " ARPA Internet". ב- 1978 Cerf ומספר עמיתים סיימו את רוב העידכונים של פרוטוקול TCP. הם חלקו את TCP לשני חלקים. הם הוציאו את הפעולות הקשורות לניתוב מנות ויצרו פרטוקול חדש בשם Internet ProtocolIP. TCP טיפל בפעולות הבאות: חלוקת ההודעות לחבילות, בהרכבתן מחדש, גילוי שגיאות, סידור החבילות בסדר נכון ושליחה מחדש במקרה וחבילות הלכו לאיבוד.

 

סיכום

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

 

מקורות

נושא

אתרים

 

הרצאות בעברית על TCP.IP

 

 

 

 

חזרה לעמוד הראשי