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: |
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: |
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 |
|