First things first: I know that you can install a sort-of-a Loopback Adapter in Windows.
But what I really found strange is that there exists nothing like lo on Windows. At all. From The missing network loopback interface:
Windows TCP/IP stack does not implement a network loopback interface, as found in other TCP/IP stack like lo* interfaces in BSD systems.
...
The Microsoft Loopback Adapter can be installed on Windows systems, to run network applications when no physical adapter is present or active on the system. This adapter is not the equivalent of a network loopback interface and IPv4 address 127.0.0.1 can not be assigned to it. Also, it is not possible to sniff network traffic on it, at least with WinPcap.
I'd be really interested if somebody knew why this choice was made or why it never seemed necessary to include a loopback device in Windows. Because it comes in so handy to be actually able to capture packets you send from/to it in order to develop or debug network applications.
So if anybody has an experience in networking, TCP/IP stacks, etc. and is able to provide some insight, that would be much appreciated.
83 Answers
Historical reasons. From the ground up unix/linux has always been about the network. Whereas MS-DOS/Windows bolted the network on as an afterthought, initially with Windows own 'NetBIOS' rather than TCPIP.
Only when Netscape came along was it necessary for Microsoft to install a TCPIP stack and acknowledge the presence of the Internet. Before then you had to put your own stack together for talking to unix machines, paying handsomely for the privilege.
I hope this historical context goes some way to helping you understand why it is that MS-Windows is not really there yet when it comes to proper networking. To take a car analogy it is a bit like asking why motorbikes don't have four wheels. (Yes, that is a very poor analogy...)
Before it became important to get online there were many LAN protocols - DECnet, Token Ring, Novell stuff and Microsoft's effort that came with Windows 3.11 - only true experts could get these different boxes to talk together and networking was a truly dark art.
1Ten years later I stumbled upon this problem as well. To share it with the community here is what I've researched so far.
The first hint I have found at the comment from user314104 to the question. You will see the Software Loopback Interface 1 for example from my MS Windows 10 with:
PS C:\Users\ingo\devel> route print
===========================================================================
Interface List 10...52 54 00 ab b0 be ......Realtek RTL8139C+ Fast Ethernet NIC 15...52 54 00 68 79 e4 ......Realtek RTL8139C+ Fast Ethernet NIC #2 1...........................Software Loopback Interface 1
===========================================================================
--- snip ---I also find it if I query it with the GetAdaptersAddresses function. I don't know why Microsoft is hiding it when showing interfaces with ipconfig.
As mentioned at How do I change the IP address of loopback in Windows 10? you can just ping the loopback:
PS C:\Users\ingo\devel> ping -4 loopback
Pinging win10-devel.hoeft-online.de [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
PS C:\Users\ingo\devel> ping -6 loopback
Pinging win10-devel.hoeft-online.de [::1] with 32 bytes of data:
Reply from ::1: time<1ms
Reply from ::1: time<1ms
Reply from ::1: time<1ms
Reply from ::1: time<1ms
Ping statistics for ::1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0msTo answer your question: Microsoft has implemented a loopback interface in Windows but hidding it for some reason. You should be able to use it for testing as usual.
Seriously? Are you certain that 127.0.0.1 doesn't work?
It's a requirement that 127.0.0.X is routed to the same computer. It's part of the IPV4 standard. If Microsoft isn't implementing it, it's breaking spec and I'd find that surprising since "Microsoft"'s TCP/IP stack is really the BSD stack and I know they implement it.
I know that "lo" isn't listed as an interface, but that doesn't matter. It's just a shortcut anyhow.