TCP vs Protocolos SCTP
Tanto o TCP (Transmission Control Protocol) quanto o SCTP (Stream Control Transmission Protocol) estão na camada de transporte e fornecem funções de transporte principalmente em aplicações de internet. O TCP fornece transferência de dados confiável com ordem estrita de entrega dos pacotes, mas alguns aplicativos precisam de transferência confiável, mas não 100% de sequência de entrega de pacotes. Nesses casos, o TCP pode causar atraso desnecessário na segunda opção, onde a confiabilidade é importante, mas não 100% de entrega sequencial.
No transporte de pacotes existem duas restrições principais, uma é a confiabilidade e a outra é a latência. A confiabilidade é a entrega garantida do pacote e a latência é a entrega oportuna do pacote. Ambos não podem atingir o pico ao mesmo tempo, mas podem ser otimizados.
SCTP é desenvolvido basicamente para transportar sinalização PSTN sobre redes IP. (SIGTRAN). Mas hoje em dia outros aplicativos também descobrem que o SCTP é uma boa combinação para seus requisitos.
TCP:
Definido na RFC 793
TCP é um protocolo confiável de ponta a ponta orientado à conexão para suportar transmissão de dados garantida. A partir do próprio estabelecimento da conexão o TCP garante a confiabilidade. Algumas das principais características do TCP são handshake de 3 vias (SYN, SYN-ACK, ACK), Detecção de Erros, Inicialização Lenta, Controle de Fluxo, Controle de Congestionamento.
TCP é um mecanismo de transporte confiável, portanto, será usado onde a entrega de pacotes é obrigatória mesmo em congestionamentos. Exemplo típico para aplicativos TCP e números de porta são dados FTP (20), Controle FTP (21), SSH (222), Telnet (23), Mail (25), DNS (53), HTTP(80), POP3(110), SNMP(161) e HTTPS(443). Esses são aplicativos TCP bem conhecidos.
SCTP:
Definido em RFC4960
SCTP (Stream Control Transmission Protocol) é um protocolo de transporte IP, como TCP e UDP. O SCTP é um protocolo unicast e oferece suporte para entrega de dados de ponta a ponta em exatamente dois terminais. Mas os endpoints podem ter mais de um endereço IP.
SCTP é um protocolo de transmissão full duplex com recursos como retransmissão, controle de fluxo e manutenção de sequência.
Além do TCP, o SCTP tem mais recursos e alguns estão listados abaixo
Recurso de multitransmissão SCTP
SCTP permite que os dados sejam divididos em vários fluxos e cada fluxo tem sua própria sequência de entrega. Considere o caso da sinalização de telefonia, é necessário manter a sequência de pacotes que afeta a mesma sessão ou recurso. (Ex: Mesma chamada ou mesmo tronco). Portanto, o rastreamento de sequência baseado em fluxo é suficiente e resultará em melhor desempenho do que um streaming completo.
SCTP multi homing
Este recurso oferece suporte para um único endpoint SCTP ter vários endereços IP. A principal razão para isso é manter a disponibilidade do endpoint por meio de vários caminhos de roteamento redundantes.
Seleção de caminho
Um contador é mantido para acompanhar as confirmações de transmissão malsucedidas para um determinado destino. Existe um limite definido e se exceder o endereço de destino é declarado como inativo e o SCTP começa a enviar para endereço alternativo.
Resumo:
(1) TCP e SCTP suportam serviços de transporte confiáveis.
(2) O TCP suporta um único fluxo de entrega de dados enquanto o SCTP suporta vários fluxos de entrega de dados.
(3) O TCP suporta um único ponto de extremidade TCP para ter um endereço IP, enquanto o SCTP suporta um único ponto de extremidade SCTP pode ter vários endereços IP principalmente para fins de redundância.
(4) Em vez de TCP, SCTP é mais seguro.
(5) Os processos de inicialização e encerramento do SCTP são diferentes do TCP.