On 06/01/2010 16:46, [email protected] wrote:
Hafiz Bashir wrote:
Any help would be greatly appricated.
Since we do not know anything about the internals of your application and haven't seen the problem yet, you should try to debug, starting with enabling debug output for TCP by adding these lines in your lwipopts.h:

#define LWIP_DEBUG
#define TCP_DEBUG                  LWIP_DBG_OFF
#define TCP_INPUT_DEBUG            LWIP_DBG_OFF
#define TCP_OUTPUT_DEBUG           LWIP_DBG_OFF
#define TCP_RTO_DEBUG              LWIP_DBG_OFF
#define TCP_CWND_DEBUG             LWIP_DBG_OFF
#define TCP_WND_DEBUG              LWIP_DBG_OFF
#define TCP_FR_DEBUG               LWIP_DBG_OFF
#define TCP_QLEN_DEBUG             LWIP_DBG_OFF
#define TCP_RST_DEBUG              LWIP_DBG_OFF

You should then see debug output which you might be able to relate to the wireshark log and see at which point duplicate ACKs are sent.

Simon

I have attached the debug log from the application and the wireshark capture file. Here is a snippet of the debug showing duplicate ACK's being sent ?

State: ESTABLISHED

tcp_recved: recveived 1460 bytes, wnd 2920 (14600).

TCP header:
+-------------------------------+
|       80      |     4099      | (src port, dest port)

+-------------------------------+
|           3649346719          | (seq no)

+-------------------------------+
|           0000006617          | (ack no)

+-------------------------------+
|  5 |   |011000|     64240     | (hdrlen, flags (
PSH
ACK


), win)
+-------------------------------+
|    0x79e4     |         0     | (chksum, urgp)

+-------------------------------+
+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags
PSH
ACK


-+-+-+-+-+-+-+-+-+-+-+-+-+-+
State: ESTABLISHED

tcp_receive: window update 64240

tcp_receive: pcb->rttest 0 rtseq 6521 ackno 6617

tcp_output: nothing to send (0x0)

tcp_output: snd_wnd 64240, cwnd 4380, wnd 4380, seg == NULL, ack 6617

State: ESTABLISHED

tcp_recved: recveived 1460 bytes, wnd 2920 (14600).

tcp_output: sending ACK for 3649348179

tcp_recved: recveived 1460 bytes, wnd 4380 (13140).

tcp_recved: recveived 1460 bytes, wnd 5840 (11680).

tcp_recved: recveived 1460 bytes, wnd 7300 (10220).

tcp_output: sending ACK for 3649348179

tcp_recved: recveived 1460 bytes, wnd 8760 (8760).

tcp_recved: recveived 1460 bytes, wnd 10220 (7300).

tcp_recved: recveived 1460 bytes, wnd 11680 (5840).

tcp_output: sending ACK for 3649348179

tcp_recved: recveived 1460 bytes, wnd 13140 (4380).

TCP header:
+-------------------------------+
|       80      |     4099      | (src port, dest port)

+-------------------------------+
|           3649348179          | (seq no)

+-------------------------------+
|           0000006617          | (ack no)

+-------------------------------+
|  5 |   |010000|     64240     | (hdrlen, flags (
ACK


), win)
+-------------------------------+
|    0x7be6     |         0     | (chksum, urgp)

+-------------------------------+
+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags
ACK


-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Hope this helps

Best Regards

Hafiz




_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to