Wednesday, August 20, 2008

Introduction to "localhost"

In computer networking of Unix-like operating systems, localhost (meaning "this computer") is the standard hostname given to the address of the loopback network interface. The name is also a reserved domain name (RFC 2606) (cf. .localhost), set aside to avoid confusion with the narrower definition as a hostname.
It is used where one would otherwise specify the name or address of a computer in the network. For example, directing a web browser to
http://localhost will display the home page of the web site (if any) being served from the computer running the browser (if the webserver is configured to service the loopback interface).
localhost always translates to the
loopback IP address 127.0.0.1 in IPv4, or ::1 in IPv6 (see below).
Communicating with the loopback interface and bypassing the local network interface hardware, in an identical manner as with a remote computer, is useful for the purposes of testing, as well as connecting to locally hosted network services (such as
game servers) in a highly efficient manner.
A common basic test of the TCP/IP
protocol stack on a computer is to use this command at the operating system's command line prompt:
ping localhost
IETF document "Special-Use IPv4 Addresses" (RFC 3330) describes the IPv4 address block 127.0.0.0/8 as being reserved for loopback. It is therefore excluded from assignment by a Regional Internet Registry or IANA.
For
IPv4 communications, the virtual loopback interface of a computer system is normally assigned the address '127.0.0.1' with subnetwork mask '255.0.0.0'. Depending on the specific operating system in use (notably in Linux), and the routing mechanisms installed, this often populates the routing table of the local system with an entry so that packets destined to any address from the '127.0.0.0/8' block would be routed internally to the network loopback device.
In
IPv6, on the other hand, the loopback routing prefix ::1/128 consists of only one address ::1 (i.e., 0:0:0:0:0:0:0:1, the address with a one at its least significant bit and zero otherwise) is explicitly defined as an automatic loopback address (RFC 3513), though additional addresses maybe assigned to the loopback interface by the host administrator.
Any datagram with a source or destination address assigned to the loopback interface must not appear outside of a computing system, or routed by any routing device. Packets received on an interface with destination address of 'localhost' must be dropped.
One notable exception to the use of the 127/8 network addresses is their use in
Multiprotocol Label Switching (MPLS) traceroute error detection techniques (RFC 4379) in which their property of not being routable provides a convenient means to avoid delivery of faulty packet to end users.

No comments: