Protocoles TCP vs SCTP
TCP (Transmission Control Protocol) et SCTP (Stream Control Transmission Protocol) se situent dans la couche transport et fournissent des fonctions de transport principalement dans les applications Internet. TCP fournit un transfert de données fiable avec un ordre strict de livraison des paquets, mais certaines applications nécessitent un transfert fiable mais pas une séquence de livraison à 100% des paquets. Dans ces cas, TCP peut entraîner un retard inutile dans la deuxième option où la fiabilité est importante mais pas la livraison séquentielle à 100%.
Dans le transport des paquets, il existe deux contraintes majeures, l'une est la fiabilité et l'autre la latence. La fiabilité est la livraison garantie du paquet et la latence est la livraison rapide du paquet. Les deux ne peuvent pas être atteints pour atteindre leur maximum en même temps mais pourraient être optimisés.
SCTP est essentiellement développé pour transporter la signalisation PSTN sur les réseaux IP. (SIGTRAN). Mais de nos jours, d'autres applications trouvent également que SCTP correspond bien à leurs exigences.
TCP:
Défini dans la RFC 793
TCP est un protocole fiable de bout en bout orienté connexion pour prendre en charge la transmission de données garantie. Depuis l'établissement de la connexion, TCP assure la fiabilité. Certaines des principales fonctionnalités de TCP sont la prise de contact à 3 voies (SYN, SYN-ACK, ACK), la détection d'erreur, le démarrage lent, le contrôle de flux, le contrôle de la congestion.
TCP est un mécanisme de transport fiable, il sera donc utilisé là où la livraison de paquets est un must même en cas de congestion. Les exemples typiques pour les applications TCP et les numéros de port sont les données FTP (20), FTP Control (21), SSH (222), Telnet (23), Mail (25), DNS (53), HTTP (80), POP3 (110), SNMP (161) et HTTPS (443). Ce sont des applications TCP bien connues.
SCTP:
Défini dans RFC4960
SCTP (Stream Control Transmission Protocol) est un protocole de transport IP tel que TCP et UDP. SCTP est un protocole unicast et prend en charge la livraison de données de bout en bout dans exactement deux points de terminaison. Mais les points de terminaison peuvent avoir plus d'une adresse IP.
SCTP est un protocole de transmission full duplex avec des fonctionnalités telles que la retransmission, le contrôle de flux et la maintenance de séquence.
En plus de TCP, SCTP a plus de fonctionnalités et certaines sont répertoriées ci-dessous
Fonction multi-streaming SCTP
SCTP permet aux données d'être divisées en plusieurs flux et chaque flux a sa propre séquence de livraison. Prenons le cas de la signalisation de téléphonie, il est nécessaire de maintenir la séquence de paquets qui affecte la même session ou ressource. (Ex: même appel ou même ligne réseau). Le suivi de séquence basé sur le flux est donc suffisant et donnera de meilleures performances qu'un streaming complet.
Prise en charge multiple SCTP
Cette fonction prend en charge qu'un seul point de terminaison SCTP possède plusieurs adresses IP. La raison principale en est de maintenir la disponibilité du point final via plusieurs chemins de routage redondants.
Sélection de chemin
Un compteur est maintenu pour suivre les accusés de réception de transmission infructueux vers une destination particulière. Un seuil est défini et si celui-ci dépasse, l'adresse de destination est déclarée inactive et le SCTP commence à envoyer à une autre adresse.
Résumé:
(1) TCP et SCTP prennent tous deux en charge des services de transport fiables.
(2) TCP prend en charge un flux unique de livraison de données alors que SCTP prend en charge plusieurs flux de livraison de données.
(3) TCP prend en charge un seul point de terminaison TCP pour avoir une adresse IP alors que SCTP prend en charge un seul point de terminaison SCTP peut avoir plusieurs adresses IP à des fins principalement de redondance.
(4) Plutôt TCP, SCTP est plus sécurisé.
(5) Les processus d'initiation et d'arrêt SCTP sont différents de TCP.