INFO: Desempenho da conexão TCP Winsock para portas não utilizadas

Traduções deste artigo Traduções deste artigo
ID do artigo: 175523 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sumário

Este artigo discute como a implementação do Winsock de TCP nos vários Alças de plataformas Microsoft soquete conexões para portas que não têm um servidor escuta a eles. Ela também descreve relacionados ao desempenho considerações e como ajustá-los para atender às suas necessidades.

Mais Informações

Quando um processo cria um soquete TCP na camada Winsock da Microsoft e emite uma chamada Connect () para algum host e número da porta, o protocolo TCP executa seu padrão three-way "handshake" de um pacote SYN, confirmado pelo host do destino com SYN/ACK e uma confirmação final desde o início do cliente. No entanto, pelas especificações TCP definidas no RFC-793 (transmissão Protocolo de controle), um reset (RST) pode ser gerado se a tentativa SYN endereçados a um host que existe, mas a porta não é utilizada. Isso é melhor descrito pela cotação RFC seguinte da página 35:
Geração de redefinição.

Como regra geral, RST (Reset) deve ser enviado sempre que chega de um segmento. que, aparentemente, não se destina a conexão atual. Uma redefinição não devem ser enviados se não está claro que esse é o caso...

Se a conexão não existir (fechado), em seguida, uma redefinição é enviada em resposta a qualquer segmento de entrada, exceto a redefinição de outra. Em particular SYNs endereçados a uma conexão inexistentes são rejeitados por este meio.

Redefinir o processamento [página 36]

... No estado SYN-SENT (um RST recebido resposta para um SYN inicial), o RST é aceitável se o campo ACK confirma o SYN.
Ao receber o cliente ACK/RST de host de destino, o cliente Determina o que há, de fato, não há serviço escutando lá. No Microsoft Winsock a implementação do TCP, mantêm uma conexão pendente tentando emitir pacotes SYN até um valor máximo de repetição é atingido (conjunto no registro, o valor padrão é 3 vezes extras). Desde um ACK/RST foi recebida do host de destino, a camada TCP sabe que o host de destino Na verdade pode ser acessado e não duas vezes o valor do tempo limite do pacote Cabeçalho IP, conforme o padrão durante as tentativas de conexão com não confirmados SYNs. Em vez disso, a conexão pendente aguardará para a conexão de base tempo limite de valor e emita novamente a outro pacote SYN para iniciar uma conexão. Como desde que um pacote ACK/RST de uma porta não utilizada é recebido, o tempo limite valor não aumentará e o processo se repetirá até que o número máximo de tentativas valor é atingido.

Esse comportamento pode resultar em desempenho fraco se por algum motivo um processo repetidamente emite chamadas Connect () às portas com nada lá, de escuta resultando no erro WSAECONNREFUSED. Observe que, com os outros implementações de TCP, como aqueles comumente encontrados em muitos sistemas UNIX, o Connect () falhar imediatamente após o recebimento do primeiro ACK/RST pacote, resultando no reconhecimento de um erro muito rapidamente. No entanto, isso comportamento não for especificado nas RFCs e é deixado para cada implementação Decida. A abordagem das plataformas da Microsoft é que o sistema administrador tem a liberdade de ajustar as configurações relacionadas ao desempenho de TCP para suas próprias preferências, isto é, o valor máximo novamente esse padrão é 3. O a vantagem disso é que o serviço que você está tentando acessar pode ter temporariamente desligado e poderá repavimentar-o entre as tentativas de SYN. In this os casos, é conveniente que o Connect () esperou tempo suficiente para obter um conexão desde que o serviço estava realmente lá.

Ele contém a listagem completa dos valores de registro TCP do NT. De determinada interesse é a chave:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters

