Поделиться через


Проектирование перенаправителя сети

В этой статье описывается модель драйвера для сетевых перенаправлений, появившиеся в Windows 2000.

Существенной проблемой в проектировании сетевых перенаправлений является относительно сложный перевод, выполняемый из операций, инициированных пользователем, в низкоуровневые сетевые операции, как в отношении выбора операций, так и времени. Работа с системой ввода-вывода Windows, диспетчером кэша и диспетчером памяти является относительно сложной задачей. Это особенно верно при рассмотрении различных режимов буферизации, которые могут быть подходящими для механизма удаленного взаимодействия, например в компьютерной сети, где скорость и надежность могут значительно отличаться. Реализация этих операций буферизации в сетевом перенаправлении представляет собой значительные инвестиции в функцию, которая в идеале будет совместно использоваться драйверами и использовать их повторно.

Windows 2000 представила модель драйвера для сетевых перенаправлений на основе многоуровневого или мини-драйвера. Эта модель называется архитектурой мини-перенаправления (rdr2). Вместо того, чтобы повторно реализовать сложный код, используемый для буферизации и взаимодействия с диспетчером ввода-вывода и диспетчером кэша в каждом драйвере, этот большой блок кода был извлечен и доступен всем потенциальным сетевым перенаправлениям. Общий общий код буферизации называется подсистемой буферизации перенаправленного диска (RDBSS).

Ниже показана модель этой архитектуры с несколькими перенаправлениями.

Схема, иллюстрирующая проектирование сетевого перенаправления, начиная с Windows 2000.

Эта конструкция RDBSSS предлагает несколько следующих преимуществ:

  • Это упрощает процесс записи драйвера в режиме ядра (KMD) для сетевого перенаправления, так как был предоставлен большой объем общего кода, необходимый для работы с системой ввода-вывода, диспетчером кэша и диспетчером памяти.

  • Он предоставляет другим драйверам перенаправления сети значительное количество улучшений производительности на основе алгоритмов буферизации и оптимизации ядра, разработанных для Microsoft Networks.

  • Это упрощает обслуживание, так как необходимо разработать и сохранить только одну копию кода буферизации. В модели до Windows 2000 копия была необходима для каждого перенаправления.

  • Он обеспечивает сильную инкапсуляцию компонента сетевого перенаправления для конкретного сетевого протокола, поэтому разработчики драйверов могут сосредоточиться на этих аспектах сетевого перенаправления, которые являются уникальными и характерными для своего приложения или продукта.

  • Это упрощает отладку драйверов для сетевых перенаправлений, предоставляя развязку на основе этого многоуровневого подхода.

Модель RDBSS появилась в Windows 2000. Эта же модель также используется в Windows Server 2003 и Windows XP.

Проектирование перенаправления сети в Windows NT

Исходная схема, представленная в Windows NT 3.0, не использовала общих компонентов и была ограничена. Эта модель часто называется исходной моделью драйвера rdr (rdr была сокращена для перенаправления). Чтобы упростить процесс написания сетевого перенаправления, ОС не поддерживала специальную поддержку. Каждый KMD реализовал все функции, необходимые для сетевого перенаправления. Следовательно, каждый KMD будет содержать большой объем кода для взаимодействия с диспетчером ввода-вывода, диспетчером кэша и диспетчером памяти. Каждый сетевой перенаправление (lan Manager, NetWare и NFS, например), установленный в Windows, должен был реализовать все эти функции. Эта модель проектирования использовалась для драйверов для перенаправления сети через Windows NT 4.0. Ниже приведена схема этой архитектуры с несколькими перенаправлениями.

Схема, иллюстрирующая проектирование сетевого перенаправления в Windows NT.