The Cable Guy - September 2005

Next Generation TCP/IP-Stack unter Windows Vista und Windows Server Longhorn

Veröffentlicht: 29. Aug 2005
*

Einleitung

Microsoft Windows® Vista Beta 1 und Windows Server "Longhorn" Beta 1 verwenden eine neue Implementierung der TCP/IP-Protokollsuite - diese wird auch als Next Generation TCP/IP-Stack bezeichnet. Der TCP/IP-Protokollstack von Windows XP und Windows Server 2003 wurde ursprünglich in den frühen neunziger Jahren entwickelt und im Laufe der Zeit immer weiter verändert. Beim Next Generation TCP/IP-Stack von Windows Vista und Windows Server "Longhorn" handelt es sich um eine vollständige Neuentwicklung der TCP/IP-Funktionalität für IPv4 (Internet Protocol version 4) und IPv6 (Internet Protocol version 6). Diese entspricht den Anforderungen der unterschiedlichsten heutzutage genutzten Netzwerkumgebungen und -technologien.

Zum SeitenanfangZum Seitenanfang

Features des Next Generation TCP/IP-Stack

Der Next Generation TCP/IP-Stack bietet die folgenden neuen Features:

Dual-IP-Layer-Architektur für IPv6
Bei der Implementierung von IPv6 unter Windows XP und Windows Server 2003 handelt es sich um eine Dual-Stack-Architektur. Damit IPv6 unterstützt wird, müssen Sie ein separates Protokoll installieren. Der eigenständige IPv6-Protokollstack hat seine eigene Transportschicht (inklusive TCP und UDP) und seine eigene Sicherungsschicht. Protokolländerungen auf den beiden Schichten müssen also immer an zwei Windows-Treibern vorgenommen werden (Tcpip.sys für den IPv4-Stack und Tcpip6.sys für den IPv6-Stack).
Der Next Generation TCP/IP-Stack unterstützt eine Dual-IP-Layer-Architektur, in der sich die IPv4- und IPv6-Implementierung eine gemeinsame Transport- und Sicherungsschicht teilen. Bei Next Generation TCP/IP-Stack sind sowohl IPv4, als auch IPv6 standardmäßig aktiviert. Es gibt keinen Grund für eine IPv6-Unterstützung eine zusätzliche Komponente zu installieren.

Einfachere Kernel-Mode-Netzwerkprogammierung
Der Next Generation TCP/IP-Stack unterstützt Winsock Kernel (WSK) - eine neue Programmierschnittstelle für den Kernel-Mode, die möglicherweise das TDI (Transport Driver Interface) von Windows XP und Windows Server 2003 ersetzen soll. Windows Vista und Windows Server "Longhorn" unterstützen TDI natürlich auch.

Routing-Compartments
Um die nicht erwünschte Weiterleitung von Netzwerkverkehr zwischen VPN-Schnittstellen, Terminal Server und Mehrbenutzerkonfigurationen zu verhindern, unterstützt der Next Generation TCP/IP-Stack sog. Routing-Compartments. Ein Routing-Compartment ist eine Kombination von Schnittstellen und einer Anmeldesitzung, die ihre eigenen IP-Routingtabellen verwendet. Ein Computer kann mehrere Routing-Compartments haben, die alle voneinander isoliert sind. Jede Schnittstelle kann nur zu einem einzigen Compartment gehören. Wenn ein Benutzer zum Beispiel mit dem aktuellen TCP/IP-Stack eine VPN-Verbindung über das Internet initiiert, dann hat der Computer eine Verbindung mit dem Internet und dem privaten Intranet. In einigen Situationen ist es möglich, dass Netzwerkverkehr aus dem Internet über die VPN-Verbindung in das private Intranet weitergeleitet wird. Die Routing-Compartments im Next Generation TCP/IP-Stack isolieren die Internetkonnektivität mithilfe von separaten Routingtabellen von der Konnektivität mit dem privaten Intranet.

