[ih] TCP RTT Estimator

Jack Haverty jack at 3kitty.org
Fri Apr 18 12:49:39 PDT 2025


Hi Steve,

The IMPs actually had quite a bit of internal mechanism to address 
relability, which evolved as the network grew and more problems 
occurred.  I joined Frank Heart's group in 1977, to work on TCP-related 
contracts, but was surrounded by the ARPANET group so a lot of that DNA 
transferred over.  The IMP subnet tried real hard to hide the vagaries 
of packet switching from the end users' hosts.  In effect there was an 
end-end TCP-like function between two hosts' attached IMPs that made 
sure no packets were ever lost, duplicated, or reordered so that the 
hosts saw only the behavior of a virtual circuit.

When Vint asked me to take over the gateway work and make the "core" 
Internet a 24x7 service, we congealed a "Gateway Group" to do the work.  
They lived literally down the hall from the ARPANET world. One of that 
crew was Mike Brescia.  We were working on making the Internet work like 
the ARPANET, but until the NOC was in the loop, Mike watched over the 
Internet behavior to catch and fix problems.

One day some gateway was reporting lots of checksum errors.  Some tools 
were already available for remote debugging.  So Mike investigated and 
noticed that all of the errors were for datagrams from one particular 
host somewhere in the US Midwest.  So not a gateway or IMP problem, but 
Mike captured a few failed datagrams, and noticed that bytes in the TCP 
header were out-of-order, which was causing the checksum errors.

That was a problem I had already struggled with in implementing my Unix 
TCP.  We knew about it.  So Mike looked up the host info in the NIC, and 
sent an email to the technical contact - something like "You need to 
swap the address bytes in your source address." Shortly after, he got a 
reply, something like "Thanks!  That was the problem."

Shortly after that he got another email -- "How the *^&%&^% did you know 
that?!"

Checksumming was a useful debugging tool, even for remote debugging.   
I've learned over the years that researchers don't think enough about 
how their designs will be operated and managed.

Jack


On 4/18/25 12:12, Steve Crocker wrote:
> We tried to include a lightweight checksum in the original host-host 
> protocol.  (Later it was called the Network Control Protocol or NCP.  
> Same protocol.)  The checksum was designed to be reasonably easy to 
> compute.  It was a 16-bit ones complement sum with one bit of 
> rotation every thousand or so bits.  (The rotation was intended to 
> catch packets out of order, error which we imagined might be possible 
> but never occurred.)  Frank Heart argued vehemently against it, saying 
> it would make his network look slow.  I tried to push back and asked 
> about the Host-IMP interface. "As reliable as your accumulator," he 
> roared.
>
> We removed the checkum from our design, a mistake I've rued ever 
> since.  And, of course, it turned out there were indeed a few cases 
> where it would have made a difference.  As has been pointed out, there 
> was a major memory error in one of the IMPs that caused that IMP to 
> look like it was zero distance to every IMP.  But even before that 
> error, when Lincoln Lab first connected its host to its IMP, their 
> hardware interface had a problem.  There was some crosstalk between 
> the interface and the disk (or drum) controller.  When the disk (or 
> drum) was operating at the same time as the Host-IMP interface, some 
> bits got scrambled.  It apparently took them some time to track down.  
> I think they would have found it faster if the checksum had been part 
> of the design.
>
> Steve
>
>
> On Fri, Apr 18, 2025 at 1:25 PM Andrew G. Malis via Internet-history 
> <internet-history at elists.isoc.org> wrote:
>
>     Jack,
>
>     > Thinking back, I can't recall the reason for including checksums
>     in TCP
>     at all.
>
>     It was primarily to catch memory errors, which were a real thing
>     back in
>     the core memory days. Errors during transmission were generally
>     caught by
>     the lower layers.
>
>     Cheers,
>     Andy
>     -- 
>     Internet-history mailing list
>     Internet-history at elists.isoc.org
>     https://elists.isoc.org/mailman/listinfo/internet-history
>
>
>
> -- 
> Sent by a Verified
>
> sender

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 665 bytes
Desc: OpenPGP digital signature
URL: <http://elists.isoc.org/pipermail/internet-history/attachments/20250418/da8910da/attachment.asc>


More information about the Internet-history mailing list