OSI
OSI (Open Systems Interconnection) - это модель сетевой архитектуры, которая описывает, как компьютерные системы могут взаимодействовать и обмениваться данными в сетях.
Информация
Открытая система - система построенная в соответствии с открытыми спецификациями.
Важно заметить, что OSI не указывает какие протоколы должны быть использованы. Она просто описывает как система будет обрабатывать запросы.
OSI
Общее описание уровней в OSI
  1. Физический уровень (Physical Layer): Этот уровень отвечает за передачу битов по физической среде передачи, такой как провода, оптоволокно или радиоволны. На этом уровне определяются характеристики электрических, оптических или радиочастотных сигналов.
  2. Канальный уровень (Data Link Layer): Этот уровень обрабатывает физические адреса (MAC-адреса) устройств в сети и осуществляет надежную передачу данных между прямо-соединенными устройствами. Он также обеспечивает обнаружение и исправление ошибок передачи данных.
  3. Сетевой уровень (Network Layer): На этом уровне пакеты данных направляются от отправителя к получателю через сеть. Здесь используются IP-адреса, и основная функция состоит в управлении маршрутизацией данных и определении наилучшего пути для доставки пакета.
  4. Транспортный уровень (Transport Layer): Этот уровень обеспечивает доставку данных между конечными приложениями на устройствах. Здесь происходит сегментация данных, установление соединений, управление потоком и обеспечение надежной доставки.
  5. Сеансовый уровень (Session Layer): Сеансовый уровень отвечает за установление, поддержание и завершение сеанса связи между двумя устройствами. Он управляет диалогом между приложениями, контролирует синхронизацию и обеспечивает восстановление соединения в случае сбоев.
  6. Представительский уровень (Presentation Layer): На этом уровне данные преобразуются из сетевого формата в формат, понятный приложениям. Он отвечает за кодирование, сжатие, шифрование и форматирование данных для обеспечения совместимости и безопасности.
  7. Прикладной уровень (Application Layer): Этот уровень предоставляет интерфейс для взаимодействия с конечными приложениями. Здесь работают приложения, такие как веб-браузеры, электронная почта, файловые протоколы и другие прикладные программы.
Эти семь уровней модели OSI образуют структуру для передачи данных в сети, каждый из которых выполняет свои функции, с тем чтобы обеспечить эффективную, надежную и безопасную коммуникацию.
Физический уровень
Физический уровень (Physical Layer) в модели OSI является самым низким уровнем и отвечает за передачу сырых битов данных по физической среде передачи. Он определяет способы передачи данных через различные физические среды, такие как провода, оптоволокно или радиоволны.
Этот слой занимается обработкой сигналов из проводов, соединениями в разъемах, изменением сигнала и кодированием битов. В основном, это уровень, который отвечает за физическую передачу сигнала. Это наименее абстрактный уровень.
На физическом уровне определяются следующие аспекты:
  1. Электрические и оптические характеристики: Физический уровень определяет электрические и оптические характеристики передаваемого сигнала. Например, для передачи данных по медным проводам используются электрические сигналы, а для передачи данных по оптоволокну используются световые сигналы.
  2. Физические интерфейсы: Физический уровень определяет физические интерфейсы, которые определяют взаимодействие между сетевыми устройствами и физической средой передачи. Например, сетевая карта на компьютере может иметь Ethernet-порт для подключения к сети посредством Ethernet-кабеля.
  3. Кодирование сигнала: Физический уровень определяет способы кодирования сигнала для представления данных в виде электрических или оптических импульсов. Кодирование может включать преобразование данных в последовательности битов или использование модуляции для передачи информации.
  4. Синхронизация: Физический уровень обеспечивает синхронизацию между передатчиком и приемником данных. Это гарантирует, что данные могут быть правильно интерпретированы и получены на другом конце связи.
  5. Физическая топология: Физический уровень определяет физическую топологию сети, то есть способ, которым устройства связаны друг с другом. Это может быть звездообразная, шина, кольцевая топология и т.д.
  6. Механизмы передачи данных: Физический уровень также определяет способы передачи данных, такие как параллельная или последовательная передача, полудуплексная или полнодуплексная коммуникация.
