Serial Line Internet Protocol

Last updated

The Serial Line Internet Protocol (SLIP) [1] [2] is an encapsulation of the Internet Protocol [lower-alpha 1] designed to work over serial ports and router connections. It is documented in RFC   1055. On personal computers, SLIP has largely been replaced by the Point-to-Point Protocol (PPP), which is better engineered, has more features, and does not require its IP address configuration to be set before it is established. On microcontrollers, however, SLIP is still the preferred way of encapsulating IP packets, due to its very small overhead.

Contents

Some people refer to the successful and widely used RFC 1055 Serial Line Internet Protocol as "Rick Adams' SLIP", [3] to avoid confusion with other proposed protocols named "SLIP". Those other protocols include the much more complicated RFC   914 appendix D Serial Line Interface Protocol. [3]

Description

Hex valueDec ValueOct ValueAbbreviationDescription
0xC0192300ENDFrame End
0xDB219333ESCFrame Escape
0xDC220334ESC_ENDTransposed Frame End
0xDD221335ESC_ESCTransposed Frame Escape

SLIP modifies a standard TCP/IP datagram by:

SLIP requires a serial port configuration of 8 data bits, no parity, and either EIA hardware flow control, or CLOCAL mode (3-wire null-modem) UART operation settings.

SLIP does not provide error detection, being reliant on upper layer protocols for this. Therefore, SLIP on its own is not satisfactory over an error-prone dial-up connection. It is however still useful for testing operating systems' response capabilities under load (by looking at flood-ping statistics).

SLIP escape characters were also required on some modem connections to escape Hayes command set, allowing therefore to pass binary data through those modems that would recognize some characters as commands.

CSLIP

A version of SLIP with header compression is called Compressed SLIP (CSLIP). [4] The compression algorithm used in CSLIP is known as Van Jacobson TCP/IP Header Compression. [5] CSLIP has no effect on the data payload of a packet and is independent of any compression by the serial line modem used for transmission. It reduces the Transmission Control Protocol (TCP) header from twenty bytes to seven bytes. CSLIP has no effect on User Datagram Protocol (UDP) datagrams.

History

RFC 1055, a "non-standard" for SLIP, traces its origins to the 3COM UNET TCP/IP implementation from the 1980s. Rick Adams added SLIP to the popular 4.2BSD in 1984 and it "quickly caught on". By the time of the RFC (1988), it is described as "commonly used on dedicated serial links and sometimes for dialup purposes". [6]

The last version of FreeBSD to include "slattach" (a command for connecting to slip) in the manual database is FreeBSD 7.4, released 2011. The manual claims that auto-negotiation exists for CSLIP. The FreeBSD version is inherited from 4.3BSD. [7]

Linux formerly used the same code base for SLIP and KISS (TNC). The split occurred before the start of kernel git history (Linux-2.6.12-rc2, 2005). [8] The SLIP driver offers a special "6-bit" escaped mode to accommodate modems incapable of handling non-ASCII characters. [9] The Linux slattach command (written independently) also has the ability to auto-detect CSLIP support. [10]

See also

Related Research Articles

The Internet Control Message Protocol (ICMP) is a supporting protocol in the Internet protocol suite. It is used by network devices, including routers, to send error messages and operational information indicating success or failure when communicating with another IP address, for example, an error is indicated when a requested service is not available or that a host or router could not be reached. ICMP differs from transport protocols such as TCP and UDP in that it is not typically used to exchange data between systems, nor is it regularly employed by end-user network applications.

The Internet Protocol (IP) is the network layer communications protocol in the Internet protocol suite for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet.

In computer networking, the maximum transmission unit (MTU) is the size of the largest protocol data unit (PDU) that can be communicated in a single network layer transaction. The MTU relates to, but is not identical to the maximum frame size that can be transported on the data link layer, e.g., Ethernet frame.

In computer networking, Point-to-Point Protocol (PPP) is a data link layer communication protocol between two routers directly without any host or any other networking in between. It can provide loop detection, authentication, transmission encryption, and data compression.

The Real-time Transport Protocol (RTP) is a network protocol for delivering audio and video over IP networks. RTP is used in communication and entertainment systems that involve streaming media, such as telephony, video teleconference applications including WebRTC, television services and web-based push-to-talk features.

The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, the entire suite is commonly referred to as TCP/IP. TCP provides reliable, ordered, and error-checked delivery of a stream of octets (bytes) between applications running on hosts communicating via an IP network. Major internet applications such as the World Wide Web, email, remote administration, and file transfer rely on TCP, which is part of the Transport layer of the TCP/IP suite. SSL/TLS often runs on top of TCP.

In computer networking, the User Datagram Protocol (UDP) is one of the core communication protocols of the Internet protocol suite used to send messages to other hosts on an Internet Protocol (IP) network. Within an IP network, UDP does not require prior communication to set up communication channels or data paths.

A frame is a digital data transmission unit in computer networking and telecommunication. In packet switched systems, a frame is a simple container for a single network packet. In other telecommunications systems, a frame is a repeating structure supporting time-division multiplexing.

<span class="mw-page-title-main">Transport layer</span> Layer in the OSI and TCP/IP models providing host-to-host communication services for applications

In computer networking, the transport layer is a conceptual division of methods in the layered architecture of protocols in the network stack in the Internet protocol suite and the OSI model. The protocols of this layer provide end-to-end communication services for applications. It provides services such as connection-oriented communication, reliability, flow control, and multiplexing.

