TCP- vs. SCTP-Protokolle
Sowohl TCP (Transmission Control Protocol) als auch SCTP (Stream Control Transmission Protocol) liegen in der Transportschicht und stellen Transportfunktionen hauptsächlich in Internetanwendungen bereit. TCP bietet eine zuverlässige Datenübertragung mit strenger Reihenfolge der Lieferung der Pakete, aber einige Anwendungen benötigen eine zuverlässige Übertragung, aber keine 100%ige Reihenfolge der Lieferung von Paketen. In diesen Fällen kann TCP unnötige Verzögerungen bei der zweiten Option verursachen, bei der Zuverlässigkeit wichtig ist, aber keine 100 % sequentielle Zustellung.
Beim Transport von Paketen gibt es zwei Haupteinschränkungen, eine ist die Zuverlässigkeit und die andere die Latenz. Die Zuverlässigkeit ist die garantierte Zustellung des Pakets und die Latenz ist die rechtzeitige Zustellung des Pakets. Beides kann nicht gleichzeitig zum Höhepunkt gebracht werden, sondern könnte optimiert werden.
SCTP wurde im Wesentlichen entwickelt, um PSTN-Signalisierung über IP-Netzwerke zu transportieren. (SIGTRAN). Aber auch andere Anwendungen finden heutzutage, dass SCTP ihre Anforderungen gut erfüllt.
TCP:
Definiert in RFC 793
TCP ist ein verbindungsorientiertes, zuverlässiges End-to-End-Protokoll zur Unterstützung einer garantierten Datenübertragung. Ab dem Verbindungsaufbau selbst sorgt TCP für die Ausfallsicherheit. Einige der Hauptfunktionen von TCP sind 3-Wege-Handshake (SYN, SYN-ACK, ACK), Fehlererkennung, langsamer Start, Flusskontrolle, Staukontrolle.
TCP ist ein zuverlässiger Transportmechanismus und wird daher dort eingesetzt, wo die Paketzustellung selbst bei Überlastungen ein Muss ist. Typische Beispiele für TCP-Anwendungen und Portnummern sind FTP-Daten (20), FTP-Steuerung (21), SSH (222), Telnet (23), Mail (25), DNS (53), HTTP(80), POP3(110), SNMP(161) und HTTPS(443). Dies sind bekannte TCP-Anwendungen.
SCTP:
Definiert in RFC4960
SCTP (Stream Control Transmission Protocol) ist ein IP-Transportprotokoll wie TCP und UDP. SCTP ist ein Unicast-Protokoll und unterstützt die Ende-zu-Ende-Datenübertragung innerhalb von genau zwei Endpunkten. Endpunkte können jedoch mehr als eine IP-Adresse haben.
SCTP ist ein Vollduplex-Übertragungsprotokoll mit Funktionen wie Neuübertragung, Flusskontrolle und Sequenzerh altung.
Zusätzlich zu TCP hat SCTP weitere Funktionen und einige sind unten aufgeführt
SCTP Multi-Streaming-Funktion
SCTP ermöglicht die Aufteilung von Daten in mehrere Streams und jeder Stream hat seine eigene Liefersequenz. Betrachten Sie den Fall der Telefonie-Signalisierung, es ist notwendig, die Reihenfolge der Pakete beizubeh alten, die dieselbe Sitzung oder Ressource betreffen. (Bsp.: Gleicher Anruf oder gleiche Amtsleitung). Stream-basiertes Sequenz-Tracking ist also ausreichend und führt zu einer besseren Leistung als ein vollständiges Streaming.
SCTP-Multi-Homing
Diese Funktion unterstützt, dass ein einzelner SCTP-Endpunkt mehrere IP-Adressen hat. Der Hauptgrund dafür ist, die Erreichbarkeit des Endpunkts über mehrere redundante Routing-Pfade aufrechtzuerh alten.
Pfadauswahl
Ein Zähler wird geführt, um die erfolglosen Übertragungsbestätigungen an ein bestimmtes Ziel zu verfolgen. Es ist ein Schwellenwert definiert und wenn dieser die Zieladresse überschreitet, wird sie als inaktiv deklariert und SCTP beginnt, an eine alternative Adresse zu senden.
Zusammenfassung:
(1) TCP und SCTP unterstützen beide zuverlässige Transportdienste.
(2) TCP unterstützt einzelne Datenströme, während SCTP mehrere Datenströme unterstützt.
(3) TCP unterstützt einen einzelnen TCP-Endpunkt, um eine IP-Adresse zu haben, während SCTP einen einzelnen SCTP-Endpunkt unterstützt, der hauptsächlich aus Redundanzgründen mehrere IP-Adressen haben kann.
(4) Statt TCP ist SCTP sicherer.
(5) SCTP-Initiierungs- und Herunterfahrprozesse unterscheiden sich von TCP.