This is our old Q&A Site. Please post any new questions and answers at

I have noticed that the initial congestion window in my traces is 8920bytes~=6*1448. rfc3390 states the initial cwand should be max 4000 bytes(around 3*1448).

At first i thought it might be because i'm running my server on mac os x, so apple might have modified the tcp stack. Therefore I tried running the server on a Linux box (2.6.38) however i'm getting similar results 13032bytes=9*1448. Both server and client machines are running on a local network (via a router). Any ideas why the initial cwand is so large?

asked 23 Dec '11, 16:09

ddayan's gravatar image

accept rate: 0%

edited 24 Dec '11, 02:59

You already correctly used the term "should" in your question ;)

RFCs recommend lots of stuff, especially when it comes to tcp behaviour and the more you spend time to get inside views into the real behaviour of certain stacks, the more you will find that there are LOTS of differences in implementation.

Initial cwnd "should" have an upper limit like e.g. 2-4 MSS in bytes but I would not worry if it was larger (like in your trace), especially when looking at open source OSs.

slowstart_flightsize and local_slowstart_flightsize from their description posted by you both use packets to measure initial cwnd. Be aware that at least on Microsoft stacks years ago there was a change to measure initial cwnd in bytes instead of packets in order to better deal with different MTUs and when pulling up cwnd better applying to delayed ACKs and stuff, because the ACK frequency also is highly dependent on the OS and its version etc.

permanent link

answered 24 Dec '11, 12:05

Landi's gravatar image

accept rate: 28%

I have found that the reason is both the server and the client are on the same subnet: FreeBSD tcp stack has these configurations:

        The number of packets allowed to be in-flight during
        the TCP slow-start phase on a non-local network.

        The number of packets allowed to be in-flight during
        the TCP slow-start phase to local machines in the same

Anyone knows how these configurations are called in Linux kernels?

permanent link

answered 24 Dec '11, 07:50

ddayan's gravatar image

accept rate: 0%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text]( "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:


question asked: 23 Dec '11, 16:09

question was seen: 6,346 times

last updated: 24 Dec '11, 12:05

p​o​w​e​r​e​d by O​S​Q​A