02 - PDU em Cada Camada (Bits, Quadros, Pacotes, Segmentos, Dados)
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:
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.