Linux: localhost or loopback address

 

What is Local Host?

When you call an IP address on your computer, you try to contact another computer on the internet but when you call the IP address 127.0.0.1 then you are communicating with the localhost. Localhost is always your own computer. Your computer is talking to itself when you call the localhost. Your computer not always directly identifies the localhost. Within your personal network localhost has a separate IP address like 192.168.0.1.(for most cases) which is different to the one you use on the internet. This is usually dynamically assigned by the internet service provider (ISP). Localhost can be seen as a server that is used on your own computer. 

This term is generally used in the context of networks. Localhost is not just the name for the virtual server but it is also its domain name. Just like .example, .test, or .invalid, ., .localhost is a top-level domain reserved for documentation and testing purposes. While accessing the domain, a loopback is triggered. If you access “http://localhost” in the browser, the request will not be forwarded to the internet through the router. It will instead remain in your own system. Localhost has the IP address 127.0.0.1. This refers back to your own server. 

127.0.0.1 – how does loopback work? 
To communicate with each other within a network IP addresses are used. The participants in the network have their own unique addresses. Using TCP/IP data packets are able to reach the correct destination. The protocol pair Transmission Control Protocol (TCP) and Internet Protocol (IP) are some of the main features of the internet. TCP/IP is also used outside of the internet in local networks. The Internet Protocol is responsible for allowing the IP address and subnet mask to address subscribers in a network during the transmission. 

The allocation of public IP addresses is regulated by an international organization which is the Internet Corporation for Assigned Names and Numbers (ICANN). ICANN is also responsible for the allocation of domain names called the Domain Name System (DNS). But certain address ranges are reserved for special purposes, like the range from 127.0.0.0 to 127.255.255.255. There is no reliable information on why that range was chosen. IP addresses on the internet are divided into different classes. The first class Class A started with 0.0.0.0 (reserved address) and ended with 127.255.255.255. 127 is the last block of the Class A network. Its important position could have been the reason for its selection. 

Within this address range a Localnet can be set up. The special thing about this range is that IP addresses are not uniquely assigned in it, as is usually the case. Also it was reserved by ICANN. 


If you enter an IP address or corresponding domain name in your browser, the router forwards your request to the internet which connects you to the server. This means that if you enter 172.217.0.0, you will reach the Google homepage but the situation is different with 127.0.0.1. The requests to this address will not be forwarded to the internet. TCP/IP recognizes from the first block (127) that you don’t want to access the internet, you are calling yourself instead. This then triggers the loopback. 

The reason why loopback device is created so that the back link to your own computer works. Through the operating system this is a virtual interface that is created. The interface is called lo or lo0 and can also be displayed using the ifconfig command in Unix systems. A similar command for Windows is ipconfig. 

What is localhost used for? 
Developers use the localhost to test web applications and programs. Network administrators use the loopback to test network connections. Another use for the localhost is the hosts file, where you can use the loopback to block malicious websites. 

For Testing Purposes – 
Web servers mainly use the local host for the programming applications that need to communicate over the internet. During development, it is important to find out whether the application actually works as developed once it has internet access. Localhosts’ other functions are only possible if the required files can be found on the internet. As we can see that there is a difference between opening a HTML document on your PC or loading it onto a server and accessing it. Releasing a product without testing it doesn’t make sense. So loopback is used by developers to test them. They can stimulate a connection while also avoiding the network errors. The connection just stays completely inside their own system. 

Another advantage of using localhost for testing purposes is the speed. Usually more than 100 milliseconds are taken when you send a request over the internet. The maximum transmission time is just one millisecond for sending a ping to localhost. The correctness of the internet protocol can also be implemented using this technology. 

If you want to set up your own test server on your PC to address it through the localhost, right softwares are needed. Softwares such as XAMPP specifically designed for use as a localhost can be used. 

To block websites – 
Localhost can also block the hosts files. This file is a predecessor of the Domain Name System (DNS). In this IP addresses can be assigned to the corresponding domains. The domain name is translated into an IP address when you enter a website address in the browser. It used to be the host file, but today usually the global DNS is used but the host file is still present in most operating systems. In Windows, the file is found under \system32\drivers\etc\hosts where as with macOS and other Unix systems, it is found under /etc/hosts. 

There are probably these two entries left if there are no file changes done: 

 

 127.0.0.1       localhost

 ::1             localhost 

The name resolution for the localhost need not have to be done over the internet. Localhost can also use the host file to block certain websites. For this, the website to be blocked must be entered into the list and the IP address 127.0.0.1 must be assigned to the domain. If you or a malicious script try to call up the locked domain, the browser will check the hosts file first and will find your entry there. The domain name 0.0.0.0 can also be used. 

The browser will then try to access the corresponding website on the server with 127.0.0.1. However, it is unlikely that the browser will be able to locate it, as the requested file will not be there. However, if your own test server is set up, then the browser may find home.html, which is just your own file. An error message appears instead of the requested website if you have not set up your own test server. Ad inserts throughout the system can be switched off using this technology. To avoid every entry manually, you can find finished and regularly extended host files on the Internet.
 

 Wireshark Experiment:

set the 'interface' to'any' and press 'start' for  capturing the packets


 
not start pinging form terminal
 
tuhin@tuhin-System-Product-Name:~/Desktop$ ping google.com
 

now see the packet captured

local host127.0.0.1 with port 47852 connects to 127.0.1.1 at port 53 i.e DNS port

for DNS resolution

then via wifi interface (i.e 192.168.43.180) connected to Asus mobile hotspot(192.168.43.30) 

then DNS of google.com resolves and ip found as 172.217.163.206

then it comes to local host via 127.0.1.1

then ping starts


Comments

Popular posts from this blog

REST API

What Is Hardware Acceleration and Why Does It Matter