
Von The Cable Guy
Alle auf Deutsch verfügbaren Cable Guy-Kolumnen finden Sie unter http://www.microsoft.com/germany/technet/community/columns/cableguy/cgarch.mspx.
In diesem Artikel werden die verschiedenen Arten von TCP- und UDP-Ports und deren Bereiche beschrieben, die Windows Sockets-Anwendungen unter Windows XP und Windows Server 2003 zur Verfügung stehen.
| Einleitung | |
| Temporäre Ports | |
| Reservierte Ports | |
| Blockierte Ports | |
| Portbereiche | |
| Zusätzliche Informationen |
TCP und UDP verwenden Portnummern, um die Quell- und Zielanwendung zu identifizieren. Bei einem typischen Client/Server-Protokoll, wie HTTP oder SMTP, initiiert der Client die Kommunikation. Die Serveranwendung wartet normalerweise auf über einen "Well Know"-Port (vom IANA - Internet Assigned Numbers Authority - festgelegte Ports) eingehende Daten. Die Clientanwendung fordert einen dynamisch zugeordneten Quellport an.
Dynamisch zugewiesene Ports werden auch als temporäre Ports bezeichnet. "Temporär" heißt in diesem Fall nicht, dass die Ports nur kurz genutzt werden. Es soll nur deutlich machen, dass diese Ports im Vergleich mit Ports von Serveranwendungen relativ kurzlebig sind (diese bleiben normalerweise bis zum Neustart des Servers geöffnet).
Der Client nutzt die temporären Ports statt Well Known-Ports, damit keine Konflikte mit lokalen Diensten entstehen. Ein Computer unter Microsoft Windows XP kann zum Beispiel Internet Explorer verwenden und die Internetinformationsdienste (Internet Information Services - IIS) ausführen. Wenn Internet Explorer auf eine Webseite zugreift, kann er in diesem Fall nicht TCP-Port 80 als Quellport verwenden. Dieser Port wird bereits von IIS verwendet. Wenn beide Anwendung so gestaltet wären, dass Sie immer diesen einen Port nutzen, dann könnten Sie nicht gleichzeitig ausgeführt werden.
Die höchstmögliche Nummer eines temporären TCP- oder UDP-Ports wird unter Microsoft Windows XP oder Windows Server 2003 über die Registrierungseinstellung MaxUserPort gesteuert. Sie hat standardmäßig den Wert 5000. Temporäre Ports fangen bei Portnummer 1025. Somit werden unter Windows XP oder Windows Server 2003 standardmäßig Ports zwischen 1025 und 5000 vergeben.
So ändern Sie die höchstmögliche Portnummer für temporäre Ports:
1. | Klicken Sie auf Start und Ausführen. Geben Sie regedit.exe ein und klicken Sie auf OK. |
2. | Navigieren Sie zum folgenden Unterschlüssel: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters |
3. | Klicken Sie im Menü Bearbeiten auf Neu und auf DWORD-Wert. |
4. | Geben Sie MaxUserPort ein, und drücken Sie die EINGABETASTE. |
5. | Klicken Sie doppelt auf den Wert von MaxUserPort, und geben Sie den gewünschten Höchstwert ein. Der Höchstwert muss zwischen 5000 und 65534 liegen. Wenn Sie diese Begrenzung nicht einhalten, wird der Wert automatisch auf den nächstmöglichen Wert gesetzt (5000 oder 65534). |
6. | Klicken Sie auf OK. |
Damit die Änderungen wirksam werden, müssen Sie den Computer neu starten.
Eine Änderung kann zum Beispiel dann notwendig werden, wenn eine Anwendung eine große Anzahl von Ports öffnet.
Mit reservierten Ports kann eine Anwendung verhindern, dass bestimmte Ports dynamisch vergeben werden. Es verhindert jedoch nicht, dass eine Anwendung den Port oder die Ports explizit anfordert. Wenn Sie einen Portbereich reservieren möchten, dann muss es sich um eine zusammenhängende Folge von Ports im Bereich von 1025 bis zum über MaxUserPort konfigurierten Wert handeln (standardmäßig 5000). Alternativ steht zusätzlich der Portbereich von 49152 bis 65535 zur Verfügung. Ein Bereich kann von mehreren Clientanwendungen reserviert werden. Wenn die Reservierung aufgehoben wird, dann entfernt Windows den ersten Eintrag, der den aufzuhebenden Portbereich vollständig abdeckt.
Mit den folgenden Schritten können Sie einen reservierten Portbereich über die Registrierung definieren:
1. | Klicken Sie auf Start und Ausführen. Geben Sie regedit.exe ein und klicken Sie auf OK. |
2. | Navigieren Sie zum folgenden Unterschlüssel: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters |
3. | Klicken Sie im Menü Bearbeiten auf Neu und auf Mehrteilige Zeichenfolge. |
4. | Geben Sie ReservedPorts ein, und drücken Sie die EINGABETASTE. |
5. | Klicken Sie doppelt auf den Wert von ReservedPorts, und geben Sie den Portbereich im Syntax x-y ein. Um einen einzelnen Port anzugeben, tragen Sie für x und y den gleichen Wert ein. Port 4000 wäre also zum Beispiel 4000-4000. |
6. | Klicken Sie auf OK. |
Mit blockierten Ports können Sie andere Anwendungen daran hindern, bestimmte Ports zu nutzen. Bei den blockierten Ports muss es sich um einen zusammenhängenden Portbereich zwischen dem in MaxUserPort konfigurieren Port (standardmäßig 5000 ) + 1 und 49151 (bei Windows XP und Windows Server 2003 ohne Servicepack) oder 65535 (bei Windows Server 2003 Service Pack 1) handeln. Im angegeben Bereich dürfen aktuell keine Ports verwendet werden. Windows Sockets gibt die letzte Portnummer im blockierten Bereich als Handle zurück.
Die folgenden Portbereiche sind unter Windows XP oder Windows Server 2003 ohne Servicepack definiert:
| • | Well Known-Ports (reserviert durch die IANA): 0 bis 1023 |
| • | Dynamische Ports: 1025 bis zum in MaxUserPort definierten Port |
| • | Spezielle Ports: Jeder Port von 0 bis 65535, der nicht blockiert ist |
| • | Bereiche, die reserviert werden können: 1025 bis zum in MaxUserPort definierten Port und 49152 bis 65535 |
| • | Bereiche, die blockiert werden können: MaxUserPort + 1 bis 49151 (es sei denn, MaxUserPort ist auf 49152 oder höher gesetzt - in diesem Fall gibt es keine blockierbaren Ports). |
In der folgenden Abbildung werden die verschiedenen Portbereiche noch einmal dargestellt.

Es scheint sinnvoll, dass die einzelnen Portbereiche getrennt sind. Es gibt jedoch auch Szenarien, in denen MaxUserPort auf einen Wert über 49152 gesetzt werden muss und eine Blockierung erforderlich ist. Daher lässt Windows Server 2003 Service Pack 1 (SP1) das Blockieren von Ports in reservierten Bereichen zu. Die Bereiche von Windows Server 2003 SP1 sehen also folgendermaßen aus:
| • | Well Known-Ports (reserviert durch die IANA): 0 bis 1023 |
| • | Dynamische Ports: 1025 bis zum in MaxUserPort definierten Port |
| • | Spezielle Ports: Jeder Port von 0 bis 65535, der nicht blockiert ist |
| • | Bereiche, die reserviert werden können: 1025 bis zum in MaxUserPort definierten Port und 49152 bis 65535 |
| • | Bereiche, die blockiert werden können: MaxUserPort + 1 bis 65535 |
In der folgenden Abbildung werden auch diese verschiedenen Portbereiche noch einmal dargestellt.

Weitere Informationen finden Sie hier:
| • | Microsoft Windows Server 2003 TCP/IP Implementation Details (englischsprachig) |
| • | Windows Sockets 2 API documentation (englischsprachig) |