PROBLEMA: Mensagem de erro de "WSAEADDRESSINUSE" quando tenta ligar através de uma porta anónima depois é aumentar o limite de ligação de IMAP

Traduções de Artigos Traduções de Artigos
Artigo: 319502 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sintomas

Quando aumentar o limite de ligação IMAP e, em seguida, tente ligar ao servidor de IMAP através de um serviço de correio Microsoft TV que esteja configurado com uma definição MailboxCacheTTL muito baixa, recebe a mensagem de erro "WSAEADDRESSINUSE" (código de erro: 10048).

Causa

Este comportamento ocorre devido a uma combinação das seguintes opções:
  • Por predefinição, o Windows 2000 limitou espaço portas anónimos. Este espaço é limitado mais pelo baixa MailboxCacheTTL que esteja configurado para o serviço de correio Microsoft TV. (Portas anónimas são portas temporárias que são atribuídas pela pilha de IP do computador, portas anónimas são atribuídas de um determinado intervalo de portas. Apenas portas 1024-5000 são utilizadas no Windows 2000.)
  • A opção SO_REUSEADDR os sockets não está activada, para que os sockets não podem ser reutilizados imediatamente após ser fechada. Os sockets devem permanecer reservados no estado TIME_WAIT quatro minutos. Se definir a opção SO_REUSEADDR, o Windows permite que as associações múltiplas para o socket de escuta.
O intervalo de portas anónimo (portas efémeras) limita o número máximo de ligações de um computador a um serviço específico num computador remoto. O protocolo TCP/IP utiliza 4-tuple a ligação (IP do servidor, porta de servidor, cliente IP e porta de cliente) para distinguir entre ligações; se o intervalo de portas anónimo apenas for 4000 portas grande (aproximadamente), pode haver apenas 4000 ligações exclusivas de um computador cliente para um serviço remoto de uma só vez.

Quando termina a ligação, portas efémeras está disponível para reutilização, embora a maior parte das pilhas IP não reutilizar esse número de porta até que tenha sido utilizado o conjunto completo de portas efémeras. Por conseguinte, se o programa cliente volta a ligar, o cliente é atribuído um número de porta efémera diferente para o lado do cliente de nova ligação. No caso do serviço de correio Microsoft TV, uma definição muito baixa de MailboxCacheTTL aggravates a situação porque IMAP ligações feche e reabra com frequência (em quase todos os pedidos).

Um intervalo de portas de 4000 pode parecer grande, mas é pequeno para pedidos informáticos actuais quando considerar que uma ligação TCP tem expirar através de estado TIME_WAIT antes de realmente concluída. Por exemplo, mesmo se ambos os lados de uma ligação fechar correctamente extremidades da ligação, devido a de controlo de erros do TCP, cada lado tem de aguardar até o estado TIME_WAIT expirou antes de recursos a ligação realmente a podem ser eliminados.

O estado TIME_WAIT é duas vezes a validade máxima de segmentos (MSL). (Por este motivo, o estado TIME_WAIT é também conhecido como o estado 2MSL.) Normalmente, consoante a pilha IP, no estado TIME_WAIT está configurado para ser 240 segundos totais. Por conseguinte, pode ter apenas 4000 ligações por 240-segunda janela e, na prática, estas 4000 ligações podem ser utilizadas.

Resolução

Para evitar este comportamento, efectue um dos seguintes procedimentos:
  • Aumente o intervalo de portas (por exemplo) utilizado para portas anónimas às portas cerca de 20.000 modificando a chave de registo MaxUserPort. O Windows utiliza o intervalo BSD convencional de 1024 a 5000 para seu intervalo de portas (efémeras) anónima. Pode definir apenas o limite superior do intervalo de portas efémeras. Para modificar a chave de registo MaxUserPort, siga estes passos:

    1. Inicie o Registry Editor (Regedt32.exe).
    2. Localize a chave MaxUserPort no registo:

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

      Nome do valor : MaxUserPort
      Tipo de dados: REG_DWORD
      Valor: 65534 (por exemplo)
      Intervalo válido: 5000-65534 (decimal)
      Predefinição: 0x1388 (5000 decimal)
    4. Saia do Editor de registo.
    Descrição: Este parâmetro controla o número de máxima da porta é utilizado quando uma aplicação solicita qualquer porta de utilizador disponíveis do sistema. Normalmente, efémeras (ou seja, curta duração) são as portas atribuídas entre os valores de 1024 e 5000, inclusive.

    - ou -
  • Alterar o tempo limite nas ligações de 240 segundos (a predefinição) para qualquer comprimento de 30 segundos para 300 segundos. Utilize o parâmetro do registo TcpTimedWaitDelay para alterar este valor. Para o fazer, inicie o Registry Editor (Regedt32.exe), localize a seguinte chave no registo e, em seguida, modifique 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)
    Predefinição: 0xF0 (240 decimal)

    Descrição
    : Este parâmetro determina o período de tempo que uma ligação permanece no estado TIME_WAIT quando a ligação está a ser fechada. Enquanto uma ligação estiver no estado TIME_WAIT, não pode ser reutilizado o par de sockets. Para mais informações, consulte RFC 793.
Nota: este problema é efectuado pior se a definição MailboxCacheTTL for muito baixa. Se o problema persistir depois de efectuar as alterações ao registo descritas anteriormente, aumente a caixa de correio TTL alterando a definição MailboxCacheTTL no ficheiro SiteConfig.cfg (o ficheiro de configuração para instalação do Microsoft Server).

Mais Informação

Para obter informações adicionais sobre como aumentar o intervalo de portas anónima predefinida, clique nos números de artigo existentes abaixo para visualizar os artigos na base de dados de conhecimento da Microsoft:
196271Não é possível ligar a partir de portas TCP por cima de 5000
149532Clientes do Windows NT executar fora de portas

Propriedades

Artigo: 319502 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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