История

На заре становления глобальной сети, а конкретнее в 70-х годах прошлого века, разработка технологий и протоколов сетевого взаимодействия была уделом государственных институтов и корпораций, использовавших собственные проприетарные стандарты. Другими словами, царили полный разврат и вакханалия. К счастью, достаточно быстро пришло понимание, что так не годится, и нужны способы «подружить» несовместимые на разных уровнях протоколы. И начиная с 1977 года Международная организация по стандартизации (ИСО) начала кампанию по разработке общих стандартов сетевого взаимодействия.

Модель OSI (the Open Systems Interconnection model), модель взаимодействия открытых систем) была впервые представлена в начальном виде в Вашингтоне, D.C., в 1978 году Хьюбертом Циммерманом, а проект стандарта был опубликован ИСО в 1980 году.

Структура модели

Концепция семислойной модели описывает следующие уровни взаимодействия:

  1. Физический (Physical);
  2. Канальный (Data Link);
  3. Сетевой (Network);
  4. Транспортный (Transport);
  5. Сеансовый (Session);
  6. Презентационный (Presentation);
  7. Прикладной (Application).

Для запоминания

  • A Penguin Said that Nobody Drinks Pepsi
  • Фазан Купил Сосиску Теперь Сосет ПиПиську

Уровни

7. Прикладной уровень

Прикладной уровень (Application layer), уровень приложений) - верхний уровень модели, обеспечивающий взаимодействие пользовательских приложений с сетью.

  • Примеры: HTTP, telnet, FTP.

6. Презентационный уровень

Уровень предоставления, предъявления (Presentation layer) - обеспечивает преобразование протоколов и кодирование/декодирование данных.

Уже становится интереснее. Например, у нас есть запрос от приложения с прикладного уровня, и его надо передать дальше по сети. Что будем делать? Тут нам и поможет уровень представления, который обычно представляет собой промежуточный протокол для преобразования информации из соседних уровней. На нём запросы преобразуются в формат для передачи по сети, а полученные из сети данные преобразуются в формат приложений. Это позволяет осуществлять обмен между приложениями на разнородных компьютерных системах прозрачно для приложений. Уровень представлений обеспечивает форматирование и преобразование кода, которое используется для того, чтобы гарантировать приложению поступление информации для обработки, которая имела бы для него смысл. Стандарты уровня представлений также определяют способы представления графических изображений.

  • Примеры: ASCII, TIFF, JPEG, GIF, ESBCDIC, PICT, MPEG, MIDI.

5. Сеансовый уровень

Сеансовый уровень (Session layer) - обеспечивает поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений.

  • Примеры: NetBIOS, RPC, SQL.

4. Транспортный уровень

Транспортный уровень (Transport layer) - предназначен для обеспечения надёжной передачи данных от отправителя к получателю. Уровень надёжности может варьироваться в широких пределах. Существует множество классов протоколов транспортного уровня, начиная от протоколов, предоставляющих только основные транспортные функции (например, функции передачи данных без подтверждения приёма), и заканчивая протоколами, которые гарантируют доставку в пункт назначения нескольких пакетов данных в надлежащей последовательности.

UDP (ограничивается контролем целостности данных в рамках одной датаграммы и не исключает возможности потери или дублирования пакета пакетов)

TCP (обеспечивает надёжную непрерывную передачу данных, исключающую потерю данных или нарушение порядка их поступления или дублирования).

3. Сетевой уровень

Сетевой уровень (Network layer) - предназначен для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию. Протоколы сетевого уровня маршрутизируют данные от источника к получателю.

  • Примеры: IPv4, IPv6.

2. Канальный уровень

Канальный уровень (Data Link layer) - предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля ошибок, которые могут возникнуть. Полученные с физического уровня биты, он упаковывает в кадры, проверяет их на целостность и, если нужно, исправляет ошибки (формирует повторный запрос повреждённого кадра) и отправляет на сетевой уровень.

  • Примеры: 802.11, ARP, Ethernet, VLAN.

1. Физический уровень

Физический уровень (Physical layer) - нижний уровень модели, который определяет метод передачи данных, представленных в двоичном виде, от одного устройства к другому. Осуществляют передачу электрических или оптических сигналов в кабель или в радиоэфир и, соответственно, их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов. На этом уровне также работают концентраторы, повторители сигнала и медиа конвертеры.

Физический уровень определяет такие виды сред передачи данных как оптоволокно, витая пара, коаксиальный кабель, радиоканал и т.д.

  • Примеры: RS-232, RS-485, RJ-45, WiFi.

Визуальное представление инкапсуляции модели OSI