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

02 - Unidade Básica de Transferência

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

Unidade Básica de Transferência (Datagrama IP)

Na Camada de Rede, a unidade fundamental de transferência de informações é denominada Datagrama (quando se trata de redes orientadas a pacotes sem conexão, como a arquitetura TCP/IP). O datagrama é a PDU (Protocol Data Unit) desta camada, análoga ao "quadro" na Camada de Enlace ou ao "segmento" na Camada de Transporte.

O conceito de datagrama é mais do que apenas um pacote de dados; ele define a atomicidade da informação que trafega pela internet. Ele representa a menor entidade de informação que a Camada de Rede entende, processa e roteia de forma independente, conforme padronizado pela RFC 791 (Postel, 1981) — documento fundador do protocolo IPv4.

1. Datagrama vs Circuito Virtual

O modelo de comunicação em redes de computadores divide-se em duas grandes filosofias:

Característica Datagrama (sem conexão) Circuito Virtual (orientado a conexão)
Estabelecimento de conexão Não Sim (sinalização prévia)
Rota dos pacotes Variável (cada pacote decide) Fixa (definida na conexão)
Estado nos roteadores Nenhum (stateless) Estado por conexão
Ordem de chegada Não garantida Garantida
Exemplo IP IP, UDP, CLNP X.25, ATM, Frame Relay, MPLS
RFC de referência RFC 791 (IP) RFC 3031 (MPLS)

O modelo de datagrama sem conexão foi escolhido pela arquitetura TCP/IP (e depois pelo OSI CLNP) por sua simplicidade e resiliência: falhas em um roteador não derrubam todas as conexões; o próximo datagrama pode tomar outra rota.

2. Definição e Autossuficiência

Um datagrama IP é uma estrutura de dados autossuficiente. Isso significa que ele carrega consigo todas as informações necessárias para ser entregue ao seu destino, independentemente de qualquer outro datagrama.

  • Cabeçalho Rico em Metadados: O datagrama é composto por um cabeçalho (header) e uma carga útil (payload). O cabeçalho contém metadados cruciais, como o endereço IP de origem e o endereço IP de destino.
  • Endereçamento Global: Diferente de um quadro da Camada de Enlace, que contém endereços MAC que têm validade apenas localmente (saltos individuais), o datagrama contém endereços lógicos globais que permanecem constantes do início ao fim da jornada (exceto em casos específicos de NAT).
  • Ausência de Contexto Externo: Quando um roteador recebe um datagrama, ele toma a decisão de encaminhamento baseando-se apenas no que está escrito dentro daquele datagrama específico. O roteador não precisa saber qual datagrama chegou antes nem qual chegará depois.

3. Estrutura do Datagrama IPv4 (RFC 791)

