Opções de soquete IPPROTO_TCP
A tabela a seguir descreve IPPROTO_TCP opções de soquete que se aplicam a soquetes criados para as famílias de endereços IPv4 e IPv6 (AF_INET e AF_INET6) com o parâmetro de protocolo para a função de soquete especificada como TCP (IPPROTO_TCP). Consulte as páginas de referência da função getsockopt e setsockopt para obter mais informações sobre como obter e definir opções de soquete.
Para enumerar protocolos e descobrir propriedades com suporte para cada protocolo instalado, use a função WSAEnumProtocols, WSCEnumProtocols ou WSCEnumProtocols32 .
Opções
Opção | Obter | Definir | Tipo optval | Descrição |
---|---|---|---|---|
TCP_BSDURGENT | sim | sim | DWORD (booliano) | Se TRUE, o provedor de serviços implementará o estilo de Distribuição de Software de Berkeley (BSD) (padrão) para lidar com dados agilizados. Essa opção é o inverso da opção TCP_EXPEDITED_1122. Essa opção pode ser definida na conexão apenas uma vez. Depois que essa opção estiver ativada, essa opção não poderá ser desativada. Essa opção não é necessária para ser implementada pelos provedores de serviços. A opção está habilitada (definida como TRUE) por padrão. |
TCP_EXPEDITED_1122 | sim | sim | DWORD (booliano) | Se TRUE, o provedor de serviços implementará os dados agilizados conforme especificado em RFC-1222. Caso contrário, o estilo de Distribuição de Software de Berkeley (BSD) (padrão) será usado. Essa opção pode ser definida na conexão apenas uma vez. Depois que essa opção estiver ativada, essa opção não poderá ser desativada. Essa opção não é necessária para ser implementada pelos provedores de serviços. |
TCP_FAIL_CONNECT_ON_ICMP_ERROR | sim | sim | DWORD (booliano) | Se TRUE, uma chamada à API de conexão retornará após a recepção de um erro ICMP com o valor WSAEHOSTUNREACH. O endereço de origem do erro estará disponível por meio da opção de soquete TCP_ICMP_ERROR_INFO. Se FALSE, o soquete se comportará normalmente. O padrão está desabilitado (definido como FALSE). Para segurança de tipo, você deve usar as funções WSAGetFailConnectOnIcmpError e WSASetFailConnectOnIcmpError em vez de usar a opção de soquete diretamente. |
TCP_ICMP_ERROR_INFO | sim | não | ICMP_ERROR_INFO | Recupera as informações de um erro ICMP recebido pelo soquete TCP durante uma chamada de conexão com falha. Válido somente em um soquete TCP em que TCP_FAIL_CONNECT_ON_ICMP_ERROR foi habilitado anteriormente e connect retornou WSAEHOSTUNREACH. A consulta não está bloqueando. Se consultado com êxito e o valor optlen retornado for 0, nenhum erro ICMP foi recebido desde a última chamada de conexão. Se um erro ICMP tiver sido recebido, suas informações estarão disponíveis até que a conexão seja chamada novamente. As informações são retornadas como uma estrutura ICMP_ERROR_INFO . Para segurança de tipo, você deve usar a função WSAGetIcmpErrorInfo em vez de usar a opção de soquete diretamente. |
TCP_KEEPCNT | sim | sim | DWORD | Obtém ou define o número de investigações de keep alive do TCP que serão enviadas antes que a conexão seja encerrada. É ilegal definir TCP_KEEPCNT para um valor maior que 255. |
TCP_MAXRT | sim | sim | DWORD | Se esse valor não for negativo, ele representará o tempo limite de conexão desejado em segundos. Se for -1, ele representará uma solicitação para desabilitar o tempo limite da conexão (ou seja, a conexão será retransmitida para sempre). Se o tempo limite de conexão estiver desabilitado, o tempo limite de retransmissão aumentará exponencialmente para cada retransmissão até o valor máximo de 60seg e permanecerá lá. |
TCP_NODELAY | sim | sim | DWORD (booliano) | Habilita ou desabilita o algoritmo Nagle para soquetes TCP. Essa opção está desabilitada (definida como FALSE) por padrão. |
TCP_TIMESTAMPS | sim | sim | DWORD (booliano) | Habilita ou desabilita carimbos de data/hora RFC 1323. Observe que também há uma configuração global para carimbos de data/hora (o padrão está desativado), "Carimbos de data/hora" em (set/get)-nettcpsetting. Definir essa opção de soquete substitui essa configuração global. |
TCP_FASTOPEN | sim | sim | DWORD (booliano) | Habilita ou desabilita o RFC 7413 TCP Fast Open, que permite que você comece a enviar dados durante a fase de handshake de três vias de abertura de uma conexão. Observe que, para fazer uso de aberturas rápidas, você deve usar ConnectEx para fazer a conexão inicial e especificar dados no parâmetro lpSendBuffer dessa função a serem transferidos durante o processo de handshake. Alguns dos dados no lpSendBuffer serão transferidos sob o protocolo Fast Open. |
TCP_KEEPIDLE | sim | sim | DWORD | Obtém ou define o número de segundos em que uma conexão TCP permanecerá ociosa antes que as investigações keepalive sejam enviadas para o remoto.
Observação: |
TCP_KEEPINTVL | sim | sim | DWORD | Obtém ou define o número de segundos que uma conexão TCP aguardará por uma resposta keepalive antes de enviar outra investigação keepalive.
Observação: |
Suporte do Windows para opções de IPPROTO_TCP
Opção | Windows 10 | Windows 7 | Windows Server 2008 | Windows Vista |
---|---|---|---|---|
TCP_BSDURGENT | x | x | x | x |
TCP_EXPEDITED_1122 | x | x | x | x |
TCP_KEEPCNT | A partir do Windows 10, versão 1703 | |||
TCP_MAXRT | x | x | x | x |
TCP_NODELAY | x | x | x | x |
TCP_TIMESTAMPS | x | x | x | x |
TCP_FASTOPEN | A partir do Windows 10, versão 1607 |
Opção | 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 |
Comentários
No Microsoft Windows Software Development Kit (SDK) lançado para Windows Vista e posterior, a organização de arquivos de cabeçalho foi alterada e IPPROTO_TCP nível é definido no arquivo de cabeçalho Ws2def.h que é incluído automaticamente no arquivo de cabeçalho Winsock2.h . As opções de soquete IPPROTO_TCP , com exceção de TCP_BSDURGENT, são definidas no arquivo de cabeçalho Ws2ipdef.h que é incluído automaticamente no arquivo de cabeçalho Ws2tcpip.h . A opção TCP_BSDURGENT por motivos históricos é definida no arquivo de cabeçalho Mswsock.h . Os arquivos de cabeçalho Ws2def.h e Ws2ipdef.h nunca devem ser usados diretamente.
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de