Skip to content

Commit

Permalink
TCP: update initial windows according to RFC 5681
Browse files Browse the repository at this point in the history
This updates the use of larger initial windows, as originally specified in
RFC 3390, to use the newer IW values specified in RFC 5681, section 3.1.

The changes made in RFC 5681 are:
 a) the setting now is more clearly specified in units of segments (as the
    comments  by John Heffner emphasized, this was not very clear in RFC 3390);
 b) for connections with 1095 < SMSS <= 2190 there is now a change:
    - RFC 3390 says that IW <= 4380,
    - RFC 5681 says that IW = 3 * SMSS <= 6570.

Since RFC 3390 is older and "only" proposed standard, whereas the newer RFC 5681
is already draft standard, it seems preferable to use the newer IW variant.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Gerrit Renker authored and David S. Miller committed Aug 30, 2010
1 parent 89858ad commit 3d5b99a
Showing 1 changed file with 2 additions and 8 deletions.
10 changes: 2 additions & 8 deletions include/net/tcp.h
Original file line number Diff line number Diff line change
Expand Up @@ -781,17 +781,11 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk)

/*
* Convert RFC 3390 larger initial window into an equivalent number of packets.
*
* John Heffner states:
*
* The RFC specifies a window of no more than 4380 bytes
* unless 2*MSS > 4380. Reading the pseudocode in the RFC
* is a bit misleading because they use a clamp at 4380 bytes
* rather than a multiplier in the relevant range.
* This is based on the numbers specified in RFC 5681, 3.1.
*/
static inline u32 rfc3390_bytes_to_packets(const u32 smss)
{
return smss <= 1095 ? 4 : (smss > 1460 ? 2 : 3);
return smss <= 1095 ? 4 : (smss > 2190 ? 2 : 3);
}

extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
Expand Down

0 comments on commit 3d5b99a

Please sign in to comment.