[27191] in Athena Bugs
linux 9.4.46 tcp: fails to honor windows
daemon@ATHENA.MIT.EDU (John Hawkinson)
Mon Mar 31 23:38:53 2008
Date: Mon, 31 Mar 2008 23:38:13 -0400
Message-Id: <200804010338.m313cDTl008349@cutter-john.mit.edu>
To: bugs@mit.edu
From: John Hawkinson <jhawk@mit.edu>
X-Spam-Flag: NO
X-Spam-Score: 0.00
Cc: sipb-office@mit.edu
Errors-To: bugs-bounces@mit.edu
Please see /mit/jhawk/tmp/husq.{pcap,txt} for the tcpdump trace. I was
debugging a printing problem, and observed that TCP on this machine
(cutter-john.mit.edu, Athena Linux 9.4.46, Linux 2.6.9-67.EL) seems to
be broken.
This problem occurs over and over throughout the trace, but packets
(lines) 2,3, and 4 of the trace are a good example:
23:05:39.366723 IP
cutter-john.mit.edu.618 > HUSQVARNA.MIT.EDU.printer:
P 1:769(768) ack 0 win 1460 <nop,nop,timestamp 206674347 446175403>
cutter-john transmits byte 1 through 768 to husqvarna. All good so far.
This is the first transmission, by the way, not a retransmission.
23:05:39.368572 IP
HUSQVARNA.MIT.EDU.printer > cutter-john.mit.edu.618:
. ack 769 win 328 <nop,nop,timestamp 446175405 206674347>
husqvarna acknowledges receipt of byte 768 (requesting 769), and
offers a window of 328 bytes.
23:05:39.579459 IP
cutter-john.mit.edu.618 > HUSQVARNA.MIT.EDU.printer:
P 769:2081(1312) ack 0 win 1460 <nop,nop,timestamp 206674560 446175405>
cutter-john sends the next segment, which is 1,312 bytes long,
exceeding the receiver's advertised window of 328. This is wrong.
It's been several years since I've had to look at this sort of thing,
so I'd appreciate if someone could verify that I'm not totally
off-base and misinterpreting these. It's a bit tough for me to
fathom that this is really happening.
Thanks.
--jhawk
p.s.: Shawn Osterman's tcptrace reports stuff like this.
I think the "owin" stuff is referring to this, but I'm
not 100% sure.
================================
TCP connection 3:
host e: HUSQVARNA.MIT.EDU:printer
host f: CUTTER-JOHN.MIT.EDU:999
complete conn: no (SYNs: 0) (FINs: 0)
first packet: Mon Mar 31 23:05:39.795481 2008
last packet: Mon Mar 31 23:06:31.387080 2008
elapsed time: 0:00:51.591599
total packets: 482
filename: husq.pcap
e->f: f->e:
total packets: 242 total packets: 240
ack pkts sent: 242 ack pkts sent: 240
pure acks sent: 242 pure acks sent: 77
sack pkts sent: 0 sack pkts sent: 0
max sack blks/ack: 0 max sack blks/ack: 0
unique bytes sent: 0 unique bytes sent: 174864
actual data pkts: 0 actual data pkts: 163
actual data bytes: 0 actual data bytes: 174864
rexmt data pkts: 0 rexmt data pkts: 0
rexmt data bytes: 0 rexmt data bytes: 0
zwnd probe pkts: 0 zwnd probe pkts: 0
zwnd probe bytes: 0 zwnd probe bytes: 0
outoforder pkts: 0 outoforder pkts: 0
pushed data pkts: 0 pushed data pkts: 91
SYN/FIN pkts sent: 0/0 SYN/FIN pkts sent: 0/0
req 1323 ws/ts: N/Y req 1323 ws/ts: N/Y
urgent data pkts: 0 pkts urgent data pkts: 0 pkts
urgent data bytes: 0 bytes urgent data bytes: 0 bytes
mss requested: 0 bytes mss requested: 0 bytes
max segm size: 0 bytes max segm size: 1448 bytes
min segm size: 0 bytes min segm size: 8 bytes
avg segm size: 0 bytes avg segm size: 1072 bytes
max win adv: 5068 bytes max win adv: 1460 bytes
min win adv: 5 bytes min win adv: 1460 bytes
zero win adv: 113 times zero win adv: 0 times
avg win adv: 395 bytes avg win adv: 1460 bytes
max owin: 1 bytes max owin: 7241 bytes
min non-zero owin: 1 bytes min non-zero owin: 9 bytes
avg owin: 0 bytes avg owin: 1364 bytes
wavg owin: 0 bytes wavg owin: 623 bytes
initial window: 0 bytes initial window: 0 bytes
initial window: 0 pkts initial window: 0 pkts
ttl stream length: NA ttl stream length: NA
missed data: NA missed data: NA
truncated data: 0 bytes truncated data: 170028 bytes
truncated packets: 0 pkts truncated packets: 158 pkts
data xmit time: 0.000 secs data xmit time: 51.372 secs
idletime max: 1017.4 ms idletime max: 1018.6 ms
throughput: 0 Bps throughput: 3389 Bps