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

Submitted by:  Oleg Tyshev <olegreen>
Submitted on:  Fri 28 Sep 2007 12:46:39 PM UTC  
 
Category: TCPSeverity: 3 - Normal
Item Group: Faulty BehaviourStatus: Fixed
Privacy: PublicAssigned to: Simon Goldschmidt <goldsimon>
Open/Closed: ClosedPlanned Release: None
lwIP version: None

(Jump to the original submission 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>
Project AdministratorIn charge of this item.
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>
Project AdministratorIn charge of this item.
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>
Project Administrator
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>
Project AdministratorIn charge of this item.
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 (4MSS, max (2MSS, 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>
Project AdministratorIn charge of this item.
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>

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

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

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 01 Nov 2007 03:54:51 PM UTCgoldsimonStatusNone=>Fixed
      Assigned toNone=>goldsimon
      Open/ClosedOpen=>Closed

    Back to the top


    Powered by Savane 3.1-cleanup1