FCS (Frame Check Sequence) é um valor Cyclic Redundancy Check (CRC) de 32 bits anexado ao final de um frame de camada de enlace (ex.: Ethernet, Wi-Fi, PPP, HDLC) para detectar erros de transmissão.
Como Funciona
- Transmissor: Calcula CRC32 (polinômio
0x04C11DB7) sobre frame inteiro (header + payload + opcionalmente preamble/SFD excluídos). Anexa FCS de 4 bytes.
- Transmissão: Frame viaja pelo meio; bits podem flip por ruído, interferência, atenuação.
- Receptor: Recalcula CRC32 sobre frame recebido (incluindo FCS recebido).
- Verificação:
- Resultado = 0xC704DD7B (residual para polinômio correto) → Frame aceito.
- Resultado ≠ esperado → Frame descartado (silenciosamente; sem retransmissão Camada 2 — confiado em camadas superiores como TCP).
Propriedades-Chave
- Detecta: Todos erros 1/2 bits, todos erros bits ímpares, todos burst errors ≤ 32 bits, 99,99999998% bursts maiores.
- NÃO Corrige: Sem forward error correction (FEC); puramente detecção.
- Localização: Camada 2 (Data Link) trailer — últimos 4 bytes antes inter-frame gap.
- Padrão: IEEE 802.3 (Ethernet), 802.11 (Wi-Fi), PPP, HDLC, Frame Relay.
Limitação
FCS pode falhar se flips de bit cancelam matematicamente (extremamente raro). Fornece integridade, não autenticidade (sem segurança criptográfica).