Starkes Hostmodell
Wenn beim Host ein Unicast-Paket eintrifft, dann muss IP entscheiden, ob das Paket an den lokalen Computer gesendet wurde (das Ziel stimmt mit einer Adresse überein, die einer Schnittstelle des Hosts zugewiesen wurde). IP-Implementierungen mit einem schwachen Hostmodell akzeptieren jedes Paket, das an den lokalen Computer gesendet wurde - und zwar unabhängig von der Schnittstelle über die das Paket empfangen wurde. IP-Implementierungen mit einem starken Hostmodell akzeptieren Pakete an den lokalen Computer nur dann, wenn die Adresse, an die das Paket gesendet wurde, mit der Adresse der Schnittstelle, über die das Paket empfangen wurde, übereinstimmt. Die aktuelle IPv4-Implementierung unter Windows XP und Windows Server 2003 nutzt das schwache Hostmodell. Der Next Generation TCP/IP-Stack unterstützt hingegen standardmäßig das starke Modell - und zwar für IPv4 und IPv6. Sie können den Next Generation TCP/IP-Stack auch für das schwache Modell konfigurieren. Das schwache Modell bietet zum Beispiel eine bessere Netzwerkkonnektivität - der Host wird jedoch für bestimmte Netzwerkangriffe verwundbar.

Neue Sicherheits- und Paketfilterungs-APIs
Die Sicherheitsschnittstellen (Filterung des Netzwerkverkehrs an den Local Host), der Firewall-Hook, der Filter-Hook und die Speicherung von Paketfilterinformatinen des aktuellen TCP/IP-Stack wurden durch ein neues Framework ersetzt (Windows Filtering Platform oder auch WFP genannt). WFP stellt Filterungsmöglichkeiten für alle Schichten des TCP/IP-Protokollstacks zur Verfügung und ist sicher und besser in den Stack integriert. Es für ISVs viel einfach, Treiber, Dienste und Anwendungen zu entwickeln. Weitere Informationen zu WFP finden Sie unter Windows Filtering Platform (englischsprachig).

Neue Mechanismen für die Protokollstack-Auslagerung
Der Next Generation TCP/IP-Stack kann die Verarbeitung von TCP-Verkehr und anderen Arten von Netzwerkverkehr an NDIS-Miniport-Treiber (Network Driver Interface Specification) und Netzwerkadapter auslagern. Dies kann zum Beispiel in Netzwerken mit hoher Bandbreite oder bei sehr ausgelasteten Servern die Leistung verbessern.

Neue Unterstützung für skalierbare Computer oder Multiprozessorsysteme
Die Architektur von NDIS 5.1 und seinen Vorgängern schränkte die Protokollverarbeitung auf einen einzelnen Prozessor ein. Diese Beschränkung kann dazu führen, dass große Mengen an Netzwerkverkehr auf einem Mehrprozessorsystem nicht ausrechend verarbeitet werden können. RSS (Receive-Side Scaling) behebt dieses Problem, in dem die Netzwerklast über mehrere Prozessoren verteilt werden kann. Zusätzliche Informationen zu diesem Thema finden Sie unter Scalable Networking with RSS (englischsprachig).

Neue Erweiterbarkeit
Der Next-Generation TCP/IP-Stack verfügt über eine Infrastruktur, die modularere Komponenten ermöglicht. Diese können dynamisch eingefügt oder entfernt werden.

Neukonfiguration ohne Neustart des Computers
Der Next-Generation TCP/IP-Stack nutzt ein neues Verfahren, um Konfigurationseinstellungen zu speichern. So wird eine dynamischere Steuerung möglich und der Computer muss nach einer Konfigurationsänderung nicht neu gestartet werden.

