O endereço IP leva os dados até o computador certo. Um computador, porém, executa vários programas ao mesmo tempo, e os dados precisam chegar ao programa correto. Essa é a função da porta lógica.
Como os dados são montados para o envio
Cada camada acrescenta as suas informações aos dados antes do envio. Do conteúdo até o cabo, a montagem segue esta ordem:
- Os dados do programa, como uma consulta ao banco de dados, formam o conteúdo da comunicação.
- A camada de Transporte acrescenta um cabeçalho TCP ou UDP, com a porta de origem e a porta de destino.
- A camada Internet acrescenta um cabeçalho IP, com o endereço IP de origem e o de destino, e o conjunto passa a se chamar pacote.
- A camada de Acesso à Rede coloca o pacote dentro de um quadro, com o endereço MAC de origem e o de destino, para a viagem na rede local.
No equipamento de destino, cada camada retira a sua parte na ordem inversa, até que os dados cheguem ao programa. Além das portas, o TCP controla a ordem dos dados, confirma a entrega e reenvia o que se perdeu. O UDP não faz esse controle.
A porta lógica
O endereço IP leva os dados até o computador, e a porta lógica leva os dados até o programa. O servidor da loja tem um único endereço IP, 192.168.1.10, mas atende ao mesmo tempo dois serviços:
- o banco de dados MySQL, na porta 3306;
- o compartilhamento de pasta, na porta 445.
Um programa que fica à espera de conexões em uma porta é chamado de serviço. A combinação de endereço e porta costuma ser escrita com dois-pontos, como em 192.168.1.10:3306, lido como 192.168.1.10, porta 3306.
As portas mais conhecidas
As portas vão de 1 a 65535 e se dividem em três faixas:
- de 1 a 1023, as portas conhecidas, reservadas para serviços padronizados;
- de 1024 a 49151, as portas registradas, usadas por aplicações específicas;
- de 49152 a 65535, as portas dinâmicas, usadas temporariamente pelos clientes.
Algumas portas são padronizadas e aparecem com frequência no suporte:
- 20 e 21: FTP, transferência de arquivos;
- 22: SSH e SFTP, acesso remoto e transferência de arquivos com criptografia;
- 25, 465 e 587: SMTP, envio de e-mail;
- 53: DNS, tradução de nomes em endereços;
- 80: HTTP, sites sem criptografia;
- 443: HTTPS, sites e serviços com criptografia;
- 445: SMB, compartilhamento de arquivos e impressoras do Windows;
- 1433: SQL Server, banco de dados da Microsoft;
- 3050: Firebird, banco de dados;
- 3306: MySQL, banco de dados;
- 3389: RDP, Área de Trabalho Remota do Windows;
- 5432: PostgreSQL, banco de dados.
Sistemas próprios costumam usar portas altas e configuráveis, como a porta 9000 do serviço de sincronização da matriz.
A porta de origem
Quando o caixa 01 se conecta ao banco de dados do servidor da loja, o caixa também usa uma porta no próprio computador. Essa porta é escolhida automaticamente pelo sistema operacional entre as portas dinâmicas:
- a origem da conexão é
192.168.1.20:51234, com uma porta escolhida no momento da conexão; - o destino da conexão é
192.168.1.10:3306, a porta conhecida do serviço.
Toda conexão é identificada por quatro valores: o endereço e a porta de origem e o endereço e a porta de destino. É a porta de origem que permite a um mesmo computador manter várias conexões simultâneas com o mesmo serviço, como as diferentes conexões que o sistema da loja abre com o banco de dados. É também a porta de origem que permite ao roteador saber a quem devolver cada resposta quando vários computadores compartilham um único endereço público.
Onde as conexões aparecem
O comando netstat mostra as conexões do computador, com a origem e o destino de cada uma:
netstat -ano: lista as conexões e as portas em uso, com o número do processo responsável por cada uma.
Na saída do comando, a coluna Endereço local mostra o endereço e a porta do próprio computador, e a coluna Endereço externo mostra o endereço e a porta do outro lado da conexão.
No suporte
O sistema pode alcançar o endereço certo e, mesmo assim, falhar, porque a porta configurada está errada ou porque nenhum programa está atendendo naquela porta. Por isso, o endereço e a porta devem ser conferidos sempre juntos.
Para guardar
- O endereço IP identifica o computador, e a porta lógica identifica o programa.
- Cada camada acrescenta as suas informações aos dados, e o destino retira essas informações na ordem inversa.
- Toda conexão tem endereço e porta nos dois lados.
- O banco de dados MySQL usa a porta 3306, e o compartilhamento de arquivos do Windows usa a porta 445.
- A porta de origem é escolhida automaticamente entre as portas dinâmicas.
O servidor da loja tem um único endereço IP. Como uma estação usa, ao mesmo tempo, o banco de dados e a pasta compartilhada desse servidor?
Cada serviço atende em uma porta diferente: o banco de dados MySQL na porta 3306 e o compartilhamento de pasta na porta 445. O endereço IP leva os dados até o servidor, e a porta leva os dados até o programa.
Na saída do netstat do caixa 01, aparece uma conexão com o endereço local 192.168.1.20:51234 e o endereço externo 192.168.1.10:3306. O que cada parte indica?
O endereço local é o próprio caixa 01, com a porta 51234, escolhida automaticamente para essa conexão. O endereço externo é o servidor da loja, na porta 3306, onde atende o banco de dados MySQL.