# Stream Control Transmission Protocol

O Stream Control Transmission Protocol (SCTP) é um protocolo de comunicação de rede de computadores na camada de transporte do conjunto de protocolos da Internet. Originalmente destinado ao transporte de mensagens do Sistema de Sinalização 7 (SS7) em telecomunicações, o protocolo fornece o recurso orientado a mensagens do User Datagram Protocol (UDP), ao mesmo tempo que garante o transporte confiável e em sequência de mensagens com controle de congestionamento como o Transmission Control Protocol (TCP). Ao contrário do UDP e do TCP, o protocolo suporta multihoming e caminhos redundantes para aumentar a resiliência e a confiabilidade.
O SCTP oferece a transferência de datagramas (mensagens) livres de erros e de duplicações através do reconhecimento de transmissões (ACKs). A detecção de corrupção, perda e duplicação de dados é obtida através de mecanismos de checksum e números sequenciais. Um mecanismo de retransmissão seletiva é usado para corrigir a perda ou a corrupção de dados.
O SCTP é padronizado pela Internet Engineering Task Force (IETF) na RFC 9260. A implementação de referência do SCTP foi lançada como parte da versão 7 do FreeBSD e, desde então, foi amplamente portada para outras plataformas.

## Supervisão formal

O grupo de trabalho IETF Signaling Transport (SIGTRAN) definiu o protocolo (número 132) em outubro de 2000, e o grupo de trabalho IETF Transport Area (TSVWG) o mantém. RFC 9260 define o protocolo. RFC 3286 fornece uma introdução.

## Segurança

Embora a criptografia não fizesse parte do design original do SCTP, o SCTP foi projetado com recursos para maior segurança, como handshake de 4 vias (em comparação com o handshake de 3 vias TCP) para proteção contra ataques de inundação SYN e grandes "cookies" para verificação de associação e autenticidade.
A confiabilidade também foi uma parte fundamental do projeto de segurança do SCTP. O multihoming permite que uma associação permaneça aberta mesmo quando algumas rotas e interfaces estão inativas. Isto é de particular importância para o SIGTRAN, pois transporta SS7 através de uma rede IP usando SCTP e requer forte resiliência durante interrupções de link para manter o serviço de telecomunicações mesmo quando há anomalias persistentes na rede.
O SCTP às vezes é um bom candidato para impressão digital. Alguns sistemas operacionais são fornecidos com suporte SCTP habilitado e, como não é tão conhecido como TCP ou UDP, às vezes é ignorado em configurações de firewall e detecção de intrusão, permitindo muitas vezes a investigação do tráfego.

## Recursos

Os recursos do SCTP incluem:
* Transmissão confiável de fluxos de dados ordenados e não ordenados.
* Suporte multihoming no qual um ou ambos os pontos finais de uma conexão podem consistir em mais de um endereço IP, permitindo failover transparente entre caminhos de rede redundantes.
* A entrega de pedaços em fluxos independentes elimina o bloqueio desnecessário de cabeçalho, em oposição à entrega de fluxo de bytes TCP.
* Confiabilidade parcial explícita.
* Seleção e monitoramento de caminho para selecionar um caminho primário de transmissão de dados e testar a conectividade do caminho de transmissão.
* Os mecanismos de validação e reconhecimento protegem contra ataques de inundação e fornecem notificação de blocos de dados duplicados ou ausentes.
* Detecção de erros aprimorada, adequada para jumbo frames Ethernet.
Os projetistas do SCTP originalmente o pretendiam para o transporte de telefonia (ou seja, Sistema de Sinalização 7) sobre Protocolo de Internet, com o objetivo de duplicar alguns dos atributos de confiabilidade da rede de sinalização SS7 em IP. Este esforço da IETF é conhecido como SIGTRAN. Entretanto, outros usos foram propostos, por exemplo, o protocolo Diameter e o Reliable Server Pooling (RSerPool).