本节书摘来自异步社区《深入解析IPv6(第3版)》一书中的第2章,第2.4节,作者: 【美】Joseph Davies 更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.4 应用程序开发接口
Windows包含以下支持IPv6的应用程序接口(API)。
- Windows Sockets(Windows套接字)。
- Winsock Kernel。
- Remote Procedure Call(远程过程调用)。
- Internet Protocol Helper。
- Win32 Internet Extensions(Win32 Internet扩展)。
- NET Framework(.NET框架)。
- Windows Runtime。
- Windows Filtering Platfum(过滤平台)。
- Windows Management Instrmentation version 2(Windows管理规范版本2)
2.4.1 Windows Sockets
Windows Sockets(Winsock)是基于我们熟悉的加州大学伯克利分校所定义的“socket”接口的API。它包括一系列扩展,能更好地利用微软Windows的消息驱动特性。Windows Sockets规范1.1版本发布于1993年1月,而Windows Sockets 2.2.0版发布于1996年5月。
Winsock(即微软Windows的套接字实现)的设计目标是在Windows操作系统中高效运行,同时保持与伯克利软件套件(BSD,即伯克利套接字)标准兼容。使用Winsock,程序员无需关注使用的网络协议就可以编写出支持Internet、内联网或其他网络的高级应用,并使之通过网络传送数据。
Windows的Winsock已根据RFC 3493,“Basic Socket Interface Extensions for IPv6”和RFC 3542,“Advanced Sockets API for IPv6”升级为可支持IPv6的版本。如需进一步了解有关IPv6高级套接字API的内容,请参阅附录F。
2.4.2 Winsock Kernel
Winsock Kernel(WSK)是一种独立于传输的内核模式的API。使用WSK,内核模式的软件模块(如第三方驱动)就能够像用户模式支持的Winsock那样,使用类套接字开发语义执行网络通信。WSK的设计目标是为内核模式开发商提供一个便于使用的接口。对基于WSK的软件模块而言,WSK同时支持基于IPv4和基于IPv6的连接。
2.4.3 Remote Procedure Call(远程过程调用)
远程过程调用(RPC)是用于创建分布式客户端/服务器程序的API。RPC运行时存根(stub)和库(library)管理了大部分与网络协议和通信相关的细节。RPC函数用于将应用功能呼叫通过网络发送给远端的系统。Windows中的RPC组件都支持IPv6。RPC组件经过修改,使用更新的Winsock函数,这使得RPC可以同时运用于IPv4和IPv6环境中。
2.4.4 IP Helper(IP助手)
Internet协议助手(IP助手)是用于辅助本地计算机在网络配置方面管理的API。用户可以使用IP助手以可编程的方式来获取本地计算机的网络配置信息并修改这些信息(不过,通过IP助手实现的配置修改不能持久)。IP助手也提供了通告机制,确保当本地计算机上特定方面的网络配置发生改变时能通告给应用程序。
Windows对IP助手进行了扩展,允许对IPv6及其组件进行管理和配置。IP助手支持IPv6的方面如下:
- 获取有关网络配置、网络适配器、接口、地址、IPv6、ICMPv6、路由、TCP和UDP的信息;
- 获取网络事件的通告。
2.4.5 Win32 Internet扩展
Win32 Internet扩展(WinInet)是用于创建Internet客户端应用的API。Internet客户端应用是使用Internet协议(例如gopher、FTP或HTTP)从Internet数据源(服务器)访问信息的程序。Internet客户端应用可能会访问服务器并获取数据,如气象图、股票价格或报纸头条。Internet客户端能够通过外部网络(Internet)或内部网络(内联网)来访问服务器。
Windows中的WinInet得到了扩展并支持IPv6。这就允许微软的IE浏览器可以使用WinInet来访问支持IPv6的Web站点,并能够在URL中使用字符形式的IPv6地址。
2.4.6 .NET Framework
.NET Framework是.NET平台的编程平台,用于构建、部署以及运行可扩展标记语言(Extensible Markup Language, XML)Web服务和应用程序。.NET框架管理了大部分的底层编码,使得开发者能够集中精力为应用程序编写业务代码。Windows提供的.NET框架支持IPv6,允许.NET框架的应用程序在IPv6或IPv4的环境中运行。
2.4.7 Windows Runtime
Windows Runtime是Windows Server 2012和Windows 8一个新开发平台,可以用来创建Metro应用。Windows Runtime开发的应用可以在IPv6或IPv4的环境中运行。
2.4.8 Windows过滤平台
Windows过滤平台(WFP)提供的API,使第三方独立软件供应商(ISV)能够加入到过滤决策中,而这些过滤决策存在于TCP协议栈的多个层以及整个操作系统中。WFP也集成并提供了对防火墙新特性的支持,如验证通信,以及基于应用程序对WinSock API(基于应用程序的策略)的使用状况来动态配置防火墙的特性等。ISV能够创建防火墙、杀毒软件、诊断软件以及其他类型的应用程序和服务。Windows防火墙和IPSec使用了WFP API。
2.4.9 Windows管理规范(Windows Management Instrmentation)版本2
Windows管理规范(WMI)版本2是Windows中的一个架构,可以访问管理数据并执行操作。这些操作可以通过WMI脚本或应用来执行。WMI也可以用来对远程计算机执行自动管理任务。