Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Apr 2001 18:04:38 +0300 (EET DST)
From:      Andrei Gurtov <gurtov@cs.Helsinki.FI>
To:        <freebsd-net@freebsd.org>
Cc:        <Reiner.Ludwig@Ericsson.com>
Subject:   initial congestion window
Message-ID:  <Pine.LNX.4.30.0104171618460.5636-100000@saviletto.cs.Helsinki.FI>

next in thread | raw e-mail | index | archive | help

Hi folks,

 At the last IETF meeting there were some debates around FreeBSD using a
16-KB initial congestion window in TCP when destination IP address is from
the local subnet. Does anybody remember when it was introduced into the
code and what kind of ideas were behind?

Some reasons were given why it may not be a good idea:

-the benefit of not having slow start on LANs is very small, i.e. some
milliseconds

-it is not a conformant TCP feature, i.e. not allowed by TCP Congestion
Control (RFC2581) and is explicitly given in Known TCP Implementation
Problems (RFC2525) "2.1 No initial slow start" and "2.3 Uninitialized
CWND"

-people may have the same subnet mask also over a slow PPP link. In this
case the effect of the huge initial window is quite bad, see for example
http://www.cs.Helsinki.FI/u/gurtov/papers/effect_of_delays_on_tcp_performance.pdf

-in case of congestion on Ethernet, packets queues build up at the
network interfaces in hosts and agressive TCP start-up behaviour can
further increase congestion losses

What are your thoughts on this?

Andrei

tcp_output.c:

int ss_fltsz = 1;
SYSCTL_INT(_net_inet_tcp, OID_AUTO, slowstart_flightsize, CTLFLAG_RW,
        &ss_fltsz, 1, "Slow start flight size");

int ss_fltsz_local = TCP_MAXWIN;               /* something large */
SYSCTL_INT(_net_inet_tcp, OID_AUTO, local_slowstart_flightsize,
CTLFLAG_RW,
        &ss_fltsz_local, 1, "Slow start flight size for local networks");

[...]
                if (
                     in_localaddr(tp->t_inpcb->inp_faddr)
                    )
                        tp->snd_cwnd = tp->t_maxseg * ss_fltsz_local;
                else
                        tp->snd_cwnd = tp->t_maxseg * ss_fltsz;




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.30.0104171618460.5636-100000>