[ih] Recently restored and a small ARPANET was run using simulated IMP hardware. (was: TTL [was Exterior Gateway Protocol])
Jack Haverty
jack at 3kitty.org
Sun Sep 6 11:24:18 PDT 2020
Geoff,
Dave's IEEE paper does an excellent job of the Who/What/When/Where.
He's right that it was about 7 years ago. Time flies... but I guess
it's still "recent" when viewed as part of Internet History.
For the curious, I can add a bit more about the Why.
Sometime in 2013, I got an email out of the blue from Charlie Neuhauser,
someone I didn't recognize or remember at all, asking if I was the "Jack
Haverty" who authored IEN 158 - documenting the XNET protocol in 1980.
Figuring that the statute of limitations must have expired after 30+
years, I cautiously said yes. Over the next few days, he hooked me up
with the lawyers who were involved in a patent dispute - one that had
been going on for several decades by then. In fact, the patent involved
had been issued, ran its 17 year lifetime, and expired, but there was
still litigation in process about whether or not the patent was valid,
and 17 years of violations were alleged cause for compensation in the
many millions. For the next few years I was involved in the battles,
working with the lawyers scattered all over the country. I never met
any of them. All our work was done by email and telephone. No Zoom
then or we probably would have used it.
The core issue in the patent battle concerned "downloading
instructions", mechanisms such as would be involved in patching or
issuing new software releases to remote equipment. XNET seemed to them
to possibly have something to do with that, hence the interest. The
goal was to find hard evidence that such procedures were being done by
1980, which would prove that prior art existed. Hard evidence literally
means "hard" - opinions help, but physical equipment and running code is
much more impressive in a courtroom.
They hadn't found any XNET artifacts, and I couldn't point them to any
surviving implementations. But I pointed out that my XNET document
simply captured the technology that we "stole" from the ARPANET IMP
experience, and that the IMPs routinely "downloaded code" from their
neighbors and the NOC all during the life of the ARPANET.
Since the IMPs had existed since the early 70s, that really sparked
their interest, and a search (worldwide) ensued to find old IMPs, in the
hope that just maybe one of them still had the IMP software in its
magnetic-core memory. A few IMPs were located, but none were
functional. The one in the museum at UCLA seemed promising, but the
owners were reluctant to even hook it up to power after sitting idle for
so many years, expecting it might go up in smoke.
Then I learned from the BBN alumni mailing list that an ancient IMP
listing had been found in a basement. The story from that point is
pretty well described in Dave's paper.
Personally, it was an interesting experience. I worked extensively with
one lawyer in San Diego. I taught him how computers and networks
actually work; he taught me a lot about the legal system regarding
patents. IMHO, they are equally convoluted and complex when viewed
from the other's perspective.
I also learned a lot about the IMP code, which I had never even looked
at while I was at BBN. One task I took on was to exhaustively analyze
the parts of the IMP code that implemented the "download new
instructions" functionality, writing up an instruction-by-instruction
description of how the code accomplished that by interacting with a
neighboring IMP. It was a very clever design, and extremely tight
code, even including self-modifying instructions. Not easy to figure
out (or explain in language amenable to a non-technical judge or jury).
So there was great interest in being able to demonstrate the code in
action using real software from the 70s and hardware simulators.
Tangible evidence is much better than even expert opinions.
The whole legal project came to a sudden end just a few months prior to
the first court date. I was looking forward to going to Delaware
(legal action was filed in Federal court in Delaware), and finally
meeting some of the people. But the parties settled suddenly, the case
was dropped, and AFAIK the patent question was never resolved.
So, that's a bit about the "Why", for history to ponder. The
experience got me wondering about the "patent history" of The
Internet. Clearly there was a lot of innovation in those days. My
recollection is that very little was patented, even if only to make sure
no one else could. Maybe someone will document the patent-related
aspects of Internet History someday.
/Jack Haverty
On 9/6/20 12:34 AM, the keyboard of geoff goodfellow wrote:
> jack, you've raised my curiosity with respect to:
>
> ... There
> *is* ARPANET IMP software which was recently restored and a small
> ARPANET was run using simulated IMP hardware.
>
> Who/What/When/Where/Why?
>
> geoff
>
> On Sat, Sep 5, 2020 at 8:40 PM Jack Haverty via Internet-history
> <internet-history at elists.isoc.org
> <mailto:internet-history at elists.isoc.org>> wrote:
>
> Lukasz,
>
> I think that the earliest implementations of TTL called it "Time", but
> I'm not aware that anyone actually used time per se in gateways, at
> least in the early days (1977-1982 or so).
>
> TCP implementations didn't do anything with TTL other than set it on
> outgoing datagrams, and at least in my implementation (TCP for
> Unix), it
> was just set to some arbitrary value. Until we had some data from
> experimentation it was hard to evaluate ideas about what routers,
> hosts,
> et al should actually do. The early TCPs did use time in handling
> retransmission timers, and there was work a bit later to incorporate
> time more powerfully into TCP behavior, e.g., Van Jacobson's work.
>
> The early gateways, IIRC, used the terminology "time", but in practice
> used just hop counts, since time measurements were difficult to
> implement. The exception to that may be Dave Mills' Fuzzballs, since
> Dave was the implementor most interested in time and making precise
> measurements of network behavior. I *think* Dave may have used time
> values and delay-based routing amongst his "fuzzies".
>
> The BBN doc you're seeking might have been one of many that discussed
> the ARPANET internal mechanisms, e.g., ones with titles like "Routing
> Algorithm Improvements". The ARPANET internal mechanisms did use
> time.
> It was fairly simple in the IMPs, since the delay introduced by the
> synchronous communications lines could be easily predicted, and the
> other major component of delay was the time spent in queues, which
> could
> be measured fairly easily.
>
> I even found one BBN ARPANET Project QTR from circa 1975 that
> discussed
> the merits of the new-fangled TCP proposal that some professor had
> published -- and seemed to conclude it couldn't possibly work.
>
> My involvement in implementations of TCPs and gateways lasted through
> about mid-1983, so I don't know much of the detail of subsequent
> implementations. For the various BBN gateway/router equipment, Bob
> Hinden would probably be a good source. The other major early player
> was MIT and spinoffs (Proteon), which perhaps Noel Chiappa will
> remember. There's also at least one paper on the Fuzzballs which may
> have some details.
>
> One thing I'd advise being careful of is the various
> "specifications" in
> RFCs. Much of the wording in those was intentionally non-prescriptive
> (use of "should" or "may" instead of "must"), to provide as much
> latitude as possible for experimentation with new ideas, especially
> within an AS. The Internet was an Experiment.
>
> Also, there was no consistent enforcement mechanism to assure that
> implementations actually even conformed to the "must" elements. So
> Reality could be very different from Specification.
>
> I don't know of any gateway implementations that have survived.
> There
> *is* ARPANET IMP software which was recently restored and a small
> ARPANET was run using simulated IMP hardware. I still have a ~1979
> listing of the TCP I wrote for Unix, but haven't scanned it into
> digital
> form yet.
>
> Jack
>
> On 9/5/20 7:38 PM, Łukasz Bromirski wrote:
> > Jack,
> >
> > I was reading a lot of old BBN PDFs thanks to all good souls on
> > this list that post nice URLs from time to time.
> >
> > I remember reading in at least one of them, that apparently first
> > TCP/IP implementations were indeed using TTL as literally “time”,
> > not hop count. I believe there somewhere there between PDP docs
> > and ARPANET docs I’ve read something to the effect “and from this
> > time we changed from measuring time to simply count routing hops”.
> > Of course, right now google-fu is failing me.
> >
> > Quoting RFC 1009 that was already brought up, there’s quite
> > direct “definition” of the field:
> >
> > "4.8. Time-To-Live
> >
> > The Time-to-Live (TTL) field of the IP header is defined to be a
> > timer limiting the lifetime of a datagram in the Internet. It is
> > an 8-bit field and the units are seconds. This would imply that
> > for a maximum TTL of 255 a datagram would time-out after about 4
> > and a quarter minutes. Another aspect of the definition requires
> > each gateway (or other module) that handles a datagram to
> > decrement the TTL by at least one, even if the elapsed time was
> > much less than a second. Since this is very often the case, the
> > TTL effectively becomes a hop count limit on how far a datagram
> > can propagate through the Internet."
> >
> > Were there any implementations that survived somewhere and actually
> > did exactly that - counted actual time/processing delay, not hops?
> > And if it took 2s to process packet, did they really decrement TTL
> > by two?
> >
> > Thanks for any pointers,
>
> --
> Internet-history mailing list
> Internet-history at elists.isoc.org
> <mailto:Internet-history at elists.isoc.org>
> https://elists.isoc.org/mailman/listinfo/internet-history
>
>
>
> --
> Geoff.Goodfellow at iconia.com <mailto:Geoff.Goodfellow at iconia.com>
> living as The Truth is True
>
>
>
More information about the Internet-history
mailing list