What Is Localhost
When we refer tolocalhost
in daily work, we always refer to the address of 127.0.0.1
. But do they really the same thing? The short answer is no. We can task
localhost
as a name mapping to some address (which is a little bit like domain name), so linux commonly map localhost
to 127.0.0.1
in IPv4, to ::1
in IPv6. As we have stated, localhost
is somewhat like a domain name, so it will be resolved by DNS system (often, this is done by a local hosts
file as following shows).~$ grep localhost /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
How Is It Implemented
We have already understand the concepts of localhost, but will it cost the network resources? Will it slow down the network?We will understand it if we know how it is implemented.
When we send some data from application, those data often went through many layers of network protocols (application layer -> presentation layer -> session layer -> transport layer -> network layer -> data link layer -> physical layer), which will encapsulate and manage your data, then it will send to network. And via a complicated circuit and many different media/devices, your data may be received by target machine.
And back to the data sent to localhost, most implementation pass the data from transport layer to network layer than to loopback interface, which is a very much like a normal procedure of process network data except that network layer will send data to other interface, like wirelss network adaptor etc. After loopback interface receive the data, it will directly send it back, from network layer to network layer.
Illustration of sending data to loopback interface |
Now, we can answer those questions: it won’t cost the network resources, yet it may have a little load of your computer to process those data, which is often small enough to ignore.
And the following is the lesion we learnt from the design of localhost:
- No special condition handle in transport layer, code is clean (otherwise, it will have to use some condition code);
- Can be used to test protocol software performance;
- Good abstraction of a virtual device called loopback interface;
Ref
- TCP/IP Illustrated, Volume 1
- A question on so
- OSI model
Written with StackEdit.
评论
发表评论