A porta 0 tem um significado especial na programação de rede, particularmente no sistema operacional Unix, quando se trata de programação de soquete, onde a porta é usada para solicitar portas dinâmicas alocadas pelo sistema. A porta 0 é uma porta curinga que informa ao sistema para encontrar um número de porta adequado. Ao contrário da maioria dos números de porta, a porta 0 é uma porta reservada na rede TCP / IP, o que significa que não deve ser usada em mensagens TCP ou UDP. As portas de rede em TCP e UDP variam do número zero até 65535. Os números de porta na faixa entre zero e 1023 são definidos como portas não efêmeras, portas do sistema ou portas conhecidas. A Internet Assigned Numbers Authority (IANA) mantém uma lista oficial do uso pretendido desses números de porta na Internet, e a porta 0 do sistema não deve ser usada.
Como a porta 0 TCP / UDP funciona na programação de rede
Jetta Productions / Getty Images
A configuração de uma nova conexão de soquete de rede requer que um número de porta seja alocado na origem e no destino. As mensagens TCP ou UDP enviadas pelo originador (origem) contêm ambos os números de porta para que o destinatário da mensagem (destino) possa emitir mensagens de resposta para o terminal de protocolo correto. A IANA pré-alocou portas de sistema designadas para aplicativos básicos da Internet, como servidores web (porta 80), mas muitos aplicativos de rede TCP e UDP não têm sua própria porta de sistema e devem obter uma do sistema operacional de seu dispositivo sempre que forem executados. Para alocar seu número de porta de origem, os aplicativos chamam funções de rede TCP / IP como bind () para solicitar um. O aplicativo pode fornecer um número fixo (codificado) para bind () se preferir solicitar um número específico, mas tal pedido pode falhar porque outro aplicativo em execução no sistema pode estar usando-o no momento. Como alternativa, ele pode fornecer a porta 0 para bind () como seu parâmetro de conexão. Isso faz com que o sistema operacional procure e retorne automaticamente uma porta disponível adequada no intervalo de número de porta dinâmica TCP / IP. O aplicativo não tem a porta 0 concedida, mas sim alguma outra porta dinâmica. A vantagem desta convenção de programação é a eficiência. Em vez de cada aplicativo implementar e executar código para tentar várias portas até obter uma porta válida, os aplicativos dependem do sistema operacional. Unix, Windows e outros sistemas operacionais variam no manuseio da porta 0, mas a mesma convenção geral se aplica.
Porta 0 e segurança de rede
O tráfego de rede enviado pela Internet para hosts ouvindo na porta 0 pode ser gerado por invasores de rede ou acidentalmente por aplicativos programados incorretamente. As mensagens de resposta que os hosts geram em resposta ao tráfego da porta 0 ajudam os invasores a aprender o comportamento e as vulnerabilidades de rede potenciais desses dispositivos. Muitos provedores de serviços de Internet (ISPs) bloqueiam o tráfego na porta 0 – mensagens de entrada e saída – para proteger contra essas explorações.