O cabeçalho IPv4 tem tamanho variável de 20 a 60 bytes (5 a 15 words de 32 bits):

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version|  IHL  |    TOS   |          Total Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Identification        |Flags|    Fragment Offset      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  TTL  |  Protocol  |       Header Checksum                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Source Address                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Destination Address                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Options (0-40 bytes)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Campo Bits Função
Version 4 Versão do IP (4 para IPv4, 6 para IPv6)
IHL 4 Tamanho do cabeçalho em words de 32 bits (5-15)
TOS / DSCP 8 Tipo de serviço / QoS (RFC 2474)
Total Length 16 Tamanho total do datagrama (até 65535 bytes)
Identification 16 ID único para fragmentação
Flags 3 DF (Don't Fragment), MF (More Fragments)
Fragment Offset 13 Posição do fragmento (em blocos de 8 bytes)
TTL 8 Time To Live (decrementado a cada salto)
Protocol 8 Protocolo L4 (TCP=6, UDP=17, ICMP=1)
Header Checksum 16 Checksum do cabeçalho apenas
Source Address 32 IP de origem
Destination Address 32 IP de destino
Options 0-320 Opções (Record Route, Timestamp, LSRR/SSRR)

4. Independência de Pacotes

A característica mais distintiva do datagrama como unidade de transferência é a sua independência. No protocolo IP, não existe o conceito de um "fluxo" físico ou lógico de dados contínuo no nível da rede.

  • Tratamento Individual: Cada datagrama é processado isoladamente. Se uma mensagem é grande e precisa ser dividida em 10 datagramas, a rede trata esses 10 datagramas como 10 mensagens distintas que, por coincidência, estão indo para o mesmo lugar.
  • Roteamento Divergente: Devido a essa independência, o datagrama 1 pode tomar a Rota A, enquanto o datagrama 2 pode tomar a Rota B. Isso pode ocorrer devido a mudanças nas tabelas de roteamento, balanceamento de carga (ECMP) ou falhas temporárias em links.
  • Chegada Desordenada: Como consequência da rota independente, os datagramas não garantem a ordem de chegada. A unidade básica de transferência não sequencia os dados; ela apenas os transporta. A ordenação é uma responsabilidade da Camada de Transporte (ex: o número de sequência no TCP).

5. Estrutura Variável e Fragmentação

O datagrama IP é uma unidade de tamanho variável. Diferente de células fixas (como em tecnologias ATM, com 53 bytes), o datagrama pode ter poucos bytes ou vários quilobytes, limitado apenas pela MTU (Maximum Transmission Unit) da rede subjacente e pela capacidade do cabeçalho.

MTU Padrão por Tecnologia

Tecnologia MTU Típica (bytes)
Ethernet (RFC 894) 1500
IEEE 802.3/802.2 LLC 1492
PPPoE 1492
IPv4 mínimo (RFC 791) 68
IPv6 mínimo (RFC 8200) 1280
Jumbo Frames 9000
ATM AAL5 9180
  • Encapsulamento: O datagrama encapsula o segmento da Camada de Transporte. Se o segmento for muito grande para a rede pela qual ele deve passar, o datagrama pode ser fragmentado (RFC 791).
  • Fragmentos como Unidades: Quando um datagrama é fragmentado, cada fragmento torna-se, ele próprio, um datagrama independente (ou parte de um), com seu próprio cabeçalho IP. Eles são roteados independentemente e remontados apenas no destino final. Isso reforça que a "unidade de transferência" é flexível e adaptável às restrições físicas das redes intermediárias.

Processo de Fragmentação

Dado um datagrama de 4000 bytes chegando em uma interface com MTU 1500:

  1. Calcula-se o payload máximo por fragmento: 1500 - 20 = 1480. Arredonda para baixo para múltiplo de 8: 1480.
  2. Fragmento 1: offset 0, MF=1, length 1480.
  3. Fragmento 2: offset 1480/8=185, MF=1, length 1480.
  4. Fragmento 3: offset 2960/8=370, MF=0, length 1040.

Path MTU Discovery (PMTUD)

Para evitar fragmentação intermediária (custosa e problemática), a RFC 1191 (PMTUD) introduziu a técnica de descoberta da MTU do caminho completo: o emissor seta o bit DF=1; se um roteador intermediário não puder encaminhar, descarta o pacote e envia ICMP Fragmentation Needed (Type 3 Code 4) informando a MTU do próximo salto. O emissor reduz a MTU e reenvia.

Em IPv6 (RFC 8200), roteadores intermediários não fragmentam — PMTUD é obrigatório.

6. Ciclo de Vida da Unidade

Como unidade de transferência, o datagrama tem um ciclo de vida claro dentro da arquitetura de rede:

  1. Criação (Origem): A Camada de Rede do host origem recebe dados da Camada de Transporte, anexa o cabeçalho IP (endereçamento e controle) e cria o datagrama.
  2. Transmissão: O datagrama é passado para a Camada de Enlace para ser colocado no meio físico como um quadro.
  3. Roteamento (Intermediário): Em cada salto, o quadro é desencapsulado, expondo o datagrama. O roteador lê o cabeçalho do datagrama, decrementa o TTL e decide o próximo salto. O datagrama é então reencapsulado em um novo quadro para o próximo link.
  4. Destruição (Destino): O host de destino recebe o quadro, retira o datagrama, verifica o cabeçalho e, se o endereço de destino corresponder ao seu próprio, remove o cabeçalho IP e entrega o conteúdo (payload) para a Camada de Transporte, encerrando a vida útil daquele datagrama.

7. Limites e Tamanhos Práticos

Limite Valor Razão
Tamanho máximo IPv4 65535 bytes Campo Total Length = 16 bits
Tamanho máximo IPv6 (jumbogram) 4 GB RFC 2675
Datagrama mínimo sem fragmentar 576 bytes (IPv4), 1280 bytes (IPv6) RFC 791 / RFC 8200
Header mínimo 20 bytes IHL = 5
Header máximo 60 bytes IHL = 15

8. IPv6: Evolução do Datagrama

O IPv6 (RFC 8200) reformulou o datagrama, simplificando o cabeçalho para 40 bytes fixos e movendo opções para Extension Headers encadeados (Hop-by-Hop, Routing, Fragment, ESP, AH, Destination Options). A fragmentação intermediária foi abolida, e o campo TTL foi renomeado para Hop Limit com semântica idêntica.

9. Conclusão

O datagrama IP é a unidade atômica da Internet — o pacote autossuficiente que carrega endereços globais, metadados de roteamento e payload, sem depender de estado em roteadores intermediários. Sua filosofia de sem conexão, melhor esforço, independente foi fundamental para o sucesso da arquitetura TCP/IP, permitindo escala global e resiliência a falhas. Compreender o datagrama é entender a própria essência do funcionamento da Camada de Rede: um estado mínimo no núcleo, inteligência nas bordas (hosts), e simplicidade matemática na decisão de roteamento por salto. As evoluções de IPv4 para IPv6 preservaram esses princípios, refinando apenas aspectos de desempenho e segurança.