IPPROTO_TCP-Socketoptionen

In der folgenden Tabelle werden IPPROTO_TCP Socketoptionen beschrieben, die für Sockets gelten, die für die IPv4- und IPv6-Adressfamilien (AF_INET und AF_INET6) mit dem Protokollparameter für die als TCP (IPPROTO_TCP) angegebene Socketfunktion gelten. Weitere Informationen zum Abrufen und Festlegen von Socketoptionen finden Sie auf den Referenzseiten der getsockopt- und setsockopt-Funktion.

Verwenden Sie die Funktion WSAEnumProtocols, WSCEnumProtocols oder WSCEnumProtocols32, um Protokolle auflisten und unterstützte Eigenschaften für jedes installierte Protokoll zu ermitteln.

Optionen

Option Abrufen Festlegen Optval-Typ Beschreibung
TCP_BSDURGENT ja ja DWORD (Boolean) Wenn TRUE, implementiert der Dienstanbieter den BSD-Stil (Berkeley Software Distribution) für die Verarbeitung beschleunigter Daten. Diese Option ist die Umkehrung der option TCP_EXPEDITED_1122. Diese Option kann nur einmal für die Verbindung festgelegt werden. Sobald diese Option aktiviert ist, kann diese Option nicht deaktiviert werden. Diese Option muss nicht von Dienstanbietern implementiert werden. Die Option ist standardmäßig aktiviert (auf TRUE festgelegt).
TCP_EXPEDITED_1122 ja ja DWORD (Boolean) Wenn TRUE, implementiert der Dienstanbieter die beschleunigten Daten gemäß RFC-1222. Andernfalls wird der BSD-Stil (Berkeley Software Distribution) (Standard) verwendet. Diese Option kann nur einmal für die Verbindung festgelegt werden. Sobald diese Option aktiviert ist, kann diese Option nicht deaktiviert werden. Diese Option muss nicht von Dienstanbietern implementiert werden.
TCP_FAIL_CONNECT_ON_ICMP_ERROR ja ja DWORD (Boolean) Wenn TRUE, wird ein Verbindungs-API-Aufruf beim Empfang eines ICMP-Fehlers mit dem Wert WSAEHOSTUNREACH zurückgegeben. Die Quelladresse des Fehlers ist dann über die option TCP_ICMP_ERROR_INFO Socket verfügbar. Wenn FALSE, verhält sich der Socket normal. Der Standardwert ist deaktiviert (auf FALSE festgelegt). Für die Typsicherheit sollten Sie die Funktionen WSAGetFailConnectOnIcmpError und WSASetFailConnectOnIcmpError verwenden, anstatt die Socketoption direkt zu verwenden.
TCP_ICMP_ERROR_INFO ja Nein ICMP_ERROR_INFO Ruft die Informationen eines ICMP-Fehlers ab, der vom TCP-Socket während eines fehlgeschlagenen Verbindungsaufrufs empfangen wurde. Nur gültig für einen TCP-Socket, in dem TCP_FAIL_CONNECT_ON_ICMP_ERROR zuvor aktiviert wurde und die Verbindung WSAEHOSTUNREACH zurückgegeben wurde. Die Abfrage ist nicht blockierend. Wenn der zurückgegebene Optlen-Wert erfolgreich abgefragt wurde und der Wert "0" lautet, wurde seit dem letzten Verbindungsaufruf kein ICMP-Fehler empfangen. Wenn ein ICMP-Fehler empfangen wurde, sind seine Informationen verfügbar, bis die Verbindung erneut aufgerufen wird. Die Informationen werden als ICMP_ERROR_INFO Struktur zurückgegeben. Zur Typsicherheit sollten Sie die WSAGetIcmpErrorInfo-Funktion anstelle der Socketoption direkt verwenden.
TCP_KEEPCNT ja ja DWORD Ruft die Anzahl der TCP-Keep-Alive-Probes ab, die gesendet werden, bevor die Verbindung beendet wird, oder legt diese fest. Es ist unzulässig, TCP_KEEPCNT auf einen Wert festzulegen, der größer als 255 ist.
TCP_MAXRT ja ja DWORD Wenn dieser Wert nicht negativ ist, stellt er das gewünschte Verbindungstimeout in Sekunden dar. Wenn es -1 ist, stellt sie eine Anforderung zum Deaktivieren des Verbindungstimeouts dar (d. h. die Verbindung wird für immer erneut übersetzt). Wenn das Zeitlimit für die Verbindung deaktiviert ist, erhöht sich das Timeout für die erneute Übertragung exponentiell bis zum Maximalwert von 60sec und bleibt dann dort.
TCP_NODELAY ja ja DWORD (Boolean) Aktiviert oder deaktiviert den Nagle-Algorithmus für TCP-Sockets. Diese Option ist standardmäßig deaktiviert (auf FALSE festgelegt).
TCP_TIMESTAMPS ja ja DWORD (Boolean) Aktiviert oder deaktiviert RFC 1323-Zeitstempel. Beachten Sie, dass es auch eine globale Konfiguration für Zeitstempel gibt (Standard ist deaktiviert), "Timestamps" in (set/get)-nettcpsetting. Durch Festlegen dieser Socketoption wird diese globale Konfigurationseinstellung außer Kraft gesetzt.
TCP_FASTOPEN ja ja DWORD (Boolean) Aktiviert oder deaktiviert RFC 7413 TCP Fast Open, mit dem Sie während der dreiseitigen Handshakephase beim Öffnen einer Verbindung mit dem Senden von Daten beginnen können. Beachten Sie, dass Sie connectEx verwenden sollten, um die erste Verbindung herzustellen, und Daten im lpSendBuffer-Parameter dieser Funktion angeben, der während des Handshake-Prozesses übertragen werden soll. Einige der Daten in lpSendBuffer werden unter dem Fast Open-Protokoll übertragen.
TCP_KEEPIDLE ja ja DWORD Ruft die Anzahl der Sekunden ab, die eine TCP-Verbindung im Leerlauf bleibt, bevor Keepalive-Probes an die Remote gesendet werden, oder legt diese fest.

