[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