é o esgotamento da porta TCP real? [fechadas]

4

Quão rápido seria necessário alocar portas efêmeras para entrar na condição de exaustão da porta TCP?

Foi-me dito que existem portas ~ 4k (mais antigas do Windows), ~ 16k (mais recentes do Windows) ou ~ 28k (RH Linux) disponíveis para as solicitações do cliente. Agora, o pool de números de porta é global ou por endereço IP remoto?

Se eles são globais, uma vez que as portas não se tornam reutilizáveis até depois de 240 (Windows) ou 60 (RH Linux) segundos, seria necessário alocá-las a uma taxa de aproximadamente 16/66/466 por segundo?

Isso está correto?

Na sua experiência, isso é algo que eu deveria estar praticamente preocupado?

    
por zvolkov 29.11.2012 / 21:01

2 respostas

5

Os ataques do DOS são separados, apenas com aplicativos mal escritos. O truque básico para evitar o esgotamento da porta TCP é o pool de conexões, por exemplo, o HTTP keep-alive. Isso tem vários efeitos benéficos:

  1. Menos conexões por unidade de tempo.
  2. O primeiro fechamento de uma conexão geralmente é feito pelo cliente, não pelo servidor. Isso move o estado TIME_WAIT do servidor para o cliente, que está usando muito menos soquetes e portas e pode, portanto, tolerá-lo muito melhor.
por 29.11.2012 / 21:37
2

Diito EJP e Sirex. Monitoramento lhe dará uma melhor compreensão de onde você está. Você também pode ajustar por quanto tempo um soquete pode permanecer em um estado TIME_WAIT. Eu tive que fazer isso mesmo em um sistema que fala com milhares de dispositivos de telemetria GPRS. Eles discam e consomem portas como ninguém. Um limite TIME_WAIT mais agressivo fez com que nosso aplicativo fosse mais estável.

Existem algumas ferramentas úteis no MS Windows para monitorar o uso de portas, por exemplo: TCPView e ProcessExplorer (MS SysInternals). netstat -a pode ser lento quando existem milhares de conexões, portanto você pode usar netstat -an (isso impede que a resolução de DNS ocorra nos endereços). Eu não posso garantir o Linux embora ...

    
por 29.11.2012 / 22:08