Прямая архитектура сокетов Windows
Windows Sockets Direct обеспечивает высокоскоростное и высокопроизводительное подключение между двумя сетевыми узлами в одной системной сети (SAN) путем сопоставления транспортного интерфейса SAN непосредственно с процессом приложения. Это подключение san позволяет процессам пользовательского режима выполнять прямые входные и выходные данные (I/O) без копирования через границу ядра пользователя.
На рисунке архитектуры SAN в разделе Введение в системные сети показано, как Windows Sockets Direct обеспечивает подключение SAN. Затеняемые области на рисунке представляют компоненты, которые поставщик сетевых адаптеров SAN должен предоставить, чтобы обеспечить использование SAN.
В следующих абзацах описываются компоненты, которые отображаются на рисунке.
Предоставляемые компоненты для контроллеров сетевого интерфейса SAN
Каждый контроллер сетевого интерфейса SAN (NIC) использует следующие программные компоненты для обеспечения поддержки NDIS и Windows Sockets Direct.
Драйвер NDIS miniport для сетевого адаптера SAN обеспечивает поддержку NDIS, что позволяет взаимодействовать с приложениями Windows Sockets с помощью стандартного драйвера протокола TCP/IP. Этот драйвер мини-порта NDIS поддерживает стандартные типы мультимедиа, такие как Ethernet или ATM.
Библиотека DLL поставщика услуг SAN и связанный с ним драйвер прокси-сервера обеспечивают поддержку windows Sockets Direct. Эти компоненты Windows Sockets Direct экспортируют собственную семантику транспорта взаимодействия для приложений SAN в сокеты Windows. Эти семантики могут включать, например, адресную семью и ориентацию сообщений.
Поставщик сетевых адаптеров SAN предоставляет драйвер мини-порта NDIS и компоненты Windows Sockets Direct. Поставщик сетевых адаптеров SAN также может предоставить драйвер транспорта SAN, если транспортная служба не реализована полностью в сетевой адаптере. Драйвер прокси-сервера для библиотеки DLL поставщика услуг SAN и, возможно, драйвер транспорта SAN содержатся либо в драйвере мини-порта NDIS, либо в отдельных драйверах по усмотрению поставщика сетевого адаптера SAN.
Компоненты переключения сокетов Windows
Коммутатор Windows Sockets — это компонент Windows Sockets Direct, предоставляемый операционной системой. Коммутатор — это поставщик службы Windows Sockets, который размещен поверх поставщиков служб TCP/IP и SAN. Операционная система Windows вставляет переключатель между интерфейсом Windows Sockets и другими поставщиками услуг. Для ясности переключатель отображается на рисунке как отдельная сущность. Однако коммутатор и базовый поставщик служб TCP/IP фактически реализуются в одной библиотеке DLL. Переключатель выполняет следующие действия:
Делает установленную коллекцию поставщиков услуг SAN и стандартного поставщика TCP/IP единым поставщиком приложений Windows Sockets.
Для каждого подключения выбирает, следует ли использовать собственный поставщик услуг SAN или стандартный поставщик TCP/IP для обслуживания сокета приложения.
Эмулирует семантику TCP/IP при использовании собственного поставщика служб SAN.
Верхний и нижний интерфейсы коммутатора соответствуют интерфейсу поставщика службы сокетов Windows (SPI). Нижний интерфейс коммутатора использует расширения для SPI сокетов Windows, чтобы воспользоваться возможностями сети SAN. Эти расширения описаны в разделе Расширения SPI для сокетов Windows для SAN и полностью задокументированы в разделе Прямая ссылка на сокеты Windows.
Коммутатор управляет доступом приложений ко всем сетям. Компьютер может содержать несколько сетевых адаптеров SAN от нескольких поставщиков, а также один или несколько сетевых адаптеров локальной сети и глобальной сети, например сетевую карту локальной сети, поддерживающую сеть Ethernet. Коммутатор прозрачно управляет доступом приложений ко всем сетям, связанным с этими сетевыми адаптерами.
Функции TCP/IP
Как и в случае с любой сетевой картой, предоставляемой через NDIS, драйвер протокола TCP/IP назначает один или несколько IP-адресов для каждой сетевой карты SAN. Эти назначения определяются с помощью коммутатора Windows Sockets и поставщиков служб SAN, как описано в разделе Получение и перевод сетевых адресов. Этот параметр использует эти сведения об IP-адресе, чтобы определить, какой поставщик службы SAN следует использовать для данного подключения сокета. Поставщики услуг SAN используют эти сведения об IP-адресах для преобразования IP-адресов в собственные.
Коммутатор работает в тесном контакте со стандартным базовым поставщиком услуг TCP/IP для получения функциональных возможностей, которые поставщики услуг SAN не поддерживают. Поставщик служб TCP/IP поддерживает прослушивание подключений нескольких поставщиков и синхронизацию между несколькими поставщиками.
Поставщик услуг TCP/IP также обрабатывает весь обмен данными через стандартные подключения по локальной сети и глобальной сети, необработанные IP-сокеты, все сокеты UDP и подключения между подсетями.