[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-users] zero window probe causes duplicated byte to be received
From: |
Yao Lin |
Subject: |
[lwip-users] zero window probe causes duplicated byte to be received |
Date: |
Sat, 1 Apr 2017 15:33:01 -0700 (MST) |
Hi,
I am using Stable 1.4.1 in my device. This device sends 4MB of TCP data to a
Windows laptop. I am using netcomm API.
1. When Windows is about to use up its TCP buffer, it sends a packet (P1)
with rwnd = 0 and ACK to, say, 2M.
2. Within 0.12s after receiving P1, lwip sends a packet (P2) with seq = 2M
and len = 1.
3. Windows sends P3 with ACK = 2M + 1 and rwnd = 0.
4. Now we go through many iterations of 4.1 and 4.2:
4.1. lwip sends P4 with seq = 2M and len = 0.
4.2. Windows sends P5 with ACK = 2M + 1 and rwnd = 0.
5. Eventually, Windows opens up its rwnd. So it sends P6 with ACK = 2M + 1
and rwnd = 4096 (or something similar).
6. Lwip sends P7 with seq = 2M and len = 1460.
Now you can see Windows receives the duplicated byte 2M.
So my question is, why does lwip send P4 and P7 with seq = 2M instead of 2M
+ 1? Note that Windows ACK = 2M + 1 in P3, P5, and P6.
Thanks.
--
View this message in context:
http://lwip.100.n7.nabble.com/zero-window-probe-causes-duplicated-byte-to-be-received-tp29221.html
Sent from the lwip-users mailing list archive at Nabble.com.
- [lwip-users] zero window probe causes duplicated byte to be received,
Yao Lin <=