Hinweis:
Diese Option ist ab Windows 10, Version 1709, verfügbar.


TCP_KEEPINTVL ja ja DWORD Ruft die Anzahl der Sekunden ab, die eine TCP-Verbindung auf eine Keepalive-Antwort wartet, bevor ein weiterer Keepalive-Probe gesendet wird, oder legt diese fest.

Hinweis:
Diese Option ist ab Windows 10, Version 1709, verfügbar.


Windows-Unterstützung für IPPROTO_TCP-Optionen

Option Windows 10 Windows 7 Windows Server 2008 Windows Vista
TCP_BSDURGENT ja Ja Ja ja
TCP_EXPEDITED_1122 ja Ja Ja ja
TCP_KEEPCNT Ab Windows 10, Version 1703
TCP_MAXRT ja Ja Ja ja
TCP_NODELAY ja Ja Ja ja
TCP_TIMESTAMPS ja Ja Ja ja
TCP_FASTOPEN Ab Windows 10, Version 1607

  Option Windows Server 2003 Windows XP Windows 2000 Windows NT4 Windows 9x/Me
TCP_BSDURGENT ja Ja Ja ja
TCP_EXPEDITED_1122 ja Ja ja
TCP_KEEPCNT
TCP_MAXRT
TCP_NODELAY ja Ja Ja ja
TCP_TIMESTAMPS
TCP_FASTOPEN

Hinweise

Im für Windows Vista und höher veröffentlichten Microsoft Windows Software Development Kit (SDK) wurde die Organisation von Headerdateien geändert, und IPPROTO_TCP Ebene wird in der Headerdatei Ws2def.h definiert, die automatisch in der Winsock2.h-Headerdatei enthalten ist. Die IPPROTO_TCP Socketoptionen mit Ausnahme von TCP_BSDURGENT werden in der Headerdatei Ws2ipdef.h definiert, die automatisch in der Headerdatei Ws2tcpip.h enthalten ist. Die option TCP_BSDURGENT aus historischen Gründen wird in der Datei "Mswsock.h "-Header definiert. Die Headerdateien Ws2def.h und Ws2ipdef.h sollten nie direkt verwendet werden.

Anforderungen

Anforderung Wert
Header
Ws2def.h (enthalten Winsock2.h);
Winsock2.h unter Windows Server 2003, Windows XP und Windows 2000