Информация
Один из популярных протоколов, который используется на данном уровне является Ethernet.
Физический уровень отвечает за непосредственную передачу битов данных, без учета их смысла или содержания. Он обеспечивает физическую основу для работы всех вышележащих уровней модели OSI и является важным компонентом взаимодействия в сети.
Канальный уровень
Канальный уровень (Data Link Layer) в модели OSI находится непосредственно над физическим уровнем и предоставляет надежную передачу данных между прямо соединенными устройствами в сети. Он гарантирует, что данные, переданные по физическому уровню, достигают адресата без ошибок.
Канальный уровень выполняет следующие задачи:
  1. Формирование кадров (Фрейминг): Канальный уровень разделяет поток битов данных, полученных от физического уровня, на кадры. Кадр представляет собой логическую единицу данных, которая включает в себя полезную информацию и управляющие поля, такие как заголовок и проверочную сумму.
  2. Физический доступ к среде (MAC-адресация): Канальный уровень использует физические адреса, известные как MAC-адреса (Media Access Control), чтобы идентифицировать устройства в сети. Он обеспечивает уникальность адресов и контролирует доступ к общей среде передачи данных.
  3. Управление ошибками: Канальный уровень обнаруживает и исправляет ошибки, возникающие в процессе передачи данных по физической среде. Для этого используются различные методы, такие как проверка четности, контрольная сумма или коды исправления ошибок.
  4. Контроль потока: Канальный уровень контролирует поток передаваемых данных между отправителем и получателем. Он гарантирует, что получатель может принять и обработать данные соответствующим темпом, чтобы избежать потери или переполнения буфера.
  5. Разделение и сборка данных: Канальный уровень позволяет объединять несколько кадров данных в один пакет для более эффективной передачи по сети. Также он выполняет обратную операцию, разбирая пакеты на отдельные кадры при получении.
  6. Управление доступом к среде передачи данных: Канальный уровень регулирует доступ к общей среде передачи данных, если сеть использует среду с общим доступом, например, шинную топологию. Это позволяет разным устройствам передавать данные в определенном порядке и с минимальными конфликтами.
Информация
К слову, MAC-адрес используется для того чтобы идентифицировать устройство в локальной сети. Сам MAC-адрес "зашит" в сетевую карту, поменять его можно только с помощью специального софта.
Канальный уровень играет важную роль в обеспечении надежной и эффективной передачи данных между непосредственно соединенными устройствами в сети. Он служит мостом между физическим и сетевым уровнями, обеспечивая управление ошибками, контроль потока и другие важные функции передачи данных.
Сетевой уровень
Сетевой уровень (Network Layer) в модели OSI находится над канальным уровнем и отвечает за управление маршрутизацией данных и определение наилучшего пути для доставки пакетов от отправителя к получателю через сеть.
Сетевой уровень выполняет следующие задачи:
  1. Маршрутизация: Сетевой уровень определяет путь, который должен пройти пакет данных от отправителя к получателю. Он использует различные алгоритмы маршрутизации, такие как протоколы маршрутизации, чтобы принимать решения о выборе оптимального пути на основе различных факторов, включая пропускную способность, задержку, стоимость и загруженность сети.
  2. Фрагментация и сборка пакетов: Если размер данных превышает максимальный размер пакета, определенный на физическом или канальном уровнях, сетевой уровень разбивает их на более мелкие фрагменты (фрагментация). При получении эти фрагменты собираются обратно в исходные пакеты (сборка).
  3. Управление трафиком: Сетевой уровень может выполнять функции управления трафиком, например, контролировать скорость передачи данных или устанавливать приоритеты для различных типов трафика.
  4. Логическая адресация: Для идентификации устройств в сети на сетевом уровне используются логические адреса, такие как IP-адреса. Эти адреса позволяют идентифицировать отправителя и получателя пакета данных.
  5. Фрагментация и сборка пакетов: Если размер данных превышает максимальный размер пакета, определенный на физическом или канальном уровнях, сетевой уровень разбивает их на более мелкие фрагменты (фрагментация). При получении эти фрагменты собираются обратно в исходные пакеты (сборка).
  6. Управление трафиком: Сетевой уровень может выполнять функции управления трафиком, например, контролировать скорость передачи данных или устанавливать приоритеты для различных типов трафика.
  7. Логическая адресация: Для идентификации устройств в сети на сетевом уровне используются логические адреса, такие как IP-адреса. Эти адреса позволяют идентифицировать отправителя и получателя пакета данных.
