|
From: | Oleg Gladyshev |
Subject: | Re: [lwip-users] Zero window and refused data problem |
Date: | Wed, 09 Nov 2016 10:26:14 +0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0 |
Simon, let's look at the issue from another side. If the refused_data is full LwIP doesn't send any ACK for probe packet but if the receiving window is really zero it WILL ACK with previous ACKNO. From sender's point of view these two cases are identical! In both cases receiver announces zero window and sender "asks peer if it has a liitle more space". I think it is wrong when received under LwIP control has different behavior depending on it's internal state (real window size and refused_data variable). For sender both cases are exactly the same so receiver must ACK with old ACKNO if it can't receive more data no matter why it can't.And since we don't want to create even more traffic in an overload situation, we don't even send and ACK (with an old ACKNO), since there's nothing the remote host can improve: we can't accept new segments! By doing that, we give the application time to overcome resource shortage and only can hope the connection survives this.
-- Best regards, Oleg
[Prev in Thread] | Current Thread | [Next in Thread] |