Основы работы в сети. Часть 17. Модель OSI
- Основы работы в сети. Часть 11. Консоль пользователей и компьютеров Active Directory
- Основы работы в сети. Часть 12. Управление учетными записями пользователей
- Основы работы в сети. Часть 13. Создание групп
- Основы работы в сети. Часть 14. Группы безопасности
- Основы работы в сети. Часть 15. Универсальные группы и вложение групп
- Основы работы в сети. Часть 18. Совместное использование ресурсов
- Основы работы в сети. Часть 19. Разрешения на уровне общего доступа
В статье прошлого месяца я говорил о том, как Windows (и другие сетевые операционные системы) используют процесс, называемый абстракцией, позволяющий разрабатывать приложения, не беспокоясь о создании драйверов для конкретных аппаратных компонентов. Хотя эта концепция широко используется в операционной системе Windows, она особенно важна, когда речь идет о сети.
Чтобы понять, почему это так, подумайте о том, о чем я говорил в предыдущей статье в отношении аппаратной абстракции. Предположим, что приложению необходимо иметь возможность обмениваться данными по сети. Разработчик приложения не встраивает сетевые драйверы в приложение, он просто пишет приложение таким образом, чтобы оно могло выполнять определенные вызовы операционной системы Windows. Производитель сетевого адаптера машины предоставляет драйвер, который также связывается с Windows, и Windows выполняет необходимые сопоставления, позволяющие приложению обмениваться данными с сетевым адаптером.
Конечно, это всего лишь быстрая и грязная версия. На самом деле все немного сложнее. Ведь сетевой адаптер — это всего лишь устройство, которое предназначено для отправки и приема пакетов данных. Сама карта ничего не знает ни о Windows, ни о приложении, ни даже об используемых протоколах.
Пример, который я только что привел, подразумевает, что работают три уровня; приложение, операционная система и физическое оборудование. Хотя эти слои существуют (но не обязательно под этими именами), их можно разделить еще на несколько слоев.
Прежде чем я объясню, что представляют собой эти слои и что они делают, я хочу указать, что понятия, которым я собираюсь научить вас, не являются абстрактными. На самом деле, если вы откроете лист свойств подключения по локальной сети, показанный на рисунке A, вы увидите, что сетевое подключение состоит из нескольких различных компонентов, таких как сетевой клиент, драйвер сетевого адаптера и протокол. Каждый из этих компонентов соответствует одному или нескольким отдельным слоям.
Рисунок А:
Страница свойств подключения по локальной сети дает представление о том, как различные сетевые уровни реализованы в Windows.
Сетевая модель, которую использует Windows и большинство других сетевых операционных систем, называется моделью OSI. Термин «модель OSI» является сокращением от «Базовая эталонная модель взаимодействия открытых систем». Модель OSI состоит из семи различных уровней. Каждый уровень модели разработан таким образом, чтобы он мог выполнять определенную задачу и облегчать связь между уровнем над ним и уровнем под ним. Вы можете увидеть, как выглядит модель OSI на рисунке B.
Рисунок Б: Т
Модель OSI
Прикладной уровень
Верхним уровнем модели OSI является прикладной уровень. Первое, что вам нужно понять о прикладном уровне, это то, что он не относится к фактическим приложениям, которые запускают пользователи. Вместо этого он предоставляет структуру, поверх которой работают реальные приложения.
Чтобы понять, что делает прикладной уровень, предположим на мгновение, что пользователь хочет использовать Internet Explorer, чтобы открыть сеанс FTP и передать файл. В этом конкретном случае прикладной уровень должен определить протокол передачи файлов. Этот протокол не доступен напрямую для конечного пользователя. Конечный пользователь по-прежнему должен использовать приложение, предназначенное для взаимодействия с протоколом передачи файлов. В этом случае этим приложением будет Internet Explorer.
Уровень представления
Уровень представления выполняет некоторые довольно сложные действия, но все, что делает уровень представления, можно суммировать в одном предложении. Уровень представления берет данные, предоставляемые прикладным уровнем, и преобразует их в стандартный формат, понятный другим уровням. Аналогичным образом, этот уровень преобразует входящие данные, полученные от уровня сеанса, во что-то, что может понять прикладной уровень. Причина, по которой этот уровень необходим, заключается в том, что приложения обрабатывают данные по-разному. Чтобы сетевые коммуникации функционировали должным образом, данные должны быть структурированы стандартным образом.
Сеансовый уровень
После преобразования данных в правильный формат хост-отправитель должен установить сеанс с хостом-получателем. Здесь в игру вступает сеансовый уровень. Он отвечает за установление, поддержание и завершение сеанса связи с удаленным хостом.
Сеансовый уровень интересен тем, что он более тесно связан с прикладным уровнем, чем с физическим уровнем. Легко представить подключение сетевого сеанса как аппаратную функцию, но на самом деле сеансы обычно устанавливаются между приложениями. Если пользователь запускает несколько приложений, некоторые из этих приложений могут в любой момент установить сеансы с удаленными ресурсами.
Транспортный уровень
Транспортный уровень отвечает за управление потоком. Как вы, несомненно, знаете, операционная система Windows позволяет пользователям запускать несколько приложений одновременно. Поэтому возможно, что нескольким приложениям и самой операционной системе может потребоваться одновременная связь по сети. Транспортный уровень берет данные из каждого приложения и объединяет их в единый поток. Этот уровень также отвечает за проверку ошибок и восстановление данных, когда это необходимо. По сути, транспортный уровень отвечает за то, чтобы все данные передавались от хоста-отправителя к хосту-получателю.
Сетевой уровень
Сетевой уровень отвечает за определение того, как данные будут доставлены получателю. Этот уровень обрабатывает такие вещи, как адресация, маршрутизация и логические протоколы. Поскольку эта серия предназначена для начинающих, я не хочу вдаваться в технические подробности, но скажу вам, что сетевой уровень создает логические пути, известные как виртуальные каналы, между хостами-источниками и хостами-получателями. Эта схема предоставляет отдельным пакетам путь к месту назначения. Сетевой уровень также отвечает за собственную обработку ошибок, а также за упорядочивание пакетов и контроль перегрузки.
Последовательность пакетов необходима, поскольку каждый протокол ограничивает максимальный размер пакета. Объем данных, которые необходимо передать, часто превышает максимальный размер пакета. Поэтому данные фрагментируются на несколько пакетов. Когда это происходит, сетевой уровень присваивает каждому пакету порядковый номер.
Когда данные получены удаленным узлом, сетевой уровень этого устройства проверяет порядковые номера входящих пакетов и использует порядковый номер для повторной сборки данных и определения отсутствия каких-либо пакетов.
Если у вас возникли проблемы с пониманием этой концепции, то представьте, что вам нужно отправить большой документ другу, но у вас нет достаточно большого конверта. Вы можете поместить несколько страниц в несколько небольших конвертов, а затем пометить конверты, чтобы ваш друг знал, в каком порядке идут страницы. Это в точности то же самое, что делает сетевой уровень.
Канальный уровень данных
Канальный уровень может быть разделен на два других уровня; уровень управления доступом к среде (MAC) и уровень управления логическим каналом (LLC). Уровень MAC в основном устанавливает идентификацию компьютера в сети через его MAC-адрес. MAC-адрес — это адрес, который назначается сетевому адаптеру на аппаратном уровне. Это адрес, который в конечном итоге используется при отправке и получении пакетов. Уровень LLC управляет синхронизацией кадров и обеспечивает определенную степень проверки ошибок.
Физический уровень
Физический уровень модели OSI относится к фактическим спецификациям оборудования. Физический уровень определяет такие характеристики, как время и напряжение. Физический уровень определяет аппаратные характеристики, используемые сетевыми адаптерами и сетевыми кабелями (при условии, что соединение не является беспроводным). Проще говоря, физический уровень определяет, что значит передавать и получать данные.
Это работает в обе стороны
До сих пор я обсуждал модель OSI с точки зрения приложения, которому необходимо передавать данные по сети. Модель OSI также используется, когда машина получает данные. Когда данные получены, эти данные поступают через физический уровень. Остальные уровни работают, чтобы убрать инкапсуляцию и поместить данные в формат, который может использовать прикладной уровень.
Вывод
В этой статье я объяснил, как Windows использует модель OSI для реализации сети. Важно понимать, что модель OSI — это всего лишь руководство по реализации сети. В реальном мире стеки протоколов иногда объединяют несколько уровней в один компонент. Я покажу вам, как стеки протоколов вписываются в модель, в следующей статье серии.
- Основы работы в сети. Часть 11. Консоль пользователей и компьютеров Active Directory
- Основы работы в сети. Часть 12. Управление учетными записями пользователей
- Основы работы в сети. Часть 13. Создание групп
- Основы работы в сети. Часть 14. Группы безопасности
- Основы работы в сети. Часть 15. Универсальные группы и вложение групп
- Основы работы в сети. Часть 18. Совместное использование ресурсов
- Основы работы в сети. Часть 19. Разрешения на уровне общего доступа