From owner-freebsd-bugs@FreeBSD.ORG Tue Dec 18 10:00:00 2012 Return-Path: Delivered-To: freebsd-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C1F63A2F for ; Tue, 18 Dec 2012 10:00:00 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 9383E8FC12 for ; Tue, 18 Dec 2012 10:00:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id qBIA00nO005131 for ; Tue, 18 Dec 2012 10:00:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id qBIA00rp005127; Tue, 18 Dec 2012 10:00:00 GMT (envelope-from gnats) Resent-Date: Tue, 18 Dec 2012 10:00:00 GMT Resent-Message-Id: <201212181000.qBIA00rp005127@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Alex Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id EDEC4A0F for ; Tue, 18 Dec 2012 09:57:45 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id CF4648FC12 for ; Tue, 18 Dec 2012 09:57:45 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.5/8.14.5) with ESMTP id qBI9vjUk039644 for ; Tue, 18 Dec 2012 09:57:45 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.5/8.14.5/Submit) id qBI9vjJt039643; Tue, 18 Dec 2012 09:57:45 GMT (envelope-from nobody) Message-Id: <201212180957.qBI9vjJt039643@red.freebsd.org> Date: Tue, 18 Dec 2012 09:57:45 GMT From: Alex To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: kern/174535: TCP fast retransmit feature works strange X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Dec 2012 10:00:00 -0000 >Number: 174535 >Category: kern >Synopsis: TCP fast retransmit feature works strange >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Dec 18 10:00:00 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Alex >Release: 9.0 >Organization: no organization >Environment: FreeBSD pcbsd-7470.localdomain 9.0-RELEASE FreeBSD 9.0-RELEASE #3: Tue Dec 27 14:14:29 PST 2011 root@build9x64.pcbsd.org:/usr/obj/builds/amd64/pcbsd-build90/fbsd-source/9.0/sys/GENERIC amd64 >Description: I'm writing an embedded TCP/IP stack for a microcontroller. Right now I'm trying to implement the fast retransmit feature. I'm using PC with FreeBSD 9.0 to test it. My implementation differs from that is in RFC-5681 in one aspect - I respond with two duplicate ACK's on the first out-of-order segment, not one. On every next out-of-order segment I send one duplicate ACK. The cause for the difference - I have little memory on my MCU, and I can only buffer up to 3 out-order-segments, so I wish to send 3 duplicate ACK's to trigger fast retransmit after receiving 2 out-of-order segments not 3. The program in the MCU works as an echo server - it returns back everything it gets. To test fast retransmit I have made my EMAC driver to discard every eighth IP datagram it receives. Below is the dump received by using this command "tcpdump -i msk0 port 3333". I have edit it to make it more understandable. Sometimes the fast retransmit does not work and I don't understand why. Can you comment on the data below? Also, if you are to take what tcpdump prints here literally - it looks like that PC sends segments of more than MSS bytes in size. Actually, it doesn't, and the data below is not correct. Can anything be done to tcpdump to make it display outgoing segments as they are? 11:34:53.761734 PC > MCU: Flags [S], seq 4035506106, win 65535, options [mss 1460,nop,wscale 6,sackOK,TS val 5606493 ecr 0], length 0 11:34:53.762832 ## MCU > PC: Flags [S.], seq 20878424, ack 4035506107, win 3645, options [mss 1215], length 0 11:34:53.762864 PC > MCU: Flags [.], ack 1, win 65535, length 0 11:34:53.763020 PC > MCU: Flags [P.], seq 1:1025, ack 1, win 65535, length 1024 ; Pac.1 11:34:53.763042 PC > MCU: Flags [P.], seq 1025:3073, ack 1, win 65535, length 2048 ; Pac.2&3 (first is lost, second is out-of-order) 11:34:53.764412 ## MCU > PC: Flags [.], ack 1025, win 2621, length 0 ; ACK on Pac.1 11:34:53.764423 ## MCU > PC: Flags [.], ack 1025, win 2621, length 0 ; DupACK.1 on Pac.3 11:34:53.764430 ## MCU > PC: Flags [.], ack 1025, win 2621, length 0 ; DupACK.2 on Pac.3 11:34:53.764436 ## MCU > PC: Flags [.], ack 1025, win 3645, length 0 11:34:53.764454 PC > MCU: Flags [.], seq 3073:4670, ack 1, win 65535, length 1597 ; Pac.4&5 (both are out-of-order) 11:34:53.765125 ## MCU > PC: Flags [P.], seq 1:1025, ack 1025, win 3645, length 1024 ; send back Pac.1 11:34:53.765629 ## MCU > PC: Flags [.], ack 1025, win 3645, length 0 ; DupACK.1 on Pac.4 11:34:53.765637 ## MCU > PC: Flags [.], ack 1025, win 3645, length 0 ; DupACK.1 on Pac.5 (where is the retransmission of Pac.2 ?) 11:34:53.864307 PC > MCU: Flags [.], ack 1025, win 65535, length 0 11:34:53.994308 PC > MCU: Flags [.], seq 1025:2240, ack 1025, win 65535, length 1215 11:34:53.997189 ## MCU > PC: Flags [P.], seq 1025:2240, ack 4670, win 1215, length 1215 ; retransmission of Pac.2 due to the timeout 11:34:53.997226 PC > MCU: Flags [.], seq 4670:5885, ack 2240, win 64395, length 1215 11:34:53.997230 ## MCU > PC: Flags [P.], seq 2240:3455, ack 4670, win 2048, length 1215 11:34:53.997241 ## MCU > PC: Flags [P.], seq 3455:4670, ack 4670, win 3645, length 1215 11:34:53.997263 PC > MCU: Flags [.], seq 5885:7100, ack 4670, win 61965, length 1215 11:34:53.997320 PC > MCU: Flags [.], ack 4670, win 65037, length 0 11:34:53.999894 ## MCU > PC: Flags [P.], seq 4670:5885, ack 7100, win 2430, length 1215 11:34:53.999933 PC > MCU: Flags [.], seq 7100:9530, ack 5885, win 64395, length 2430 11:34:53.999939 ## MCU > PC: Flags [P.], seq 5885:7100, ack 7100, win 3645, length 1215 11:34:53.999964 PC > MCU: Flags [.], seq 9530:10745, ack 7100, win 63180, length 1215 11:34:54.003596 ## MCU > PC: Flags [P.], seq 7100:8315, ack 10745, win 1214, length 1215 11:34:54.003632 PC > MCU: Flags [.], seq 10745:11959, ack 8315, win 64395, length 1214 11:34:54.003637 ## MCU > PC: Flags [P.], seq 8315:9530, ack 10745, win 2430, length 1215 11:34:54.003660 PC > MCU: Flags [.], seq 11959:13175, ack 9530, win 63180, length 1216 11:34:54.003664 ## MCU > PC: Flags [P.], seq 9530:10745, ack 10745, win 3645, length 1215 11:34:54.003688 PC > MCU: Flags [.], seq 13175:14390, ack 10745, win 61965, length 1215 ; Pac.M is lost 11:34:54.003739 PC > MCU: Flags [.], ack 10745, win 65106, length 0 11:34:54.006485 ## MCU > PC: Flags [P.], seq 10745:11960, ack 13175, win 2429, length 1215 11:34:54.006506 ## MCU > PC: Flags [P.], seq 11960:13175, ack 13175, win 3645, length 1215 11:34:54.006533 PC > MCU: Flags [.], seq 14390:16820, ack 13175, win 63180, length 2430 ; Pac.M+1&M+2&M+3 (all 3 are out-of-order) 11:34:54.007658 ## MCU > PC: Flags [.], ack 13175, win 3645, length 0 ; DupACK.1 on Pac.M+1 11:34:54.007672 ## MCU > PC: Flags [.], ack 13175, win 3645, length 0 ; DupACK.2 on Pac.M+1 11:34:54.007682 ## MCU > PC: Flags [.], ack 13175, win 3645, length 0 ; DupACK.1 on Pac.M+2 11:34:54.007707 PC > MCU: Flags [.], seq 13175:14390, ack 13175, win 65535, length 1215 ; fast retransmission of Pac.M after 3 DupACK's (correct) 11:34:54.007712 ## MCU > PC: Flags [.], ack 13175, win 3645, length 0 ; DupACK.1 on Pac.M+3 11:34:54.010482 ## MCU > PC: Flags [P.], seq 13175:14390, ack 16820, win 1215, length 1215 11:34:54.010513 PC > MCU: Flags [.], seq 16820:18035, ack 14390, win 64395, length 1215 11:34:54.010517 ## MCU > PC: Flags [P.], seq 14390:15605, ack 16820, win 2429, length 1215 11:34:54.010526 ## MCU > PC: Flags [P.], seq 15605:16820, ack 16820, win 3645, length 1215 11:34:54.010547 PC > MCU: Flags [.], ack 16820, win 61965, length 0 11:34:54.010606 PC > MCU: Flags [.], ack 16820, win 65175, length 0 11:34:54.012314 ## MCU > PC: Flags [P.], seq 16820:18035, ack 18035, win 3645, length 1215 11:34:54.012351 PC > MCU: Flags [.], seq 18035:20465, ack 18035, win 64395, length 2430 11:34:54.015098 ## MCU > PC: Flags [P.], seq 18035:19250, ack 20465, win 2429, length 1215 11:34:54.015136 PC > MCU: Flags [.], seq 20465:22894, ack 19250, win 64395, length 2429 11:34:54.015140 ## MCU > PC: Flags [P.], seq 19250:20465, ack 20465, win 3645, length 1215 11:34:54.015165 PC > MCU: Flags [.], seq 22894:24110, ack 20465, win 63180, length 1216 ; last Pac is lost (Pac.0) 11:34:54.018599 ## MCU > PC: Flags [P.], seq 20465:21680, ack 24108, win 1216, length 1215 11:34:54.018637 PC > MCU: Flags [.], seq 24110:25324, ack 21680, win 64395, length 1214 ; Pac.1 (out-of-order) 11:34:54.018643 ## MCU > PC: Flags [P.], seq 21680:22895, ack 24108, win 2431, length 1215 11:34:54.018667 PC > MCU: Flags [.], seq 25324:26539, ack 22895, win 63180, length 1215 ; Pac.2 (out-of-order) 11:34:54.018670 ## MCU > PC: Flags [.], ack 24108, win 3645, length 0 ; DupACK.1 on Pac.1 (actually it's not DupACK - my mistake) 11:34:54.020395 ## MCU > PC: Flags [P.], seq 22895:24108, ack 24108, win 3645, length 1213 11:34:54.020410 ## MCU > PC: Flags [.], ack 24108, win 3645, length 0 ; DupACK.2 on Pac.1 11:34:54.020435 PC > MCU: Flags [.], seq 26539:27753, ack 24108, win 64397, length 1214 ; Pac.3 (out-of-order) 11:34:54.020441 ## MCU > PC: Flags [.], ack 24108, win 3645, length 0 ; DupACK.1 on Pac.2 11:34:54.020449 ## MCU > PC: Flags [.], ack 24108, win 3645, length 0 ; DupACK.1 on Pac.3 11:34:54.020471 PC > MCU: Flags [.], seq 24108:25323, ack 24108, win 65535, length 1215 ; fast retransmission of Pac.0 after 3 DupACK's (correct) 11:34:54.023693 ## MCU > PC: Flags [P.], seq 24108:25323, ack 27753, win 1215, length 1215 11:34:54.023730 PC > MCU: Flags [.], seq 27753:28968, ack 25323, win 64395, length 1215 11:34:54.023734 ## MCU > PC: Flags [P.], seq 25323:26538, ack 27753, win 1216, length 1215 11:34:54.023743 ## MCU > PC: Flags [P.], seq 26538:27753, ack 27753, win 3645, length 1215 11:34:54.023764 PC > MCU: Flags [.], ack 27753, win 61965, length 0 11:34:54.023820 PC > MCU: Flags [.], ack 27753, win 64482, length 0 11:34:54.025497 ## MCU > PC: Flags [P.], seq 27753:28968, ack 28968, win 3645, length 1215 11:34:54.025535 PC > MCU: Flags [.], seq 28968:31398, ack 28968, win 64395, length 2430 11:34:54.026596 ## MCU > PC: Flags [.], ack 28968, win 3645, length 0 11:34:54.026625 PC > MCU: Flags [.], seq 31398:32613, ack 28968, win 65535, length 1215 11:34:54.026630 ## MCU > PC: Flags [.], ack 28968, win 3645, length 0 11:34:54.026638 ## MCU > PC: Flags [.], ack 28968, win 3645, length 0 11:34:54.026660 PC > MCU: Flags [.], seq 28968:30183, ack 28968, win 65535, length 1215 11:34:54.029798 ## MCU > PC: Flags [P.], seq 28968:30183, ack 32613, win 1215, length 1215 11:34:54.029827 PC > MCU: Flags [.], seq 32613:33828, ack 30183, win 64395, length 1215 11:34:54.029833 ## MCU > PC: Flags [P.], seq 30183:31398, ack 32613, win 2430, length 1215 11:34:54.029842 ## MCU > PC: Flags [P.], seq 31398:32613, ack 32613, win 3645, length 1215 11:34:54.029862 PC > MCU: Flags [.], ack 32613, win 62694, length 0 11:34:54.029906 PC > MCU: Flags [.], ack 32613, win 65535, length 0 11:34:54.031586 ## MCU > PC: Flags [P.], seq 32613:33828, ack 33828, win 3645, length 1215 11:34:54.031620 PC > MCU: Flags [.], seq 33828:36258, ack 33828, win 64395, length 2430 11:34:54.032683 ## MCU > PC: Flags [.], ack 33828, win 3645, length 0 11:34:54.032713 PC > MCU: Flags [.], seq 36258:37473, ack 33828, win 65535, length 1215 11:34:54.032718 ## MCU > PC: Flags [.], ack 33828, win 3645, length 0 11:34:54.032727 ## MCU > PC: Flags [.], ack 33828, win 3645, length 0 11:34:54.032749 PC > MCU: Flags [.], seq 33828:35043, ack 33828, win 65535, length 1215 11:34:54.035880 ## MCU > PC: Flags [P.], seq 33828:35043, ack 37473, win 1215, length 1215 11:34:54.035910 PC > MCU: Flags [.], seq 37473:38688, ack 35043, win 64395, length 1215 11:34:54.035914 ## MCU > PC: Flags [P.], seq 35043:36258, ack 37473, win 2430, length 1215 11:34:54.035923 ## MCU > PC: Flags [P.], seq 36258:37473, ack 37473, win 3645, length 1215 11:34:54.035943 PC > MCU: Flags [.], ack 37473, win 63978, length 0 11:34:54.037602 ## MCU > PC: Flags [P.], seq 37473:38688, ack 38688, win 3645, length 1215 11:34:54.037638 PC > MCU: Flags [.], seq 38688:41118, ack 38688, win 64395, length 2430 ; Pac.N&N+1&N+2 (N arrived, N+1 is lost, N+2 is out-of-order) 11:34:54.038699 ## MCU > PC: Flags [.], ack 39902, win 2431, length 0 ; ACK on Pac.N 11:34:54.038730 PC > MCU: Flags [.], seq 41118:42333, ack 38688, win 65535, length 1215 ; Pac.N+3 (out-of-order) 11:34:54.038735 ## MCU > PC: Flags [.], ack 39902, win 2431, length 0 ; DupACK.1 on Pac.N+2 11:34:54.038744 ## MCU > PC: Flags [.], ack 39902, win 2431, length 0 ; DupACK.2 on Pac.N+2 11:34:54.039201 ## MCU > PC: Flags [.], ack 39902, win 3645, length 0 11:34:54.039981 ## MCU > PC: Flags [P.], seq 38688:39902, ack 39902, win 3645, length 1214 ; send back Pac.N 11:34:54.039993 ## MCU > PC: Flags [.], ack 39902, win 3645, length 0 ; DupACK.1 on Pac.N+3 11:34:54.139308 PC > MCU: Flags [.], seq 42333:43546, ack 39902, win 65535, length 1213 ; Pac.N+4 (where is the retransmission of Pac.N+1 ?) 11:34:54.140325 ## MCU > PC: Flags [.], ack 39902, win 3645, length 0 ; DupACK.1 on Pac.N+4 << why delay ? >> 11:34:54.268309 PC > MCU: Flags [.], seq 39902:41117, ack 39902, win 65535, length 1215 11:34:54.270960 ## MCU > PC: Flags [P.], seq 39902:41117, ack 43546, win 1216, length 1215 11:34:54.270993 PC > MCU: Flags [.], seq 43546:44762, ack 41117, win 64395, length 1216 11:34:54.270999 ## MCU > PC: Flags [P.], seq 41117:42332, ack 43546, win 1217, length 1215 11:34:54.271009 ## MCU > PC: Flags [.], ack 43546, win 3645, length 0 11:34:54.273059 ## MCU > PC: Flags [P.], seq 42332:43546, ack 44760, win 2431, length 1214 11:34:54.273096 PC > MCU: Flags [.], seq 44762:47191, ack 43546, win 64396, length 2429 11:34:54.273101 ## MCU > PC: Flags [P.], seq 43546:44761, ack 44762, win 3643, length 1215 11:34:54.273111 ## MCU > PC: Flags [.], ack 44762, win 3645, length 0 11:34:54.273134 PC > MCU: Flags [.], seq 47191:48406, ack 44761, win 64882, length 1215 11:34:54.274748 ## MCU > PC: Flags [P.], seq 44761:44762, ack 45976, win 2431, length 1 11:34:54.274764 ## MCU > PC: Flags [.], ack 45976, win 2431, length 0 11:34:54.274773 ## MCU > PC: Flags [.], ack 45976, win 2431, length 0 11:34:54.274780 ## MCU > PC: Flags [.], ack 45976, win 2431, length 0 11:34:54.274805 PC > MCU: Flags [.], seq 45976:47191, ack 44762, win 65535, length 1215 11:34:54.274810 ## MCU > PC: Flags [.], ack 45976, win 3645, length 0 11:34:54.274832 PC > MCU: Flags [.], seq 48406:49621, ack 44762, win 65535, length 1215 11:34:54.275557 ## MCU > PC: Flags [P.], seq 44762:45976, ack 45976, win 3645, length 1214 11:34:54.278057 ## MCU > PC: Flags [P.], seq 45976:47191, ack 49621, win 1215, length 1215 11:34:54.278092 PC > MCU: Flags [.], seq 49621:50836, ack 47191, win 64395, length 1215 11:34:54.278096 ## MCU > PC: Flags [P.], seq 47191:48406, ack 49621, win 2430, length 1215 11:34:54.278106 ## MCU > PC: Flags [P.], seq 48406:49621, ack 49621, win 3645, length 1215 11:34:54.278129 PC > MCU: Flags [.], ack 49621, win 62070, length 0 11:34:54.278157 PC > MCU: Flags [.], ack 49621, win 65142, length 0 11:34:54.279860 ## MCU > PC: Flags [P.], seq 49621:50836, ack 50836, win 3645, length 1215 11:34:54.279896 PC > MCU: Flags [.], seq 50836:53266, ack 50836, win 64395, length 2430 11:34:54.280958 ## MCU > PC: Flags [.], ack 50836, win 3645, length 0 11:34:54.280988 PC > MCU: Flags [.], seq 53266:54481, ack 50836, win 65535, length 1215 11:34:54.280993 ## MCU > PC: Flags [.], ack 50836, win 3645, length 0 11:34:54.281001 ## MCU > PC: Flags [.], ack 50836, win 3645, length 0 11:34:54.281025 PC > MCU: Flags [.], seq 50836:52051, ack 50836, win 65535, length 1215 11:34:54.284155 ## MCU > PC: Flags [P.], seq 50836:52051, ack 54481, win 1215, length 1215 11:34:54.284185 PC > MCU: Flags [.], seq 54481:55696, ack 52051, win 64395, length 1215 11:34:54.284188 ## MCU > PC: Flags [P.], seq 52051:53266, ack 54481, win 2430, length 1215 11:34:54.284198 ## MCU > PC: Flags [P.], seq 53266:54481, ack 54481, win 3645, length 1215 11:34:54.284222 PC > MCU: Flags [.], ack 54481, win 63354, length 0 11:34:54.285963 ## MCU > PC: Flags [P.], seq 54481:55696, ack 55696, win 3645, length 1215 11:34:54.285996 PC > MCU: Flags [P.], seq 55696:56214, ack 55696, win 64395, length 518 11:34:54.287061 ## MCU > PC: Flags [P.], seq 55696:56214, ack 56214, win 3645, length 518 11:34:54.386305 PC > MCU: Flags [.], ack 56214, win 65535, length 0 11:34:54.779191 ## MCU > PC: Flags [P.], seq 55696:56214, ack 56214, win 3645, length 518 11:34:54.779249 PC > MCU: Flags [.], ack 56214, win 65535, length 0 11:35:03.638310 ## MCU > PC: Flags [R.], seq 56214, ack 56214, win 3645, length 0 Here is another situation. Now the EMAC driver inside my MCU discards every eighth outgoing IP frame, so the PC with FreeBSD receives an out-of-order segments. It should respond with duplicate ACK's, but I don't see any. Why? 08:20:22.800895 PC > MCU: Flags [S], seq 2408456684, win 65535, options [mss 1460,nop,wscale 6,sackOK,TS val 3018530 ecr 0], length 0 08:20:22.801486 ## MCU > PC: Flags [S.], seq 16962134, ack 2408456685, win 3645, options [mss 1215], length 0 08:20:22.801532 PC > MCU: Flags [.], ack 1, win 65535, length 0 08:20:22.801764 PC > MCU: Flags [P.], seq 1:1025, ack 1, win 65535, length 1024 08:20:22.801796 PC > MCU: Flags [P.], seq 1025:3073, ack 1, win 65535, length 2048 08:20:22.803470 ## MCU > PC: Flags [.], ack 2239, win 1407, length 0 08:20:22.805087 ## MCU > PC: Flags [P.], seq 1:1216, ack 3073, win 1597, length 1215 08:20:22.805129 PC > MCU: Flags [.], seq 3073:4670, ack 1216, win 64395, length 1597 08:20:22.805133 ## MCU > PC: Flags [P.], seq 1216:2431, ack 3073, win 2811, length 1215 08:20:22.805144 ## MCU > PC: Flags [.], ack 3073, win 3645, length 0 08:20:22.805167 PC > MCU: Flags [.], seq 4670:6718, ack 2431, win 63180, length 2048 08:20:22.808957 ## MCU > PC: Flags [P.], seq 2431:3073, ack 4287, win 2431, length 642 08:20:22.808996 PC > MCU: Flags [.], ack 3073, win 64968, length 0 08:20:22.809001 ## MCU > PC: Flags [P.], seq 3073:4288, ack 6718, win 1214, length 1215 08:20:22.809014 ## MCU > PC: Flags [P.], seq 5503:6718, ack 6718, win 3645, length 1215 ; out-of-order segment 08:20:22.809040 PC > MCU: Flags [.], seq 6718:10363, ack 4288, win 64395, length 3645 ; why not a duplicate ACK ? 08:20:22.812885 ## MCU > PC: Flags [P.], seq 6718:7933, ack 10363, win 1214, length 1215 08:20:22.812927 PC > MCU: Flags [.], seq 10363:11577, ack 4288, win 65535, length 1214 08:20:22.812931 ## MCU > PC: Flags [P.], seq 7933:9148, ack 10363, win 2428, length 1215 08:20:22.812954 PC > MCU: Flags [.], seq 11577:12791, ack 4288, win 65535, length 1214 08:20:22.812958 ## MCU > PC: Flags [P.], seq 9148:10363, ack 10363, win 3645, length 1215 08:20:22.812980 PC > MCU: Flags [.], seq 12791:14008, ack 4288, win 65535, length 1217 08:20:22.816786 ## MCU > PC: Flags [P.], seq 10363:11578, ack 14008, win 1214, length 1215 08:20:22.816828 PC > MCU: Flags [.], seq 14008:15222, ack 4288, win 65535, length 1214 08:20:22.816832 ## MCU > PC: Flags [P.], seq 11578:12793, ack 14008, win 2428, length 1215 08:20:22.816858 PC > MCU: Flags [.], seq 15222:16436, ack 4288, win 65535, length 1214 08:20:22.816862 ## MCU > PC: Flags [P.], seq 12793:14008, ack 14008, win 3645, length 1215 08:20:22.816883 PC > MCU: Flags [.], seq 16436:17653, ack 4288, win 65535, length 1217 08:20:22.820789 ## MCU > PC: Flags [P.], seq 15223:16438, ack 17653, win 2428, length 1215 08:20:22.820820 PC > MCU: Flags [.], seq 17653:20081, ack 4288, win 65535, length 2428 08:20:22.820824 ## MCU > PC: Flags [P.], seq 16438:17653, ack 17653, win 3645, length 1215 08:20:22.820848 PC > MCU: Flags [.], seq 20081:21298, ack 4288, win 65535, length 1217 08:20:22.824170 ## MCU > PC: Flags [P.], seq 17653:18868, ack 21298, win 1214, length 1215 08:20:22.824205 PC > MCU: Flags [.], seq 21298:22512, ack 4288, win 65535, length 1214 08:20:22.824209 ## MCU > PC: Flags [P.], seq 18868:20083, ack 21298, win 2428, length 1215 08:20:22.824230 PC > MCU: Flags [.], seq 22512:23726, ack 4288, win 65535, length 1214 08:20:22.825089 ## MCU > PC: Flags [P.], seq 20083:21298, ack 21298, win 3645, length 1215 08:20:22.825118 PC > MCU: Flags [.], seq 23726:24943, ack 4288, win 65535, length 1217 08:20:22.826795 ## MCU > PC: Flags [P.], seq 21298:22513, ack 23726, win 2431, length 1215 08:20:22.826825 PC > MCU: Flags [.], seq 24943:26157, ack 4288, win 65535, length 1214 08:20:22.826829 ## MCU > PC: Flags [.], ack 23726, win 3645, length 0 08:20:22.944021 ## MCU > PC: Flags [.], ack 26157, win 1214, length 0 08:20:23.324410 ## MCU > PC: Flags [P.], seq 4288:5503, ack 26157, win 1214, length 1215 ; retransmission due to the timeout 08:20:23.324463 PC > MCU: Flags [.], seq 26157:27371, ack 14008, win 55890, length 1214 >How-To-Repeat: With some developer's tools, I suppose. My TCP stack works on eZ80F91 MCU, but that is beside the point. >Fix: unknown >Release-Note: >Audit-Trail: >Unformatted: