传输服务提供商
给定的传输服务提供商支持一个或多个协议。 例如,TCP/IP 提供程序将至少提供 TCP 和 UDP 协议,而 IPX/SPX 提供程序可能提供 IPX、SPX 和 SPX II。 特定提供程序支持的每个协议都由 WSAPROTOCOL_INFO 结构描述,可以将此类结构的总集视为已安装协议的目录。 应用程序可以检索此目录的内容(有关详细信息,请参阅 WSAEnumProtocols、WSCEnumProtocols和 WSCEnumProtocols32),并通过检查可用的 WSAPROTOCOL_INFO 结构,发现与每个协议关联的通信属性。
SPI 中的分层协议和协议链
Windows 套接字 2 适应分层协议的概念。 分层协议是仅实现更高级别的通信函数的协议,同时依赖基础传输堆栈来与远程终结点实际交换数据。 此类分层协议的一个示例是一个安全层,该安全层将协议添加到连接建立过程,以便执行身份验证并建立相互同意的加密方案。 此类安全协议通常需要基础可靠传输协议(如 TCP 或 SPX)的服务。 术语基协议是指 TCP 或 SPX 等协议,该协议完全能够与远程终结点执行数据通信,术语分层协议用于描述无法独立运行的协议。 然后,协议链将定义为一个或多个分层协议,并由基协议固定。
可以通过安排分层协议来支持 Winsock SPI 的上边缘和下边缘,来实现这种分层协议和基协议的字符串化。 将创建一个特殊的 WSAPROTOCOL_INFO 结构,该结构引用整个协议链,并描述分层协议联接的显式顺序。 下图对此进行了说明。