lwip-devel
[Top][All Lists]
Advanced

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

[lwip-devel] [bug #49631] Zero window and refused data problem


From: Joel Cunningham
Subject: [lwip-devel] [bug #49631] Zero window and refused data problem
Date: Mon, 28 Nov 2016 18:12:13 +0000 (UTC)
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0

Follow-up Comment #3, bug #49631 (project lwip):

Simon,

I'm not sure that removing refused_data would fix Oleg's problem because the
data being dropped isn't a normal data segment, but instead a zero window
probe and dropping that will lead to a connection closure (dropping a normal
data segment would also lead to connection closure after all retransmissions
have been sent and dropped)

If we had the following sequence, we'd still need an ACK containing RCV.NEXT

1. LwIP receiver closes window
2. Application reads < 1 MSS of data (no window update sent, but some space
now open)
3. Sender sends 1 byte zero window probe
4. LwIP accepts and ACKs probe (advancing RCV.NEXT by 1)
5. Steps 3/4 repeat until application refuses new 1 byte data
6. LwIP silently drops window probe

Step 6 should instead be, zero-window probe data is not passed to application
and ACK containing current RCV.NEXT is sent

Maybe another way to fix this issue would be to not accept data when the
*advertised* window is closed rcv_ann_wnd == 0 (true when 0 <= rcv_wnd < MIN(
1 MSS, TCP_WND / 2)).  Then the zero window probe would follow the same path
as when rcv_wnd is actually 0.  A receiving TCP doesn't have to buffer the
probe even if there is window space but the advertised window is still closed





    _______________________________________________________

Reply to this item at:

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

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/




reply via email to

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