Automatische Konfiguration von Stack-Einstellungen auf Basis unterschiedlicher Netzwerkumgebungen
Der Next-Generation TCP/IP-Stack erkennt automatisch die Netzwerkumgebung und passt die notwendigen Performanceeinstellungen, wie die TCP-Fenstergröße, entsprechend an. Eine verbesserte Autokonfiguration reduziert die Notwendigkeit einer manuelle Konfiguration von TCP/IP-Einstellungen

Erweiterungen
Es gibt eine Menge Möglichkeiten für Laufzeitdiagnosen (inklusive einer Unterstützung von MIB II - TCP Management Information Base) und einer besseren Ereignisprotokollierung und -verfolgung.

Bei den folgenden Features handelt es sich um Verbesserungen im Next Generation TCP/IP-Stack:

Bessere Unterstützung von Computern, die zwischen Netzwerken wechseln.

Bessere Unterstützung für Entwickler von Multicast-Anwendungen und -Netzwerken.

TCP-Leistungsverbesserungen bei Hochgeschwindigkeitsnetzwerken, asymmetrischen Satellitenverbindungen und WLANs.

Verbesserte Portabilität zu anderen Microsoft-Betriebssystemen, wie Windows CE, Xbox® und Windows Embedded.

Verbesserter Schutz vor allen bekannten TCP/IP-basierten DoS-Angriffen und anderen Netzwerkangriffen.

Zum SeitenanfangZum Seitenanfang

Die Architektur von des Next Generation TCP/IP-Stack

In der folgenden Abbildung sehen Sie die Architektur des neuen Stacks:

Abbildung 1

Es gibt grundsätzlich drei APIs über die Anwendungen, Dienste und andere Systemkomponenten auf den Next Generation TCP/IP-Stack zugreifen können:

WSK: Wird von WSK-Clients verwendet.

Windows Sockets: Werden von Windows Sockets-basierten Anwendungen und Diensten verwendet. Die Windows Sockets API arbeitet über den AFD (Ancillary Function Driver) und führt so Socket-Funktionen mit TCP/IP aus.

TDI: Wird von NetBT-Clients (NetBIOS over TCP/IP) und anderen älteren Clients verwendet. TDX ist eine Übersetzungsschicht zwischen TDI und dem Next Generation TCP/IP-Stack.

Der Next Generation TCP/IP-Stack stellt eine API zu Verfügung, über die Paketinhalte umfassend überprüft oder verändert werden können. Diese Inspection-API ist Teil von WFP. Der Next Generation TCP/IP-Stack bietet auf Netzwerk- und Transportschicht einen Zugriff auf den Paket-Verarbeitungspfad.

Der Next Generation TCP/IP-Stack sendet und empfängt Frames mithilfe von NDIS.

Die Architektur des Next Generation TCP/IP-Stack-Treibers (Tcpip.sys) setzt sich aus den folgenden Schichten zusammen:

Transportschicht: Umfasst TCP und UDP und Mechanismen um Raw-IP-Pakete, die keinen TCP- oder UDP-Header benötigen, zu verwenden.

Netzwerkschicht: Umfasst die Implementierungen von IPv4 und IPv6.

Sicherungsschicht: Umfasst Module, die IPv4- oder IPv6-Pakete verarbeiten. Es gibt Module für physische Netzwerktechnologien, wie IEEE 802.3 (Ethernet, IEEE 802.11), WANs (Point-to-Point Protocol - PPP) und für IEEE 1394-Schnittstellen. Auch für logische Schnittstellen, wie die Loopback-Schnittstelle, IPv4-Tunnel und IPv6-Tunnel gibt es Module.

Zum SeitenanfangZum Seitenanfang

Zusätzliche Informationen

Weiter Informationen finden Sie unter den folgenden Quellen:

Microsoft Windows Vista Webseite

Microsoft Windows Longhorn Server Beta 1 Webseite (englischsprachig)

Whitepaper zu den Microsoft Windows Server 2003 TCP/IP-Implementierungsdetails (englischsprachig)


Zum SeitenanfangZum Seitenanfang