📶 Модель OSI
Вводная
Продолжаю писать статейки на теорию разработки. Про паттерны проектирования можно почитать вот тут. Теперь перейдём к сетевой модели стека протоколов OSI/ISO.
О самой модели
Модель OSI (Open Systems Interconnection) - это стандартная модель сетевой архитектуры, которая описывает взаимодействие между устройствами сети.
Модель OSI состоит из 7 слоев, каждый из которых выполняет определенную функцию в процессе передачи данных между устройствами. Если кратко:
- Физический слой - обеспечивает физическое соединение между устройствами и определяет метод передачи данных по кабелю или другой физической среде.
- Канальный слой - отвечает за передачу данных между устройствами внутри одной сети, проверяет достоверность принимаемых данных и управляет доступом к среде передачи.
- Сетевой слой - определяет путь передачи данных между различными сетями, отвечает за управление адресацией и маршрутизацией пакетов.
- Транспортный слой - обеспечивает надежную передачу данных между приложениями на различных устройствах, управляет потоком данных и обнаруживает возможные ошибки.
- Сеансовый слой - устанавливает, поддерживает и завершает связь между приложениями на разных устройствах.
- Представительский слой - отвечает за преобразование данных из формата, используемого приложениями, в формат, который может быть передан по сети.
- Прикладной слой - содержит приложения и сервисы, которые используются для обработки данных пользователей.
А теперь поговорим о каждом уровне.
Media layers
Физический уровень
Является первым уровнем и отвечает за передачу битовой информации по физической среде. Он включает в себя все аспекты физической передачи данных, такие как электрические, оптические и радиочастотные сигналы, кабели, разъемы, интерфейсы и т.д.
На физическом уровне данные представлены в виде набора битов, которые передаются через физические среды связи, такие как витая пара, оптоволокно, радиоволны и т.д. Важными характеристиками физического уровня являются скорость передачи данных, пропускная способность канала связи, шумы и помехи на линии связи.
Физический уровень обеспечивает непосредственную связь между устройствами и передачу данных без ошибок и потерь. Он также включает в себя стандарты и протоколы, которые определяют формат и способ передачи данных между устройствами.
Основная задача физического уровня - это обеспечение надежной передачи битовой информации через физическую среду связи, которая может быть подвержена различным внешним факторам, таким как шумы, помехи и др.
Канальный уровень
Второй уровень, который отвечает за надежную передачу данных между устройствами в локальной сети. Он используется для обеспечения корректности передачи информации, проверки на ошибки и контроля доступа к сети.
На канальном уровне данные представлены в виде кадров(фреймов), которые содержат информацию о передаваемых данных, MAC-адресах отправителя и получателя, контрольные суммы и другую служебную информацию. Канальный уровень также обеспечивает механизмы обнаружения и исправления ошибок в передаваемых данных.
MAC-Адрес(физический адрес) - это 48ми битный уникальный идентификатор, присваиваемый сетевым интерфейсам устройств, подключенных к сети.
Канальный уровень использует различные протоколы, такие как Ethernet, Wi-Fi, Bluetooth и другие, для обеспечения надежной передачи данных.
Канальный уровень также может обеспечивать механизмы контроля доступа к сети, такие как аутентификацию и шифрование данных. Он играет важную роль в обеспечении безопасности и конфиденциальности передаваемых данных.
Основная задача канального уровня - это обеспечение надежной и безопасной передачи данных в локальной сети.
Сетевой уровень
Третий уровень, который отвечает за маршрутизацию и доставку данных между различными сетями. Он используется для обеспечения эффективной передачи информации между устройствами в разных сетях, включая интернет.
На сетевом уровне данные представлены в виде пакетов, которые содержат информацию о передаваемых данных, IP-адресах отправителя и получателя, а также другую служебную информацию, необходимую для маршрутизации и доставки данных.
Сетевой уровень использует протоколы, такие как IP (Internet Protocol), ICMP (Internet Control Message Protocol) и другие, для обеспечения маршрутизации и доставки данных в различные сети.
Основная задача сетевого уровня - это обеспечение эффективной маршрутизации и доставки данных в различные сети. Он также может обеспечивать управление потоком данных и контроль перегрузок, что позволяет эффективно использовать ресурсы сети и предотвращать потерю данных в процессе передачи.
Host layers
Транспортный уровень
Четвертый уровень, который отвечает за установление, управление и завершение соединений между приложениями на различных устройствах. Он обеспечивает надежную и эффективную передачу данных между конечными точками сети.
На транспортном уровне данные представлены в виде сегментов, которые содержат информацию о порядке, контрольной сумме и другой служебной информации, необходимой для надежной передачи данных.
Транспортный уровень использует протоколы, такие как TCP (Transmission Control Protocol) и UDP (User Datagram Protocol), для обеспечения управления соединением и передачи данных между приложениями.
- TCP обеспечивает надежную передачу данных с помощью механизмов управления потоком данных, контроля ошибок и переподключения при потере связи.
- UDP же обеспечивает быструю передачу данных без гарантий доставки и управления потоком.
Транспортный уровень также может выполнять функции мультиплексирования и демультиплексирования, что позволяет одному приложению использовать одно соединение для передачи нескольких потоков данных.
Основная задача транспортного уровня - это обеспечение надежной и эффективной передачи данных между приложениями на различных устройствах. А возможность мультиплексирования и демультиплексирования позволяет повысить эффективность и гибкость передачи данных в сети.
Сеансовый уровень
Отвечает за управление сеансами связи между приложениями на различных устройствах в сети. Он обеспечивает установление, управление и завершение сеансов связи между приложениями.
На сеансовом уровне данные представлены в виде сообщений, которые содержат информацию о начале и конце сеанса, а также другую служебную информацию, необходимую для управления сеансами связи.
Сеансовый уровень также может выполнять функции управления многозадачностью и синхронизации, что позволяет приложениям работать параллельно и синхронизироваться друг с другом.
Основная задача сеансового уровня - это обеспечение управления сеансами связи между приложениями на различных устройствах. Он также может выполнять функции управления многозадачностью и синхронизации, что позволяет повысить эффективность и гибкость передачи данных в сети.
Представительский уровень
Отвечает за представление данных в сети. Он обеспечивает преобразование данных в формат, который может быть понят и интерпретирован различными приложениями.
На этом уровне данные представлены в виде структурированных форматов, таких как текстовые документы, изображения, звуковые файлы и другие мультимедийные данные. Для обеспечения совместимости и переносимости данных между различными системами и устройствами, данные на уровне представления могут быть преобразованы в стандартизированные форматы, такие как ASCII или Unicode.
Представительский уровень использует различные протоколы и алгоритмы для обработки данных, включая сжатие, шифрование и дешифрование. Он также обеспечивает контроль ошибок и проверку целостности данных.
Основная задача представительского уровня - это обеспечение совместимости и переносимости данных между различными системами и устройствами. Он также обеспечивает безопасность данных путем использования различных методов шифрования и контроля целостности.
Прикладной уровень
Самый высокий уровень, который отвечает за взаимодействие пользователей и приложений с сетью. Он предоставляет интерфейс для приложений, позволяющий им обмениваться данными и управлять сетевыми ресурсами.
На этом уровне работают различные приложения, такие как браузеры, электронная почта, чаты, файловые менеджеры и другие. Каждое приложение использует свой протокол для обмена данными с другими устройствами и приложениями в сети.
Прикладной уровень также обеспечивает поддержку различных сервисов, таких как DNS (Domain Name System), FTP (File Transfer Protocol), HTTP (Hypertext Transfer Protocol), SMTP (Simple Mail Transfer Protocol) и других. Эти сервисы позволяют пользователям получать доступ к различным ресурсам в сети, таким как веб-страницы, файлы, электронная почта и другие.
Основная задача прикладного уровня - это обеспечение функциональности и удобства использования для пользователей и приложений. Он также обеспечивает безопасность данных путем использования различных методов аутентификации и авторизации.
Заключение
Модель OSI была разработана для обеспечения совместимости между различными системами компьютерной связи. Она позволяет различными устройствам взаимодействовать без зависимости от их физической реализации и программного обеспечения, что делает ее удобной для использования в разных сетевых средах. Очень полезно знать каждый уровень этой замечательной модели.