[ih] TCP RTT Estimator

Steve Crocker steve at shinkuro.com
Fri Apr 18 12:55:43 PDT 2025


Jack,

In our early design discussions, late 1968 and early 1969, Jeff Rulifson
from SRI pushed for a checksum for exactly the reason you described, viz it
would catch software errors between layers.

Steve

Sent by a Verified

sender


On Fri, Apr 18, 2025 at 3:49 PM Jack Haverty <jack at 3kitty.org> wrote:

> 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
>
>
>


More information about the Internet-history mailing list