Meu entendimento da conexão TCP é que uma PORTA de origem permanece exclusiva para uma conexão, não importa o destino, portanto o número de conexões da porta local 12345, por exemplo, nunca pode exceder 1.
Li recentemente que uma conexão TCP é identificada por <src IP, src PORT, dst IP, dst PORT>
O TCP permite o compartilhamento da porta de origem entre vários processos, mas cada processo requer uma porta livre para vincular sua conexão
então fui validar esse "compartilhamento de porta entre processos": isso deve significar que a mesma porta de origem pode ser usada para conectar-se a destinos diferentes.
No entanto, ao experimentar isso, tentei estes dois comandos:
nc -v -p 12345 google.com 80
que funciona bem (-v para verboso e -p para especificar a porta de origem como 12345, para meu propósito de aprendizado)
Agora, executando simultaneamente este comando em um shell diferente
nc -v -p 12345 github.com 80
falha com esta mensagem de erro:
nc: falha na conexão x à porta 80 do github.com (tcp): endereço já em uso
o motivo pelo qual especifiquei a mesma porta de origem com -p é para validar que uma porta de origem pode ser compartilhada. Na prática, não há necessidade disso, no cenário do mundo real eu nem me preocuparia com a porta de origem. De acordo com isso, é verdade que uma porta de origem será usada apenas uma vez?