|
| |||||||||||||||||||||||||||||||
מודל השכבות של TCP/IP | |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
הקדמה | |||||||||||||||||||||||||||||||
TCP/IP היא משפחה של פרוטוקולים המאפשרת תקשורת בין רשתות, ללא תלות בתווך הפיזי שלהן. לכאורה, ניתן לחשוב שפרוטוקול אחד יכול לאפשר תקשורת כזו. מדוע יש צורך במשפחה של פרוטוקולים? | |||||||||||||||||||||||||||||||
התשובה לכך נעוצה בסיבוכיות הרבה של תקשורת. מצבים רבים יכולים לגרום ל"קצר" בתקשורת בין מחשבים: | |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
קל לראות שטיפול בכל סוגי הבעיות האלה הוא מסובך מאוד, וקשה לכתוב פרוטוקול אחד שיעשה זאת. החלוקה למספר פרוטוקולים מאפשרת למעצבי הפרוטוקול להתרכז בבעיות מסוג אחד בכל פעם, ולטפל בהן באופן הרמטי. | |||||||||||||||||||||||||||||||
מודל השכבות - הסבר כללי | |||||||||||||||||||||||||||||||
TCP/IP בנוי לפי מודל השכבות. מודל זה מפריד את הפונקציונליות של פרוטוקולי התקשורת השונים לשכבות נוחות לניהול, שיושבות אחת מעל לשניה. כל שכבה מטפלת בחלק מסוים של תהליך התקשורת ברשת. | |||||||||||||||||||||||||||||||
במודל השכבות, שכבה לא חייבת להיות מיוצגת ע"י פרוטוקול אחד ויחיד. השכבה מייצגת פונקצית תקשורת, ולא פרוטוקול ספציפי. כל שכבה יכולה להכיל מספר פרוטוקולים, שכל אחד מהם מספק שירות הממלא את הדרישות הפונקציונליות שלה. | |||||||||||||||||||||||||||||||
כל פרוטוקול מתקשר עם הפרוטוקול המקביל אליו (peer) במחשב אחר. התקשורת הזו עובדת לפי סטנדרטים קבועים, כדי להבטיח את הצלחתה. אפשר להסתכל על הפרוטוקול כעל שפה: ברור שכדי לתקשר, שני המחשבים צריכים לדבר באותה שפה. תיאורטית, כל פרוטוקול צריך להתחשב רק בפרוטוקול המקביל אליו, ולא צריך להיות מודע לפרוטוקולים בשכבות אחרות. במציאות, יש תלות מסוימת בין השכבות - כל שכבה צריכה לדעת לתקשר עם השכבה שמתחתיה ועם השכבה שמעליה, אך הן לא צריכות לדעת איך השכבות האחרות עובדות. | |||||||||||||||||||||||||||||||
צורת העבודה במודל השכבות | |||||||||||||||||||||||||||||||
השכבה העליונה, שנקראת שכבת האפליקציה, יוצרת נתונים. הנתונים מועברים למטה דרך שאר השכבות, עד שהם משודרים דרך הרשת. בקצה השני, הנתונים עוברים מהשכבה התחתונה ביותר, דרך שאר השכבות ועד לשכבת האפליקציה. | |||||||||||||||||||||||||||||||
כל שכבה מוסיפה לנתונים מידע, שמיועד לאפשר את הגעתם ליעדם בצורה רצויה (למשל - כתובת יעד). המידע מתווסף לרוב לפני הנתונים, ולכן נקרא פתיח (header). לפעמים המידע מתווסף אחרי הנתונים, ואז הוא נקרא "trailer". כל שכבה מתייחסת לכל המידע שקבלה מהשכבה שמעליה (כלומר, גם הנתונים המקוריים וגם ה- header שנוסף להם) בתור נתונים גולמיים, ומוסיפה להם את ה- header שלה. כך הנתונים "נעטפים" ע"י כל שכבה. החבילה שנשלחת לבסוף באופן פיזי ברשת - למשל, על כבל תקשורת - כוללת את ההודעה המקורית, עטופה בכמה שכבות של עטיפות - עטיפה עבור כל שכבת פרוטוקול. תהליך העטיפה של הנתונים המקוריים נקרא אנקפסולציה.
| |||||||||||||||||||||||||||||||
כאשר נתונים מתקבלים אצל מחשב היעד, התהליך ההפוך קורה. כל שכבה "מקלפת" את העטיפה שלה לפני שהיא מעבירה את הנתונים לשכבה שמעליה. תהליך זה נקראה "דה-קפסולציה". מנגנון זה מאפשר לכל שכבה במחשב השולח לתקשר ישרות עם השכבה המקבילה לה במחשב המקבל. | |||||||||||||||||||||||||||||||
לכל שכבה יש גם מבני נתונים עצמאיים משל עצמה. באופן תיאורטי, שכבה לא צריכה להיות מודעת למבני הנתונים שמשמשים את השכבות האחרות. מעשית, עם זאת, השכבות מודעות למבני הנתונים של השכבות האחרות, כדי לאפשר העברת נתונים מהירה יותר. | |||||||||||||||||||||||||||||||
כאשר אפליקציה שולחת מידע ברשת, המידע יוצא משכבת האפליקציה, שהיא השכבה העליונה, עובר דרך מודולים המיישמים את שכבות הפרוטוקולים הנמצאות מתחת לאפליקציה, לפי הסדר, ולבסוף נשלח. כאשר המידע מגיע ליעדו, הוא עובר תהליך הפוך - הטיפול הראשוני בו נעשה ע"י השכבה הנמוכה ביותר, והוא עולה דרך כל השכבות עד להגעתו לאפליקציה אליה הוא מיועד. ישנם כמה מודלים של שכבות בתקשורת. אחד המודלים הידועים ביותר הוא מודל 7 השכבות, הנקרא גם מודל ISO. במודל עליו מבוסס TCP/IP יש 5 שכבות, ואנו נתרכז בו. | |||||||||||||||||||||||||||||||
מודל השכבות של TCP/IP | |||||||||||||||||||||||||||||||
5. אפליקציה - זו השכבה העליונה במודל. אפליקציות הן תוכנות שהמשתמש מפעיל ישירות כדי לתקשר באמצעות האינטרנט. כדי שאפליקציות יוכלו לתקשר ביניהן, עליהן להחליט על הצגה אחידה של נתונים. שכבת האפליקציה אחראית על הסטנדרטיזציה של הצגת נתונים. דוגמא לאפליקציה היא דפדפן האינטרנט, שפועל עפ"י פרוטוקול HTTP. | |||||||||||||||||||||||||||||||
4. תעבורה (transport) - שכבה זו מספקת העברה של מידע מנקודת המוצא לנקודת היעד ברשת, כלומר תקשורת בין נקודות קצה. כל אפליקציה, מהשכבה שמעל, בוחרת את פרוטוקול התעבורה המתאים לה, לפי צרכיה. בהמשך לדוגמא של דפדפן האינטרנט, פרוטוקול HTTP משתמש בפרוטוקול התעבורה TCP כדי לשלוח מידע ברשת. | |||||||||||||||||||||||||||||||
3. אינטרנט
- שכבת האינטרנט מטפלת בניתוב של הודעות דרך רשת של
רשתות (internetwork). במודל TCP/IP, שכבת האינטרנט מיצוגת ע"י פרוטוקול IP.
שני סוגי מכשירים משמשים לניתוב הודעות בין רשתות: שער (gateway) - מחשב בעל שני כרטיסי רשת, שמחובר כך לשתי רשתות פיזיות ויכול להעביר חבילות מרשת אחת לשניה. · נתב (router) - מכשיר חומרה יעודי שמנתב חבילות בין רשתות לפי פרוטוקולי ניתוב שונים. (ההפרדה בין המונחים אינה קשיחה, ולפעמים משתמשים במונח "שער" לתיאור נתב ולהיפך). חבילות בשכבה זו נקראות לרוב datagrams, אך אנו נמשיך להשתמש במונח "חבילה". המידע שמוסף לנתונים ע"י שכבה זו מאפשר לנתב את החבילה, וכולל בין השאר את כתובת היעד, כתובת המקור, וערך checksum שמיועד לוודא שהנתונים לא עבור שינוי במהלך ניתובם ברשת. שכבת האינטרנט לא מספקת קישור מהמקור ועד היעד. אם קישור כזה נדרש עבור סוג התקשורת הרצוי, הוא מסופק ע"י שכבת התעבורה שמעל שכבת האינטרנט. שכבת האינטרנט גם לא מבטיחה העברה נכונה של נתונים - אם למשל מתגלה טעות בחבילה (ע"י בדיקת ערך ה-checksum), השכבה פשוט "זורקת" את החבילה, ולא מדווחת על כך למחשב השולח. שירות שמבטיח העברה נכונה של נתונים יכול להיות מסופק ע"י השכבה שמעל. | |||||||||||||||||||||||||||||||
2. ממשק הרשת
- שכבה זו מטפלת בהעברה
הפיזית של המידע. ברשת מקומית, שכבה זו מיוצגת ע"י כרטיס הרשת. זו למעשה שכבת
התוכנה הנמוכה ביותר, וכוללת את הפרוטוקולים שהמחשב משתמש בהם כדי להעביר
נתונים למחשבים אחרים המקושרים לרשת הפיזית. לפרוטוקולים בשכבה זו יש שתי
פונקציות נפרדות: |
|||||||||||||||||||||||||||||||
1. חומרה - התווך הפיזי עליו עוברת התקשורת. למשל, חוט נחושת, כבל, סיב אופטי | |||||||||||||||||||||||||||||||
|