
Eu sei que haverá várias portas no host/máquina de computação para cada um dos serviços que eu hospedo na rede.
Mas quero entender o que são essas portas internamente?
Abaixo está meu entendimento sobre portas de rede. Corrija-me se eu estiver enganado. Adicione detalhes para torná-lo mais claro.
Eles podem ser uma construção de software, principalmente uma fila/buffer dentro do componente de rede do sistema operacional, criado dinamicamente sempre que um serviço de rede (serviço Web, serviço de transferência de arquivos, etc.) está hospedado na máquina. E cada um dos serviços de rede estaria escutando sua respectiva porta (para receber os dados) e também teria acesso para gravar nessa porta (para enviar os dados). [Assim como um problema de buffer limitado]
Quando os dados precisam ser enviados-
O serviço de rede (aplicativo) faria uma chamada de sistema ao sistema operacional (digamos, send()) para gravar os dados no buffer e informar o protocolo de transporte. Para que o protocolo TCP/UDP pegue os dados do buffer, segmente-os e passe-os pela pilha da rede.
Quando os dados precisam ser recebidos-
À medida que os dados chegam ao host através da NIC, os dados seriam lidos de algum componente de rede de baixo nível no sistema operacional e transmitidos pela pilha de rede. E quando o componente da camada de transporte do sistema operacional o lê, ele coloca os dados na fila associada a esse número de porta específico. para que o aplicativo (serviço de rede) que escuta essa porta possa ler os dados.
Responder1
Quase, mas não totalmente correto.
tomadassão a construção do software com buffers (cada soquete possui filas de envio e recebimento separadas). Para TCP, cada conexão usa um soquete separado.
As portas são apenas rótulos numéricos usados para demultiplexação – ajudando o sistema operacional a escolher qual soquete (ou qual buffer de recebimento) deve receber um pacote de entrada.
Cada soquete está associado a vários parâmetros – protocolo, endereços locais e remotos e portas locais e remotas – e todos eles são usados ao procurar um pacote recebido. (Quando os endereços são idênticos, pelo menos uma das portas deve ser diferente. Mas se os endereços forem diferentes, vários soquetes poderão usar portas idênticas.)