kern/174535: TCP fast retransmit feature works strange

Alex darkmailbox at mail.ru
Tue Dec 18 10:00:00 UTC 2012


>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 at 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
<end of dump>

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
<end of dump>
>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:


More information about the freebsd-bugs mailing list