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 erstellt wurden. Weitere Informationen zum Abrufen und Festlegen von Socketoptionen finden Sie auf den Referenzseiten für die Funktionen getsockopt und setsockopt .

Um Protokolle aufzulisten und unterstützte Eigenschaften für jedes installierte Protokoll zu ermitteln, verwenden Sie die Funktion WSAEnumProtocols, WSCEnumProtocols oder WSCEnumProtocols32 .

Optionen

Option Herunterladen Set Optval-Typ BESCHREIBUNG
TCP_BSDURGENT ja ja DWORD (Boolesch) Bei TRUE implementiert der Dienstanbieter den Berkeley Software Distribution-Stil (BSD) (Standard) 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 mehr 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 (Boolesch) Wenn TRUE, implementiert der Dienstanbieter die beschleunigten Daten, wie in RFC-1222 angegeben. Andernfalls wird das Berkeley Software Distribution-Format (BSD) (Standard) verwendet. Diese Option kann nur einmal für die Verbindung festgelegt werden. Sobald diese Option aktiviert ist, kann diese Option nicht mehr deaktiviert werden. Diese Option muss nicht von Dienstanbietern implementiert werden.
TCP_FAIL_CONNECT_ON_ICMP_ERROR ja ja DWORD (Boolesch) Wenn TRUE, wird ein Verbindungs-API-Aufruf zurückgegeben, wenn ein ICMP-Fehler mit dem Wert WSAEHOSTUNREACH empfangen wird. Die Quelladresse des Fehlers ist dann über die TCP_ICMP_ERROR_INFO Socketoption verfügbar. Wenn FALSE, verhält sich der Socket normal. Der Standardwert ist deaktiviert (auf FALSE festgelegt). Aus Gründen der 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 "connect " WSAEHOSTUNREACH zurückgegeben wurde. Die Abfrage ist nicht blockierend. Wenn die Abfrage erfolgreich durchgeführt wurde und der zurückgegebene optlen-Wert 0 ist, wurde seit dem letzten Verbindungsaufruf kein ICMP-Fehler empfangen. Wenn ein ICMP-Fehler empfangen wurde, sind die zugehörigen Informationen verfügbar, bis die Verbindung erneut aufgerufen wird. Die Informationen werden als ICMP_ERROR_INFO-Struktur zurückgegeben. Aus Gründen der Typsicherheit sollten Sie die WSAGetIcmpErrorInfo-Funktion verwenden, anstatt die Socketoption direkt zu verwenden.
TCP_KEEPCNT ja ja DWORD Ruft die Anzahl der TCP Keep Alive-Tests ab, die gesendet werden, bevor die Verbindung beendet wird, oder legt diese fest. Es ist unzulässig, TCP_KEEPCNT auf einen Wert größer als 255 festzulegen.
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 dies eine Anforderung zum Deaktivieren des Verbindungstimeouts dar (d. h. die Verbindung wird für immer erneut übertragen). Wenn das Verbindungstimeout deaktiviert ist, erhöht sich das Timeout für die Neuübertragung exponentiell für jede erneute Übertragung bis zu seinem maximalen Wert von 60Sec und bleibt dann dort.
TCP_NODELAY ja ja DWORD (Boolesch) Aktiviert oder deaktiviert den Nagle-Algorithmus für TCP-Sockets. Diese Option ist standardmäßig deaktiviert (auf FALSE festgelegt).
TCP_TIMESTAMPS ja ja DWORD (Boolesch) 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 (Boolesch) Aktiviert oder deaktiviert RFC 7413 TCP Fast Open, sodass Sie während der Drei-Wege-Handshake-Phase des Öffnens einer Verbindung mit dem Senden von Daten beginnen können. Beachten Sie, dass Sie, um schnelle Öffnen zu verwenden, ConnectEx verwenden sollten, um die anfängliche Verbindung herzustellen, und Daten im lpSendBuffer-Parameter dieser Funktion angeben sollten, die während des Handshakevorgangs übertragen werden sollen. Einige der Daten in lpSendBuffer werden unter dem Fast Open-Protokoll übertragen.
TCP_KEEPIDLE ja ja DWORD Ruft die Anzahl von Sekunden ab, die eine TCP-Verbindung im Leerlauf verbleibt, bevor keepalive Tests 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-Test 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 x x x x
TCP_EXPEDITED_1122 x x x x
TCP_KEEPCNT Ab Windows 10, Version 1703
TCP_MAXRT x x x x
TCP_NODELAY x x x x
TCP_TIMESTAMPS x x x x
TCP_FASTOPEN Ab Windows 10, Version 1607

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

Hinweise

Im Microsoft Windows Software Development Kit (SDK), das für Windows Vista und höher veröffentlicht wurde, wurde die organization von Headerdateien geändert, und IPPROTO_TCP Ebene wird in der Ws2def.h-Headerdatei 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 ist in der Headerdatei "Mswsock.h " definiert. Die Headerdateien Ws2def.h und Ws2ipdef.h sollten nie direkt verwendet werden.

Anforderungen

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