Конспект ИБ | Сетевые модели OSI и TCP/IP
Сетевая модель — теоретическое описание принципов работы набора сетевых протоколов, взаимодействующих друг с другом. Модель обычно делится на уровни. Уровни взаимодействуют только с соседними уровнями.
Сетевая модель OSI — эталонная, теоретическая модель работы сети. Модель определяет 7 различных уровней взаимодействия систем.
Сетевая модель TCP/IP также описана уровнями, но включает в себя не 7, а 4 уровня, но описывает те же самые процессы, но с позиции их практической реализации.
Важно: Модель OSI теоретическая, т.е. реальные сети по ней не создаются, соответственно, нет протоколов, которые бы соответствовали уровням этой модели. В интернетах можно наткнуться вот на такие картинки, но это всё ложь и провокация.
Основная проблема, конечно, в уровнях 5-7, которые в реально существующей модели TCP/IP объединены в один общий уровень. Попытка натянуть реальные протоколы на модель OSI заставляет нас "разрывать" единый протокол на искусственные куски, соответствующие разным уровням, а какие-то функции протокола и вовсе проигнорировать.
Возьмём, например, HTTPS. Это не вполне единый протокол, а комбинация двух протоколов: HTTP и SSL (который на самом деле TLS, но об этом позже). Когда браузер работает с HTTPS, стек TCP/IP видит это как единый поток операций прикладного уровня, который сам обеспечивает себе и безопасность, и передачу данных приложения. Разделить эту работу на сеанс, представление и приложение технически невозможно.
Рассмотрим и упомянутый на схеме RPC. Задача RPC — сделать вызов функции на удалённой машине выглядящим для пользователя как локальный вызов. Для этого единый процесс RPC должен одновременно:
Сформировать и отправить структурированное сообщение-запрос (сериализация данных, функция уровня 7 — прикладного).
Управлять сетевым диалогом: обеспечить, чтобы на один запрос пришёл один ответ, обработать таймауты, возможно, обеспечить идемпотентность (повторную безопасную отправку) — это классические задачи уровня 5 (сеансового).
Преобразовать данные (сериализовать/десериализовать сложные структуры в поток байт и обратно) — это функция уровня 6 (представительского).
Вот и получается, что определять реальные протоколы в теоретическую модель — это весьма грубое упрощение, которое вроде как призвано, чтобы упростить понимание, но на деле только путает и порождает лишние вопросы.
Уровни модели TCP/IP
4. Прикладной (application)
Функция:
Обеспечение работы приложений: предоставление им доступа к сетевым ресурсам
Кодирование, сжатие и шифрование информации
Установление, поддержание и закрытие сеанса
Сеанс/сессия представляет собой временное соединение между двумя устройствами, которое позволяет им обмениваться данными в рамках конкретной задачи или операции.
Примеры типов соединений
Симплексное соединение:
Предусматривает одностороннюю передачу данных, без отправки ответных сообщений.
Пример: отправка информации от различных датчиков (температуры, давления, дыма и т.п.).Полудуплексное соединение:
Предусматривает двусторонний обмен данными, но данные в текущий момент времени могут передаваться только в одну сторону. Поэтому доступ к каналу связи должен быть разграничен по какому-либо принципу.
Пример: голосовая радиосвязь, когда один из участников только говорит, а другой только слушает. После окончания реплики первого участника, очередь предоставляется второму и т.д.
Полный дуплекс:
Предусматривает установление двух независимых каналов связи между участниками обмена. Это позволяет вести прием и передачу информации одновременно.
Пример: телефонная связь, которая позволяет говорить и слушать
3. Транспортный (transport)
Функция: Отвечает за предоставление надежной и эффективной передачи данных между узлами сети. Транспортный уровень служит связующим звеном между нижними уровнями, которые занимаются физической передачей данных, и верхними уровнями, которые обеспечивают работу приложений (порты).
Транспортный уровень позволяет нескольким приложениям использовать один и тот же сетевой канал, назначая каждому приложению уникальный порт. Это называется мультиплексированием. Принимающая сторона потом разберёт разные потоки данных из одного канала, т.е. займётся демультиплексированием.
Каждый порт идентифицирует конкретное приложение или процесс, что позволяет транспортному уровню направлять данные нужному приложению. Под портом понимается не физическая сущность, а, скорее параметр для получения и передачи данных. Как адрес на конверте. Получатель — это протокол, по которому общается наше приложение, а адрес, где этого получателя искать — это порт. Как правило конкретный порт зарезервирован под конкретный протокол, но бывает и так, что порты назначаются произвольно и динамического диапазона, как, например, в FTP.
2. Сетевой (network)
Функция:
Маршрутизация: определение оптимальных путей для передачи данных между сетями.
Логическая адресация: присвоение и управление IP-адресами (трансляция логических адресов (IP) и имён в физические(mac-адрес)).
Фрагментация: разделение больших пакетов данных на меньшие фрагменты для передачи.
Перенаправление: обеспечение передачи данных через промежуточные узлы.
1. Канальный (data link)
Функция: Обеспечение надежной передачи данных через физический канал. Включает задачи по обнаружению и исправлению ошибок, а также управление доступом к среде передачи, а также непосредственно передача данных по физическим носителям: по кабелю, оптоволокну, USB и тд.
Инкапсуляция и деинкапсуляция
Когда передающая сторона готовит данные к передаче – это процесс инкапсуляции данных, и наоборот, когда принимающая сторона начинает обрабатывать входящую последовательность бит и формировать из нее сообщения – это процесс декапсуляции.
На каждом уровне к имеющимся данным добавляется заголовок и при необходимости к данным может быть добавлена метка конца. Заголовки содержат служебную информацию, которая помогает устройствам компьютерной сети определить: кому принадлежит данное сообщение, куда его дальше отправить, не повредилось ли сообщение, какое сообщение в полученной последовательности является первым, а какое вторым и многое другое.
