[Iccrg] Can TCP stay in slow start 'for ever'?

Mirja Kuehlewind mirja.kuehlewind at ikr.uni-stuttgart.de
Tue Sep 13 16:55:35 BST 2011


Hi Bob,

this looks like its implemented in Linux (2.6.26):

/* RFC2861, slow part. Adjust cwnd, after it was not full during one rto.
 * As additional protections, we do not touch cwnd in retransmission phases,
 * and if application hit its sndbuf limit recently.
 */
void tcp_cwnd_application_limited(struct sock *sk)
{
	struct tcp_sock *tp = tcp_sk(sk);

	if (inet_csk(sk)->icsk_ca_state == TCP_CA_Open &&
	    sk->sk_socket && !test_bit(SOCK_NOSPACE, &sk->sk_socket->flags)) {
		/* Limited by application or receiver window. */
		u32 init_win = tcp_init_cwnd(tp, __sk_dst_get(sk));
		u32 win_used = max(tp->snd_cwnd_used, init_win);
		if (win_used < tp->snd_cwnd) {
			tp->snd_ssthresh = tcp_current_ssthresh(sk);
			tp->snd_cwnd = (tp->snd_cwnd + win_used) >> 1;
		}
		tp->snd_cwnd_used = 0;
	}
	tp->snd_cwnd_stamp = tcp_time_stamp;
}

Mirja


On Friday 09 September 2011 21:20:57 Bob Briscoe wrote:
> Yuchung,
>
> Tx for this too.
>
> At 17:44 09/09/2011, Yuchung Cheng wrote:
> >The Linux 2.6 or later fully implements this RFC.
> >
> >For app-limit part, an ACK does not increase cwnd in SS unless the
> >cwnd was fully utilized.
>
> I'll look at the code, but if you have already looked, do you know
> whether it also ages out ssthresh and decays cwnd if it can, as shown
> in the second part of the pseudocode in S.3.2 of RFC2861?
>
> >Interestingly, some systems turning off the cwnd restart after idle
> >feature (in Linux or other OSes). This may generate unpleasant
> >line-rate bursts like Bob's video-download example.
> >http://www.cs.princeton.edu/~jrex/papers/snap10.pdf
>
> OK - I found the part of the paper about burst after idle problems
> (interesting paper BTW), but you'll see I'm more interested in the
> app-limited behaviour part right now.
>
> Cheers
>
>
> Bob
>
>
> ________________________________________________________________
> Bob Briscoe,                                BT Innovate & Design
>
>
> _______________________________________________
> Iccrg mailing list
> Iccrg at cs.ucl.ac.uk
> http://oakham.cs.ucl.ac.uk/mailman/listinfo/iccrg



-- 
-------------------------------------------------------------------
Dipl.-Ing. Mirja Kühlewind
Institute of Communication Networks and Computer Engineering (IKR)
University of Stuttgart, Germany
Pfaffenwaldring 47, D-70569 Stuttgart

tel: +49(0)711/685-67973
email: mirja.kuehlewind at ikr.uni-stuttgart.de
web: www.ikr.uni-stuttgart.de
-------------------------------------------------------------------



More information about the Iccrg mailing list