buglwIP - A Lightweight TCP/IP stack - Bugs: bug #33058, Fast retransmit transmits too much...

 
 

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

bug #33058: Fast retransmit transmits too much (disables nagle)

Submitter:  Simon Goldschmidt <goldsimon>
Submitted:  Tue 12 Apr 2011 07:11:31 PM UTC
   
 
Category:  TCP Severity:  2 - Minor
Item Group:  Faulty Behaviour Status:  Wont Fix
Privacy:  Public Assigned to:  goldsimon
Open/Closed:  Closed Planned Release:  None
lwIP version:  CVS Head

Sat 03 Sep 2011 08:33:55 PM UTC, comment #3: 

Closing as won't fix.

Simon Goldschmidt <goldsimon>
Group administrator
Sat 03 Sep 2011 12:52:39 AM UTC, comment #2: 

I agree with you!
1: if tcp_do_output_nagle() is called and only called by tcp_output().
2: when status machine of TCP is ESTABLISHED, tcp_output is controlled by TCP slow timer, TCP fast timer and TCP_EVENT_POLL. All of them are controlled by timer.
So, I think that there should be no problem in current code.

tao tang <opensms4>
Fri 02 Sep 2011 09:42:14 PM UTC, comment #1: 

Thinking more about this, I think my initial assumption was wrong: segments might have been previously transmitted by TCP slow timer, so might get delayed again. Thinking about the "lw" in our name, I'd just leave it the way it is now: It's too minor to me to add new code to handle this.

Simon Goldschmidt <goldsimon>
Group administrator
Tue 12 Apr 2011 07:11:31 PM UTC, original submission:  

While reviewing bug #32417, I discovered that TCP fast retransmit transmits too much data because it disables the nagle algorithm (see definition of tcp_do_output_nagle(): if the TF_INFR flag is set, it always returns true).

Now while this isn't too big a problem, I think we can just leave that check away: if the segment in question (which gets moved from unacked to unsent by tcp_rexmit_fast()) has already been sent, this means that before, one of the other checks in tcp_do_output_nagle() fired and as such, the next time tcp_output() is called, at least one segment will be sent.

The problem with the current check is that tcp_rexmit_fast() setting the TF_INFR flag leads to sending all data from the unsent queue, including the segment held back by nagle before.

Simon Goldschmidt <goldsimon>
Group administrator

 

(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 opensms4 (Posted a comment)
  • -email is unavailable- added by goldsimon (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 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2011-09-03 goldsimon StatusNone Wont Fix
        Assigned toNone goldsimon
        Open/ClosedOpen Closed
    2011-09-02 goldsimon Planned Release1.4.1

    Back to the top

    Powered by Savane 3.13-02a9.
    Corresponding source code