מודל ה־OSI (קיצור של: Open Systems Interconnection) הוא מודל המציג את הפעולות השונות הנדרשות על-מנת להעביר נתונים ברשת תקשורת, ואת הסדר בין הפעולות השונות. המודל מתייחס לחומרה, לתוכנה ולשידור וקליטת הנתונים, ובין השאר, מספק הסבר כללי על מרכיביה השונים של הרשת ועל תפקידי המרכיבים. המודל נוצר על ידי ארגון התקינה הבין-לאומי (iso) בצורה של מודל שכבתי בעל 7 שכבות שכל שכבה בו מבצעת חלק מסוים מהפעולות הדרושות לביצוע התקשורת.
למרות שהמודל נוצר בעבור רשתות מחשבים, הוא יכול לייצג בקלות גם שיטות תקשורת אחרות, כגון שיחות טלפון או העברת מכתבים בדואר.
עבודה משותפת בין מספר משתתפים – לדוגמה עבודה על מיזם משותף בתוך החברה. נעשה על ידי שמירת העבודה במסד נתונים משותף, בכך מתאפשר למספר משתתפים לערוך את הפרויקט ולעבוד עליו במקביל.
שימוש בתוכנה בקרב מספר משתתפים – ניתן להתקין את התוכנה על שרת משותף ובכך לאפשר למספר משתתפים להשתמש בתוכנה ממקום מרכזי אחד, במקום להתקין את התוכנה בנפרד על כל תחנת עבודה.
שימוש בתוכנות אשר מיועדות לעבודה ברשת – כגון דואר אלקטרוני. מאפשר תקשורת מהירה יותר בין חברי הרשת.
הדבר הוביל להקמתן של רשתות חדשות רבות ולהתפתחותן המואצת של הרשתות הקיימות. עם התפשטותן של הרשתות השונות החלו להתגלות בעיות תאימות, שכן רשתות רבות נבנו לפי טכנולוגיות ומפרטים בלתי־תואמים, כך שככל שהפיתוח הואץ, כך קטנה יכולתן של רשתות בבעלות ספקים שונים לתקשר ביניהן. בעקבות הקשיים, עלתה הקריאה לקביעתו של תקן משותף, לפיו יבנו הרשתות של הספקים השונים. את התקן פרסם ארגון התקינה הבין-לאומי ב־1984 כמסמך הנקרא X.200. התקן עודכן בשנת 1994, וזוהי המהדורה שבתוקף כיום.
המבנה
מודל ה-OSI מורכב משבע שכבות. התפקיד של כל שכבה הוא לטפל בנתונים שנוצרו על ידי השכבה הקודמת (והשכבות שלפניה), על מנת שיהיה ניתן להעביר אותם לצד השני של ההתקשרות. הטיפול בכל שכבה כולל ניתוח וסיווג הנתונים שהוסיפה השכבה הקודמת, והוספת נתונים טכניים חדשים, אשר יסייעו לשכבה הבאה להמשיך לטפל בהעברת הנתונים אל היעד. לאחר שהנתונים הגיעו לצד השני, יש צורך לפענח את התוספות של השכבות הקודמות על מנת להגיע חזרה למידע המקורי. על מנת ששני הצדדים יוכלו לתקשר ביניהם – הם עובדים בדרך כלל על פי פרוטוקול מוסכם.
משפט באנגלית המקל על זכירת השכבות הוא:
All People Seem To Need Data Processing,
או מהכיוון השני: Please Do Not Touch Steve's Pet Alligator.
תהליך העברת נתונים מצד לצד
שלבי תהליך העברת מכתב בדואר מפורטים על פי מודל ה-OSI, נגד כיוון השעון
המשתמש מפעיל תוכנה (לדוגמה מקיש שם של אתר אינטרנט בשורת הכתובות בדפדפן), שמודול התקשורת שלה מהווה את שכבת היישום.
שכבת היישום מורידה את הנתונים לשכבת הייצוג – שקובעת את שיטת יצוג הנתונים, לעיתים דוחסת אותם ולעיתים מקודדת אותם. לדוגמה, שכבה זו מקודדת את כתובת האתר שהוקלדה בדפדפן האינטרנט בקידוד ASCII. כמו כן, שכבה זו מבצעת הצפנה של הנתונים, לדוגמה בעזרת פרוטוקול TLS.
שכבת הייצוג מעבירה את הייצוג של פעולת המשתמש לשכבת השיחה, שכבת השיחה קובעת מתי ניתן לפנות בבקשה לשכבות התחתונות לצורך העברת הנתונים הלאה. בדוגמת שם אתר בדפדפן, יפעל ברמה זו שירות ה-DNS, אשר יתרגם את שם האתר לכתובת בשכבת הרשת.
מכאן מועברים הנתונים לשכבת התעבורה, השכבה שולחת את הנתונים על פי פרוטוקול השיחה. השכבה אחראית על יצור שיחה (לחיצת יד).
שכבת הרשת אחראית על הדרך שהנתונים יעברו עד להגעתם ליעד. את היעד היא מקבלת מהשכבות העליונות. בדוגמה של פנייה לשרת DNS שכבת הרשת תייצר הודעה שיעדה הוא שרת ה-DNS.
שכבת הקו אחראית להעביר את אוסף הסיביות שהתקבלו משכבת הרשת אל הנקודה הבאה בדרכו של הנתונים ליעדו. השכבה תעביר לשכבה הפיזית סיביות שיגרמו לנתונים להיקרא על ידי צומת התקשורת הבא בדרך לשרת.
השכבה הפיזית מתרגמת את הסיביות לאותות תקשורת פיזיים, למשל מתחים חשמליים או אותות אופטיים, ומשדרת את הנתונים על קו מוגדר.
בצד הקולט, כל הפעולות מתבצעות בכיוון השני:
השכבה הפיזית קולטת את אותות התקשורת, מתרגמת אותם לביטים ומעבירה אותם לשכבת הקו.
שכבת הקו מפענחת את חלק ההודעה שהוא "הכתובת" הזמנית שבין נקודה לנקודה, אם הכתובת היא הצומת הזה – ההודעה עוברת לשכבת הרשת.
שכבת הרשת מפענחת את המשך ההודעה. אם ההודעה היא לפעולת הצומת הזה – ההודעה עוברת הלאה לשכבת התעבורה. אם ההודעה רק צריכה לעבור בצומת הזה – ההודעה חוזרת ומשודרת לכיוון היעד האמיתי שלה.
שכבת התעבורה בודקת האם זו ההודעה שציפו לה ברצף השיחה עם הצד השני. אם כן – ההודעה עולה לשכבת השיחה. אם לא – נשלחת בקשה לשידור חוזר לשכבת הרשת.
שכבת השיחה מסנכרנת את ההודעה עם האפליקציות שמעליה.
שכבת הייצוג פורסת דחיסה ומפענחת קידוד ומעבירה לשכבת היישום נתונים בצורה בה היישום דורש.
שכבת היישום מעבירה לשאר היישום את הנתונים, והם מוצגים כאתר האינטרנט המבוקש.
נתונים שעוברים ברשת עוברים תהליך של עטיפה (encapsulation), בצד השולח כל שכבה מוסיפה נתוני בקרה שונים לנתונים המועברים, ובצד המקבל נתונים אלו מוסרים, שלב אחר שלב. במהלך שלבי העטיפה נהוג לכנות את הנתונים בשלבים שונים:
בשלוש השכבות העליונות הפרוטוקולים השונים מוסיפים פתיח ו/או סוגר לנתונים, והם מכונים "רצף נתונים" (data stream).
בשכבת התעבורה הנתונים מחולקים למקטעים (segments) כדי שאפשר יהיה לבצע בקרה על ההעברה שלהם ברשת.
בשכבת הרשת כל מקטע מחולק לחבילות (packets) ולכל חבילה מוצמדת הכתובת הלוגית של היעד.
בשכבת הקו (data link) לכל חבילה מוצמדת הכתובת הפיזית של היעד, והחבילות מכונות מסגרות (frames).
השכבה הפיזית עוסקת רק בייצוג הבינארי של המסגרות, ולכן מכונים – רצף בינארי (binary stream).