TCP error recovery

We’re seeing a strange problem with TCP in 6.3.0. A packet gets lost,
but several more packets get delivered before the ACK indicating a
missing packet returns; the missing packet is resent, and the receiving
host ACKs the last packet it received (several packets past the missed
one). That all seems proper, but the sending host seems to have lost
track of the fact that it sent some of those packets! It increments its
“acks for unsent data” counter, sends an ACK, and resends data that has
been already been ACKed. It keeps this up until the connection finally
times out. Does this behavior ring a bell with anyone? Has anything
changed in the 6.3.0 stack? I have a tcpdump of a telnet session trying
to do an ls and encountering this problem, if anyone would be interested
in looking at it.

Murf

Would you please send the dump to me ? Back ground information, does
both end are QNX 6.3?

-xtang

John Murphy <murf@perftech.com> wrote in message
news:40F300A7.517E50D6@perftech.com

We’re seeing a strange problem with TCP in 6.3.0. A packet gets lost,
but several more packets get delivered before the ACK indicating a
missing packet returns; the missing packet is resent, and the receiving
host ACKs the last packet it received (several packets past the missed
one). That all seems proper, but the sending host seems to have lost
track of the fact that it sent some of those packets! It increments its
“acks for unsent data” counter, sends an ACK, and resends data that has
been already been ACKed. It keeps this up until the connection finally
times out. Does this behavior ring a bell with anyone? Has anything
changed in the 6.3.0 stack? I have a tcpdump of a telnet session trying
to do an ls and encountering this problem, if anyone would be interested
in looking at it.

Murf

Trace file sent by email…

Murf

Xiaodan Tang wrote:

Would you please send the dump to me ? Back ground information, does
both end are QNX 6.3?

-xtang

John Murphy <> murf@perftech.com> > wrote in message
news:> 40F300A7.517E50D6@perftech.com> …
We’re seeing a strange problem with TCP in 6.3.0. A packet gets lost,
but several more packets get delivered before the ACK indicating a
missing packet returns; the missing packet is resent, and the receiving
host ACKs the last packet it received (several packets past the missed
one). That all seems proper, but the sending host seems to have lost
track of the fact that it sent some of those packets! It increments its
“acks for unsent data” counter, sends an ACK, and resends data that has
been already been ACKed. It keeps this up until the connection finally
times out. Does this behavior ring a bell with anyone? Has anything
changed in the 6.3.0 stack? I have a tcpdump of a telnet session trying
to do an ls and encountering this problem, if anyone would be interested
in looking at it.

Murf

This sounds like a problem in the beta that was fixed in
the release. Are you using the release?

-seanb

John Murphy <murf@perftech.com> wrote:

We’re seeing a strange problem with TCP in 6.3.0. A packet gets lost,
but several more packets get delivered before the ACK indicating a
missing packet returns; the missing packet is resent, and the receiving
host ACKs the last packet it received (several packets past the missed
one). That all seems proper, but the sending host seems to have lost
track of the fact that it sent some of those packets! It increments its
“acks for unsent data” counter, sends an ACK, and resends data that has
been already been ACKed. It keeps this up until the connection finally
times out. Does this behavior ring a bell with anyone? Has anything
changed in the 6.3.0 stack? I have a tcpdump of a telnet session trying
to do an ls and encountering this problem, if anyone would be interested
in looking at it.

Murf

Please double check you don’t have an old one lying around / have
rebuilt your image if necessary. I’m pretty sure this problem was
fixed. Also post the cksum of your npm-tcpip*.so.

-seanb

John Murphy <murf@perftech.com> wrote:

I was using the Beta until this morning, but the problem persists with the
released stack.

Murf

Sean Boudreau wrote:

This sounds like a problem in the beta that was fixed in
the release. Are you using the release?

-seanb

John Murphy <> murf@perftech.com> > wrote:
We’re seeing a strange problem with TCP in 6.3.0. A packet gets lost,
but several more packets get delivered before the ACK indicating a
missing packet returns; the missing packet is resent, and the receiving
host ACKs the last packet it received (several packets past the missed
one). That all seems proper, but the sending host seems to have lost
track of the fact that it sent some of those packets! It increments its
“acks for unsent data” counter, sends an ACK, and resends data that has
been already been ACKed. It keeps this up until the connection finally
times out. Does this behavior ring a bell with anyone? Has anything
changed in the 6.3.0 stack? I have a tcpdump of a telnet session trying
to do an ls and encountering this problem, if anyone would be interested
in looking at it.

Murf

I was using the Beta until this morning, but the problem persists with the
released stack.

Murf

Sean Boudreau wrote:

This sounds like a problem in the beta that was fixed in
the release. Are you using the release?

-seanb

John Murphy <> murf@perftech.com> > wrote:
We’re seeing a strange problem with TCP in 6.3.0. A packet gets lost,
but several more packets get delivered before the ACK indicating a
missing packet returns; the missing packet is resent, and the receiving
host ACKs the last packet it received (several packets past the missed
one). That all seems proper, but the sending host seems to have lost
track of the fact that it sent some of those packets! It increments its
“acks for unsent data” counter, sends an ACK, and resends data that has
been already been ACKed. It keeps this up until the connection finally
times out. Does this behavior ring a bell with anyone? Has anything
changed in the 6.3.0 stack? I have a tcpdump of a telnet session trying
to do an ls and encountering this problem, if anyone would be interested
in looking at it.

Murf

You’re absolutely right, I messed up installing (or thinking I was installing)
the new stack. The 6.3 released stack seems to have cured the problem.

Thanks!

Murf

Sean Boudreau wrote:

Please double check you don’t have an old one lying around / have
rebuilt your image if necessary. I’m pretty sure this problem was
fixed. Also post the cksum of your npm-tcpip*.so.

-seanb

John Murphy <> murf@perftech.com> > wrote:
I was using the Beta until this morning, but the problem persists with the
released stack.

Murf

Sean Boudreau wrote:

This sounds like a problem in the beta that was fixed in
the release. Are you using the release?

-seanb

John Murphy <> murf@perftech.com> > wrote:
We’re seeing a strange problem with TCP in 6.3.0. A packet gets lost,
but several more packets get delivered before the ACK indicating a
missing packet returns; the missing packet is resent, and the receiving
host ACKs the last packet it received (several packets past the missed
one). That all seems proper, but the sending host seems to have lost
track of the fact that it sent some of those packets! It increments its
“acks for unsent data” counter, sends an ACK, and resends data that has
been already been ACKed. It keeps this up until the connection finally
times out. Does this behavior ring a bell with anyone? Has anything
changed in the 6.3.0 stack? I have a tcpdump of a telnet session trying
to do an ls and encountering this problem, if anyone would be interested
in looking at it.

Murf