Systematische Untersuchung und Weiterentwicklung des Transportprotokolls SCTP
Zusammenfassung der Projektergebnisse
Das Stream Control Transmission Protocol (SCTP) ist ein neues Transportprotokoll, das Ende 2000 im RFC 2960 der IETF standardisiert wurde. SCTP konnte sich als erstes lETF-Transportprotokoll seit TCP in der Praxis durchsetzen und wird inzwischen von den gängigen Betriebssystemen unterstützt, auch viele der großen Hersteller haben SCTP-Implementierungen für ihre proprietären Plattformen entwickelt. Die Nutzung von SCTP ist - teilweise verbindlich - in den Standardisierungsdokumenten für eine Vielzahl von Anwendungsbereichen (z.B. UMTS, SIP, Diameter, IPFIX, RSerPool) verankert. SCTP ist ein hochfunktionales, verbindungsorientiertes Protokoll und bietet mit einem zuverlässigen Ende-zu-Ende-Transport einen ähnlichen Basisdienst an wie TCP. Die bedeutendsten Unterschiede zu TCP sind dabei der nachrichtenorientierte Transport (Bytestrom bei TCP), die Möglichkeit zum effizienten Multiplexen mehrerer Anwendungs-Nachrichtenströme (Multi-Streaming) und die Möglichkeit zur gleichzeitigen Nutzung mehrerer Pfade durch das Netz (Multi-Homing) sowie zusätzliche Protokollenweiterungen. Ziel des Projektes war es, die Leistungsfähigkeit und Anwendbarkeit systematisch zu untersuchen und zu verbessern, wobei die Ergebnisse in die lETF-Standardisierung eingebracht werden sollten. Als Basis für die quantitativen Untersuchungen wurden ein detailliertes SCTP-Simulationsmodell für das INET-Framework des Simulationswerkzeugs OMNeT++, sowie Erweiterungen des INET TCP-Modells erarbeitet, die inzwischen offizielle Bestandteile des INET-Frameworks sind. Weiterhin wurden mehrere Werkzeuge zur Unterstützung effizienter Simulationsstudien entwickelt und als Open Source verfügbar gemacht. Die Pflege und Erweiterung einer Prototypimplementierung der untersuchten Funktionalitäten und der Aufbau eines spezifischen Testbetts wurden ebenfalls durchgeführt. Die Fairness gegenüber TCP ist eine Grundvoraussetzung für den flächendeckenden Einsatz von SCTP im Internet. Ein unerwünschtes Verhalten von SCTP bei der Übertragung von kleinen Nachrichten wurde durch die Berücksichtigung des variablen Overheads in SCTP-Paketen (Byte Counting) behoben. Es wurde ein Vorschlag erarbeitet und in die Standardisierung eingebracht, wie eine Benachteiligung von SCTP für nicht-saturierte Quellen vermieden werden kann (SACK-Immediately-Erweiterung). Standard-SCTP verwendet bei Verfügbarkeit mehrerer Netzwerkpfade nur einen zur Nachrichtenübertragung, die anderen werden nur im Fehlerfall benutzt. Die gleichzeitige Nutzung mehrerer Pfade zur Durchsatzsteigerung (Lastteilung) ist eine oft nachgefragte Erweiterung, die inzwischen auch für TCP intensiv untersucht wird (Multipath-TCP, MPTCP). Die bisher bekannten Ansätze sind nur für wenige, disjunkte und gleichartige Pfade nutzbringend einsetzbar. Unsere Vorschläge erweitern den Einsatzbereich der SCTP-Lastteilung auf nicht-disjunkte Pfade und auf Pfade, die stark asymmetrisch bezüglich Datenrate, Verzögerung und Fehlerrate sind. Diese Vorschläge wurden in die SCTP-Standardisierung eingebracht und werden dort weiter verfolgt. Der SCTP-Standard macht keine Vorgaben bezüglich der Sendereihenfolge beim Multiplexen der Anwendungs-Nachrichtenströme beim Multi-Streaming. Es wurden mehrere Schedulingverfahren untersucht, die diesen Freiheitsgrad gezielt ausnutzen. Insbesondere wurde eine Möglichkeit zur näherungsweisen Nachbildung einer Stream-individuellen (statt verbindungsbezogenen) Flusssteuerung mittels eines prioritätsbasierten Schedulers entwickelt, die vielen Anwendungen erhebliche Vorteile bringt. Es sind mehrere Sicherheitslösungen für SCTP bekannt, die jedoch alle erhebliche Defizite aufweisen. Es wurde ein Vorschlag (DTLS/SCTP) entwickelt, der diese Einschränkungen umfassend vermeidet. Der Vorschlag wurde inzwischen als offizieller Internet-Standard akzeptiert und von uns im Rahmen von OpenSSL verfügbar gemacht. Außerdem wurden Vorschläge zur Nutzung von SCTP in Kombination mit SSH erarbeitet, die erhebliche Vorteile gegenüber der Nutzung von TCP erbringen.
Projektbezogene Publikationen (Auswahl)
-
"Design and Implementation of SCTP-aware DTLS", in Proceedings of the International Conference Telecommunications and Multimedia (TEMU), ISBN 978-960-8878-59-4, Juli 2010
Seggelmann, Robin; Tüxen, Michael; Rathgeb, Erwin Paul
-
"On the Use of Concurrent Multipath Transfer over Asymmetric Paths", in Proceedings of the IEEE Global Communications Conference (GLOBECOM), ISBN 978-1-4244-5637-6, Miami, Florida/U.S.A., 7. Dezember, 2010
Dreibholz, Thomas; Becke, Martin; Rathgeb, Erwin Paul; Tüxen, Michael
-
"Strategies to Secure End-to-End Communication - And Their Application to SCTP-based Communication", in PIK - Praxis der Informationsverarbeitung und Kommunikation, vol. 34, no. 4
Seggelmann, Robin; Tüxen, Michael; Rathgeb, Erwin Paul
-
"Stream Control Transmission Protocol: Past, Current, and Future Standardization Activities", in IEEE Communications Magazine, vol.49, no.4, pp. 82-88
Dreibholz, Thomas; Rüngeler, Irene; Seggelmann, Robin; Tüxen, Michael; Rathgeb, Erwin Paul; Stewart, Randall R.
-
"DTLS Mobility", in Proceedings of the 13th International Conference on Distributed Computing and Networking (ICDCN 2012), ISBN 978-3-642-25958-6, Januar 2012
Seggelmann, Robin; Tüxen, Michael; Rathgeb, Erwin Paul
-
"On the Fairness of Transport Protocols in a Multi-Path Environment", in Proceedings of the IEEE International Conference on Communications (ICC), Ottawa/Canada, 12. Juni, 2012
Becke, Martin; Dreibholz, Thomas; Adhari, Hakim; Rathgeb, Erwin Paul
-
"SSH over SCTP - Optimizing a Multi-Channel Protocol by Adapting It to SCTP", in Proceedings of the 8th International Symposium on Communication Systems, Networks and Digital Signal Processing (CSNDSP 2012), Poznan, Poland - July 2012
Seggelmann, Robin; Tüxen, Michael; Rathgeb, Erwin Paul