lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [bug #20515] TCP delayed ack does not work as expected


From: Simon Goldschmidt
Subject: [lwip-devel] [bug #20515] TCP delayed ack does not work as expected
Date: Thu, 19 Jul 2007 08:27:48 +0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

Follow-up Comment #4, bug #20515 (project lwip):

The change from >= TCP_WND/2 to <= TCP_WND/2 _was_ deliberate! You must keep
in mind that most of the time, the ACK that is sent in tcp_recved() is only a
window update. What's the use of sending a window update if the current
receive window is big enough anyway?

If calling tcp_ack, we would change the code from the current status: right
now, tcp_ack is not really called. Look at the definition of tcp_ack() in
tcp.h:

if((pcb)->flags & TF_ACK_DELAY) { 
                            (pcb)->flags &= ~TF_ACK_DELAY; 
                            (pcb)->flags |= TF_ACK_NOW; 
                            tcp_output(pcb); 
                         } else { 
                            (pcb)->flags |= TF_ACK_DELAY; 
                         }

But as tcp_ack is only 'called' in tcp_recved 'if(!(pcb->flags &
TF_ACK_DELAY))', this results in 'pcb->flags |= TF_ACK_DELAY' being set
instead of tcp_output being called.

I'm also cautios about this change. But I would like to understand this
code.

What the code currently does is setting TF_ACK_DELAY and sending an ACK if
the recv_wnd is BIG.

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?20515>

_______________________________________________
  Nachricht geschickt von/durch Savannah
  http://savannah.nongnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]