De acordo com a resposta do Hello71s, talvez seja útil visualizar uma porta pensando na estrutura de um endereço em um pacote. Um pacote é uma unidade de dados passada pela rede. O TCP é um exemplo de protocolo de camada de transporte que usa portas e é comumente usado em IP.
O IP tem dois componentes de endereçamento - o IP de origem e o IP de destino. O TCP adiciona isso usando uma porta de origem e uma porta de destino. São as portas que permitem que a máquina recebedora diferencie o tráfego destinado ao mesmo endereço IP - ou seja, se você tiver um servidor que receba solicitações da Web e email em um único endereço IP, precisará determinar qual aplicativo deve receber os dados. - o serviço de e-mail ou o serviço da web. Assim, eles podem se parecer com isso se um único usuário tiver que realizar uma solicitação da web e uma solicitação de e-mail para o mesmo servidor:
Source IP Source Port Dest IP Dest Port Service
10.1.1.10 23434 192.168.1.1 80 web
10.1.1.10 34343 192.168.1.1 25 incoming email
O serviço web possui a porta 80 e o serviço de e-mail possui a porta 25 - eles "ouvem" em suas respectivas portas, o que permite que o tráfego seja colocado no lugar certo.
A porta de origem é "efêmera" - em que é composta no momento em que o pacote é enviado. No entanto, ainda serve para um propósito útil. Ele permite que ambas as extremidades da conexão acompanhem conversas separadas. Considere se nosso usuário enviou duas solicitações da Web simultâneas:
Source IP Source Port Dest IP Dest Port Service
10.1.1.10 23232 192.168.1.1 80 web request 1
10.1.1.10 23234 192.168.1.1 80 web request 2
Isso permite que o serviço da Web saiba que são solicitações separadas, mas também que o tráfego de retorno do servidor da Web - as páginas da Web - seja enviado de volta às respectivas portas de origem, permitindo que o navegador saiba qual solicitação o servidor está respondendo para.
Observe que tudo isso se refere a números de porta, de uma perspectiva TCP / IP, os dados reais que estão sendo movidos por essas portas podem ser qualquer coisa. Ele não se importa ou tem qualquer conhecimento de aplicativos, por isso, se você tivesse o tráfego da Web na porta 25 e o e-mail na porta 80, não seria o caso.
Cabe ao aplicativo de envio e recebimento garantir que os dados sejam a estrutura correta, e é aí que entram os protocolos de aplicativos. O HTTP é um exemplo de protocolo de aplicativo que os navegadores da Web usam para se comunicar com servidores da web. É um protocolo bem definido que garante que o navegador envie solicitações para qualquer servidor da Web e que o servidor da Web entenderá e responderá de maneira sensata. Mas o que não inclui em sua definição é qualquer coisa sobre como os pacotes vão de A para B - que é a responsabilidade das camadas anteriores - as camadas de transporte, internet e links.