З метою формалізації процесу взаємодії відкритих систем OSI (Open System Interconnection) Міжнародна організація по стандартизації (International Organization for Standardization, ISO) розробила для стандартизованої мережі модель, яка замінила б TCP / IP, DECNet і інші протоколи як основний мережевий протокол, що використовується в Інтернеті . Однак через складність протоколу OSI створені і впроваджені в експлуатацію лише деякі реалізації. TCP / IP був набагато простіше, і тому він широко використовується і зараз. Але багато нових ідей протоколу OSI можна виявити в IPv6, наступної версії IP.
Хоча протокол OSI не отримав широкого поширення, семиуровневая модель OSI мала величезний успіх, і вона тепер використовується як довідкова модель, щоб описати різні мережеві протоколи і їх функціональні можливості.
Рівні моделі OSI виділяють основні завдання, які повинні виконуватися мережевими протоколами, і описують взаємодію мережевих додатків. У кожного рівня є особливе призначення, і кожен рівень пов'язаний з рівнями, що знаходяться безпосередньо вище і нижче його. OSI визначає наступні сім рівнів:
Прикладний рівень визначає для призначених для користувача додатків програмний інтерфейс з мережею.
Представницький рівень відповідає за кодування даних, отриманих від прикладного рівня, в уявлення, готове до передачі по мережі, і навпаки.
Сеансовий рівень створює віртуальне з'єднання між додатками.
Транспортний рівень уможливлює надійний обмін даними.
Фізичний рівень включає з'єднувачі, кабелі і т. Д.
На наступному малюнку показано зв'язок між двома машинами. Тут можна побачити, як дані опускаються по стеку протоколів (protocol stack) на відправника і піднімаються по ньому на одержувача. Повідомлення, відправлене додатком першої машини, що містить букву D. Прикладний рівень (рівень 7) приєднує до повідомлення заголовок (названий на малюнку Н7) і передає повідомлення представницькому рівню (рівень 6), який спочатку додає до повідомлення Н6, а потім передає його сеансовому рівню (рівень 5). Це продовжується до тих пір, поки сполучення з усіма його заголовками не досягне фізичного рівня (рівень 1) і не буде передано одержувачу. На стороні, що одержує кожен рівень виконує всю необхідну обробку і, видаливши відповідний заголовок, передає повідомлення вгору на наступний рівень. Зрештою додаток-одержувач отримує доступ до вихідних даних, відправленим додатком першого комп'ютера:
Тепер, коли нам стала зрозуміла концепція семи рівнів, ми можемо розглянути функціональність кожного рівня більш докладно. Почнемо з самого низу і будемо просуватися вгору.
Фізичний рівень містить фізичну середу, в тому числі вимоги до кабелів, з'єднувачі, специфікації інтерфейсів, специфікації концентраторів, повторювачів і т. Д. На цьому рівні точно визначається, який фізичний сигнал буде використовуватися для посилки "1", а який представлятиме "0 ".
Інші обов'язки канального рівня складаються у відправці і отриманні повідомлень і виявленні помилок. У Ethernet також потрібно виявляти конфлікти, що ми вже обговорювали.
Транспортний рівень різниться в залежності від того, чи ми використаємо надійну або ненадійну зв'язок. При надійного зв'язку, якщо повідомлення було відправлено, але не було коректно отримано, виробляється помилка, в той час як при ненадійною зв'язку повідомлення відправляється, але ніякої перевірки, чи було воно взагалі отримано, не виконується. При надійного зв'язку транспортний рівень відповідає за відправку підтверджень на пакети даних, що дозволяє повторно передавати повідомлення в разі спотворення або втрати даних, бракувати дублюючі повідомлення і т. Д.
Мережева зв'язок на транспортному рівні може також відрізнятися в залежності від того, чи орієнтована вона на з'єднання, або з'єднання відсутні:
При зв'язку, орієнтованої на з'єднання, до надсилання та отримання хочу з'єднатися.
При зв'язку без з'єднань встановлювати окремі сполуки необов'язково і повідомлення відправляються негайно.
Протокол TCP використовує орієнтований на з'єднання механізм зв'язку, в той час як в UDP (User Datagram Protocol) використовується механізм зв'язку без організації з'єднань. Орієнтована на з'єднання зв'язок є надійною, оскільки в цьому випадку відправляються підтвердження і повідомлення надсилаються повторно, якщо дані не отримані або з якої-небудь причини вони були спотворені.
Зв'язок без встановлення з'єднань може бути корисна при широкомовної передачі, коли повідомлення відправляються декільком вузлам. У цьому випадку доставка повідомлення не гарантується. Якщо необхідний надійний обмін повідомленнями, надійність може забезпечити протокол більш високого рівня, підключений поверх механізму без встановлення з'єднання.
Ці функціональні можливості ми порівнюємо з можливостями, які надають сеансу об'єкти ASP.NET. Сеансові об'єкти існують, поки сеанс не закінчиться по тайм-ауту (зазвичай через 20 хвилин), незалежно від ТСР-з'єднань нижчого рівня.
Представницький рівень використовується для форматування даних відповідно до вимог додатків. На цьому рівні зазвичай виконуються шифрування, дешифрування і стиснення.