Partager via


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 à la fonction de socket spécifiée en tant que TCP (IPPROTO_TCP). Veuillez consulter les pages de référence des fonctions getsockopt et setsockopt pour plus d’informations sur l’obtention et la définition des options de socket.

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 Get Définir Type d’optval Description
TCP_BSDURGENT Oui Oui DWORD (booléen) 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 nécessaire 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 (booléen) 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 nécessaire pour être implémentée par les fournisseurs de services.
TCP_FAIL_CONNECT_ON_ICMP_ERROR Oui Oui DWORD (booléen) Si la valeur EST TRUE, un appel d’API de connexion est retourné lors de la réception d’une erreur ICMP avec la valeur WSAEHOSTUNREACH. L’adresse source de l’erreur sera ensuite 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é des types, vous devez utiliser les fonctions WSAGetFailConnectOnIcmpError et WSASetFailConnectOnIcmpError au lieu d’utiliser directement l’option de 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é activé précédemment et que la connexion a retourné WSAEHOSTUNREACH. La requête n’est pas bloquante. Si elle a été interrogée avec succès 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 seront disponibles jusqu’à ce que la connexion soit appelée à nouveau. Les informations sont retournées sous forme de structure ICMP_ERROR_INFO . Pour la sécurité du type, vous devez utiliser la fonction WSAGetIcmpErrorInfo au lieu d’utiliser directement l’option de socket.
TCP_KEEPCNT Oui Oui DWORD Obtient ou définit le nombre de sondes tcp keep alive qui seront envoyées avant la fin de la connexion. Il est illégal de définir TCP_KEEPCNT sur 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 de retransmite augmente exponentiellement pour chaque retransmission jusqu’à sa valeur maximale de 60sec, puis reste là.
TCP_NODELAY Oui Oui DWORD (booléen) 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 (booléen) 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 global.
TCP_FASTOPEN Oui Oui DWORD (booléen) Active ou désactive RFC 7413 TCP Fast Open, ce qui vous permet de commencer à envoyer des données pendant la phase de négociation tridirectionnel de l’ouverture d’une connexion. Notez que pour utiliser des ouvertures rapides, vous devez utiliser ConnectEx pour établir la connexion initiale et spécifier des données dans le paramètre lpSendBuffer de cette fonction à transférer pendant le processus de négociation. 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 que les sondes keepalive ne soient envoyées à distance.

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 Oui oui oui Oui
TCP_EXPEDITED_1122 Oui oui oui Oui
TCP_KEEPCNT À partir de Windows 10, version 1703
TCP_MAXRT Oui oui oui Oui
TCP_NODELAY Oui oui oui Oui
TCP_TIMESTAMPS Oui oui oui Oui
TCP_FASTOPEN À compter de Windows 10, version 1607

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

Notes

Dans le Kit de développement logiciel (SDK) Microsoft Windows publié pour Windows Vista et versions ultérieures, l’organisation 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 Value
En-tête
Ws2def.h (inclure Winsock2.h) ;
Winsock2.h sur Windows Server 2003, Windows XP et Windows 2000