O que são números de porta e sockets
Na comunicação pela Internet, o endereço IP sozinho não define completamente o destino da comunicação.
O endereço IP é informação para encontrar a outra parte na rede. Mas, dentro de um servidor ou dispositivo, várias comunicações podem estar ativas ao mesmo tempo: Web, DNS, email, aplicativo de chat, sincronização em nuvem e outras.
Por isso, mesmo sabendo o endereço IP de destino, ainda não se sabe a qual serviço ou aplicação entregar aquela comunicação.
Essa distinção usa números de porta.
O endereço IP sozinho não distingue aplicações
O endereço IP indica a posição da outra parte na rede.
Por exemplo, ao acessar um servidor Web, a comunicação primeiro segue ao endereço IP desse servidor. Mas, no lado do servidor, podem estar ativos ao mesmo tempo servidor Web, DNS, email, serviço administrativo, servidor de API e outros.
Nesse momento, o endereço IP sozinho não permite decidir qual serviço do servidor deve receber a comunicação.
Por isso, na camada de transporte, como TCP e UDP, usam-se números de porta para distinguir o destino de entrega da comunicação.
Número de porta distingue entradas de comunicação
Número de porta é um número usado em comunicações TCP e UDP.
Costuma-se explicar que "porta é uma entrada de comunicação". Essa é uma compreensão amplamente correta. Mais precisamente, número de porta é um identificador usado pelo OS para distribuir a comunicação ao processo ou serviço adequado.
Por exemplo, mesmo para o mesmo endereço IP, se a porta de destino é 443, normalmente é um servidor Web HTTPS; se é 53, um servidor DNS; se é 25, um serviço relacionado à entrega de email.
| Uso | Número de porta comum | Principal protocolo | Descrição |
|---|---|---|---|
| HTTP | 80 | TCP | Frequentemente usado em comunicação Web sem criptografia |
| HTTPS | 443 | TCP / UDP | HTTPS comum usa TCP; HTTP/3 usa QUIC sobre UDP |
| DNS | 53 | UDP / TCP | Consultas comuns usam muito UDP; respostas grandes e usos específicos também usam TCP |
| SMTP | 25 | TCP | Usado principalmente para entrega entre servidores de email |
| SMTP Submission | 587 | TCP | Usado para envio do cliente de email ao servidor de envio |
| IMAPS | 993 | TCP | Usado para receber email por IMAP protegido por TLS |
Há números de porta padrão usados com frequência. No entanto, a porta não garante absolutamente o tipo de serviço.
Por exemplo, é comum usar HTTPS na porta 443, mas, conforme a configuração do servidor, outro aplicativo pode usar a porta 443. Também é possível executar um servidor Web em uma porta não padrão.
Ou seja, número de porta é uma pista forte para inferir o objetivo da comunicação, mas não prova completamente o conteúdo.
Por que um servidor pode executar vários serviços
Com números de porta, um único servidor pode executar vários serviços ao mesmo tempo.
Por exemplo, um servidor com o mesmo endereço IP pode fornecer HTTPS, DNS e serviços de entrega de email, cada um escutando em uma porta diferente.
| Endereço IP de destino | Número de porta de destino | Protocolo de comunicação | Exemplo de entrega |
|---|---|---|---|
| Mesmo endereço IP do servidor | 443 | TCP | Servidor Web HTTPS |
| Mesmo endereço IP do servidor | 53 | UDP / TCP | Servidor DNS |
| Mesmo endereço IP do servidor | 25 | TCP | Serviço de entrega entre servidores de email |
| Mesmo endereço IP do servidor | 587 | TCP | Serviço Submission para envio de email |
Assim, o endereço IP é usado para encontrar o host de destino, e a porta distingue a qual serviço dentro desse host a comunicação deve ser entregue.
Na prática, porém, não se decide apenas por "endereço IP" ou apenas por "porta". Também importa se a comunicação é TCP ou UDP.
Mesmo na porta 53, UDP 53 e TCP 53 são tratados como comunicações diferentes.
Um dispositivo também pode ter vários aplicativos comunicando ao mesmo tempo
Números de porta não são usados apenas no lado do servidor. Eles também são usados em PCs e smartphones dos usuários.
Imagine um PC com navegador aberto, aplicativo de chat em uso, armazenamento em nuvem sincronizando e o OS verificando atualizações. Dentro do dispositivo, várias comunicações ocorrem ao mesmo tempo.
O OS precisa distinguir essas comunicações e entregar os dados retornados à aplicação correta.
Para essa distinção, usa-se a combinação de endereço IP de origem, porta de origem, endereço IP de destino, porta de destino e protocolo de comunicação.
A comunicação é distinguida por cinco informações
Ao entender comunicações TCP e UDP, cinco informações são importantes.
| Informação | Significado | Exemplo |
|---|---|---|
| Endereço IP de origem | Endereço IP do lado que envia a comunicação | Endereço IP do dispositivo do usuário |
| Número de porta de origem | Porta usada pelo lado que iniciou a comunicação | Número temporariamente atribuído no dispositivo |
| Endereço IP de destino | Endereço IP do lado que recebe a comunicação | Endereço IP do servidor Web |
| Número de porta de destino | Porta do serviço que recebe a comunicação | 443 para HTTPS, por exemplo |
| Protocolo de comunicação | Tipo como TCP ou UDP | TCP, UDP |
Essa combinação de cinco elementos é chamada de 5-tuple ou 5-tupla.
Por exemplo, quando o navegador se conecta a um servidor Web HTTPS, a porta de destino costuma ser 443. Já a porta de origem é atribuída pelo dispositivo do usuário para aquela comunicação.
Graças à porta de origem, mesmo várias comunicações do mesmo dispositivo para o mesmo servidor Web podem ser distinguidas.
Porta de destino e porta de origem têm papéis diferentes
Para entender portas, é importante separar porta de destino e porta de origem.
| Tipo | Papel principal | Exemplo |
|---|---|---|
| Número de porta de destino | Indica o serviço de destino | 443 para HTTPS, 53 para DNS |
| Número de porta de origem | Distingue a qual comunicação a resposta deve voltar | Número temporariamente atribuído no dispositivo |
Ao acessar um site, o dispositivo do usuário frequentemente envia comunicação à porta de destino 443. Mas, para receber a resposta, o lado do dispositivo também precisa de uma porta de origem.
Do ponto de vista do servidor, o destino da resposta é "o endereço IP do usuário e a porta usada pelo lado do usuário".
Esse mecanismo permite que um único dispositivo trate várias comunicações ao mesmo tempo.
O que é socket
Socket é uma ideia que representa uma entrada e saída para tratar comunicação de rede.
Em programação, socket é o mecanismo que uma aplicação pede ao OS para criar quando quer fazer comunicação de rede. Para entender a estrutura da comunicação, porém, é mais fácil pensar em socket como "um ponto final de comunicação representado pela combinação de endereço IP, número de porta e protocolo".
Por exemplo, no lado do servidor, o servidor Web cria o estado de "escutar na porta TCP 443". Isso significa preparar uma entrada para receber comunicação HTTPS.
No lado do cliente, quando o navegador inicia uma comunicação, o OS atribui uma porta de origem.
| Posição | Como ver o socket | Exemplo |
|---|---|---|
| Lado do servidor | Escuta por um IP, porta e protocolo específicos | Escutar HTTPS na porta TCP 443 |
| Lado do cliente | Administra a conexão usando uma porta de origem por comunicação | O navegador conecta a partir de uma porta de origem temporária |
| Comunicação inteira | Identifica uma comunicação pela combinação de origem e destino | IP de origem, porta de origem, IP de destino, porta de destino, protocolo |
Estritamente, a palavra socket muda um pouco conforme o contexto.
Pode indicar o socket em que um servidor espera conexões, ou o ponto final de uma comunicação depois que a conexão foi estabelecida. Além disso, o tratamento difere entre uma comunicação que cria conexão, como TCP, e uma comunicação sem conexão, como UDP.
Mesmo assim, como base, basta entender socket como uma porta de comunicação no OS usada por aplicações para tratar rede.
TCP e UDP mudam a natureza das portas
Portas são usadas tanto em TCP quanto em UDP, mas a natureza da comunicação é diferente.
TCP estabelece uma conexão antes de enviar e receber dados. É usado em muitas comunicações, como HTTPS tradicional, envio de email e SSH.
UDP não pressupõe estabelecimento de conexão como TCP. É usado em consultas DNS, QUIC, comunicações em tempo real e semelhantes.
| Item | TCP | UDP |
|---|---|---|
| Natureza da comunicação | Comunica depois de estabelecer conexão | Não pressupõe estabelecimento de conexão |
| Papel da porta | Usada para serviço de destino e identificação da conexão | Usada para distinguir o destino de entrega dos dados |
| Exemplos | HTTPS, SSH, SMTP, IMAPS | DNS, QUIC, parte de comunicações em tempo real |
Mesmo com o mesmo número de porta, TCP e UDP são tratados como comunicações diferentes.
Por exemplo, TCP 443 e UDP 443 usam o mesmo número "443", mas como o protocolo é diferente, OS e equipamentos de rede os tratam separadamente.
Portas ajudam a inferir o objetivo da comunicação
Entender portas facilita ler logs e comportamento de rede.
Por exemplo, se a porta de destino é 443, pode ser comunicação Web como HTTPS ou HTTP/3. Se é 53, pode ser consulta DNS. Se é 587, pode estar relacionada ao envio de email.
No entanto, a porta sozinha não permite julgar completamente o conteúdo.
Em comunicações criptografadas, o conteúdo fica mais difícil de ver. Serviços também podem usar portas fora do padrão. Além disso, portas amplamente permitidas, como 443, podem carregar comunicações que não sejam navegação Web comum.
Por isso, número de porta é material para inferir o objetivo da comunicação, não prova do conteúdo em si.
Números de porta para entender anonimato
, , DNS, HTTPS e outros mecanismos funcionam, na prática, com combinações de endereço IP, porta e protocolo.
Por exemplo, HTTPS usa frequentemente a porta 443. DNS usa frequentemente a porta 53. VPNs usam portas e protocolos diferentes conforme o método. Tor também muda sua aparência conforme o ambiente e o destino.
Ao pensar em anonimato e privacidade, não importa apenas o conteúdo da comunicação, mas também informações visíveis por fora.
Mesmo que o conteúdo esteja criptografado, dependendo do ponto de observação podem aparecer informações como:
| Informação que pode ficar visível | Significado | Ponto de atenção |
|---|---|---|
| Endereço IP de destino | A qual servidor a comunicação segue | Com CDN ou proxy, pode não coincidir com o serviço final |
| Número de porta de destino | Que tipo de comunicação parece ser | Porta 443 não significa necessariamente navegação Web comum |
| Protocolo de comunicação | Se é TCP, UDP etc. | HTTP/3 usa UDP 443 |
| Volume de comunicação | Quanto dado foi enviado e recebido | Pode ser observado mesmo com conteúdo criptografado |
| Timing da comunicação | Quando houve comunicação | Pode virar material para inferir padrões |
Portanto, porta não decide o anonimato por si só, mas é uma informação importante para entender a estrutura da comunicação.
Quando se organiza "qual aplicativo comunica com qual IP, por qual protocolo e por qual porta", fica mais fácil entender o comportamento de VPN, Tor, DNS e HTTPS.
Aqui o foco é a estrutura de comunicação
Entender porta e socket muda bastante a forma de ver redes. No entanto, aqui não entraremos profundamente nos temas seguintes.
| Tema fora do escopo | Razão |
|---|---|
| Programação de sockets | Fica próximo de implementação e se afasta da compreensão da estrutura de comunicação |
| Detalhes de portas temporárias | O intervalo e o comportamento variam por OS e ampliam demais o escopo |
| Detalhes da tabela NAT | Entraria no processamento de conversão de roteadores e firewalls |
| Prática de varredura de portas | Tornaria o artigo uma técnica de ataque ou diagnóstico, fora do objetivo |
O ponto importante aqui é que o endereço IP sozinho não distingue suficientemente a comunicação, e que portas e protocolo administram destino de entrega e caminho de retorno.
Resumo
O endereço IP é informação para encontrar a outra parte da comunicação na rede.
Mas um dispositivo ou servidor pode ter vários serviços e aplicações comunicando ao mesmo tempo. Por isso, o IP sozinho não decide a qual aplicação ou serviço entregar a comunicação.
Números de porta são usados em comunicações TCP e UDP para que o OS distribua a comunicação ao serviço ou aplicativo adequado.
Na Web, usam-se portas como 80 e 443; no DNS, 53; em email, 25, 587 e 993. Ainda assim, a porta sozinha não determina completamente o conteúdo.
A comunicação é identificada pela combinação de IP de origem, porta de origem, IP de destino, porta de destino e protocolo. Entender essa combinação explica como um dispositivo mantém várias comunicações e como um servidor executa vários serviços.
Socket é uma porta de comunicação usada por aplicações para tratar rede. Para entender a estrutura, é útil vê-lo como ponto final formado por IP, porta e protocolo.
Com portas e sockets, fica mais fácil ler para onde a comunicação vai, a qual serviço chega e como é administrada. Isso também é uma base importante para entender HTTPS, DNS, VPN e Tor.
Ferramentas relacionadas
WhatIsMyIP
Recurso externo relacionado a este artigo. Abra apenas se fizer sentido para sua situação e seu modelo de ameaça.
Por que aparece aqui: Pode ajudar com o tema do artigo, mas fica fora do Anonymity Sense e deve ser avaliado antes do uso.