Hi Brian,
Here's my understanding (maybe not very correct):
When Linux tries to exit fast_recovery / loss_recovery and go back to
normal state, tcp_moderate_cwnd is applied to make sure that the cwnd would
not increase too fast from the current packet rate (packet_in_flight). This
is NOT effective during normal SlowStart/CongestionAvoid states and not
necessarily hurt the performance. If this function is deleted, there may be
a burst when Linux exit recovery.
-David
Xiaoliang (David) Wei Graduate Student in CS@Caltech
http://www.cs.caltech.edu/~weixl
====================================================
----- Original Message -----
From: "Brian Tierney" <bltierney@xxxxxxx>
To: <netdev@xxxxxxxxxxx>
Cc: "Brian Tierney" <bltierney@xxxxxxx>
Sent: Monday, January 27, 2003 1:20 PM
Subject: question on routine tcp_moderate_cwnd
> Hi all:
>
> Can someone explain what situation the routine tcp_moderate_cwnd is
> supposed to address?
>
> Im finding that this code seems to be preventing TCP for achieving
> anything close to the available bandwidth on large BDP networks.
>
> Thanks.
>
> ----------------
>
> /* CWND moderation, preventing bursts due to too big ACKs
> * in dubious situations.
> */
> static __inline__ void tcp_moderate_cwnd(struct tcp_opt *tp)
> {
> u32 t = tcp_packets_in_flight(tp) + tcp_max_burst(tp);
> if (t < tp->snd_cwnd) {
> tp->snd_cwnd = t;
> WEB100_VAR_INC(tp, OtherReductions);
> }
> tp->snd_cwnd_stamp = tcp_time_stamp;
> }
>
>
>
> ------------------------------------------------------------------------
> -------------------
> Brian L. Tierney, Lawrence Berkeley National Laboratory (LBNL)
> 1 Cyclotron Rd. MS: 50B-2239, Berkeley, CA 94720
> tel: 510-486-7381 fax: 510-495-2998 efax: 240-332-4065
> bltierney@xxxxxxx http://www-didc.lbl.gov/~tierney
> ------------------------------------------------------------------------
> ------------------
>
>
>
|