Subject: Re:
To: None <jonathan@Pescadero.dsg.stanford.edu>
From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
List: tech-net
Date: 08/06/2005 16:04:15
hi,

> But if your window *isn't* big enough, if the window gets close to
> full, then any delay added to sending window updates comes straight
> out of goodput time.

if you are really limited by speed of reading application,
it's unlikely that you can fill wire anyway.

do you see any problem with the following diff?
i expect that the most of "small recv buffer" case will
be handled by the following "2 * adv >= (long) so->so_rcv.sb_hiwat".

YAMAMOTO Takashi

Index: tcp_output.c
===================================================================
--- tcp_output.c	(revision 1290)
+++ tcp_output.c	(working copy)
@@ -942,8 +942,6 @@ again:
 		long adv = min(win, (long)TCP_MAXWIN << tp->rcv_scale) -
 			(tp->rcv_adv - tp->rcv_nxt);
 
-		if (adv >= (long) (2 * rxsegsize))
-			goto send;
 		if (2 * adv >= (long) so->so_rcv.sb_hiwat)
 			goto send;
 	}