HOME

TheInfoList



OR:

Slirp (sometimes capitalized SLiRP) is a
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
program that emulates a PPP,
SLIP Slip or SLIP may refer to: Science and technology Biology * Slip (fish), also known as Black Sole * Slip (horticulture), a small cutting of a plant as a specimen or for grafting * Muscle slip, a branching of a muscle, in anatomy Computing and ...
, or CSLIP connection to the
Internet The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
using a text-based shell account. Its original purpose became largely
obsolete Obsolescence is the state of being which occurs when an object, service, or practice is no longer maintained or required even though it may still be in good working order. It usually happens when something that is more efficient or less risky r ...
as dedicated dial-up PPP connections and
broadband Internet access Internet access is the ability of individuals and organizations to connect to the Internet using computer terminals, computers, and other devices; and to access services such as email and the World Wide Web. Internet access is sold by Internet ...
became widely available and inexpensive. It then found additional use in connecting mobile devices, such as PDAs, via their serial ports. Another significant use case is firewall piercing/ port forwarding. One typical use of Slirp creates a general purpose network connection over a
SSH The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution. SSH applications are based on a ...
session on which port forwarding is restricted. Another use case is to create externa
network connectivity for unprivileged containers


Usage

Shell accounts normally only allow the use of command line or text-based software, but by logging into a shell account and running Slirp on the remote server, a user can transform their shell account into a general purpose SLIP/PPP network connection, allowing them to run any
TCP/IP The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suit ...
-based application—including standard
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
software such as the formerly popular Netscape Navigator—on their computer. This was especially useful in the 1990s because simple shell accounts were less expensive and/or more widely available than full SLIP/PPP accounts. In the mid-1990s, numerous universities provided
dial-up Dial-up Internet access is a form of Internet access that uses the facilities of the public switched telephone network (PSTN) to establish a connection to an Internet service provider (ISP) by dialing a telephone number on a conventional telepho ...
shell accounts (to their faculty, staff, and students). These command line-only connections became more versatile with SLIP/PPP, enabling the use of arbitrary TCP/IP-based applications. Many guides to using university dial-up connections with Slirp were published online (e.g

. Use of TCP/IP emulations software like Slirp, and its commercial competitor The Internet Adapter, TIA was banned by some shell account providers, who believed its users violated their terms of service or consumed too much bandwidth. Slirp is also useful for connecting PDAs and other mobile devices to the Internet: by connecting such a device to a computer running Slirp, via a serial cable or
USB Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply (interfacing) between computers, peripherals and other computers. A broad v ...
, the mobile device can connect to the Internet.


Limitations

Unlike a true SLIP/PPP connection, provided by a dedicated server, a Slirp connection does not strictly obey the principle of
end-to-end connectivity The end-to-end principle is a design framework in computer networking. In networks designed according to this principle, guaranteeing certain application-specific features, such as reliability and security, requires that they reside in the commu ...
envisioned by the Internet protocol suite. The remote end of the connection, running on the shell account, cannot allocate a new
IP address An Internet Protocol address (IP address) is a numerical label such as that is connected to a computer network that uses the Internet Protocol for communication.. Updated by . An IP address serves two main functions: network interface ident ...
and
route Route or routes may refer to: * Route (gridiron football), a path run by a wide receiver * route (command), a program used to configure the routing table * Route, County Antrim, an area in Northern Ireland * ''The Route'', a 2013 Ugandan film * Ro ...
traffic to it. Thus the local computer cannot accept arbitrary incoming connections, although Slirp can use port forwarding to accept incoming traffic for specific ports. This limitation is similar to that of network address translation. It does provide enhanced security as a side effect, effectively acting as a
firewall Firewall may refer to: * Firewall (computing), a technological barrier designed to prevent unauthorized or unwanted communications between computer networks or hosts * Firewall (construction), a barrier inside a building, designed to limit the spre ...
between the local computer and the Internet.


Current status

Slirp is
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
licensed under
BSD-like, modified 4-clause BSD license
by its original author. After the original author stopped maintaining it, Kelly Price took over as maintainer. There were no releases from Kelly Price after 2006.
Debian Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of D ...
maintainers have taken over some maintenance tasks, such as modifying Slirp to work correctly on
64-bit In computer architecture, 64-bit Integer (computer science), integers, memory addresses, or other Data (computing), data units are those that are 64 bits wide. Also, 64-bit central processing unit, CPUs and arithmetic logic unit, ALUs are those ...
computers. In 2019, a mor
actively maintained Slirp repository
was used b
slirp4netns
to provides network connectivity for unprivileged, rootless containers.


Influence on other projects

Despite being largely obsolete, Slirp made a great influence on the networking stacks used in
virtual machine In computing, a virtual machine (VM) is the virtualization/emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized hardw ...
s and other virtualized environments. The established practice of connecting the virtual machines to the host's network stack was to use the various
packet injection Packet injection (also known as forging packets or spoofing packets) in computer networking, is the process of interfering with an established network connection by means of constructing packets to appear as if they are part of the normal communica ...
mechanisms.
Raw socket 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 ...
s, being one of such mechanisms, were originally used for that purpose, and, due to many problems and limitations, were later replaced with the TAP device. Packet injection is a privileged operation that may introduce a security threat, something that the introduction of TAP device solved only partially. Slirp-derived NAT implementation brought a solution to this long-standing problem. It was discovered that Slirp has the full NAPT implementation as a stand-alone
user-space A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour. Kernel ...
code, whereas other
NAT Nat or NAT may refer to: Computing * Network address translation (NAT), in computer networking Organizations * National Actors Theatre, New York City, U.S. * National AIDS trust, a British charity * National Archives of Thailand * National As ...
engines are usually embedded into a
network protocol stack The protocol stack or network stack is an implementation of a computer networking protocol suite or protocol family. Some of these terms are used interchangeably but strictly speaking, the ''suite'' is the definition of the communication proto ...
and/or do not cooperate with the host OS when doing PAT (use their own port ranges and require packet injection). QEMU project have adopted the appropriate code portions of the Slirp package and got the permission from its original authors to re-license it under 3-clause BSD license. Such license change allowed many other FOSS projects to adopt the QEMU-provided Slirp portions, which was (and still is) not possible with the original Slirp codebase because of the license compatibility problems. Some of the notable adopters are VDE and
VirtualBox Oracle VM VirtualBox (formerly Sun VirtualBox, Sun xVM VirtualBox and Innotek VirtualBox) is a type-2 hypervisor for x86 virtualization developed by Oracle Corporation. VirtualBox was originally created by Innotek GmbH, which was acquired by ...
projects. Even though the Slirp-derived code was heavily criticized, to date there is no competing implementation available.


See also

* PPP daemon *
The Internet Adapter The Internet Adapter (TIA) was software created by Cyberspace Development in 1993 to allow Serial Line Internet Protocol (SLIP) connections over a shell account. Point-to-Point Protocol (PPP) was added in 1995, by which time the software was mark ...
, a commercial product that competed with Slirp


References

{{reflist, 30em


External links


Slirp Maintenance Project
official site for recent versions of Slirp
Latest version of Slirp (1.0.17)
from Debian Free network-related software Unix network-related software 1995 software