《深入解析IPv6(第3版)》——2.4 應用程式開發介面

非同步社群發表於2017-05-02

本節書摘來自非同步社群《深入解析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也可以用來對遠端計算機執行自動管理任務。


相關文章