IPPROTO_TCP socket, options

Le tableau suivant décrit IPPROTO_TCP options de socket qui s’appliquent aux sockets créés pour les familles d’adresses IPv4 et IPv6 (AF_INET et AF_INET6) avec le paramètre de protocole pour la fonction socket spécifiée en tant que TCP (IPPROTO_TCP). Pour plus d’informations sur l’obtention et la définition des options de socket, consultez les pages de référence des fonctions getsockopt et setsockopt .

Pour énumérer les protocoles et découvrir les propriétés prises en charge pour chaque protocole installé, utilisez la fonction WSAEnumProtocols, WSCEnumProtocols ou WSCEnumProtocols32 .

Options

Option Obtenir Définissez Type Optval Description
TCP_BSDURGENT Oui Oui DWORD (Boolean) Si la valeur est TRUE, le fournisseur de services implémente le style BSD (Berkeley Software Distribution) (par défaut) pour la gestion des données accélérées. Cette option est l’inverse de l’option TCP_EXPEDITED_1122. Cette option ne peut être définie qu’une seule fois sur la connexion. Une fois cette option activée, cette option ne peut pas être désactivée. Cette option n’est pas obligatoire pour être implémentée par les fournisseurs de services. L’option est activée (définie sur TRUE) par défaut.
TCP_EXPEDITED_1122 Oui Oui DWORD (Boolean) Si la valeur est TRUE, le fournisseur de services implémente les données accélérées comme spécifié dans RFC-1222. Sinon, le style BSD (Berkeley Software Distribution) (par défaut) est utilisé. Cette option ne peut être définie qu’une seule fois sur la connexion. Une fois cette option activée, cette option ne peut pas être désactivée. Cette option n’est pas obligatoire pour être implémentée par les fournisseurs de services.
TCP_FAIL_CONNECT_ON_ICMP_ERROR Oui Oui DWORD (Boolean) Si la valeur est TRUE, un appel d’API de connexion est retourné à la réception d’une erreur ICMP avec la valeur WSAEHOSTUNREACH. L’adresse source de l’erreur est alors disponible via l’option de socket TCP_ICMP_ERROR_INFO. Si la valeur est FALSE, le socket se comporte normalement. La valeur par défaut est désactivée (définie sur FALSE). Pour la sécurité du type, vous devez utiliser les fonctions WSAGetFailConnectOnIcmpError et WSASetFailConnectOnIcmpError au lieu d’utiliser directement l’option socket.
TCP_ICMP_ERROR_INFO Oui non ICMP_ERROR_INFO Récupère les informations d’une erreur ICMP reçue par le socket TCP lors d’un appel de connexion ayant échoué. Valide uniquement sur un socket TCP où TCP_FAIL_CONNECT_ON_ICMP_ERROR a été précédemment activé et où la connexion a retourné WSAEHOSTUNREACH. La requête n’est pas bloquante. Si l’interrogation a réussi et que la valeur d’optlen retournée est 0, aucune erreur ICMP n’a été reçue depuis le dernier appel de connexion. Si une erreur ICMP a été reçue, ses informations sont disponibles jusqu’à ce que la connexion soit appelée à nouveau. Les informations sont retournées sous la forme d’une structure ICMP_ERROR_INFO . Pour la sécurité du type, vous devez utiliser la fonction WSAGetIcmpErrorInfo au lieu d’utiliser directement l’option socket.
TCP_KEEPCNT Oui Oui DWORD Obtient ou définit le nombre de sondes TCP keep actives qui seront envoyées avant l’arrêt de la connexion. Il n’est pas autorisé à définir TCP_KEEPCNT à une valeur supérieure à 255.
TCP_MAXRT Oui Oui DWORD Si cette valeur n’est pas négative, elle représente le délai d’expiration de connexion souhaité en secondes. S’il s’agit de -1, il représente une demande de désactivation du délai d’expiration de la connexion (c’est-à-dire que la connexion sera retransmite pour toujours). Si le délai d’expiration de la connexion est désactivé, le délai d’attente de la retransmission augmente de façon exponentielle pour chaque retransmission jusqu’à sa valeur maximale de 60 s, puis y reste.
TCP_NODELAY Oui Oui DWORD (Boolean) Active ou désactive l’algorithme Nagle pour les sockets TCP. Cette option est désactivée (définie sur FALSE) par défaut.
TCP_TIMESTAMPS Oui Oui DWORD (Boolean) Active ou désactive les horodatages RFC 1323. Notez qu’il existe également une configuration globale pour les horodatages (la valeur par défaut est désactivée), « Timestamps » dans (set/get)-nettcpsetting. La définition de cette option de socket remplace ce paramètre de configuration globale.
TCP_FASTOPEN Oui Oui DWORD (Boolean) Active ou désactive RFC 7413 TCP Fast Open, ce qui vous permet de commencer à envoyer des données pendant la phase d’établissement d’une liaison triple lors de l’ouverture d’une connexion. Notez que pour utiliser les ouvertures rapides, vous devez utiliser ConnectEx pour établir la connexion initiale et spécifier les données dans le paramètre lpSendBuffer de cette fonction à transférer pendant le processus d’établissement d’une liaison. Certaines données de lpSendBuffer seront transférées sous le protocole Fast Open.
TCP_KEEPIDLE Oui Oui DWORD Obtient ou définit le nombre de secondes pendant lesquelles une connexion TCP reste inactive avant l’envoi de sondes keepalives à la télécommande.

Remarque :
Cette option est disponible à partir de Windows 10 version 1709.


TCP_KEEPINTVL Oui Oui DWORD Obtient ou définit le nombre de secondes pendant lesquelles une connexion TCP attend une réponse keepalive avant d’envoyer une autre sonde keepalive.

Remarque :
Cette option est disponible à partir de Windows 10 version 1709.


Prise en charge de Windows pour les options de IPPROTO_TCP

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 À compter de Windows 10, version 1703
TCP_MAXRT x x x x
TCP_NODELAY x x x x
TCP_TIMESTAMPS x x x x
TCP_FASTOPEN À compter de 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

Remarques

Dans le Kit de développement logiciel (SDK) Microsoft Windows publié pour Windows Vista et versions ultérieures, la organization des fichiers d’en-tête a changé et IPPROTO_TCP niveau est défini dans le fichier d’en-tête Ws2def.h qui est automatiquement inclus dans le fichier d’en-tête Winsock2.h. Les options de socket IPPROTO_TCP , à l’exception de TCP_BSDURGENT, sont définies dans le fichier d’en-tête Ws2ipdef.h qui est automatiquement inclus dans le fichier d’en-tête Ws2tcpip.h . L’option TCP_BSDURGENT pour des raisons historiques est définie dans le fichier d’en-tête Mswsock.h. Les fichiers d’en-tête Ws2def.h et Ws2ipdef.h ne doivent jamais être utilisés directement.

Spécifications

Condition requise Valeur
En-tête
Ws2def.h (inclure Winsock2.h) ;
Winsock2.h sur Windows Server 2003, Windows XP et Windows 2000