# 4. Модель OSI ## Декомпозиция **Декомпозиция** - разбиение одной задачи на несколько задач-модулей. ![Декомпозиция|453x217](../Pictures/04_01.%20Декомпозиция.png) **Иерархическая декомпозиция** задачи предполагает: - Четкое определение функции каждого уровня - Четкое определение интерфейсов между уровнями Интерфейс определяет набор функций, которые нижележащий уровень предоставляют вышележащему. ![Иерархическая декомпозиция|415x227](../Pictures/04_02.%20Иерархическая%20декомпозиция.png) В результате иерархической декомпозиции достигается относительная независимость уровней, а значит, возможность их автономной разработки и модификации. Пример многоуровневого взаимодействия предприятий: ![Пример многоуровневого взаимодействия предприятий|374x149](../Pictures/04_03.%20Пример%20многоуровневого%20взаимодействия%20предприятий.png) **Стек коммуникационных протоколов** - иерархически организованный набор протоколов, достаточный для организации взаимодействия узлов в сети. Коммуникационные протоколы могут быть реализованы как программно, так и аппаратно. Протоколы **нижних уровней** часто реализуются комбинацией программных и аппаратных средств, а протоколы **верхних уровней** - как правило, чисто программными средствами. Программный модуль, реализующий некоторый протокол, для краткости также называют протоколом. Соотношение между протоколом, как формально определенной процедурой и протоколом - программным модулем, реализующим эту процедуру, аналогично соотношению между алгоритмом решения некоторой задачи и программой, решающей эту задачу. ## Модель OSI В начале 80-х годов ХХ века ряд международных организаций по стандартизации (ISO, ITU-T и другие) разработали модель ISO/OSI. **Модель взаимодействия открытых систем (Open System Interconnection, OSI)** - семиуровневая модель протоколов передачи данных, разработанная ISO (International Organization for Standartization) и CCITT (Consuiltative Committee for International Telephony and Telegraphy) для сопряжения различных видов вычислительного и коммуникационного оборудования различных производителей. Она определяет различные уровни взаимодействия систем в сетях с коммутацией пакетов, дает им стандартные имена и указывает, какие функции должен выполнять каждый уровень. ![Модель OSI|326x476](../Pictures/04_04.%20Модель%20OSI.png) Наряду с термином **сообщение** (message) существуют и другие термины: - Для обозначения единиц данных, с которыми имеют дело протоколы разных уровней, используется общее название **протокольный блок данных** (Protocol Data Unit, PDU) - Для обозначения блоков данных определенных уровней часто используются специальные названия: - **Кадр** (frame) - **Пакет** (packet) - **Дейтаграмма** (datagram) - **Сегмент** (segment) ## Уровни OSI **Уровни OSI** (OSI layers) - группы протоколов передачи данных, связанные между собой иерархическими отношениями. Каждый уровень обслуживает вышестоящий уровень и, в свою очередь, пользуется услугами нижестоящего. | Тип данных | Уровень | Функции | | ---------- | ------------------------ | -------------------------------------------------------- | | Данные | 7. Прикладной уровень | Доступ к сетевым службам | | Данные | 6. Уровень представления | Представление и кодирование данных | | Данные | 5. Сеансовый уровень | Управление сеансом связи | | Сегменты | 4. Транспортный | Прямая связь между конечными пунктами и надежность | | Пакеты | 3. Сетевой | Определение маршрута и логическая адресация | | Кадры | 2. Канальный | Физическая адресация | | Биты | 1. Физический уровень | Работа со средой передачи, сигналами и двоичными данными | #### Прикладной уровень Обеспечивает взаимодействие пользовательских приложений с сетью: - Позволяет приложениям использовать сетевые службы - Отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках #### Уровень представления Отвечает за преобразование протоколов и кодирование/декодирование данных: - Преобразует запрос приложений в формат для передачи по сети, а полученные из сети данные преобразует в формат, понятный приложениям - Осуществляет сжатие/распаковку или кодирование/декодирование данных, а также перенаправление запросов другому сетевому ресурсу #### Сеансовый уровень Отвечает за поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время: - Управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач - Определяет права на передачу данных и поддерживает сеанс в периоды неактивности приложений #### Транспортный уровень Предназначен для доставки данных без ошибок, потерь и дублирования. Блоки данных разделяются на фрагменты (UDP-диаграмма, TCP-сегмент), размер которых зависит от протокола: короткие объединяются в один, а длинные разбиваются. #### Сетевой уровень Предназначен для определения пути передачи данных. Отвечает за: - Трансляцию логических адресов и имен в физические - Определение кратчайших маршрутов - Коммутацию и маршрутизацию - Отслеживание неполадок и "заторов" в сети #### Канальный уровень Предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Полученные с физического уровня данные он упаковывает во фреймы, проверяет на целостность, если нужно, исправляет ошибки (посылает повторный запрос поврежденного кадра) и отправляет на сетевой уровень. #### Физический уровень Предназначен непосредственно для передачи потока данных. Осуществляет передачу электрических или оптических сигналов в кабель или другую среду и их прием и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов