Protocolli TCP vs SCTP
Sia TCP (Transmission Control Protocol) che SCTP (Stream Control Transmission Protocol) si trovano nel livello di trasporto e forniscono funzioni di trasporto principalmente nelle applicazioni Internet. Il protocollo TCP fornisce un trasferimento dati affidabile con un rigoroso ordine di consegna dei pacchetti, ma alcune applicazioni richiedono un trasferimento affidabile ma non una sequenza di consegna dei pacchetti del 100%. In questi casi TCP potrebbe causare ritardi non necessari nella seconda opzione in cui l'affidabilità è importante ma non la consegna sequenziale al 100%.
Nel trasporto di pacchetti ci sono due vincoli principali, uno è l'affidabilità e l' altro è la latenza. L'affidabilità è la consegna garantita del pacchetto e la latenza è la consegna tempestiva del pacchetto. Entrambi non possono essere raggiunti per raggiungere il picco contemporaneamente, ma potrebbero essere ottimizzati.
SCTP è sviluppato fondamentalmente per trasportare la segnalazione PSTN su reti IP. (SIGTRAN). Ma al giorno d'oggi anche altre applicazioni trovano che SCTP soddisfi i loro requisiti.
TCP:
Definito in RFC 793
TCP è un protocollo affidabile end-to-end orientato alla connessione per supportare la trasmissione di dati garantita. Dall'instaurazione della connessione stessa TCP garantisce l'affidabilità. Alcune delle caratteristiche principali di TCP sono l'handshake a 3 vie (SYN, SYN-ACK, ACK), il rilevamento degli errori, l'avvio lento, il controllo del flusso, il controllo della congestione.
TCP è un meccanismo di trasporto affidabile, quindi verrà utilizzato dove la consegna dei pacchetti è d'obbligo anche nelle congestioni. Esempi tipici di applicazioni TCP e numeri di porta sono dati FTP (20), FTP Control (21), SSH (222), Telnet (23), Mail (25), DNS (53), HTTP(80), POP3(110), SNMP(161) e HTTPS(443). Queste sono ben note applicazioni TCP.
SCTP:
Definito in RFC4960
SCTP (Stream Control Transmission Protocol) è un protocollo di trasporto IP come TCP e UDP. SCTP è un protocollo unicast e supporta la consegna dei dati end-to-end all'interno di esattamente due endpoint. Ma gli endpoint possono avere più di un indirizzo IP.
SCTP è un protocollo di trasmissione full duplex con caratteristiche come la ritrasmissione, il controllo del flusso e la manutenzione della sequenza.
Oltre a TCP, SCTP ha più funzioni e alcune sono elencate di seguito
Funzione SCTP multi-streaming
SCTP consente di dividere i dati in più flussi e ogni flusso ha la propria sequenza di consegna. Si consideri il caso della segnalazione di telefonia, è necessario mantenere la sequenza di pacchetti che interessa la stessa sessione o risorsa. (Es: stessa chiamata o stessa linea esterna). Quindi il monitoraggio della sequenza basato sullo streaming è sufficientemente sufficiente e si tradurrà in prestazioni migliori rispetto a uno streaming completo.
Homing multiplo SCTP
Questa funzione supporta che un singolo endpoint SCTP abbia più indirizzi IP. Il motivo principale di ciò è mantenere la disponibilità dell'endpoint tramite diversi percorsi di routing ridondanti.
Selezione del percorso
Viene mantenuto un contatore per tenere traccia dei riconoscimenti di trasmissione non riusciti a una destinazione particolare. È stata definita una soglia e se questa supera l'indirizzo di destinazione viene dichiarato inattivo e SCTP inizia a inviare a un indirizzo alternativo.
Riepilogo:
(1) TCP e SCTP supportano entrambi servizi di trasporto affidabili.
(2) TCP supporta un singolo flusso di consegna dei dati mentre SCTP supporta più flussi di consegna dei dati.
(3) TCP supporta un singolo endpoint TCP per avere un indirizzo IP mentre SCTP supporta un singolo endpoint SCTP può avere più indirizzi IP principalmente per scopi di ridondanza.
(4) Piuttosto che TCP, SCTP è più sicuro.
(5) I processi di avvio e arresto SCTP sono diversi da TCP.