Windows 套接字直通通过直接将 SAN 传输接口映射到应用程序进程,在同一系统区域网络(SAN)上的两个网络节点之间提供高速高性能连接。 此 SAN 连接使用户模式进程能够在不跨用户内核边界复制的情况下执行直接输入和输出(I/O)。
System Area Networks 简介 中的 SAN 体系结构图显示了 Windows 套接字直通如何提供 SAN 连接。 图中的阴影区域表示 SAN NIC 供应商必须提供的组件才能使用 SAN。
以下段落描述了图中显示的组件。
为 SAN 网络接口控制器提供组件
每个 SAN 网络接口控制器(NIC)使用以下软件组件为 NDIS 和 Windows 套接字直通提供支持。
SAN NIC 的 NDIS 微型端口驱动程序支持 NDIS,以便它可以使用标准 TCP/IP 协议驱动程序与 Windows 套接字应用程序通信。 此 NDIS 微型端口驱动程序支持标准媒体类型,例如以太网或 ATM。
SAN 服务提供商 DLL 及其关联的代理驱动程序为 Windows 套接字直通提供支持。 这些 Windows 套接字直接组件将 SAN 互连的本机传输语义导出到 Windows 套接字应用程序。 这些语义可以包括地址系列和消息方向。
SAN NIC 供应商提供 NDIS 微型端口驱动程序和 Windows 套接字直通组件。 如果 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 协议驱动程序为每个 SAN NIC 分配一个或多个 IP 地址。 Windows 套接字交换机和 SAN 服务提供商确定这些分配,如 接收和转换 NIC 地址中所述。 该交换机使用此 IP 地址信息来确定要用于给定套接字连接的 SAN 服务提供商。 SAN 服务提供商使用此 IP 地址信息将 IP 地址转换为本机 SAN 地址。
该交换机与标准基础 TCP/IP 服务提供商密切合作,以获取 SAN 服务提供商不支持的功能。 TCP/IP 服务提供商支持侦听多个提供程序上的连接,以及跨多个提供程序的同步。
TCP/IP 服务提供商还通过标准 LAN 和 WAN 互连、原始 IP 套接字、所有 UDP 套接字和子网之间的连接处理所有通信。