lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] Problem with retransmission..


From: Mats Blide
Subject: [lwip-users] Problem with retransmission..
Date: Thu, 31 Oct 2013 21:32:27 +0100

 

Hi,

 

Having a problem with retransmission from my client due to lwIP stack seams to miss the first

transmission.

 

Below is a copy from wireshark when the problem happens. The circumstances when it happens

are always the same. ACK from client in a segment without payload directly followed by a

segment with payload. I do not get a tcp_sent callback for the data sent in seg 36271.

The retransmission clears the situation and everything continues smoothly until next time it

happens. About every three or four minutes or so.

 

Any ideas what can cause this?

 

Best regards,

Mats

 

26394                 18:58:22.683205000                   192.168.0.2      192.168.0.1      TCP                     71                        50032 > 26486 [PSH, ACK] Seq=314015327 Ack=36230 Win=798 Len=17

26395                 18:58:22.691749000                   192.168.0.1      192.168.0.2      TCP                     60                        26486 > 50032 [ACK] Seq=36230 Ack=314015344 Win=2048 Len=0

26396                 18:58:25.649621000                   192.168.0.1      192.168.0.2      TCP                     95                        26486 > 50032 [PSH, ACK] Seq=36230 Ack=314015344 Win=2048 Len=41

26397                 18:58:25.649743000                   192.168.0.2      192.168.0.1      TCP                     71                        50032 > 26486 [PSH, ACK] Seq=314015344 Ack=36271 Win=757 Len=17

26398                 18:58:28.660107000                   192.168.0.1      192.168.0.2      TCP                     95                        26486 > 50032 [PSH, ACK] Seq=36271 Ack=314015361 Win=2031 Len=41

26399                 18:58:28.660231000                   192.168.0.2      192.168.0.1      TCP                     60                        50032 > 26486 [ACK] Seq=314015361 Ack=36312 Win=1460 Len=0

26400                 18:58:28.660381000                   192.168.0.2      192.168.0.1      TCP                     71                        50032 > 26486 [PSH, ACK] Seq=314015361 Ack=36312 Win=1460 Len=17

26401                 18:58:35.210206000                   192.168.0.2      192.168.0.1      TCP                     71                        [TCP Retransmission] 50032 > 26486 [PSH, ACK] Seq=314015361 Ack=36312 Win=1460 Len=17

26402                 18:58:35.218385000                   192.168.0.1      192.168.0.2      TCP                     60                        26486 > 50032 [ACK] Seq=36312 Ack=314015378 Win=2014 Len=0

26403                 18:58:37.666125000                   192.168.0.1      192.168.0.2      TCP                     95                        26486 > 50032 [PSH, ACK] Seq=36312 Ack=314015378 Win=2014 Len=41

26404                 18:58:37.666321000                   192.168.0.2      192.168.0.1      TCP                     71                        50032 > 26486 [PSH, ACK] Seq=314015378 Ack=36353 Win=1419 Len=17

26405                 18:58:40.678446000                   192.168.0.1      192.168.0.2      TCP                     95                        26486 > 50032 [PSH, ACK] Seq=36353 Ack=314015395 Win=1997 Len=41

26406                 18:58:40.678710000                   192.168.0.2      192.168.0.1      TCP                     71                        50032 > 26486 [PSH, ACK] Seq=314015395 Ack=36394 Win=1378 Len=17

 

 

Trace from lwIP with TCP_DEBUG, TCP_INPUT_DEBUG and TCP_OUTPUT_DEBUG turned on.

 

 

TCP header:<LF><CR>

+-------------------------------+<LF><CR>

|    50032      |    26486      | (src port, dest port)<LF><CR>

+-------------------------------+<LF><CR>

|           0314015344          | (seq no)<LF><CR>

+-------------------------------+<LF><CR>

|           0000036271          | (ack no)<LF><CR>

+-------------------------------+<LF><CR>

|  5 |   |011000|       757     | (hdrlen, flags, win)<LF><CR>

+-------------------------------+<LF><CR>

|    0x6ba8     |         0     | (chksum, urgp)<LF><CR>

+-------------------------------+<LF><CR>

+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags <CR>

-+-+-+-+-+-+-+-+-+-+-+-+-+-+<LF><CR>

tcp_receive: ACK for 36271, unacked->seqno 36230:36271<LF><CR>

