Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

02 - PDU em Cada Camada (Bits, Quadros, Pacotes, Segmentos, Dados)

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

PDU em Cada Camada (Bits, Quadros, Pacotes, Segmentos, Dados)

1. O que é uma PDU

PDU (Protocol Data Unit) é a unidade de dados trocada entre entidades pares (peer entities) de uma mesma camada. Toda PDU é composta por:

formula
$$\text{PDU}_N = \text{PCI}_N + \text{SDU}_N$$

Onde:

  • PCI (Protocol Control Information): o cabeçalho (e às vezes trailer) que a camada N adiciona.
  • SDU (Service Data Unit): o payload vindo da camada superior (N+1), que é a PDU_{N+1}.

Em linguagem simples: a PDU é o "envelope" completo que cada camada manipula, contendo tanto os dados do usuário quanto os metadados de controle daquela camada.

2. Nomenclatura das PDUs por Camada OSI

Camada OSI Nome da PDU Unidade Lógica
7 — Aplicação Dados (Data) Mensagem
6 — Apresentação Dados (Data) Mensagem
5 — Sessão Dados (Data) Mensagem
4 — Transporte (TCP) Segmento Segmento
4 — Transporte (UDP) Datagrama Datagrama
3 — Rede Pacote (Packet) Datagrama IP
2 — Enlace Quadro (Frame) Quadro MAC
1 — Física Bit Bit

As camadas 5, 6 e 7 não agregam cabeçalhos em formatos de rede comuns (TCP/IP), então suas PDUs continuam chamadas genericamente de Dados. Em pilhas OSI puras (X.25, X.400), cada uma tem seu cabeçalho, mas isso é raro hoje.

3. PDU na Camada 1 — Bit

A unidade fundamental da comunicação: o bit (0 ou 1). Na camada física, bits são codificados como sinais elétricos (tensão), ópticos (pulso de luz) ou de rádio (modulação).

Codificações de Linha

  • NRZ (Non-Return to Zero): nível alto = 1, nível baixo = 0. Problema: longas sequências de 0s ou 1s perdem sincronismo de clock.
  • Manchester: transição no meio do bit: 0 = low→high, 1 = high→low. Usado em Ethernet 10BASE-T.
  • 4B/5B: cada 4 bits codificados em 5, garantindo transições suficientes. Usado em Fast Ethernet 100BASE-TX.
  • 8B/10B: 8 bits → 10 bits, com balanceamento DC. Gigabit Ethernet (1000BASE-X).
  • 64B/66B: usado em 10G+ Ethernet.
  • PAM-5: múltiplos níveis por símbolo. 1000BASE-T usa PAM-5 em 4 pares.

4. PDU na Camada 2 — Quadro (Frame)

O quadro é a unidade básica de entrega em um segmento local (LAN). Estrutura genérica Ethernet:

+---------+---------+---------+----------+--------+---------+
| Preâmb. | SFD 8B  | Dest 6B | Origem 6B | Tipo   | Dados   | FCS |
| 7 bytes | 1 byte  | MAC     | MAC       | 2 bytes| 46-1500 | 4B  |
+---------+---------+---------+----------+--------+---------+-----+

Campos do Quadro Ethernet (IEEE 802.3)

Campo Tamanho Função
Preâmbulo 7 bytes Sincronização do clock receptor (10101010...)
SFD (Start Frame Delimiter) 1 byte Início do quadro (10101011)
MAC Destino 6 bytes Endereço físico do receptor
MAC Origem 6 bytes Endereço físico do transmissor
Tipo / Length 2 bytes Protocolo da camada superior (ex.: 0x0800 = IPv4)
Payload 46-1500 bytes Dados da camada 3
FCS (Frame Check Sequence) 4 bytes CRC-32 para detecção de erros

MTU Ethernet: 1500 bytes de payload. Frames jumbo (até 9000 bytes) são comuns em datacenters. Outros tipos de quadro: Wi-Fi 802.11 (4 endereços MAC), PPP (links seriais), Frame Relay/HDLC/ATM (WANs legadas).

5. PDU na Camada 3 — Pacote (Packet)

O pacote IP é a unidade de roteamento na internet. Estrutura do cabeçalho IPv4 (RFC 791):

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version|  IHL  |    TOS/DS     |         Total Length          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Identification        |Flags|    Fragment Offset      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  TTL  |    Protocol           |       Header Checksum         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Source Address                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Destination Address                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Campos do Cabeçalho IPv4

