The Serial Line Internet Protocol, also known by the acronym SLIP, is a means of sending Internet Protocol datagrams over a serial link. It transmits each byte of a packet, adding one or more unique marker bytes to the stream as needed. SLIP can be used by two systems to communicate via a direct cable connection or modem link. Most personal computers use Point-to-Point Protocol (PPP) instead, but SLIP is often used where very low overhead is required.
When transmitting a datagram, the Serial Line Internet Protocol may send an “end” marker byte over the serial link first. It then sends each byte of the packet, unless it is one of two decimal values: 219 or 192. If it is 192, the end marker value, SLIP sends two special bytes in its place; 219 followed by 220. If it is 219, SLIP sends a different two-byte code—219 followed by 221. Once all bytes of the Internet Protocol packet have been sent, SLIP transmits the 192 end marker byte.
When a packet is being received by SLIP, it removes the end markers and replaces any special byte pairs with their original values. Some implementations of SLIP may also remove zero-length packets. The resulting datagram, if any, is then passed to the next network layer with no further analysis. Error detection and correction is left to the next layer, which must request a packet re-transmission if an error is discovered.
The SLIP specification was released by the Internet Engineering Task Force (IETF) in 1988 as Request For Comments (RFC) 1055. It identifies several SLIP shortcomings, including error handling and lack of control messages. Another common problem with Serial Line Internet Protocol is that there is no packet protocol identification. Since SLIP was only designed to handle Internet Protocol datagrams, this may not be a frequent problem. SLIP is quite capable of handling multiple Internet protocols, however, given a means to identify them.
Lack of security is another consideration for using Serial Line Internet Protocol. There is no mechanism for connection authentication or any sort of data encryption at this layer with SLIP. There is also no means of Internet Protocol address discovery for routing at the next network layer. With regard to maximum packet size, the SLIP specification is vague, suggesting a limit used by another implementation.
The Serial Line Internet Protocol does not compress any packet data, although the modem on the serial link will, if a modem is in use. Compressed SLIP (CSLIP), defined in 1990 by RFC 1144, does make an effort in this direction. It shrinks the Transmission Control Protocol (TCP) header of each packet to seven bytes from the original 20. The rest of the packet remains unchanged, however. In 1994, PPP—defined in RFC 1661—was created as a new robust protocol that resolved many SLIP issues.