# Serial Line Internet Protocol

Serial Line Internet Protocol (SLIP) bezeichnet ein Netzwerkprotokoll der Sicherungsschicht.
Es wird verwendet, um eine IP-Netzwerkverbindung zwischen zwei Computern herzustellen, die über eine serielle Schnittstelle verbunden sind. Mittlerweile wird dazu meist das Point-to-Point Protocol (PPP) verwendet.
SLIP geht den einfachstmöglichen Weg einer solchen Verbindung, indem einfach die Bytes eines IP-Pakets über das serielle Kabel gesendet werden. Das Ende des Pakets wird mit dem speziellen END-Zeichen Nr. 192 (0xC0) gekennzeichnet. Falls dieses Zeichen innerhalb des zu sendenden Pakets auftritt, wird stattdessen die Sequenz 219/220 (0xDB 0xDC) und für das Zeichen Nr. 219 selbst die Sequenz 219/221 (0xDB 0xDD) übertragen. Das Zeichen Nr. 219 wird ESC-Zeichen genannt.
Eine Modifikation des Protokolls sendet das END-Zeichen auch zu Beginn jedes Pakets. Dies macht die Übertragung robuster gegenüber geringem Leitungsrauschen zwischen den Paketen.
SLIP besitzt keinerlei Adressierung und keine Fehlererkennung. Diese müssen von den übergeordneten Protokollen zur Verfügung gestellt werden:
* SLIP: keine Fehlererkennung und Adressierung
* IP: Prüfsumme für IP-Headerdaten, 32-Bit-Adressen
* UDP: Prüfsumme über UDP-Header und Daten, 16-Bit-Ports
* TCP: Prüfsumme über TCP-Header und Daten, 16-Bit-Ports

## Unterschiede zu PPP

Das PPP-Protokoll ist wesentlich komplexer als SLIP. Zunächst verlangt SLIP, dass alle Bytes unverändert über das serielle Kabel gesendet werden können. Dies ist oft nicht möglich, da Terminaltreiber manche Oktetts speziell interpretieren, beispielsweise CTRL-Q und CTRL-S als Start/Stop-Zeichen interpretieren oder vor einen Wagenrücklauf noch einen Zeilenvorschub einfügen. Über PPP können bestimmte Zeichen verboten werden. Diese werden dann durch Zeichensequenzen ersetzt.
PPP erlaubt darüber hinaus eine Übertragung der Netzwerkparameter (IP-Adresse, Gateway-Adresse) und eine Authentifizierung, wie sie heute von vielen Internet Service Providern verlangt wird.
Auch andere Parameter wie z. B. eine Komprimierung können über PPP zwischen den Parteien beim Verbindungsaufbau ausgehandelt werden, was bei SLIP nicht möglich ist.
SLIP kann und wird daher nur in sehr einfachen Fällen eingesetzt; in der Vergangenheit häufig bei Callback-Modems zwecks externem Einwählens auf Workstations in einem gesicherten Intranet (Extranet). Gegen Ende der 1990er Jahre gehörte diese Art der Internetverbindung mit zu den sichersten überhaupt: ein ungewollter Eindringling hätte mindestens Zugang zu den abgesicherten Server-Räumen haben müssen, um die Telefonnummern in den Modems umzuprogrammieren, auf die das Callback eingestellt war. Denn ein "Telefonnummern-Spoofing" (analog zum IP-Spoofing) wäre ohne Eingriff in die Hardware des Telefonanbieters nicht leicht zu bewerkstelligen gewesen.

## Van-Jacobson-Komprimierung und CSLIP

Da serielle Verbindungen oft recht langsam sind, führt die Übertragung der IP-Headers mit jedem Paket zu einem verringerten Datendurchsatz. Jeder TCP/IP-Header hat 40 Zeichen. Auf einer 19200-Baud-Leitung benötigt jedes Zeichen ca. ½ ms, der TCP/IP-Header allein also etwa 20 ms. Dies begrenzt die Übertragungsrate auf unter 50 Pakete/Sekunde, was oft nicht einmal für Schnelltipper ausreicht, wenn pro Tastendruck ein Paket übertragen wird.
Van Jacobson schlug daher eine Komprimierung vor, die nur die Unterschiede der TCP-Header zwischen zwei Paketen überträgt. Dadurch wird der Durchsatz wesentlich erhöht, da in der Regel nur 7 statt 40 Byte für den Header nötig sind. Die Van-Jacobson-Komprimierung wird oft bei SLIP-Verbindungen eingesetzt. Das Protokoll mit aktiver Van-Jacobson-Komprimierung wird auch CSLIP-Protokoll (compressed SLIP=komprimiertes SLIP) genannt.

## Geschichte

Der Entwurf (RFC) zu SLIP stammt von 1988, der zu CSLIP von 1990. Heute ist SLIP in der Praxis weithin oder vollständig von PPP abgelöst.