05 - Troca de Informações entre Dispositivos
video: https://youtu.be/... no frontmatter da nota.Troca de Informações entre Dispositivos
A troca de informações entre dispositivos computacionais em uma rede representa o processo fundamental pelo qual dados digitais são codificados, transmitidos, comutados, recebidos e decodificados através de um meio físico ou não guiado. Em nível formal, a comunicação entre entidades distribuídas pressupõe a existência de um modelo de sistemas abertos, onde a informação transita de um espaço de endereçamento abstrato na aplicação de origem até a representação física de sinais no meio de transmissão, percorrendo o caminho inverso no destino.
1. Abstração e Taxonomia da Transmissão de Dados
A transferência de dados entre dois ou mais nós (interfaces de rede) em uma arquitetura distribuída opera segundo premissas rígidas de temporização, topologia e direção de fluxo.
Direcionalidade do Fluxo (Modos de Transmissão)
- Simplex: A comunicação ocorre em um único sentido estrito. O transmissor possui capacidade exclusiva de envio, enquanto o receptor atua apenas como consumidor do sinal (ex.: enlaces de sensoriamento unidirecional ou sistemas de radiodifusão).
- Half-Duplex: Ambos os dispositivos podem transmitir e receber dados, porém não simultaneamente. O meio compartilhado exige controle de acesso para evitar colissões de sinais e inversão do sentido da linha (ex.: redes locais legadas baseadas em coaxial/hub operando com CSMA/CD).
- Full-Duplex: A transmissão e a recepção ocorrem simultaneamente em ambos os sentidos. Isso é viabilizado pela separação física de canais de transmissão/recepção (como em pares trançados categoria 6/6A ou fibras ópticas bidirecionais via Wavelength Division Multiplexing — WDM) ou por divisão em frequência/tempo (FDD/TDD).
Simplex: [ Emissor ] ----------------------------> [ Receptor ]
Half-Duplex: [ Nó A ] <===========================> [ Nó B ] (Alternado no tempo)
Full-Duplex: [ Nó A ] ----------------------------> [ Nó B ] (Simultâneo)
[ Nó A ] <---------------------------- [ Nó B ]
2. Modelos de Sinalização e Codificação no Meio Físico
Para que a informação digital (bits $0$ e $1$) transite entre dispositivos, ela precisa ser convertida em grandezas físicas mensuráveis — variações de tensão elétrica, pulsos de luz ou frequências de ondas eletromagnéticas.
Sinalização Digital vs. Analógica
- Sinalização em Banda Base (Baseband): Os dados digitais são injetados no meio sem modulação de frequência portadora. A representação dos bits ocorre via códigos de linha.
- NRZ (Non-Return-to-Zero): Níveis de tensão constantes representam bits, mas sofrem de perda de sincronismo em longas sequências de bits idênticos devido à ausência de transições de relógio (clock recovery).
-
Codificação Manchester: Cada bit possui uma transição no meio do intervalo do bit (alto-para-baixo ou baixo-para-alto), garantindo auto-sincronismo (self-clocking) e eliminando o componente DC (Direct Current offset).
-
Sinalização em Banda Larga (Broadband): Os bits modulam uma onda portadora senoidal de alta frequência através de técnicas como ASK (Amplitude Shift Keying), FSK (Frequency Shift Keying), PSK (Phase Shift Keying) ou esquemas complexos como QAM (Quadrature Amplitude Modulation), viabilizando a multiplexação de múltiplos canais em um único suporte físico.
3. Comutação de Circuitos vs. Comutação de Pacotes
A troca de informações entre múltiplos nós intermediários em uma topologia de rede complexa exige estratégias para a alocação de recursos de suporte de transmissão.
Comutação de Circuitos: [A] ----(Reserva Exclusiva de BANDA)---- [B]
Comutação de Pacotes: [A] --[P1]--> [Roteador 1] --[P2]--> [Roteador 2] --> [B]
Comutação de Circuitos (Circuit Switching)
Estabelece um caminho físico dedicado (end-to-end) entre o emissor e o receptor antes que qualquer dado seja transmitido.
- Fases: Estabelecimento do circuito, transferência de dados, e encerramento do circuito.
- Características: A largura de banda e os recursos de comutação são reservados estaticamente. Garante atraso (delay) determinístico e ausência de jitter, porém apresenta baixíssima eficiência na utilização de recursos em tráfegos estocásticos e em rajada (bursty traffic).
Comutação de Pacotes (Packet Switching)
Os dados da aplicação são fracionados em unidades discretas conhecidas como pacotes ou datagramas. Cada pacote contém um cabeçalho (header) com informações de controle e endereçamento.
- Multiplexação Estatística: Os recursos dos enlaces são compartilhados sob demanda. Diferentes fluxos de dados concorrem dinamicamente pelos buffers dos roteadores e comutadores.
- Abordagens de Encaminhamento:
- Datagrama Não-Conectado: Cada pacote é tratado de forma independente. Roteadores tomam decisões de encaminhamento individuais baseadas em tabelas de roteamento dinâmicas, o que permite que pacotes do mesmo fluxo sigam caminhos distintos e cheguem fora de ordem ao destino.
- Circuito Virtual (Connection-Oriented Packet Switching): Um caminho lógico é estabelecido previamente (ex.: MPLS, ATM), definindo um identificador de rótulo para os pacotes. Mantém-se a comutação de pacotes, mas o roteamento no core segue uma rota fixa.
4. O Ciclo de Vida da Troca de Dados: Encapsulamento de Protocolo
A troca de dados entre dispositivos segue estritamente a hierarquia do modelo de camadas (TCP/IP ou OSI). O dado original gerado pelo processo da aplicação sofre sucessivas transformações top-down no emissor (Encapsulamento) e bottom-up no receptor (Desencapsulamento).
[Camada de Aplicação] | Dados do Usuário |
v v
[Camada de Transporte] | [ Cabeçalho TCP/UDP ] [ Dados ] | Segmento / Datagrama
v v
[Camada de Rede] | [ Cabeçalho IP ] [ Cabeçalho Transport ] [ Dados ] | Datagrama IP
v v
[Camada de Enlace] | [ C. Enlace ] [ IP ] [ Transp ] [ Dados ] [ Trailer ] | Quadro (Frame)
v v
[Camada Física] | 011010010100101011010101001010101011010110 | Bits / Sinais
- Camada de Aplicação: O processo do cliente gera a mensagem original (ex.: requisição HTTP, payload gRPC).
- Camada de Transporte: A camada adiciona o cabeçalho de transporte, definindo portas de origem e destino (sockets) para multiplexação de processos. Converte os dados em um Segmento (TCP) ou Datagrama UDP.
- Camada de Rede: O segmento recebe o cabeçalho de rede contendo o endereço IP de origem e o endereço IP de destino. A unidade passa a ser um Datagrama IP.
- Camada de Enlace: O datagrama IP é encapsulado em um Quadro (Frame), que inclui endereços físicos locais (Endereços MAC de origem e próximo salto) e mecanismos de detecção de erro em hardware, como o Frame Check Sequence (FCS/CRC32).
- Camada Física: O quadro é convertido em uma sequência contínua de símbolos elétricos, ópticos ou eletromagnéticos enviados pelo meio físico.
5. Fundamentos Mecânicos de Confiabilidade na Transmissão
Como o meio físico é suscetível a ruído, atenuação, dispersão e interferência eletromagnética (EMI), a troca de informações precisa integrar algoritmos para tratamento de erros, controle de fluxo e sincronização.
Detecção e Correção de Erros
- Checksum e Paridade: Métodos computacionalmente simples que operam no nível de transporte/rede para validar a integridade dos cabeçalhos.
- Cyclic Redundancy Check (CRC): Algoritmo de divisão polinomial em aritmética de Galois $GF(2)$ executado em hardware na camada de enlace. Capaz de detectar erros em ráfaga com alto grau de confiabilidade.
- ARQ (Automatic Repeat Request): Estratégia de retransmissão onde o receptor valida a integridade do pacote e envia confirmações (ACKs) ou solicitações de retransmissão (NAKs). Variantes incluem Stop-and-Wait, Go-Back-N e Selective Repeat.
Controle de Fluxo e de Congestionamento
- Controle de Fluxo (Host-to-Host): Impede que um emissor veloz sobrecarregue a capacidade de processamento e alocação de memória do receptor (ex.: técnica de Sliding Window / Janela Deslizante do TCP).
- Controle de Congestionamento (Network-Wide): Evita o colapso por congestionamento nos elementos intermediários da rede (roteadores e switches) através do monitoramento indireto de atrasos e perda de pacotes (ex.: algoritmos TCP Tahoe, Reno, CUBIC, BBR).
6. Mapeamento Topológico e Escopos de Endereçamento
A troca direta ou indireta de informações exige que as entidades de rede operem em múltiplos domínios de endereçamento correlacionados:
- Endereçamento Físico (MAC Address): Plano flat de 48 bits, gravado na interface física de rede (NIC). Atua estritamente dentro do mesmo domínio de difusão (broadcast domain) ou enlace local.
- Endereçamento Lógico (IP Address): Plano hierárquico (IPv4 de 32 bits / IPv6 de 128 bits). Permite a identificação global e o roteamento inter-redes (inter-domain routing) cruzando múltiplos saltos (hops).
- Resolução de Endereços: A transição entre o identificador lógico e o identificador físico local exige protocolos de resolução dinâmicos, tais como o ARP (Address Resolution Protocol) no IPv4 ou o NDP (Neighbor Discovery Protocol) baseado em ICMPv6 no IPv6.
7. Métrica e Desempenho da Troca de Informações
A eficiência computacional e analítica da troca de dados entre dispositivos é mensurada por parâmetros quantitativos rigorosos:
- Largura de Banda (Bandwidth): Capacidade teórica máxima de transferência de bits por segundo ($bps$) de um canal de comunicação.
- Throughput: A taxa real de dados úteis transferida com sucesso através do canal em um determinado intervalo de tempo.
- Atraso de Transmissão ($T_{trans}$): Tempo necessário para injetar todos os bits de um pacote no meio físico ($T_{trans} = \frac{L}{R}$, onde $L$ é o tamanho do pacote em bits e $R$ é a taxa do enlace em $bps$).
- Atraso de Propagação ($T_{prop}$): Tempo necessário para que um bit viaje do emissor ao receptor através do meio físico ($T_{prop} = \frac{d}{s}$, onde $d$ é a distância física e $s$ é a velocidade de propagação do sinal no meio, $s \approx 2 \times 10^8 \, m/s$ em fibra óptica).
- Jitter: A variação estatística temporal do atraso na chegada dos pacotes (Delay Jitter), determinante para a qualidade de aplicações em tempo real.