Limitações do sistema na varredura de portas TCP/IP abertas
A Microsoft impõe um limite (de 10) ao número de conexões TCP de saída semiabertas simultâneas no Windows XP SP2 (x86, x64)/SP3, 2003 Server SP1 (x86)/SP2 (x86, x64), Vista sem SP (x86, x64) e com SP1 (x86, x64), para impedir que vírus ou programas maliciosos abram conexões infecciosas ilimitadas em outros sistemas. Esses sistemas operacionais deixam mais lenta a varredura de faixas de IP por conexão a uma porta TCP em todos os aplicativos em execução no PC (o ping ICMP não é afetado).
O nosso programa pode sofrer essa limitação.
Quando a limitação ocorre, o Log de Eventos do aplicativo registra o evento ID 4226 com a mensagem "TCP/IP has reached the security limit imposed on the number of concurrent TCP connect attempts".
Os resultados da varredura de rede do nosso programa podem ser afetados por essa limitação. Alguns hosts podem não ser encontrados, e o sistema pode bloquear o programa por 10 segundos ou mais, de tempos em tempos.
Se isso acontecer, considere estas soluções:
- Feche outros programas que gerem muitas conexões TCP de saída semiabertas.
- Ao criar um mapa de rede novo ou varrer faixas de IP em busca de dispositivos, aumente os tempos de espera da varredura de portas TCP no Network Scanning Wizard para vários segundos, de modo que no máximo 10 endereços IP sejam verificados a cada 10 segundos.
- Desative a verificação de portas TCP quando ela não for necessária na varredura da rede ou no monitoramento de hosts.
- Veja abaixo como desativar o limite.
A remoção completa do limite de conexões TCP de saída semiabertas, cujo padrão é 10, foi concluída com o Windows Server 2008 e o Vista SP2 Build 17506. Na prática, o limite já vinha ignorado por padrão desde o Windows Vista SP2 RC Build 16670.
A Microsoft adicionou uma chave de registro que permite ao usuário ou ao administrador ativar ou desativar o limite de conexões TCP semiabertas no Windows Vista com Service Pack 2 e no Windows Server 2008 com Service Pack 2.
Há vários patches para o driver tcpip.sys que desativam o limite ou aumentam o número de conexões permitidas. Pesquise na Internet a expressão "half-open TCP connections limit" para encontrá-los.