[ih] Origin of the loopback interface
Jeremy C. Reed
reed at reedmedia.net
Fri Oct 20 17:12:59 PDT 2017
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"
More information about the Internet-history
mailing list