The Serial Line Internet Protocol (SLIP)


For some time, SLIP was a de facto standard in the Unix community as a means for establishing a point-to-point connection between two computers. It was finally documented in RFC 1055, "A Nonstandard for Transmission of IP Datagrams over Serial Lines: SLIP," in 1988. Yes, you read that righta nonstandard. Although there are standards for IP, there is no standard for SLIP that concisely defines the protocol. SLIP is a simplified protocol that encapsulates and sends data across a connection.

SLIP has been implemented in many ways, using different packet sizes, but the basic protocol consists of using two special characters:

  • END This character (decimal value of 192) is used to delineate the end of a packet.

  • ESC Not to be confused with the ASCII character set escape character, the SLIP ESC character (decimal value of 219) is used when a character in a packet is the same as the END character. In such a case, the character is "escaped" by prefixing the ESC character before the character that is the same as the END character. ESC just tells the receiving end that this is not the end of the packet, but an actual data byte in the packet. This is a common method used by many protocols to make it possible to use character sequences that otherwise would violate protocol rules.

Note

ASCII ( American Standard Code for Information Interchange) was the standard method for representing alphanumeric characters in non-IBM systems, from early VT-style terminals to more modern enhanced terminal emulators. IBM used its own character coding scheme, EBCDIC (Extended Binary-Coded Decimal Interchange Code), for its mainframes and some other systems.

More recently, UNICODE has been adopted by systems such as Windows NT/2000/XP/2003, and many other operating systems, including Unix and Linux. UNICODE can be used to represent not just the basic alphanumeric character set used for English, but also more than 34,168 characters, covering about 24 different languages. The coding scheme used by UNICODE is extensible, so in addition to historical and many modern language scripts, UNICODE can be adapted to include lesser-used languages as time goes by.


SLIP is a simple protocol. Just start sending the characters of a packet and send the END character at the end of each packet. Use the ESC character inside the packet if one of the data bytes is the same as the END character so that the receiving end can interpret the byte correctly.

Although it was a good start, several problems can occur when using SLIP:

  • No maximum packet size is defined, so it depends on the particular implementation. The Berkeley Unix SLIP drivers use a maximum of 1,066 bytes. There might be other ways to configure this setting, however, so make sure you check the system documentation for more information.

  • No mechanism is used to configure the address of the sending or receiving end of the connection. Therefore, static addresses must be assigned in advance if the protocol encapsulated by SLIP is to be sent past the receiving computer or router to another host. In other words, before a SLIP connection can be set up, both sides must configure the link for the protocol to be used on the link. Because most dial-up connections today make use of the Dynamic Host Configuration Protocol (DHCP) to conserve the IP address space, SLIP won't work with an ISP or a dial-up server that uses DHCP.

  • SLIP just sends packets across the line. It doesn't prefix a header to the data like other protocols (such as TCP and IP) do. Thus, SLIP can't indicate to the receiving end of the connection what type of protocol is being used. Of course, the most common use for connecting to the Internet is TCP/IP, so IP packets generally are assumed for most connections. However, in the early days of SLIP, it often was used to connect one computer to another, and a separate connection was required if both computers used multiple protocols, such as IP, IPX/SPX (Internet Packet Exchange/Sequenced Packet Exchange), or DECnet.

  • No provisions are in the protocol for error detection or correction. This is left up to higher-level protocols. Because SLIP was developed for use over slow links, retransmission of packets found to have errors by higher-level protocols is an expensive proposition in terms of bandwidth.

  • SLIP provides no compression algorithm. So over the slow serial lines used for dial-up access, large amounts of the available bandwidth are wasted. For example, for a particular connection, most of the data in an IP header would not change from one packet to the next. Having to resend these unchanged bytes over and over again for each packet just wastes bandwidth.

Because SLIP was widely deployed when the Internet became commercially available, it was a common protocol that many people used for an Internet connection early on. Initially, when first released, Microsoft's desktop offerings (Windows 9x) supported SLIP and that continues today. (Windows Server 2003 supports the SLIP and PPP remote access protocols.)

All that said, you can probably understand why the Point-to-Point Protocol was developed. PPP replaces SLIP and provides a more robust method for sending and receiving data across serial connections, such as when dialing into a corporate modem bank or accessing the Internet.

For more information about SLIP, see RFC 1055, "A Nonstandard for Transmission of IP Datagram's over Serial Lines: SLIP" and RFC 1144, "Compressing TCP/IP Headers for Low-Speed Serial Links."

Note

Although Windows XP and Server 2003 do include support for SLIP, keep in mind that newer systems only support outgoing connections. Windows Server 2003 and Microsoft Windows XP do not support SLIP for incoming connections.





Upgrading and Repairing Networks
Upgrading and Repairing Networks (5th Edition)
ISBN: 078973530X
EAN: 2147483647
Year: 2006
Pages: 411

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net