Campo Bits Função
Version / IHL 4+4 Versão IP e tamanho do cabeçalho
TOS / DSCP 8 QoS, precedence
Total Length 16 Tamanho total (máx 65535)
Identification / Flags / Fragment Offset 16+3+13 Fragmentação
TTL 8 Decrementado em cada salto (máx 255)
Protocol 8 6=TCP, 17=UDP, 1=ICMP, 89=OSPF
Header Checksum 16 Integridade do cabeçalho
Source / Destination Address 32+32 IP de origem e destino

Em IPv6, o cabeçalho é fixo de 40 bytes, sem checksum de cabeçalho, sem fragmentação no roteador intermediário.

6. PDU na Camada 4 — Segmento (TCP)

Cabeçalho TCP (RFC 793), mínimo 20 bytes, com portas, seq/ack, flags (URG/ACK/PSH/RST/SYN/FIN), window, checksum e urgent pointer. Estrutura simplificada:

+--------+--------+--------+--------+
| Source Port    | Destination Port |
+--------+--------+--------+--------+
| Sequence Number                 |
+--------+--------+--------+--------+
| Acknowledgment Number           |
+--------+--------+--------+--------+
| DataOffset|Flags| Window          |
+--------+--------+--------+--------+
| Checksum       | Urgent Pointer  |
+--------+--------+--------+--------+
| Options (if any) ...             |
+--------+--------+--------+--------+
Campo Bits Função
Porta origem / destino 16+16 Endereçamento da aplicação
Sequence Number 32 Posição do primeiro byte no stream
Acknowledgment Number 32 Próximo byte esperado
Data Offset 4 Tamanho do cabeçalho (em palavras de 32 bits)
Flags 9 URG, ACK, PSH, RST, SYN, FIN, etc.
Window 16 Controle de fluxo (bytes disponíveis no receptor)
Checksum 16 Verificação de toda a PDU + pseudo-header
Urgent Pointer 16 Posição de dados urgentes

7. PDU na Camada 4 — Datagrama (UDP)

Cabeçalho UDP (RFC 768), fixo em 8 bytes:

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Source Port          |       Destination Port        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Length             |           Checksum            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             Data                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

UDP é simples: 4 campos de 2 bytes. Sem confiabilidade, sem controle de fluxo, sem retransmissão.

8. Encapsulamento Prático

Quando uma aplicação envia dados via TCP/IP sobre Ethernet:

[App] Dado = "Hello"
   v  [TCP] adiciona cabeçalho (20B) -> Segmento TCP
   v  [IP]  adiciona cabeçalho (20B) -> Pacote IP
   v  [Eth] adiciona cabeçalho (14B) + trailer (4B FCS) -> Quadro
   v  [PHY] bits no cabo
Camada Adicionado Tamanho típico
App payload puro variável
TCP 20 bytes (sem options) 20-60 bytes
IP 20 bytes (sem options) 20-60 bytes
Eth 14 bytes + 4 bytes FCS 18 bytes
Total overhead 62 bytes —

Para uma mensagem HTTP GET de 500 bytes sobre TCP/IP/Eth, o quadro Ethernet carrega 500 + 20 + 20 + 18 = 558 bytes (mais preâmbulo se contar L1).

9. Desencapsulamento no Receptor

Cada camada lê seu cabeçalho, age conforme necessário, e entrega o payload à camada superior:

[PHY] bits -> quadro
   v  [Eth] verifica MAC destino e FCS -> descarta trailer -> entrega payload a IP
   v  [IP]  verifica IP destino e checksum -> decrementa TTL (no router) -> entrega a TCP
   v  [TCP] processa flags (ACK, SYN), reordena por seq -> entrega dados à app
   v  [App] recebe "Hello"

10. Tabela Completa de PDUs

Camada PDU Header (bytes) Trailer Endereçamento
7 App Dados variável — URL/URI
6 Pres Dados variável — ASN.1 / sintaxe
5 Sessão Dados variável — Session ID
4 TCP Segmento 20-60 — Porta
4 UDP Datagrama 8 — Porta
3 IP Pacote 20-60 (IPv4) / 40 (IPv6) — Endereço IP
2 Eth Quadro 14 4 (FCS) MAC
1 PHY Bit — — —

11. Conclusão

Compreender as PDUs é a chave para entender qualquer captura de rede. Quando um tcpdump ou Wireshark mostra um pacote, está mostrando o resultado do desencapsulamento em camadas: quadro Ethernet contém pacote IP, que contém segmento TCP, que contém dados HTTP. Saber que cada camada agrega 20-60 bytes de overhead permite calcular overhead, escolher MTU adequada e otimizar comunicações — especialmente importantes em IoT, satélite e redes móveis onde cada byte conta.