buglwIP - A Lightweight TCP/IP stack - Bugs: bug #21181, Initial congestion window

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #21181: Initial congestion window

Submitter:  Oleg Tyshev <olegreen>
Submitted:  Fri 28 Sep 2007 12:46:39 PM UTC
   
 
Category:  TCP Severity:  3 - Normal
Item Group:  Faulty Behaviour Status:  Fixed
Privacy:  Public Assigned to:  goldsimon
Open/Closed:  Closed Planned Release:  None
lwIP version:  None

Jump to the original submission

Thu 01 Nov 2007 03:54:51 PM UTC, comment #7: 

OK, fixed this.

What remains is that the sent MSS option is based on pcb->mss (the one received from the remote host) instead of TCP_MSS (the one configured).

What also is missing is the outgoing MSS to be automatically configured smaller than the MTU (see RFC 1122, chapter 4.2.2.6).

I'll open a task for these.

Simon Goldschmidt <goldsimon>
Group administrator
Thu 01 Nov 2007 02:29:57 PM UTC, comment #6: 


> Let's stick with the 2MSS initial congestion window


Quite my opinion. More leightweight somehow...

> but the other change that this bug suggests looks like a good one to me.


And I agree there, too. I'll make the change and close this as fixed when done.

Simon Goldschmidt <goldsimon>
Group administrator
Thu 01 Nov 2007 12:32:09 PM UTC, comment #5: 

Let's stick with the 2MSS initial congestion window, but the other change that this bug suggests looks like a good one to me.

Kieran Mansley <kieranm>
Group Member
Mon 29 Oct 2007 03:53:33 PM UTC, comment #4: 


>Can you tell us the source of that? (I remember seeing it >somewhere but can't remember where...)

min(4MSS, max (2MSS, 4380 bytes)) is from RFC 3390.
It is recommended as upper bound of the initial window.

Oleg Tyshev <olegreen>
Sun 28 Oct 2007 06:19:06 PM UTC, comment #3: 


> I suppouse that congestion window should be calculated from
> this new calculated MSS.


I suppose so, too, but didn't find any documentation, yet. I think it should be changed, but would like to hear comments from the others!

> Other question, that we could take more aggressive initial
> value for congestion window for example 2 * MSS.


lwIP was pretty conservative about the initial cwnd. We changed that to 2*MSS in CVS HEAD already, but I don't know if the min(4MSS, max (2MSS, 4380 bytes)) is a good idea for lwIP...
Can you tell us the source of that? (I remember seeing it somewhere but can't remember where...)

Simon Goldschmidt <goldsimon>
Group administrator
Mon 08 Oct 2007 07:58:18 AM UTC, comment #2: 

In state SYN_SENT we have already sent our maximum segment size in first TCP segment (MSS in TCP options).
Now, we should receive MSS from other side.
Resulting maximum segment size for both hosts is minimum of MSS1 and MSS2.
It will be calculated in tcp_parseopt(pcb).
I suppouse that congestion window should be calculated from this new calculated MSS.

Other question, that we could take more aggressive initial value for congestion window for example 2 * MSS.
RFC 3390 "Increasing TCP's Initial Window" recommends
following formula for calculation
min (4*MSS, max (2*MSS, 4380 bytes))

Oleg Tyshev <olegreen>
Thu 04 Oct 2007 06:39:42 PM UTC, comment #1: 

Could you maybe explain this a little more detailed (e.g. why do you think the order should be reversed) for those of us not currently having the time looking through the code?

Simon Goldschmidt <goldsimon>
Group administrator
Fri 28 Sep 2007 12:46:39 PM UTC, original submission:  

If we see tcp_process() function

  switch (pcb->state) {
  case SYN_SENT:

....
      pcb->cwnd = pcb->mss;
....
      tcp_parseopt(pcb);

tcp_parseopt() sets pcb->mss to the new value.
I think the order should be reversed.

      tcp_parseopt(pcb);
....
      pcb->cwnd = pcb->mss;

Oleg Tyshev <olegreen>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by kieranm (Posted a comment)
  • -email is unavailable- added by goldsimon (Posted a comment)
  • -email is unavailable- added by olegreen (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2007-11-01 goldsimon StatusNone Fixed
        Assigned toNone goldsimon
        Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-02a9.
    Corresponding source code