Embora essa pergunta já tenha sido marcada como respondida, eu queria abordar algumas das perguntas adicionais feitas no OP.
Essas portas são objetos físicos?
Nenhuma porta não é um objeto físico.
Um número de porta é um número inteiro não assinado de 16 bits, o que significa que o intervalo de portas disponíveis para uso é de 1 a 65535 (o número de porta 0 está reservado e não pode ser usado). Um processo associa seus canais de entrada ou saída via soquetes da Internet, um tipo de descritor de arquivo, com um protocolo de transporte, um número de porta e um endereço IP. Esse processo é conhecido como ligação e permite o envio e o recebimento de dados pela rede.
Eles são algo embutido em parte do meu computador? Eles são algo físico? Ou escrito em código? Onde está esse código? O sistema operacional? O que realmente é uma porta?
O software de rede do sistema operacional tem a tarefa de transmitir dados de saída de todas as portas de aplicativos para a rede e encaminhar os pacotes de rede que chegam para um processo, combinando o endereço IP e o número da porta do pacote.
Somente um processo pode ser vinculado a uma combinação específica de endereço IP e porta usando o mesmo protocolo de transporte. Falhas comuns de aplicativos, às vezes chamadas de conflitos de porta, ocorrem quando vários programas tentam se conectar aos mesmos números de porta no mesmo endereço IP usando o mesmo protocolo.
O parágrafo acima é essencial para entender por que portas / protocolos são usados em redes. Se não tivéssemos uma maneira de especificar o protocolo, que transmite dados através de um número de porta apon acordado - você não seria capaz de fazer mais de uma coisa por vez (verifique seu e-mail e use a web) porque seu computador teria não há como diferenciar dados do seu cliente de email e dados do site em que você está navegando.
Quantas portas existem?
Os números de porta são atribuídos de várias maneiras, com base em três intervalos:
Portas conhecidas / do sistema (0-1023) - Esse intervalo de portas é usado pelos processos do sistema que fornecem tipos de serviços de rede amplamente utilizados (HTTP / 80, HTTPS / 443, Telnet / 21, SSH / 22)
Portas registradas / usuário (1024-49151) - O intervalo de números de portas de 1024 a 49151 são as portas registradas. Eles são atribuídos pela IANA para serviços específicos mediante solicitação por uma entidade solicitante. (Webmin / 10000, HTTP Proxy / 8080, Protocolo de Área de Trabalho Remota / 3389, etc)
Portas efêmeras / dinâmicas / privadas (49152-65535) - O intervalo 49152-65535 contém portas dinâmicas ou privadas que não podem ser registradas na IANA. Esse intervalo é usado para fins personalizados ou temporários e para alocação automática de portas efêmeras.
Posso aumentar ou diminuir o número de portas?
Em relação à capacidade de aumentar o número de portas disponíveis, você não pode atribuir uma porta acima de 65535 devido à matemática que permite que a rede funcione (binária) - portanto, a resposta a esta pergunta é não, você não pode aumentar o número total de portas disponíveis. portas acima de 65535.
O que são protocolos?
Na ciência da computação, um protocolo de comunicação é um sistema de regras digitais para troca de mensagens dentro ou entre computadores. Quando as mensagens são trocadas por uma rede de computadores, o sistema de regras é chamado de protocolo de rede. Um protocolo é basicamente um conjunto acordado de instruções / comandos / chamadas pelas quais dois dispositivos em rede podem se comunicar. Pense se não concordamos com protocolos e servidores da Web apenas enviando dados aleatoriamente para navegadores da Web com os quais o navegador não sabia o que fazer? Felizmente, temos HTTP e todos os navegadores criados no software incorporam o software para que ele possa se comunicar com qualquer servidor que também fale a mesma linguagem (HTTP).
Eu imagino que eles são algum tipo de código .... Você pode criar seu próprio protocolo? Qual idioma você usa para criar um protocolo?
Sim, você pode criar seus próprios protocolos. Os protocolos são escritos em uma ampla variedade de idiomas. Não sou desenvolvedor de software, mas tenho certeza de que, desde que qualquer linguagem que você esteja usando tenha bibliotecas que permitam escrever software que possa se comunicar por TCP / IP (existem outros conjuntos de protocolos, mas o TCP / IP é o mais amplamente utilizado), você pode usar esse idioma para escrever um protocolo. A linguagem de programação 'C' parece ser a mais usada para escrever protocolos. Isso se deve ao fato de que muitos dos primeiros protocolos de rede foram desenvolvidos no UNIX na década de 1970 e C é a linguagem na qual o próprio UNIX está escrito.
Como você obtém uma porta específica para executar um protocolo específico?
Isso difere um pouco entre os sistemas operacionais. Por exemplo, para alterar o número da porta, o Remote Desktop Protocol é executado no Windows, você precisa editar o registro. No Linux, muitos dos serviços de rede podem ser configurados diretamente de um arquivo .conf para um serviço de rede específico.
Como você define ou inventa um novo protocolo?
Consulte https://journal.paul.querna.org/articles/2012/02/22/designing-network-protocols/ para uma postagem no blog de alguém que desenvolveu recentemente um novo protocolo de rede e que tipo de coisas ele precisava fazer pelo caminho.