Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Serial Line Internet Protocol
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Internet Protocol encapsulation for serial ports and router connections}} {{IPstack}} The '''Serial Line Internet Protocol''' ('''SLIP''')<ref>{{cite news |newspaper=[[The New York Times]] |url=http://www.nytimes.com/library/cyber/qa/0531freed.html |title=Internet Q&A |date=May 31, 1996}}</ref><ref>{{cite news |newspaper=[[The New York Times]] |url=https://www.nytimes.com/1994/05/08/business/the-executive-computer-for-befuddled-newcomers-easier-access-to-the-internet.html |title=The Executive Computer; For Befuddled Newcomers, Easier Access |date=May 8, 1994}}</ref> is an [[encapsulation (networking)|encapsulation]] of the [[Internet Protocol]]{{efn|SLIP does not actually care about the internal structures of IP: any [[network layer]] protocols can be sent over the wire.}} designed to work over [[serial port]]s and [[router (computing)|router]] connections. It is documented in {{IETF 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 [[Internet Protocol|IP packets]], due to its very small overhead. Some people refer to the successful and widely used RFC 1055 Serial Line Internet Protocol as "Rick Adams' SLIP",<ref name="rfc1547">{{IETF RFC|1547}}: "Requirements for an Internet Standard Point-to-Point Protocol" </ref> to avoid confusion with other proposed protocols named "SLIP". Those other protocols include the much more complicated {{IETF RFC|914}} appendix D [[Serial Line Interface Protocol]].<ref name="rfc1547" /> ==Description== {| class="wikitable" |- ! Hex value !! Dec Value !! Oct Value !! Abbreviation !! Description |- | 0xC0 || 192 || 300|| END || Frame End |- | 0xDB || 219 || 333 || ESC || Frame Escape |- | 0xDC || 220 || 334 || ESC_END || Transposed Frame End |- | 0xDD || 221 || 335 || ESC_ESC || Transposed Frame Escape |} SLIP modifies a standard [[TCP/IP]] [[datagram]] by: * appending a special "END" [[byte]] to it, which distinguishes datagram boundaries in the byte stream, * if the END byte occurs in the data to be sent, the two byte sequence ESC, ESC_END is sent instead, * if the ESC byte occurs in the data, the two byte sequence ESC, ESC_ESC is sent. * variants of the protocol may begin, as well as end, packets with END. SLIP requires a serial port [[computer configuration|configuration]] of 8 [[data]] [[bit]]s, no [[parity bit|parity]], and either [[Electronic Industries Alliance|EIA]] hardware [[flow control (data)|flow control]], or CLOCAL mode (3-wire [[null-modem]]) [[UART]] operation settings. SLIP does not provide [[error detection]], being reliant on [[upper layer protocol]]s for this. Therefore, SLIP on its own is not satisfactory over a link which is error-prone, such as a poor quality [[dial-up]] connection. 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 (computing)|header]] [[data compression|compression]] is called '''Compressed SLIP''' ('''CSLIP''').<ref>{{cite book |url=https://www.oreilly.com/library/view/understanding-tcpip/9781904811718/ch04s02.html |title=Understanding TCP/IP (Chapter 4.2 Compressed SLIP)}}</ref> The compression algorithm used in CSLIP is known as [[Van Jacobson TCP/IP Header Compression]].<ref>{{cite web |first=V. |last=Jacobson |title=Compressing TCP/IP Headers for Low-Speed Serial Links |date=February 1990 |url=http://tools.ietf.org/html/rfc1144}} β introduced the [[Van Jacobson TCP/IP Header Compression]] used by CSLIP</ref> 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 [[byte]]s to seven bytes. CSLIP has no effect on [[User Datagram Protocol]] (UDP) datagrams. == History == {{See also|History of the Internet}} 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".<ref name=rfc1055>{{cite web |title=RFC 1055: Nonstandard for transmission of IP datagrams over serial lines: SLIP |url=https://datatracker.ietf.org/doc/html/rfc1055 |website=IETF Datatracker |language=en |date=1 June 1988}}</ref> 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.<ref>{{cite web |title=slattach(8) |url=https://man.freebsd.org/cgi/man.cgi?query=slip&apropos=0&sektion=8&manpath=FreeBSD+7.4-RELEASE&arch=default&format=html |website=man.freebsd.org}}</ref> 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).<ref>{{cite web |last1=Torvalds |first1=Linus |title=History for mkiss.c |website=[[GitHub]] |url=https://github.com/torvalds/linux/blob/9a48d604672220545d209e9996c2a1edbb5637f6/drivers/net/hamradio/mkiss.c |access-date=13 May 2023 |date=13 May 2023}}</ref> The SLIP driver offers a special "6-bit" escaped mode to accommodate modems incapable of handling non-ASCII characters.<ref>{{cite web |last1=Torvalds |first1=Linus |title=drivers/net/slip/Kconfig |website=[[GitHub]] |url=https://github.com/torvalds/linux/blob/master/drivers/net/slip/Kconfig |date=13 May 2023}}</ref> The Linux slattach command (written independently) also has the ability to auto-detect CSLIP support.<ref>{{man|8|slattach|Linux}} "Other possible values are slip (normal SLIP), adaptive (adaptive CSLIP/SLIP)...</ref> ==See also== * [[Parallel Line Internet Protocol]] * [[Slirp]] * [[KA9Q]] * [[Direct cable connection]] * [[In-band signaling]] * [[KISS (amateur radio protocol)]] *[[Consistent Overhead Byte Stuffing]] ==References== {{notelist}} {{Reflist}} {{Authority control}} [[Category:Internet protocols]] [[Category:Link protocols]] [[Category:Logical link control]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Authority control
(
edit
)
Template:Cite book
(
edit
)
Template:Cite news
(
edit
)
Template:Cite web
(
edit
)
Template:Efn
(
edit
)
Template:IETF RFC
(
edit
)
Template:IPstack
(
edit
)
Template:Man
(
edit
)
Template:Notelist
(
edit
)
Template:Reflist
(
edit
)
Template:See also
(
edit
)
Template:Short description
(
edit
)