Chave: TcpMaxConnectRetransmissions
Tipo de valor: REG_DWORD - Número
Intervalo válido: 0 - 0xFFFFFFFF
Padrão: 3 (no Windows NT)
Padrão: 2 (no Windows 2000)
Descrição: Este parâmetro determina o número de vezes que será TCP retransmitir uma solicitação de conexão (SYN) antes de anular a tentativa. O tempo limite de retransmissão é dobrado com cada retransmissão sucessiva em uma determinada tentativa de conexão (exceto na situação discutida acima). A letra inicial o valor de tempo limite é de três segundos (uma vez que um ACK/RST foi recebida nesse caso, isso é irrelevante).
Para obter informações adicionais sobre as entradas de registro TCP do Windows 95, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
158474 Entradas de registro TCP/IP do Windows 95
A seguinte chave é de particular interesse:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP

Chave: MaxConnectRetries
Tipo de valor: DWORD - número de 32 bits
Padrão: 3
Descrição: Especifica o número de vezes que uma tentativa de conexão (SYN) será retransmitido antes de desistir. A letra inicial tempo limite de retransmissão é de 3 segundos (irrelevantes no no caso acima), e ele é duplicado a cada vez (o caso acima é uma exceção) um máximo de 2 minutos.
Reinicie o computador depois de ajustar esses valores do registro.

AVISO: Modificar esses valores afeta qualquer e todas as solicitações de conexão saídas TCP do computador afetado. Se todas as atividades TCP no computador tem pouca latência e pouco distância viajar de viagem, reduzindo a isso como baixa como zero (embora a Microsoft não recomenda isso) fará com que não há diferença. No entanto, se os aplicativos ou tentativas de conexão falharem regularmente com os erros de Winsock padrão e os servidores remotos de destino são costumam estar disponíveis, é provável que essas entradas do registro são a causa. Nesse caso, talvez você precise aumentar o valor máximo tentativas para que o TCP será o dobro do pacote SYN time-to-live valor em seu cabeçalho IP em sucessivas tentativas até que ele tem um intervalo de tempo suficiente de vida para atingir o host de destino e receber um ACK/SYN.

Referências

RFC-793, protocolo de controle de transmissão, setembro de 1981

White paper, o Microsoft Windows NT: TCP/IP Implementation Details, 1996 Artigo do Knowledge Base 158474

Propriedades

ID do artigo: 175523 - Última revisão: quinta-feira, 26 de maio de 2011 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Interface de Programação de Aplicativos do Microsoft Win32
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 Service Pack 2 nas seguintes plataformas
    • Windows Server 2008 for Itanium-Based Systems
    • Windows Server 2008 Datacenter
    • Windows Server 2008 Enterprise
    • Windows Server 2008 Standard
    • Windows Web Server 2008
  • Windows Server 2008 for Itanium-Based Systems
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Windows Web Server 2008
  • Windows Vista Service Pack 2 nas seguintes plataformas
    • Windows Vista Business
    • Windows Vista Enterprise
    • Windows Vista Home Basic
    • Windows Vista Home Premium
    • Windows Vista Starter
    • Windows Vista Ultimate
    • Windows Vista Enterprise 64-bit edition
    • Windows Vista Home Basic 64-bit edition
    • Windows Vista Home Premium 64-bit edition
    • Windows Vista Ultimate 64-bit edition
    • Windows Vista Business 64-bit edition
  • Service Pack 1 para Windows Vista nas seguintes plataformas
    • Windows Vista Business
    • Windows Vista Enterprise
    • Windows Vista Home Basic
    • Windows Vista Home Premium
    • Windows Vista Starter
    • Windows Vista Ultimate
    • Windows Vista Enterprise 64-bit edition
    • Windows Vista Home Basic 64-bit edition
    • Windows Vista Home Premium 64-bit edition
    • Windows Vista Ultimate 64-bit edition
    • Windows Vista Business 64-bit edition
  • Microsoft Windows Server 2003 Service Pack 2 nas seguintes plataformas
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Service Pack 3 para Windows XP nas seguintes plataformas
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional
  • Microsoft Windows 2000 Service Pack 4
  • Microsoft Windows 98 Standard Edition
Palavras-chave: 
kbapi kbinfo kbnetwork kbwinsock kbmt KB175523 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 175523

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com