Windows网络技术深度解析
1. WSD与SAN硬件交互机制
WSD(Web Services on Devices)通过在Winsock DLL下方使用软件交换机,实现了与SAN(Storage Area Network)硬件的快捷交互。该交换机将SAN网络活动路由到供应商提供的SAN Winsock服务提供商(WSP)。WSP在用户模式下的功能类似于NDIS驱动程序,能够将SAN硬件寄存器映射到用户模式内存,从而无需通过内核模式组件即可操作硬件。不过,部分网络活动仍需内核模式组件的协助,这些组件同样由SAN供应商提供。此外,SAN供应商还提供NDIS微型端口驱动程序,用于将TCP/IP堆栈与SAN硬件相连接,以支持那些使用SAN原生不支持的Winsock网络功能的应用程序。
2. 远程过程调用(RPC)
2.1 RPC概述
RPC是一种网络编程标准,最初于20世纪80年代早期开发。开放软件基金会(现开放群组)将其纳入分布式计算环境(DCE)分布式计算标准。微软的RPC实现与OSF/DCE标准兼容。RPC基于其他网络API(如命名管道或Winsock)构建,为应用程序开发者提供了一种替代编程模型,在一定程度上隐藏了网络编程的细节。
2.2 RPC操作原理
传统的网络软件围绕I/O处理模型构建。在Windows中,当应用程序发出远程I/O请求时,操作系统会将其转发给重定向器,重定向器充当远程文件系统,使客户端与远程文件系统的交互对客户端不可见。重定向器将操作传递给远程文件系统,远程系统处理请求并返回结果后,本地网卡产生中断,内核处理中断,完成原始I/O操作并将结果返回给调用者。
RPC