Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Feb 1998 13:05:47 +0100
From:      Igor.Alekseev@kjeller.fou.telenor.no
To:        freebsd-hackers@FreeBSD.ORG
Subject:   TCP slow start problem
Message-ID:  <"1658 98/02/09 13:05*/G=Igor/S=Alekseev/OU=kjeller/O=fou/PRMD=telenor/ADMD=TELEMAX/C=no/"@MHS>

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


Hi, 

FreeBSD 2.2.5 seems not to be following Slow start procedure (when connection is 
set up)!

Could someone, please shed some light on this problem?

The /sys/netinet/tcp_subr.c file contains a function tcp_newtcpcb() which initialises 
the control block structure. This function initialises congerstion window (CWND) 
tp->snd_cwnd to the maximum possible window size (evwn with window scale 
option). 


tcp_subr.c line 280:  tp->snd_cwnd = TCP_MAXWIN << TCP_MAX_WINSHIFT;

Should not the slow start congestion window tp->snd_cwnd be initialised to 1 MSS 
and be increased by one MSS per each ACK received, (until it reaches ssthresh).  
Please, tell me if I got the spec wrong, but this is what is specified by RFC 2001 
(TCP Slow Start, Congestion Avoidance,  Fast Retransmit, and Fast Recovery 
Algorithms). 

Tcpdump output from netperf runs with my FreeBSD 2.2.5 shows that the amount of 
segments initially injected into the network is limited only by the receiver's 
advertised window, regardless of whether the other host is on the same network 
segment or on a different subnetwork. Is this a bug or a feature?

If a trnasmission timeout occures, TCP goes through slow start as it should.


Thanks, 

Igor V. Alekseev

Visiting researcher, Telenor, Norway


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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?"1658 98/02/09 13:05*/G=Igor/S=Alekseev/OU=kjeller/O=fou/PRMD=telenor/ADMD=TELEMAX/C=no/">