mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-11-05 08:28:32 +00:00
f582c88339
This re-works the persist timer to have the following behavior: 1) Only start persist timer when a buffered segment doesn't fit within the current window and there is no in-fligh data. Previously, the persist timer was always started when the window went to zero even if there was no buffered data (since timer was managed in receive pathway rather than transmit pathway) 2) Upon first fire of persist timer, fill the remaining window if non-zero by splitting the unsent segment. If split segment is sent, persist timer is stopped, RTO timer is now ensuring reliable window updates 3) If window is already zero when persist timer fires, send 1 byte probe 4) Persist timer and zero window probe should only be active when the following are true: * no in-flight data (pcb->unacked == NULL) * when there is buffered data (pcb->unsent != NULL) * when pcb->unsent->len > pcb->snd_wnd |
||
---|---|---|
.. | ||
fuzz | ||
unit |