[ih] history of protocol bugs

John Day jeanjour at comcast.net
Fri Nov 10 13:16:41 PST 2023


I agree with you. The same Sequence Number can’t be assigned unless the last use has been Acked.

But to do that, the implementation would have also had to have been ignoring the Credit and not to send beyond the Right Window Edge. The implementation wasn’t obeying the protocol.

The fact that the sequence number space rolled over too soon and the sender couldn’t keep the pipe full was not a bug in the protocol. That it was not what was desired was a different problem. That led to an ‘enhancement.’ Of course a problem that easily predictable.  

(It didn’t need interplanetary communication to run into the problem. I remember doing this calculation for a satellite connection early on (last half of 70s) and realizing that it would be a problem with byte sequencing.)

Take care,
John

> On Nov 10, 2023, at 13:43, Steve Crocker via Internet-history <internet-history at elists.isoc.org> wrote:
> 
> I agree with Craig and Dave that #1 was an implementation bug and #2 was a
> specification bug.
> 
> #3 is a "bug" of a different order.  Craig says it's a growth issue.  Dave
> says it's an enhancement.  It's clear the sequence space was too small to
> support the kinds of delays that would be encountered in interplanetary
> communication.  Thus, it would be fair to say this wasn't a bug, but simply
> a limitation on the environments in which TCP would work.
> 
> Essentially all tools have limitations on how they're used.  That said,
> I've always thought it was a weakness in the specification and
> documentation of protocols that the quantitative aspects are usually not
> addressed.  The tuning of timeouts, limitations on capacity, etc. are
> usually left to the implementers and operators to figure out later.
> 
> Thus, if there's a bug in #3, I'd say it was in not making the limitations
> explicit in the design and documentation.  Thus it was not a bug that the
> TCP sequence space didn't support interplanetary communication.  If there
> was a bug, it was, at worst, merely that anyone had in mind to use it for
> that purpose.
> 
> Steve
> 
> On Fri, Nov 10, 2023 at 4:05 AM Dave Crocker via Internet-history <
> internet-history at elists.isoc.org> wrote:
> 
>> On 11/10/2023 4:50 AM, Craig Partridge via Internet-history wrote:
>>> Which of these bugs (or kinds of bugs) do you want to track?
>> 
>> RFC Errata are required to be deviations in the specification, from what
>> was intended by the authors.
>> 
>> This draws a distinction from things that might be called
>> 'enhancements'.  A bug is a behavior that was not originally intended.
>> An enhancement is a change in intention.
>> 
>> So...
>> 
>>> 1. 20 years ago, a software vendor shipped code that computed the wrong
>>> checksum on a FIN-ACK if the FIN-ACK had to be retransmitted.
>> bug
>> 
>> 
>>> 2. In 1974, Ray Tomlinson
>> ...
>>>   He realized that
>>> TCP needed a way to select initial sequence numbers that prevented old
>>> segments from being confused with new segments.
>> bug.
>> 
>> 
>>> 3. Around 1990, people realized that the TCP sequence number space was
>> too
>>> small for gigabit links and a TCP option was developed to expand the
>>> sequence space.
>> enhancement.
>> 
>> 
>> d/
>> 
>> --
>> Dave Crocker
>> Brandenburg InternetWorking
>> bbiw.net
>> mast:@dcrocker at mastodon.social
>> --
>> Internet-history mailing list
>> Internet-history at elists.isoc.org
>> https://elists.isoc.org/mailman/listinfo/internet-history
>> 
> -- 
> Internet-history mailing list
> Internet-history at elists.isoc.org
> https://elists.isoc.org/mailman/listinfo/internet-history




More information about the Internet-history mailing list