Fundamentos de Protocolos de Internet - TCP/IP, Portas, IPv4/IPv6
O Que Você Vai Conquistar
- Explicar cada camada do modelo de quatro camadas TCP/IP e seu papel
- Dividir um endereço IPv4 em partes de rede e host e expressá-lo com máscara de sub-rede / CIDR
- Identificar faixas de endereços privados e endereços de broadcast
- Aplicar corretamente a notação hexadecimal com dois-pontos do IPv6 e regras de abreviação
- Consultar portas conhecidas em
/etc/services - Escolher entre TCP (orientado a conexão) e UDP (sem conexão)
Este é o núcleo do objetivo 109.1 do LPIC-1 "Fundamentos de protocolos de internet". Uma vez que você dominar o cálculo de endereços e a divisão de papéis entre protocolos, terá uma base sólida para configuração e solução de problemas de rede.
Quais Camadas o TCP/IP Usa?
O TCP/IP divide seu trabalho em quatro camadas. Camadas inferiores transportam camadas superiores em uma estrutura chamada encapsulamento, e cada camada se comunica apenas com suas vizinhas.
| Camada | Nome | Papel | Protocolos representativos |
|---|---|---|---|
| 4 | Aplicação | Representação e troca de dados entre aplicações | HTTP, SSH, DNS, SMTP, FTP, DHCP |
| 3 | Transporte | Controle de comunicação ponta a ponta | TCP, UDP |
| 2 | Internet | Roteamento e endereçamento entre hosts | IP, ICMP |
| 1 | Enlace (interface de rede) | Transmissão dentro de uma rede física | Ethernet, ARP |
Frequentemente é comparado com o modelo de referência OSI de sete camadas, mas para o LPIC-1 é suficiente entender os papéis usando o modelo de quatro camadas TCP/IP. O ponto chave é que um número de porta (camada de transporte) e um endereço IP (camada de internet) juntos identificam o par de comunicação.
A RFC 1122 (Requirements for Internet Hosts) define este modelo como as camadas de enlace, internet, transporte e aplicação. Ajuda lembrar que os limites das camadas são divididos por números de porta (camada de transporte) e endereços IP (camada de internet).
Como Ler um Endereço IPv4?
Um endereço IPv4 divide 32 bits em quatro grupos de 8 bits e escreve cada grupo como um número decimal (notação decimal com pontos). Cada octeto varia de 0 a 255.
O endereço é dividido em uma "parte de rede" e uma "parte de host", e a máscara de sub-rede marca esse limite.
ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
inet6 fe80::5054:ff:fe12:3456/64 scope link
O /24 em inet 192.168.1.10/24 é o comprimento da máscara de sub-rede (notação CIDR). /24 significa que os 24 bits iniciais são a parte de rede e os 8 bits restantes são a parte de host. brd 192.168.1.255 é o endereço de broadcast.
Mapeamento de Máscara de Sub-rede e CIDR
Uma máscara de sub-rede é um valor de 32 bits com os bits da parte de rede definidos como 1 e os bits da parte de host definidos como 0. A notação CIDR (/n) indica a quantidade de 1s consecutivos iniciais.
| CIDR | Máscara de sub-rede | Bits de host | Hosts utilizáveis |
|---|---|---|---|
/8 |
255.0.0.0 | 24 | 16.777.214 |
/16 |
255.255.0.0 | 16 | 65.534 |
/24 |
255.255.255.0 | 8 | 254 |
/30 |
255.255.255.252 | 2 | 2 |
Hosts utilizáveis é "2 elevado à potência dos bits de host, menos 2". Os dois subtraídos são o "endereço de rede" (todos os bits de host em 0) e o "endereço de broadcast" (todos os bits de host em 1); nenhum pode ser atribuído a um host individual.
Faixas de Endereços Privados
Separados dos endereços globalmente únicos na internet, a RFC 1918 reserva faixas que organizações podem usar livremente em redes internas.
| Faixa | CIDR | Equivalente de classe |
|---|---|---|
10.0.0.0 a 10.255.255.255 |
10.0.0.0/8 |
Classe A |
172.16.0.0 a 172.31.255.255 |
172.16.0.0/12 |
Classe B |
192.168.0.0 a 192.168.255.255 |
192.168.0.0/16 |
Classe C |
Note que 172.16.0.0/12 cobre de 172.16 até 172.31 e não inclui 172.32. O exame frequentemente testa os limites dessa faixa.
127.0.0.0/8 (especialmente 127.0.0.1) é o endereço de loopback IPv4 que aponta para o host local. É uma faixa reservada separada dos endereços privados.
Notação e Regras de Abreviação do IPv6
Um endereço IPv6 tem 128 bits. Ele é dividido em oito blocos de 16 bits, cada um escrito em hexadecimal e separado por dois-pontos (notação hexadecimal com dois-pontos).
2001:0db8:0000:0000:0000:ff00:0042:8329
Como isso é longo, existem duas regras de abreviação.
- Zeros à esquerda em cada bloco podem ser removidos (
0db8paradb8,0000para0) - Uma sequência de blocos consecutivos totalmente zerados pode ser substituída por
::, apenas uma vez
O endereço acima é abreviado para:
2001:db8::ff00:42:8329
:: pode ser usado apenas uma vez dentro de um único endereço. Usá-lo duas vezes, como em 2001:db8::1::1, torna ambíguo o número de blocos omitidos e o endereço inválido. Este é um padrão frequente de erro no exame.
Endereços IPv6 Importantes
| Endereço / faixa | Significado |
|---|---|
::1 |
Endereço de loopback (equivalente ao IPv4 127.0.0.1) |
:: |
Endereço não especificado (todos os bits em 0) |
fe80::/10 |
Endereço link-local (válido apenas no mesmo enlace) |
ff00::/8 |
Endereço multicast |
Um endereço link-local que começa com fe80:: não cruza roteadores e é válido apenas dentro do mesmo segmento. Na saída do ip addr isso é mostrado como scope link.
Como as Portas Se Relacionam com /etc/services?
Enquanto um endereço IP identifica um host, um número de porta identifica qual aplicação naquele host. É um número de 16 bits (0 a 65535) e é dividido em três faixas de uso.
| Categoria | Faixa | Uso |
|---|---|---|
| Portas conhecidas | 0 a 1023 | Serviços principais (requerem privilégios root) |
| Portas registradas | 1024 a 49151 | Apps registradas na IANA |
| Portas dinâmicas / privadas | 49152 a 65535 | Portas de origem temporárias do lado cliente |
O mapeamento entre nomes de serviços e números de porta é definido em /etc/services.
grep -E '^(ssh|http|https|domain|smtp|ftp) ' /etc/services
ftp 21/tcp ssh 22/tcp smtp 25/tcp domain 53/tcp domain 53/udp http 80/tcp https 443/tcp
Cada linha tem o formato "nome-do-serviço porta/protocolo". Alguns serviços, como domain (DNS), têm entradas tanto para TCP quanto para UDP.
Protocolos e Números de Porta Importantes
| Protocolo | Porta | Transporte | Papel |
|---|---|---|---|
| FTP | 21 (controle) / 20 (dados) | TCP | Transferência de arquivos |
| SSH | 22 | TCP | Login remoto criptografado |
| SMTP | 25 | TCP | Envio de email |
| DNS | 53 | UDP / TCP | Resolução de nomes |
| DHCP | 67 (servidor) / 68 (cliente) | UDP | Atribuição automática de endereço IP |
| HTTP | 80 | TCP | Comunicação web |
| HTTPS | 443 | TCP | Comunicação web criptografada |
O DNS normalmente usa UDP 53 e muda para TCP 53 quando a resposta é grande (como uma transferência de zona). O ponto de que "DNS usa tanto UDP quanto TCP" é frequentemente testado.
Como TCP e UDP Diferem?
Os protocolos da camada de transporte TCP e UDP são escolhidos com base em um trade-off entre confiabilidade e velocidade.
| Aspecto | TCP | UDP |
|---|---|---|
| Conexão | Orientado a conexão | Sem conexão |
| Confiabilidade | Retransmissão e ordenação garantidas | Sem garantia |
| Overhead | Maior | Menor |
| Uso | HTTP, SSH, SMTP, FTP | DNS, DHCP, streaming |
O TCP estabelece uma conexão no início com um "three-way handshake".
- Cliente para servidor:
SYN(solicitação de conexão) - Servidor para cliente:
SYN/ACK(solicitação aceita mais resposta) - Cliente para servidor:
ACK(confirmação)
A transferência de dados começa apenas após esses três passos, garantindo entrega e ordenação de pacotes. O UDP, por outro lado, não realiza handshake e envia dados imediatamente. Sem confirmações, tem baixa latência mas não detecta perda de pacotes.
Você pode verificar as portas em escuta atuais com ss.
ss -tlnp
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
-t é TCP, -l é estado de escuta (LISTEN), -n é saída numérica e -p mostra processos. Para ver UDP, troque -t por -u.
O ICMP (Internet Control Message Protocol) é um protocolo da camada de internet e não tem números de porta como TCP/UDP. Ele transporta mensagens de erro e controle usadas pelo ping para verificação de alcançabilidade e pelo traceroute para descoberta de caminho.
Erros Comuns e Correções
Erro 1: Contar hosts utilizáveis como "2 elevado à potência dos bits de host"
Esquecer de subtrair os dois endereços: o endereço de rede (todos 0s) e o endereço de broadcast (todos 1s). Para /24 a resposta é 254, não 256. Sempre aplique "2 elevado à potência dos bits de host, menos 2".
Erro 2: Confundir os papéis de TCP e UDP
O princípio é "precisa de confiabilidade = TCP, precisa de velocidade/leveza = UDP". É fácil confundir o fato de que consultas DNS comuns e DHCP usam UDP com HTTP/SSH (TCP).
Erro 3: Usar :: duas vezes no IPv6
:: pode aparecer apenas uma vez por endereço. Mesmo com múltiplos blocos zerados, a abreviação é limitada a um lugar. Escreva o restante como 0.
Erro 4: Errar os limites de endereços privados
Em particular, 172.16.0.0/12 cobre de 172.16 até 172.31. Não confunda 172.32.x.x como privado.
Erro 5: Esquecer o loopback
IPv4 é 127.0.0.1 e IPv6 é ::1. Lembre-se de que ambos são endereços reservados que apontam para o host local.
Solução de Problemas
Sintoma: ip addr não mostra endereço IPv4
Causa: A interface está desligada, ou não obteve um endereço do DHCP
Verificação:
ip addr show
Correção: Se o estado da interface é DOWN, ative-a com ip link set eth0 up. Em um ambiente DHCP, renove a concessão do cliente.
Sintoma: Não consegue consultar um número de porta a partir de um nome de serviço
Causa: Não há entrada para esse nome de serviço em /etc/services, ou está com erro de digitação
Verificação:
grep -i ssh /etc/services
Correção: Pesquise com o nome de serviço correto. Um serviço customizado pode ser adicionado ao /etc/services para resolução de nomes, mas a comunicação também funciona especificando o número de porta diretamente.
Sintoma: Loopback funciona mas hosts externos são inacessíveis
Causa: O loopback (127.0.0.1 / ::1) é autocontido no host local e não está relacionado a conectividade externa
Verificação:
ip addr show lo ping -c1 192.168.1.1
Correção: Para conectividade externa, verifique o endereço de uma interface física como eth0 e o gateway padrão, não o loopback.
Checklist de Conclusão
- [ ] Nomeou cada camada TCP/IP e seus protocolos representativos
- [ ] Calculou bits de host e hosts utilizáveis a partir de um CIDR como
/24 - [ ] Confirmou os limites das três faixas de endereços privados
- [ ] Aplicou a abreviação
::do IPv6 apenas uma vez - [ ] Verificou as portas dos principais serviços em
/etc/services - [ ] Verificou portas TCP / UDP em escuta com
ss
Resumo
| Item | Ponto chave |
|---|---|
| Modelo de camada | Aplicação / Transporte / Internet / Enlace, quatro camadas |
| IPv4 | Decimal com pontos de 32 bits, CIDR expressa a parte de rede |
| Contagem de host | 2 elevado à potência dos bits de host, menos 2 |
| Privado | 10/8, 172.16/12, 192.168/16 |
| IPv6 | Hexadecimal com dois-pontos de 128 bits, :: apenas uma vez |
| Portas | Conhecidas 0-1023, consultar em /etc/services |
| TCP / UDP | Orientado a conexão (confiável) vs sem conexão (leve) |
Os fundamentos de protocolos de internet sustentam igualmente configuração de rede, DNS e solução de problemas. Uma vez solidificados o cálculo de endereços e a divisão de papéis entre protocolos, avance para a configuração e solução de problemas reais.
Próximas Leituras
- Verificando e Alterando a Configuração de Rede
- Configurando o Cliente DNS
- Solução de Problemas de Rede