[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [bug #47305] slow load time, DupACK-Problem in TCPIP Thread
From: |
Martin Datzmann |
Subject: |
[lwip-devel] [bug #47305] slow load time, DupACK-Problem in TCPIP Thread |
Date: |
Mon, 29 Feb 2016 14:43:06 +0000 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0 |
URL:
<http://savannah.nongnu.org/bugs/?47305>
Summary: slow load time, DupACK-Problem in TCPIP Thread
Project: lwIP - A Lightweight TCP/IP stack
Submitted by: martin5523
Submitted on: Mo 29 Feb 2016 14:43:05 GMT
Category: TCP
Severity: 3 - Normal
Item Group: None
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Planned Release:
lwIP version: 1.4.1
_______________________________________________________
Details:
Dear all,
in my project, I use the lwIP-Stack with FreeRTOS on an ARM-Cortex M4
Mikrocontroller.
There is no problem, to serve a small html-page. (web page load time: 3 ms)
When I try to serve a slightly more complex page (html and two pictures), the
following problem can occur resulting
in very slow load time:
In response to a request the webserver sends two data-packets
(Con1_data1.1/data1.2) as usual and gets an ACK from
the Browser (Con1_ACK1). If an ACK for another TCP-connection (Con2_ACK1) is
received between Con1_data1.1/data1.2
and Con1_ACK1, then Con2_ACK1 is handled correctly.
But now, instead of processing Con1_ACK1 and therefore removing
Con1_data1.1/data1.2 from the unacked-list, the
TCP/IP-thread is terminating and still waits for an ACK for
Con1_data1.1/data1.2. After timeout (ca. 2 s), the
TCP/IP-thread resends Con1_data1.1, gets an ACK again (Con1_ACK1dup) and
removes Con1_data1.1 from the unacked-list
and Con1_data1.2 from the unsent-list and everything seems ok.
After this the next two packets are sent (Con1_data2.1/data2.2) and Con1_ACK2
is received. Now in tcp_receive() the
dupack routine is entered probably because of Con1_ACK1dup ( a) dupacks < 3:
do nothing) and the TCP/IP-thread is
terminating without removing Con1_data2.1/data2.2 from the unacked-list. From
now on the process is repeating again
with resending Con1_data2.1 after timeout and receiving Con1_ACK2dup as
described above.
Once the problem occured, it repeats again and again and one has to do a
restart to reset the behaviour.
I used lwip 1.4.1 and also latest source from git.savannah.gnu.org (commit
#70f3e5e). In both versions the problem
exists.
Has anybody experienced a similar problem with DupACKs here?
What could be the reason for this behaviour?
Thanks!
_______________________________________________________
File Attachments:
-------------------------------------------------------
Date: Mo 29 Feb 2016 14:43:05 GMT Name: wireshark.jpg Size: 486kB By:
martin5523
<http://savannah.nongnu.org/bugs/download.php?file_id=36504>
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/bugs/?47305>
_______________________________________________
Nachricht gesendet von/durch Savannah
http://savannah.nongnu.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lwip-devel] [bug #47305] slow load time, DupACK-Problem in TCPIP Thread,
Martin Datzmann <=