Fundamentos de Protocolos de Internet - TCP/IP, Portas, IPv4/IPv6

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.

  1. Zeros à esquerda em cada bloco podem ser removidos (0db8 para db8, 0000 para 0)
  2. 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

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".

  1. Cliente para servidor: SYN (solicitação de conexão)
  2. Servidor para cliente: SYN/ACK (solicitação aceita mais resposta)
  3. 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

Continue Sua Jornada LPIC-1

Hub LPIC-1

  • Hub de Aprendizado LPIC-1 -- Mapa completo de artigos LPIC-1, acompanhamento de progresso e cobertura dos objetivos do exame

Artigos LPIC-1 Relacionados

Prática