עמוד השער מושגים  מודל השכבות
מודל השכבות של TCP/IP


הקדמה

מודל השכבות - הסבר כללי

צורת העבודה במודל השכבות

מודל השכבות של 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. חומרה - התווך הפיזי עליו עוברת התקשורת. למשל, חוט נחושת, כבל, סיב אופטי
אפליקציה
תעבורה
אינטרנט
ממשק רשת
חומרה