tcp_receive: removing 36230:36271 from pcb->unacked<LF><CR>

tcp_write(pcb=20001d14, data="" len=41, apiflags=0)<LF><CR>

tcp_enqueue(pcb=20001d14, arg=200058d8, len=41, flags=0, apiflags=0)<LF><CR>

tcp_enqueue: queueing 36271:36312 (0x0)<LF><CR>

tcp_output_segment: 36271:36312<LF><CR>

TCP header:<LF><CR>

+-------------------------------+<LF><CR>

|    50032      |    26486      | (src port, dest port)<LF><CR>

+-------------------------------+<LF><CR>

|           0314015361          | (seq no)<LF><CR>

+-------------------------------+<LF><CR>

|           0000036312          | (ack no)<LF><CR>

+-------------------------------+<LF><CR>

|  5 |   |010000|      1460     | (hdrlen, flags (<CR>

), win)<LF><CR>

+-------------------------------+<LF><CR>

|    0xded4     |         0     | (chksum, urgp)<LF><CR>

+-------------------------------+<LF><CR>

+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags <CR>

-+-+-+-+-+-+-+-+-+-+-+-+-+-+<LF><CR>

TCP header:<LF><CR>

+-------------------------------+<LF><CR>

|    50032      |    26486      | (src port, dest port)<LF><CR>

+-------------------------------+<LF><CR>

|           0314015361          | (seq no)<LF><CR>

+-------------------------------+<LF><CR>

|           0000036312          | (ack no)<LF><CR>

+-------------------------------+<LF><CR>

|  5 |   |011000|      1460     | (hdrlen, flags (<CR>

), win)<LF><CR>

+-------------------------------+<LF><CR>

|    0x68af     |         0     | (chksum, urgp)<LF><CR>

+-------------------------------+<LF><CR>

+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags <CR>

-+-+-+-+-+-+-+-+-+-+-+-+-+-+<LF><CR>

<LF>

TCP header:<LF><CR>

+-------------------------------+<LF><CR>

|    50032      |    26486      | (src port, dest port)<LF><CR>

+-------------------------------+<LF><CR>

|           0314015361          | (seq no)<LF><CR>

+-------------------------------+<LF><CR>

|           0000036312          | (ack no)<LF><CR>

+-------------------------------+<LF><CR>

|  5 |   |011000|      1460     | (hdrlen, flags (<CR>

), win)<LF><CR>

+-------------------------------+<LF><CR>

|    0x68af     |         0     | (chksum, urgp)<LF><CR>

+-------------------------------+<LF><CR>

+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags <CR>

-+-+-+-+-+-+-+-+-+-+-+-+-+-+<LF><CR>

tcp_receive: ACK for 36312, unacked->seqno 36271:36312<LF><CR>

tcp_receive: removing 36271:36312 from pcb->unacked<LF><CR>

tcp_receive: duplicate seqno 314015361<LF><CR>

tcp_output: sending ACK for 314015378<LF><CR>

tcp_write(pcb=20001d14, data="" len=41, apiflags=0)<LF><CR>

tcp_enqueue(pcb=20001d14, arg=200058d8, len=41, flags=0, apiflags=0)<LF><CR>

tcp_enqueue: queueing 36312:36353 (0x0)<LF><CR>

tcp_output_segment: 36312:36353<LF><CR>

TCP header:<LF><CR>

+-------------------------------+<LF><CR>

|    50032      |    26486      | (src port, dest port)<LF><CR>

+-------------------------------+<LF><CR>

|           0314015378          | (seq no)<LF><CR>

+-------------------------------+<LF><CR>

|           0000036353          | (ack no)<LF><CR>

+-------------------------------+<LF><CR>

|  5 |   |011000|      1419     | (hdrlen, flags (<CR>

), win)<LF><CR>

+-------------------------------+<LF><CR>

|    0x689e     |         0     | (chksum, urgp)<LF><CR>

+-------------------------------+<LF><CR>

+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags <CR>

-+-+-+-+-+-+-+-+-+-+-+-+-+-+<LF><CR>

tcp_receive: ACK for 36353, unacked->seqno 36312:36353<LF><CR>

tcp_receive: removing 36312:36353 from pcb->unacked<LF><CR>

<LF>

 

 

 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]