TCP versus SCTP-protocollen
Zowel TCP (Transmission Control Protocol) als SCTP (Stream Control Transmission Protocol) liggen in de transportlaag en bieden transportfuncties voornamelijk in internettoepassingen. TCP biedt betrouwbare gegevensoverdracht met een strikte volgorde van aflevering van de pakketten, maar sommige toepassingen hebben een betrouwbare overdracht nodig, maar geen 100% volgorde van aflevering van pakketten. In deze gevallen kan TCP onnodige vertraging veroorzaken bij de tweede optie, waarbij betrouwbaarheid belangrijk is, maar niet 100% sequentiële levering.
Bij het transport van pakketten zijn er twee belangrijke beperkingen: de ene is de betrouwbaarheid en de andere is de latentie. Betrouwbaarheid is een gegarandeerde aflevering van het pakket en latentie is een tijdige aflevering van het pakket. Beide kunnen niet tegelijkertijd worden bereikt, maar kunnen worden geoptimaliseerd.
SCTP is in principe ontwikkeld om PSTN-signalering over IP-netwerken te transporteren. (SIGTRAN). Maar tegenwoordig vinden ook andere applicaties dat SCTP goed aansluit bij hun eisen.
TCP:
Gedefinieerd in RFC 793
TCP is een verbindingsgeoriënteerd end-to-end betrouwbaar protocol om gegarandeerde gegevensoverdracht te ondersteunen. Vanaf de verbinding zelf zorgt TCP voor de betrouwbaarheid. Enkele van de belangrijkste kenmerken van TCP zijn drieweg-handshake (SYN, SYN-ACK, ACK), foutdetectie, langzame start, stroomregeling, congestiecontrole.
TCP is een betrouwbaar transportmechanisme, dus het zal worden gebruikt waar pakketbezorging een must is, zelfs bij congestie. Typisch voorbeeld voor TCP-toepassingen en poortnummers zijn FTP-gegevens (20), FTP-controle (21), SSH (222), Telnet (23), Mail (25), DNS (53), HTTP (80), POP3 (110), SNMP (161) en HTTPS (443). Dit zijn bekende TCP-toepassingen.
SCTP:
Gedefinieerd in RFC4960
SCTP (Stream Control Transmission Protocol) is een IP-transportprotocol zoals TCP en UDP. SCTP is een unicast-protocol en ondersteunt end-to-end datalevering binnen precies twee eindpunten. Maar eindpunten kunnen meer dan één IP-adres hebben.
SCTP is een full-duplex transmissieprotocol met functies zoals hertransmissie, stroomregeling en sequentieonderhoud.
Naast TCP heeft SCTP meer functies en enkele worden hieronder vermeld
SCTP Multi-Streaming-functie
Met SCTP kunnen gegevens worden verdeeld in meerdere streams en elke stream heeft zijn eigen volgorde van levering. Beschouw het geval van telefoniesignalering: het is noodzakelijk om de reeks pakketten te behouden die van invloed zijn op dezelfde sessie of bron. (Voorbeeld: hetzelfde gesprek of dezelfde lijn). Dus op stream gebaseerde sequentietracking is voldoende en levert betere prestaties op dan één volledige streaming.
SCTP multi-homing
Deze functie ondersteunt een enkel SCTP-eindpunt met meerdere IP-adressen. De belangrijkste reden hiervoor is om de beschikbaarheid van het endpoint te behouden via verschillende redundante routeringspaden.
Path selectie
Er wordt een teller bijgehouden om de mislukte verzendbevestigingen naar een bepaalde bestemming bij te houden. Er is een drempel gedefinieerd en als die het bestemmingsadres overschrijdt, wordt het als inactief verklaard en begint SCTP naar een alternatief adres te verzenden.
Samenvatting:
(1) TCP en SCTP ondersteunen beide betrouwbare transportdiensten.
(2) TCP ondersteunt een enkele gegevensstroom, terwijl SCTP meerdere gegevensstromen ondersteunt.
(3) TCP ondersteunt één TCP-eindpunt om één IP-adres te hebben, terwijl SCTP een enkel SCTP-eindpunt ondersteunt, meerdere IP-adressen kan hebben voor voornamelijk redundantiedoeleinden.
(4) In plaats van TCP is SCTP veiliger.
(5) SCTP-initiatie- en afsluitprocessen verschillen van TCP.