What will do the TCP stack in the described scenario?

Heinz Knocke knockefreebsd at o2.pl
Thu Jan 6 14:06:36 PST 2005


Hi!

I'm writing here because I'm solving a strange performance problem (
http://docs.freebsd.org/cgi/getmsg.cgi?fetch=3420+0+current/freebsd-net )
and wonder is this and OS or aplication side's bottleneck.

Imagine the situation (S /C - TCP sender / client respectively).

S: 0:10
C: ack 10
S: 10:20 (10)
S: 20:30 (10)
S: 30:40 (10)
S: 40:50 (10)
C: ack 30
... <server waits RTO, time passes, cwnd and speed drops>
S: 40:50 (10) - retransmission.

C doesn't send duplicate ACKs to let the S know he don't have
everything yet .. because he doesn't know that 40:50 were ever to be
sent, am I right?
Does it mean that 40:50 was the last from window / allowed by sender's
cwnd?
If he had, lets say, 30:40, 50:60 than he'd send multiple ack 30
segments and start recovery procedure, right?

Is there any way to avoid serious speed drop in this scenario? Can
disabling delayed acks / enabling SACKS on client/ server help??


I'll be very grateful for your comments as usual :))

hk




More information about the freebsd-net mailing list