Windows Sockets Direct 体系结构

Windows 套接字直通通过将 SAN 传输接口直接映射到应用程序进程,在同一系统区域网络 (SAN) 上的两个网络节点之间提供高速、高性能的连接。 此 SAN 连接使用户模式进程能够 (I/O) 执行直接输入和输出,而无需跨用户内核边界进行复制。

系统区域网络简介中的 SAN 体系结构图显示了 Windows 套接字直通如何提供 SAN 连接。 图中的阴影区域表示 SAN NIC 供应商必须提供的组件才能使用 SAN。

以下段落描述了图中显示的组件。

为 SAN 网络接口控制器提供的组件

(NIC) 的每个 SAN 网络接口控制器都使用以下软件组件来提供对 NDIS 和 Windows 套接字直通的支持。

  • SAN NIC 的 NDIS 微型端口驱动程序提供对 NDIS 的支持,以便它可以使用标准 TCP/IP 协议驱动程序与 Windows 套接字应用程序通信。 此 NDIS 微型端口驱动程序支持标准媒体类型,例如以太网或 ATM。

  • SAN 服务提供商 DLL 及其关联的代理驱动程序为 Windows 套接字直通提供支持。 这些 Windows 套接字 Direct 组件导出 SAN 到 Windows 套接字应用程序的互连的本机传输语义。 例如,这些语义可以包括地址系列和消息方向。

SAN NIC 供应商提供 NDIS 微型端口驱动程序和 Windows 套接字 Direct 组件。 如果未在 NIC 中完全实现传输服务,SAN NIC 供应商也可能提供 SAN 传输驱动程序。 SAN 服务提供商 DLL 的代理驱动程序(可能还有 SAN 传输驱动程序)包含在 NDIS 微型端口驱动程序或单独的驱动程序中,由 SAN NIC 供应商决定。

Windows 套接字交换机组件

Windows 套接字交换机是 Windows 套接字直通的操作系统提供的组件。 交换机是一个 Windows 套接字服务提供商,它分层在 TCP/IP 和 SAN 服务提供商之上。 Windows 操作系统在 Windows 套接字接口和其他服务提供程序之间插入开关。 为清楚起见,开关在图中显示为一个单独的实体。 但是,交换机和基本 TCP/IP 服务提供程序实际上是在同一 DLL 中实现的。 该开关执行以下操作:

  • 使已安装的 SAN 服务提供程序集合和标准 TCP/IP 提供程序看起来像 Windows 套接字应用程序的单个提供程序。

  • 根据每个连接选择是使用本机 SAN 服务提供程序还是使用标准 TCP/IP 提供程序为应用程序套接字提供服务。

  • 使用本机 SAN 服务提供程序时模拟 TCP/IP 语义。

交换机的顶部和底部接口符合 Windows 套接字服务提供程序接口 (SPI) 。 交换机的底部接口使用 Windows 套接字 SPI 的扩展来利用 SAN 的功能。 这些扩展在 适用于 SAN 的 Windows 套接字 SPI 扩展 中进行了介绍,并完整记录在 Windows 套接字直接参考中。

交换机管理应用程序对所有网络的访问。 一台计算机可以包含来自多个供应商的多个 SAN NIC,以及一个或多个 LAN 和 WAN NIC,例如支持以太网网络的 LAN NIC。 交换机以透明方式管理应用程序对与这些 NIC 关联的所有网络的访问权限。

TCP/IP 函数

与通过 NDIS 公开的任何 NIC 一样,TCP/IP 协议驱动程序会将一个或多个 IP 地址分配给每个 SAN NIC。 Windows 套接字交换机和 SAN 服务提供商确定这些分配,如 接收和转换 NIC 地址中所述。 交换机使用此 IP 地址信息来确定要用于给定套接字连接的 SAN 服务提供程序。 SAN 服务提供商使用此 IP 地址信息将 IP 地址转换为本机 SAN 地址。

该交换机与标准基本 TCP/IP 服务提供商密切合作,以获取 SAN 服务提供商不支持的功能。 TCP/IP 服务提供程序支持侦听多个提供程序上的连接以及跨多个提供程序的同步。

TCP/IP 服务提供商还处理通过标准 LAN 和 WAN 互连、原始 IP 套接字、所有 UDP 套接字以及子网之间的连接的所有通信。