Информация
Как уже можно было понять сетевой уровень отвечает за роутинг пакетов. В отличие от канального уровня - сетевой уровень оперирует пакетами, а не фреймами. В пакетах для получения адресата и адресанта используется IP-адрес, а не MAC-адрес. IP-адрес генерируется исходя из MAC-адреса с помощью протокола ARP (address resolution protocol).
Транспортный уровень
Транспортный уровень (Transport Layer) в модели OSI находится над сетевым уровнем и обеспечивает надежную передачу данных между приложениями, работающими на узлах сети. Он предоставляет механизмы для сегментации данных, управления потоком и обеспечения надежности доставки.
Транспортный уровень выполняет следующие задачи:
  1. Сегментация и сборка данных: Транспортный уровень разбивает данные, полученные от приложений, на более мелкие блоки данных, называемые сегментами или пакетами. Это делается для эффективной передачи данных через сеть и управления потоком.
  2. Установление и управление соединениями: Некоторые протоколы транспортного уровня, такие как TCP (Transmission Control Protocol), обеспечивают установление и управление соединением между отправителем и получателем данных. Это позволяет надежно передавать данные с обратной связью о доставке и контролировать поток данных между узлами.
  3. Контроль надежности: Транспортный уровень гарантирует надежность доставки данных, обнаруживая и исправляя ошибки, возникающие в процессе передачи. Протоколы, такие как TCP, используют подтверждения и повторную передачу данных для гарантии доставки данных без потерь и в правильном порядке.
  4. Управление потоком: Транспортный уровень контролирует поток передаваемых данных между отправителем и получателем, чтобы избежать перегрузки получателя или потери данных. Он использует различные механизмы, такие как оконные размеры и подтверждения, чтобы регулировать скорость передачи данных.
  5. Мультиплексирование: Транспортный уровень позволяет нескольким приложениям использовать одно сетевое соединение одновременно. Он использует порты, чтобы идентифицировать конкретные приложения на узле, и мультиплексирует их данные для передачи через общее соединение.
Примерами протоколов транспортного уровня являются TCP и UDP (User Datagram Protocol). TCP обеспечивает надежную доставку данных с установлением соединения и подтверждениями, тогда как UDP предоставляет более простой и безусловный способ передачи данных без обратной связи о доставке.
Сеансовый уровень
Сеансовый уровень (Session Layer) в модели OSI находится над транспортным уровнем и предоставляет механизмы для установления, управления и завершения сеансов связи между приложениями на разных узлах сети. Он обеспечивает логическую связь между приложениями, позволяет управлять потоком данных и обеспечивает восстановление сеансов в случае сбоев.
Сеансовый уровень выполняет следующие задачи:
  1. Установление, управление и завершение сеансов: Сеансовый уровень позволяет приложениям на разных узлах устанавливать, управлять и завершать сеансы связи. Он определяет, когда и как начинать и заканчивать сеансы между приложениями, а также управляет их продолжительностью и последовательностью.
  2. Синхронизация: Сеансовый уровень обеспечивает синхронизацию данных и действий между приложениями в рамках сеанса связи. Он позволяет приложениям согласовывать свои действия, устанавливать точки синхронизации и обеспечивать согласованность данных.
  3. Управление диалогом: Сеансовый уровень позволяет приложениям устанавливать и управлять диалогом между собой. Он определяет правила и протоколы для обмена сообщениями и управления потоком данных в рамках диалога.
  4. Управление безопасностью сеанса: Сеансовый уровень обеспечивает механизмы для аутентификации и защиты сеансов связи. Он может включать функции шифрования, проверки подлинности и управления доступом, чтобы обеспечить безопасность передаваемых данных.
  5. Управление восстановлением сеансов: В случае сбоев или прерывания связи, сеансовый уровень позволяет восстановить прерванные сеансы и продолжить обмен данными с той же точки, где они были прерваны. Он обеспечивает механизмы для сохранения состояния сеанса и восстановления его при необходимости.
