
In diesem Technikartikel schauen wir uns das Serial Line Internet Protocol (SLIP) im Kontext von Embedded Systemen an.
Das Serial Line Internet Protocol (SLIP) ist ein einfaches Netzwerkprotokoll zum Übertragen von Daten zwischen zwei Geräten. Die Geschichte des Protokolls reicht in die frühe Zeit der 1980er Jahre zurück. Die erste weitverbreitete Implementierung des SLIP kam von Rick Adams für das Berkeley Unix 4.2 Betriebssystem. SLIP ist kein offizieller Standard, sondern liegt in der RFC 1055 als Quasi-Standard vor. Im ISO/OSI Referenzmodell ist das Protokoll in der Sicherungsschicht (engl. Data Link Layer) angeordnet. Auf PCs ist das SLIP heutzutage zum Großteil durch das Point-to-Point Protocol (PPP) ersetzt. In Embedded Systems hat es jedoch auch heute noch seinen Nutzen. Im Folgenden erfahren Sie nach einer Beschreibung der Funktionsweise des SLIP, wie und wann SLIP in Embedded Systemen eingesetzt werden kann und wie eine Implementierung von SLIP aussehen könnte.
Generell gibt es drei Zeichen, die von dem Protokoll in den Datenstrom eingefügt werden.
Das SLIP ESC Zeichen (0xDB) darf hierbei nicht mit dem ESC Zeichen aus dem ASCII Zeichensatz verwechselt werden. SLIP kapselt lediglich ein Paket aus Binärdaten (Bytes) und kennt keine Zeichensätze etc.
Das nachfolgende Bild zeigt die Funktionsweise des relativ einfachen Algorithmus.
Das nachfolgende Bild zeigt ein Beispiel für die Encodierung eines Datagramms. Beispielhaft wird davon ausgegangen, dass im Datagramm ein Byte mit dem Wert 0xC0 (SLIP END Zeichen) und eines mit dem Wert 0xDB (SLIP ESC Zeichen) vorhanden ist.
Historisch wurde das SLIP hauptsächlich zur Übertragung von IP Paketen verwendet, weshalb die meisten Darstellungen in der Literatur von der Kapselung eines IP Pakets sprechen. Auch der Name "Serial Line Internet Protocol" zielt ja in diese Richtung. Ganz allgemein kann mit dem SLIP aber jedes byteorientierte Datenformat übertragen werden.
SLIP ist eine einfache Methode, um eine serielle Bytefolge in Rahmen (Frames) zu verpacken. Es erlaubt somit Empfangsseitig eine rudimentäre Synchronisation auf diese Rahmen und eignet sich daher speziell zur Übertragung von Paket-/Framebasierten Daten aus den höheren Schichten des ISO/OSI Modells.
Vorteile des SLIP sind
Natürlich hat das Protokoll auch einige Nachteile bzw. bietet einige Features nicht, die üblicherweise bei Protokollen der Sicherungsschicht zu finden sind.
Zu den Nachteilen des SLIP zählen
Die aufgeführten Nachteile gelten natürlich nicht allgemein, sondern nur für bestimmte Anwendungsfälle. Sonst hätte SLIP auch keine so weite Verbreitung gefunden.
Der nächste Abschnitt beschreibt einige der typischen Anwendungen des SLIP.
Üblicherweise wird das SLIP zur Übertragung von IP Paketen über eine serielle Verbindung verwendet. Eine typische Anwendung fand das Protokoll bei der Verbindung von Rechnern über ein Dial-up Modem mit dem Internet bzw. bei der direkten Verbindung zwischen zwei Rechnern. Heutzutage wird hierfür jedoch hauptsächlich das leistungsfähigere und robustere Point-to-Point Protocol (PPP) eingesetzt.
Im Embedded System Bereich ist das SLIP hingegen auch heute noch für diverse Anwendungen eine gute Wahl.
Während das SLIP im PC Bereich weitgehend durch das PPP ersetzt wurde, kommt es in Embedded Systemen durchaus noch zum Einsatz.
Ein gängiger Anwendungsfall ist die Kommunikation zwischen einer MCU (Microcontroller Unit) und einem Network Co-Processor (NCP). Hier zwei Beispielprojekte auf Github:
Einen weiteren Anwendungsfall sieht man bei der bekannten MCU Serie ESP32/8266. Das ROM Bootloader Protokoll setzt hier auch auf SLIP. Die Commands und Responses werden hierbei in SLIP Frames verpackt und über die UART Schnittstelle übertragen. D.h. beim Flashen der Chips über das esptool oder von einem anderen Microcontroller aus wird das SLIP verwendet.
Generell kann das SLIP auch für die on-board Kommunikation von Embedded Systemen sinnvoll sein, z.B. zwischen einem Messcontroller und einer Main-MCU.
Das SLIP ist ein sehr einfaches Protokoll, das in den Anfängen des Internetzeitalters recht verbreitet war. Heutzutage ist es in der PC Welt weitgehend durch das PPP abgelöst. In der Embedded Systems Welt wird es jedoch nach wie vor verwendet. Durch seine Einfachheit muss aber genau abgewogen werden, ob es sinnvoll ist, auf das SLIP zu setzen. Werden zu große Störungen bei der Übertragung erwartet gibt es bessere Protokolle für die Sicherungsschicht. Bei Verwendung des SLIP sollte auf jeden Fall über geeignete Fehlererkennungs- bzw. Fehlerkorrekturfähigkeiten in den höher liegenden Protokollstackschichten geachtet werden.
Folgende Referenzen wurden für des Artikels "Das Serial Line Internet Protocol (SLIP)" verwendet.