PROBLEMA: Mensagem de erro "WSAEADDRESSINUSE" ao tentar conectar por meio de uma porta anônima após você aumentar o limite de conexão IMAP

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

Sintomas

Ao aumentar o limite de conexão IMAP e, em seguida, tente se conectar ao servidor IMAP de um serviço de email Microsoft TV configurado com uma configuração muito baixa de MailboxCacheTTL, a mensagem de erro "WSAEADDRESSINUSE" (código de erro: 10048).

Causa

Esse comportamento ocorre por causa de uma combinação dos seguintes procedimentos:
  • Por padrão, o Windows 2000 limitou espaço para portas anônimos. Esse espaço é limitado mais pela baixa MailboxCacheTTL configurado para o serviço de email Microsoft TV. (Anônimas portas são portas temporárias que são atribuídas por pilha IP do computador; portas anônimas são atribuídas de um intervalo de portas designado. Somente portas 1024-5000 são usadas no Windows 2000.)
  • A opção SO_REUSEADDR os soquetes não está ativada, para que os soquetes não podem ser reutilizados imediatamente após o fechamento. Os soquetes devem permanecer reservados em um estado TIME_WAIT por quatro minutos. Se você definir a opção SO_REUSEADDR, o Windows permite vários vínculos no soquete de escuta.
O intervalo de portas anônimo (porta efêmera) limita o número máximo de conexões de um computador com um serviço específico em um computador remoto. O protocolo TCP/IP usa 4-tupla da conexão (IP do servidor, porta do servidor, cliente IP e porta cliente) para distinguir entre conexões; se for o intervalo de portas anônimo somente 4000 portas ampla (aproximadamente), pode haver apenas 4000 conexões exclusivos de um computador cliente para um serviço remoto de uma só vez.

Quando a conexão é encerrada, as portas efêmeras está disponível para reutilização, embora a maioria das pilhas IP não reutilize esse número de porta até que o pool inteiro de portas efêmeras foi usado. Portanto, se o programa cliente for reconectado, o cliente foi atribuído um número de porta efêmera diferente para o lado cliente da nova conexão. No caso do serviço de email Microsoft TV, uma configuração muito baixa de MailboxCacheTTL aggravates a situação porque IMAP conexões fechar e reabrir com freqüência (em quase todas as solicitações).

Um intervalo de portas de 4000 pode parecer grande, mas é pequeno para demandas de computação atuais quando você considera que uma conexão TCP deve expirar por meio de um estado TIME_WAIT antes de realmente concluída. Por exemplo, mesmo que ambos os lados de uma conexão fechar corretamente suas extremidades da conexão, por causa de controle de erro do TCP, cada lado deve aguardar até que o estado TIME_WAIT expirou antes recursos da conexão realmente poderão ser descartados.

O estado TIME_WAIT é duas vezes o tempo de máximo de segmento (MSL). (Por esse motivo, o estado TIME_WAIT é também conhecido como o estado 2MSL.) Normalmente, dependendo da pilha de IP, estado TIME_WAIT está configurado para ser o total de 240 segundos. Portanto, você pode ter somente 4000 conexões por segundo de 240 janela e, na prática, essas 4000 conexões podem ser usados.

Resolução

Para impedir esse comportamento, siga um destes procedimentos:
  • Aumente o intervalo de portas usado para portas anônimas aproximadamente 20 mil portas (por exemplo), modificando a chave do Registro MaxUserPort. O Windows usa o intervalo BSD convencional de 1024 a 5000 seu intervalo de porta (efêmera) anônimo. Você pode definir somente o limite superior do intervalo de portas efêmeras. Para modificar a chave do Registro MaxUserPort, execute as seguintes etapas:

    1. Inicie o Editor do registro (Regedt32.exe).
    2. Localize a chave de MaxUserPort no registro:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    3. No menu Editar, clique em Adicionar valor e adicione o seguinte valor do registro:

      Nome do valor : MaxUserPort
      Tipo de dados: REG_DWORD
      Valor: 65534 (por exemplo)
      Intervalo válido: 5000-65534 (decimal)
      Padrão: 0x1388 (5000 decimal)
    4. Feche o Editor do registro.
    Descrição: este parâmetro controla o número de máxima da porta é usado quando um aplicativo solicita qualquer porta de usuário disponíveis do sistema. Normalmente, efêmero (isto é, curta duração) portas estão alocadas entre os valores 1024 e 5000, inclusive.

    - ou -
  • Alterar o tempo limite de conexões de 240 segundos (o padrão) para qualquer período de 30 segundos para 300 segundos. Use o parâmetro do Registro TcpTimedWaitDelay para alterar esse valor. Para fazer isso, inicie o Editor do registro (Regedt32.exe), localize a seguinte chave no registro e, em seguida, modificar o valor:

    HKEY_LOCAL_MACHINE\System\CurrectControlSet\services\Tcpip\Parameters

    TcpTimedWaitDelay

    Chave: Tcpip\Parameters
    Tipo de valor: REG_DWORD-tempo em segundos
    Intervalo válido: 30-300 (decimal)
    Padrão: 0xF0 (240 decimal)

    Descrição
    : esse parâmetro determina o período de tempo que uma conexão permanece no estado TIME_WAIT quando a conexão está sendo fechada. Enquanto uma conexão estiver no estado TIME_WAIT, o par de soquetes não pode ser reutilizado. Para obter mais informações, consulte RFC 793.
Observação: O problema fica pior se a configuração MailboxCacheTTL for muito baixa. Se o problema persistir após você fazer as alterações do Registro descritas anteriormente, aumente a caixa de correio TTL alterando a configuração MailboxCacheTTL no arquivo SiteConfig.cfg (o arquivo de configuração para instalação do Microsoft Server).

Mais Informações

Para obter informações adicionais sobre como aumentar o intervalo de portas anônima padrão, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
196271Não é possível conectar-se de portas TCP acima de 5000
149532Clientes Windows NT ficam sem portas

Propriedades

ID do artigo: 319502 - Última revisão: quarta-feira, 18 de junho de 2003 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft TV Server 2.0 Service Pack 1
Palavras-chave: 
kbmt kbprb KB319502 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: 319502

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