Сеансовый уровень облегчает управление коммуникацией между приложениями, предоставляя надежную, синхронизированную и безопасную среду для передачи данных. Однако в современных сетевых протоколах этот уровень не всегда реализуется отдельно, и его функции могут быть встроены в транспортный или прикладной уровни.
Информация
Хорошим примером является звонок в Discord. Покуда мы разговариваем с кем-то, два и более хоста используют одну сессию.
Уровень представления
Уровень представления (Presentation Layer) в модели OSI находится над сеансовым уровнем и отвечает за представление данных, обеспечивая их совместимость между различными системами. Он выполняет функции преобразования, шифрования, сжатия и форматирования данных, чтобы обеспечить их понимание и интерпретацию приложениями на разных узлах сети.
Представительский уровень выполняет следующие задачи:
  1. Кодирование и сжатие данных: Представительский уровень может выполнять кодирование данных в специальные форматы, чтобы обеспечить их совместимость между различными системами. Он также может применять методы сжатия данных для уменьшения объема передаваемой информации и оптимизации использования сетевых ресурсов.
  2. Шифрование и дешифрование данных: Представительский уровень может применять методы шифрования для обеспечения конфиденциальности данных во время их передачи. Это позволяет защитить информацию от несанкционированного доступа и обеспечить безопасность коммуникации между системами.
  3. Контроль ошибок и восстановление данных: Представительский уровень может включать механизмы контроля ошибок, обнаружения и исправления ошибок в данных, а также восстановления поврежденных или потерянных данных. Это позволяет обеспечить надежность передачи данных и минимизировать возможные искажения или потери информации.
  4. Преобразование данных и форматирование: Представительский уровень может выполнять преобразование данных из одного формата в другой и форматирование данных для их правильного отображения или интерпретации приложениями. Например, он может преобразовывать текстовые данные из одной кодировки в другую или форматировать графические данные для их отображения на конкретном устройстве.
  5. Управление синхронизацией и диалогом: Представительский уровень может также включать функции управления синхронизацией и диалогом между приложениями. Он определяет правила для согласования передачи данных и контроля потока информации, чтобы обеспечить правильную коммуникацию между приложениями.
Представительский уровень обеспечивает стандартизированные методы представления, кодирования и обработки данных, что позволяет различным системам взаимодействовать и обмениваться информацией независимо от их внутренней структуры или формата данных.
Информация
На данном уровне происходит кодировка, преобразование и шифрование. Например, из полученных данных могут получиться MP3, MP4, GIF, JPG файлы.
Прикладной уровень
Прикладной уровень (Application Layer) в модели OSI является верхним уровнем и находится над представительским уровнем. Он предоставляет интерфейс для взаимодействия сетевых приложений и пользователей, позволяя им получать доступ к сетевым службам и ресурсам.
Прикладной уровень выполняет следующие задачи:
  1. Предоставление сетевых служб: Прикладной уровень предоставляет различные сетевые службы и протоколы, такие как электронная почта (SMTP), передача файлов (FTP), доступ к веб-страницам (HTTP), удаленное выполнение команд (SSH), обмен сообщениями (XMPP) и другие. Эти службы позволяют пользователям взаимодействовать с сетевыми ресурсами и выполнять конкретные задачи.
  2. Поддержка приложений: Прикладной уровень предоставляет программным приложениям необходимые функции и протоколы для работы в сети. Он обеспечивает интерфейсы, библиотеки и API, которые позволяют приложениям отправлять и получать данные через сеть, устанавливать соединения, обрабатывать события и взаимодействовать с другими приложениями.
  3. Протоколы и стандарты: Прикладной уровень определяет протоколы и стандарты, которые определяют форматы данных, команды, сообщения и правила взаимодействия между приложениями. Это обеспечивает совместимость и взаимодействие между различными сетевыми приложениями, независимо от их разработчиков или платформ.
  4. Управление пользователями и аутентификация: Прикладной уровень предоставляет средства для управления пользователями, аутентификации и авторизации. Это позволяет определить и проверить личности пользователей, управлять их доступом к ресурсам и обеспечить безопасность коммуникации.
  5. Обработка ошибок и уведомления: Прикладной уровень может включать механизмы обработки ошибок и отправки уведомлений между приложениями. Он позволяет обнаруживать и сообщать об ошибках, а также передавать уведомления и события от одного приложения к другому.
Прикладной уровень является самым близким к конечным пользователям и определяет видимую им функциональность сети. Он позволяет пользователям выполнять конкретные задачи и взаимодействовать с другими узлами в сети.
Референсы