videocalling
Illustration of SCTP (Stream Control Transmission Protocol) in video calling

SCTP (Stream Control Transmission Protocol)

glossary.categories.protocol

O protocolo usado nos Canais de Dados WebRTC para enviar dados que não são mídia.

O que é SCTP?

O Stream Control Transmission Protocol (SCTP) é um protocolo de rede de computadores que combina a confiabilidade do TCP com a natureza orientada a mensagens do UDP. No WebRTC, ele é exclusivamente usado para Canais de Dados — permitindo que desenvolvedores enviem dados arbitrários (como mensagens de chat, transferências de arquivo ou estado de jogo) diretamente entre pares.

Por Que SCTP para WebRTC?

O WebRTC precisava de uma maneira de enviar dados que fosse mais flexível que TCP ou UDP sozinhos. O SCTP oferece recursos únicos perfeitos para dados peer-to-peer:

  • Confiabilidade Configurável: Você pode escolher tornar um canal de dados confiável (como TCP, retransmitindo pacotes perdidos) ou não confiável (como UDP, para jogos em tempo real) por canal.
  • Orientado a Mensagens: Diferente do TCP que é um fluxo de bytes, o SCTP mantém mensagens individuais distintas.
  • Multiplexação: Você pode ter múltiplos canais de dados distintos sobre uma única associação SCTP.

SCTP sobre DTLS

Como o SCTP não é nativamente suportado pela maioria dos roteadores consumidores (NATs), o WebRTC encapsula pacotes SCTP dentro de pacotes DTLS, que rodam sobre UDP. Isso permite que o SCTP atravesse firewalls de forma segura mantendo todos os seus recursos poderosos.