The Point-to-Point Protocol over Ethernet (PPPoE) is a network protocol for encapsulating Point-to-Point Protocol (PPP) frames inside Ethernet frames. It appeared in 1999, in the context of the boom of DSL as the solution for tunneling packets over the DSL connection to the ISP's IP network, and from there to the rest of the Internet. A 2005 networking book noted that "Most DSL providers use PPPoE, which provides authentication, encryption, and compression." Typical use of PPPoE involves leveraging the PPP facilities for authenticating the user with a username and password, predominately via the PAP protocol and less often via CHAP. Around 2000, PPPoE was also starting to become a replacement method for talking to a modem connected to a computer or router over an Ethernet LAN displacing the older method, which had been USB. This use-case, connecting routers to modems over Ethernet is still extremely common today.

Explicit Congestion Notification (ECN) is an extension to the Internet Protocol and to the Transmission Control Protocol and is defined in RFC 3168 (2001). ECN allows end-to-end notification of network congestion without dropping packets. ECN is an optional feature that may be used between two ECN-enabled endpoints when the underlying network infrastructure also supports it.

In computer networking, Layer 2 Tunneling Protocol (L2TP) is a tunneling protocol used to support virtual private networks (VPNs) or as part of the delivery of services by ISPs. It uses encryption ('hiding') only for its own control messages, and does not provide any encryption or confidentiality of content by itself. Rather, it provides a tunnel for Layer 2, and the tunnel itself may be passed over a Layer 3 encryption protocol such as IPsec.

The maximum segment size (MSS) is a parameter of the Options field of the TCP header that specifies the largest amount of data, specified in bytes, that a computer or communications device can receive in a single TCP segment. It does not count the TCP header or the IP header. The IP datagram containing a TCP segment may be self-contained within a single packet, or it may be reconstructed from several fragmented pieces; either way, the MSS limit applies to the total amount of data contained in the final, reconstructed TCP segment.

Throughput of a network can be measured using various tools available on different platforms. This page explains the theory behind what these tools set out to measure and the issues regarding these measurements.

In computer networking, the Datagram Congestion Control Protocol (DCCP) is a message-oriented transport layer protocol. DCCP implements reliable connection setup, teardown, Explicit Congestion Notification (ECN), congestion control, and feature negotiation. The IETF published DCCP as RFC 4340, a proposed standard, in March 2006. RFC 4336 provides an introduction.

<span class="mw-page-title-main">Van Jacobson</span> American computer scientist

Van Jacobson is an American computer scientist, renowned for his work on TCP/IP network performance and scaling. He is one of the primary contributors to the TCP/IP protocol stack—the technological foundation of today’s Internet. Since 2013, Jacobson is an adjunct professor at the University of California, Los Angeles (UCLA) working on Named Data Networking.

Van Jacobson TCP/IP Header Compression is a data compression protocol described in RFC 1144, specifically designed by Van Jacobson to improve TCP/IP performance over slow serial links. Van Jacobson compression reduces the normal 40 byte TCP/IP packet headers down to 3–4 bytes for the average case; it does this by saving the state of TCP connections at both ends of a link, and only sending the differences in the header fields that change. This makes a very big difference for interactive performance on low speed links, although it will not do anything about the processing delay inherent to most dial-up modems.

A network socket is a software structure within a network node of a computer network that serves as an endpoint for sending and receiving data across the network. The structure and properties of a socket are defined by an application programming interface (API) for the networking architecture. Sockets are created only during the lifetime of a process of an application running in the node.

UDP-Lite is a connectionless protocol that allows a potentially damaged data payload to be delivered to an application rather than being discarded by the receiving station. This is useful as it allows decisions about the integrity of the data to be made in the application layer, where the significance of the bits is understood. UDP-Lite is described in RFC 3828.

The Stream Control Transmission Protocol (SCTP) is a computer networking communications protocol in the transport layer of the Internet protocol suite. Originally intended for Signaling System 7 (SS7) message transport in telecommunication, the protocol provides the message-oriented feature of the User Datagram Protocol (UDP), while ensuring reliable, in-sequence transport of messages with congestion control like the Transmission Control Protocol (TCP). Unlike UDP and TCP, the protocol supports multihoming and redundant paths to increase resilience and reliability.

References

  1. SLIP does not actually care about the internal structures of IP: any network layer protocols can be sent over the wire.
  1. "Internet Q&A". The New York Times . May 31, 1996.
  2. "The Executive Computer; For Befuddled Newcomers, Easier Access". The New York Times . May 8, 1994.
  3. 1 2 RFC   1547: "Requirements for an Internet Standard Point-to-Point Protocol"
  4. Understanding TCP/IP (Chapter 4.2 Compressed SLIP).
  5. Jacobson, V. (February 1990). "Compressing TCP/IP Headers for Low-Speed Serial Links". — introduced the Van Jacobson TCP/IP Header Compression used by CSLIP
  6. "RFC 1055: Nonstandard for transmission of IP datagrams over serial lines: SLIP". IETF Datatracker. 1 June 1988.
  7. "slattach(8)". man.freebsd.org.
  8. Torvalds, Linus (13 May 2023). "History for mkiss.c" . Retrieved 13 May 2023.
  9. Torvalds, Linus (13 May 2023). "drivers/net/slip/Kconfig".
  10. slattach(8)    Linux Programmer's Manual – Administration and Privileged Commands "Other possible values are slip (normal SLIP), adaptive (adaptive CSLIP/SLIP)...