[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ih] Origin of the loopback interface

Hi Brian,

When we were designing those initial capabilities into TCP/IP
implementations, we were thinking not only of how everything would be
used in everyday operation, but also how you would deal with problems -
when things were not working as expected.

Especially in those early days, IIRC things were more often not working
than working...  So tools, techniques, hooks, etc., for "fault
isolation" were introduced.  The early Internet was explicitly
considered an "experiment", so lots of functions were needed to control
and monitor that experiment.

Loopback functionality is an example.  So are other things, especially
in ICMP, e.g., Ping, Source Routing, timestamping, etc.  The IP
"options" in particular was a means for hopefully adding new tools no
one had thought of yet.

Still-popular tools like Traceroute were possible because of the hooks
we put in place.  For example, IP addressing was specifically set up to
provide each physical interface with an address.  So a gateway/router,
for example, had a separate IP address for each wire attached to it.
That made it possible to use Ping, source-routing, etc., to "loop back"
at many different points and determine exactly where a problem was

The downside of that architectural choice of IP address per physical
port was one of the items in the list of "things to work on" - namely
"Multi-homed hosts".  Our conclusion at the time (circa 1978) was that
the advantages of having fault analysis tools exceeded the disadvantages
of not dealing well with IP nodes that had multiple physical ports -
something to be fixed "next year" as IPV4 phased into the next version.
Didn't quite happen that way...

So, I'd advise caution in concluding that some features are not needed
now, and were never really necessary.  I'd advise the IPV6 crew to think
about not only how things should work when they work, but also how to
deal with the situation when they don't.


On 10/21/2017 12:36 PM, Brian E Carpenter wrote:
> On 22/10/2017 02:54, Miles Fidelman wrote:
>> On 10/20/17 11:44 PM, Jack Haverty wrote:
>>> IIRC, loopback was a term used in modems at least as early as the late
>>> 60s.  Maybe before.  When a line was put "in loopback" all the data
>>> going out onto the line was reflected directly back to the sender.
>>> ....
>>> So, the specific term "loopback interface" probably depends on the
>>> context.  It may have been first used in Unix, but the concept of
>>> "looping an interface" was much older.  It existed in modems, and in the
>>> ARPANET, and in the Internet, and was used primarily for debugging and
>>> fault isolation during operations.  When something works, you just keep
>>> using it.....
>> The term "loopback" goes all the way back to early electrical circuits - 
>> bridging two wires with a cliplead, at various points, to test connectivity.
> For sure. I would expect that it was standard practice in the days of
> teleprinters and telegraphs, probably back into the 19th century. For the
> notion of the loopback interface as a TCP/IP software construct, it seems
> that BSD in 1981 is the origin.
> We could have another little chat about the loopback address in IP. I reached
> the conclusion last night that it was never really necessary. All the TCP/IP
> stacks that I know will happily send a message to any of their own assigned
> addresses, without putting it on the wire. So having a dedicated address for
> loopback tests seems useless today.
> Thanks for all the feedback.
>     Brian
> _______
> internet-history mailing list
> internet-history at postel.org
> http://mailman.postel.org/mailman/listinfo/internet-history
> Contact list-owner at postel.org for assistance.