|
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> |
[Prev in Thread] | Current Thread | [Next in Thread] |