[ih] Origin of the loopback interface

Paul Ruizendaal pnr at planet.nl
Sat Oct 21 02:18:19 PDT 2017


In documents about TCP/IP stacks from the 1978-1981 era there are often comments like "speed with local looping xx and speed looping through IMP xx". As Jack has pointed out, looping at various steps seems to have been standard practice at the time. I'm re-implementing some old stacks on vintage hardware and can confirm from first hand experience that a loopback interface is a convenient debugging setup.

Next, I can elaborate from the 1981 Gurwitz sources: it does not contain a loopback interface (device) as such, but the standard IMP device driver has #ifdef'ed code to operate either in normal mode or in loopback mode. The device driver configuration is still a simple hardcoded setup at this stage, with a comment saying that it is due to be reworked into a configurable setup.

The commit from Nov 1981 quoted below is very early in the 4.1+ networking development cycle, well before the release of 4.1a. As far as I can tell it is the first occurrence of a dedicated loopback device in the history of Arpa/Inet networking on Unix.


On 21 Oct 2017, at 2:12 , Jeremy C. Reed wrote:

> On Sat, 21 Oct 2017, Brian E Carpenter wrote:
> 
>> So the question came up of when and where the term 'loopback 
>> interface' arose. Does anybody here have an answer for that?
> 
> In my BSD history research, the earliest reference (for BSD) I have is:
> 
> BBN had successful tests with establishing connections and transmitting
> data between processes using the loopback 
> mode.\cite{{bressler-bbn-198102}
> 
> % http://www.dtic.mil/dtic/tr/fulltext/u2/a096114.pdf
> % R. D. Bressler
> % for nov 1, 1980 to jan 31, 1981
> % date stamped March 9, 1981
> @BOOK{bressler-bbn-198102,
> editor = "Robert D. Bressler",
> title = "{Combined Quarterly Technical Report No. 20}",
> publisher = "Bolt, Beranek, and Newman Inc.",
> address = "Cambridge, Mass.",
> year = 1981,
> month = feb
> }
> 
> Document page 82, PDF page 89
> Now looking at it again  I see that term used multiple times. I now
> see earlier references for loopback for IMP and 1822 interfaces and in 
> early BBN reports but this is not about the "internet" interface as far 
> as I can tell.
> 
> The ARPANET Interface Message Processor (IMP) Port Expander (PE)
> Technical Report 1080-140-1
> November, 1980
> http://www.dtic.mil/dtic/tr/fulltext/u2/a155753.pdf
> recreated at 
> http://www.warthman.com/images/SRI%20ARPANET-IMP.book.pdf
> talks about loopback mode.
> (Also at same time it is mentioned in BBN Report No. 4526.)
> 
> The oldest Unix code reference I find is University of Illinois 'Network 
> Unix' ncpk/drivers/net_ill.h
> /* defines for accessing bits in the imp interface */
> ...
> #define imloop          0000400 /* loop back */
> 
> but I don't see anything using it. I don't know date of that but the 
> system was from 1974-1975 and the file stamp is May 17  1979. This code 
> is not about internet loopback though.
> 
> As for the earliest Unix "internet" style loopback interface I find 
> 4.1c.1 BSD's /sys/netinet/if_loop.c. Maybe from Joy or Eric Cooper (even 
> if Joy committed it).
> 
> D 4.1 81/11/29 22:18:03 wnj 1 0 00059/00000/00000
> MRs:
> COMMENTS:
> date and time created 81/11/29 22:18:03 by wnj
> 
> 4.1     /*      if_loop.c       4.1     81/11/29        */
> 4.1     
> 4.1     /*
> 4.1      * Loopback interface driver for protocol testing and timing.
> 
> This was after the initial BBN code being added to CSRG's SCCS and I 
> don't see reference to it earlier in that code so I assume was not in 
> the BBN deliverables. I think the BBN reference in regards to the VAX 
> UNIX is using a loopback mode not in the Unix networking implementation 
> itself, so may be the earliest implementation of internet driver for 
> loopback interface. (It was originally hardcoded to be on 254 network, 
> but on Dec 22, 1981 changed to be 127 (hardcoded). In March 1982, 
> converted to use sockets and AF_INET. In May 1983, changed from 
> 127.0.0.0 (broadcast) to 127.0.0.1. The hardcoded address was removed in 
> March 1985. This is the same code that ended up in the "greatest 
> software ever written" :)
> 
> Jeremy C. Reed
> 
> echo Fybjyl jevgvat zl OFQ uvfgbel obbx. Cyrnfr xrrc nfxvat zr. | \
> tr "OQCFnortuvxyzabcefgjl" "BDPSabeghiklmnoprstwy"
> _______
> 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.





More information about the Internet-history mailing list