Модель OSI
История
На заре становления глобальной сети, а конкретнее в 70-х годах прошлого века, разработка технологий и протоколов сетевого взаимодействия была уделом государственных институтов и корпораций, использовавших собственные проприетарные стандарты. Другими словами, царили полный разврат и вакханалия. К счастью, достаточно быстро пришло понимание, что так не годится, и нужны способы «подружить» несовместимые на разных уровнях протоколы. И начиная с 1977 года Международная организация по стандартизации (ИСО) начала кампанию по разработке общих стандартов сетевого взаимодействия.
Модель OSI (the Open Systems Interconnection model), модель взаимодействия открытых систем) была впервые представлена в начальном виде в Вашингтоне, D.C., в 1978 году Хьюбертом Циммерманом, а проект стандарта был опубликован ИСО в 1980 году.
Структура модели
Концепция семислойной модели описывает следующие уровни взаимодействия:
- Физический (Physical);
- Канальный (Data Link);
- Сетевой (Network);
- Транспортный (Transport);
- Сеансовый (Session);
- Презентационный (Presentation);
- Прикладной (Application).
Уровни
Прикладной уровень
Прикладной уровень (Application layer), уровень приложений) - верхний уровень модели, обеспечивающий взаимодействие пользовательских приложений с сетью.
Презентационный уровень
Уровень предоставления, предъявления (Presentation layer) - обеспечивает преобразование протоколов и кодирование/декодирование данных.
Уже становится интереснее. Например, у нас есть запрос от приложения с прикладного уровня, и его надо передать дальше по сети. Что будем делать? Тут нам и поможет уровень представления, который обычно представляет собой промежуточный протокол для преобразования информации из соседних уровней. На нём запросы преобразуются в формат для передачи по сети, а полученные из сети данные преобразуются в формат приложений. Это позволяет осуществлять обмен между приложениями на разнородных компьютерных системах прозрачно для приложений. Уровень представлений обеспечивает форматирование и преобразование кода, которое используется для того, чтобы гарантировать приложению поступление информации для обработки, которая имела бы для него смысл. Стандарты уровня представлений также определяют способы представления графических изображений.
ASCII, TIFF, JPEG, GIF, ESBCDIC, PICT, JPEG, MPEG, MIDI
Сеансовый уровень
Сеансовый уровень (Session layer) - обеспечивает поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений.
Транспортный уровень
Транспортный уровень (Transport layer) - предназначен для обеспечения надёжной передачи данных от отправителя к получателю. Уровень надёжности может варьироваться в широких пределах. Существует множество классов протоколов транспортного уровня, начиная от протоколов, предоставляющих только основные транспортные функции (например, функции передачи данных без подтверждения приёма), и заканчивая протоколами, которые гарантируют доставку в пункт назначения нескольких пакетов данных в надлежащей последовательности.
UDP (ограничивается контролем целостности данных в рамках одной датаграммы и не исключает возможности потери или дублирования пакета пакетов)
TCP (обеспечивает надёжную непрерывную передачу данных, исключающую потерю данных или нарушение порядка их поступления или дублирования).
Сетевой уровень
Сетевой уровень (Network layer) - предназначен для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию. Протоколы сетевого уровня маршрутизируют данные от источника к получателю.
Канальный уровень
Канальный уровень (Data Link layer) - предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля ошибок, которые могут возникнуть. Полученные с физического уровня биты, он упаковывает в кадры, проверяет их на целостность и, если нужно, исправляет ошибки (формирует повторный запрос повреждённого кадра) и отправляет на сетевой уровень.
Физический уровень
Физический уровень (Physical layer) - нижний уровень модели, который определяет метод передачи данных, представленных в двоичном виде, от одного устройства к другому. Осуществляют передачу электрических или оптических сигналов в кабель или в радиоэфир и, соответственно, их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов. На этом уровне также работают концентраторы, повторители сигнала и медиа конвертеры.
Физический уровень определяет такие виды сред передачи данных как оптоволокно, витая пара, коаксиальный кабель, радиоканал и т.д.