Hello @mensa84 ,
I would guess that the "re-ordering" takes place as the traffic is traversing the 5G part of the connection. Further guesses are that there is nothing that can be done short-term to improve the situation and that the Microsoft developers responsible for the TCP/IP stack are aware of the problem (but it make take a long time before any improvement is made available).
Here is a detailed explanation of what is happening:
22:18:14.936343 192.168.1.10.50647 > 84.116.34.253.8080: . 107727:109147(1420) ack 917 win 1022 (DF)
22:18:14.936344 192.168.1.10.50647 > 84.116.34.253.8080: . 109147:110567(1420) ack 917 win 1022 (DF)
22:18:14.936344 192.168.1.10.50647 > 84.116.34.253.8080: . 110567:111987(1420) ack 917 win 1022 (DF)
22:18:14.936344 192.168.1.10.50647 > 84.116.34.253.8080: . 111987:113407(1420) ack 917 win 1022 (DF)
22:18:14.936344 192.168.1.10.50647 > 84.116.34.253.8080: . 113407:114827(1420) ack 917 win 1022 (DF)
22:18:14.936345 192.168.1.10.50647 > 84.116.34.253.8080: . 114827:116247(1420) ack 917 win 1022 (DF)
22:18:14.936345 192.168.1.10.50647 > 84.116.34.253.8080: . 116247:117667(1420) ack 917 win 1022 (DF)
22:18:14.936345 192.168.1.10.50647 > 84.116.34.253.8080: P 117667:118453(786) ack 917 win 1022 (DF)
22:18:14.936377 192.168.1.10.50647 > 84.116.34.253.8080: . 118453:119873(1420) ack 917 win 1022 (DF)
22:18:14.936377 192.168.1.10.50647 > 84.116.34.253.8080: . 119873:121293(1420) ack 917 win 1022 (DF)
22:18:14.936377 192.168.1.10.50647 > 84.116.34.253.8080: . 121293:122713(1420) ack 917 win 1022 (DF)
22:18:14.936378 192.168.1.10.50647 > 84.116.34.253.8080: . 122713:124133(1420) ack 917 win 1022 (DF)
22:18:14.936378 192.168.1.10.50647 > 84.116.34.253.8080: . 124133:125553(1420) ack 917 win 1022 (DF)
22:18:14.936378 192.168.1.10.50647 > 84.116.34.253.8080: . 125553:126973(1420) ack 917 win 1022 (DF)
22:18:14.936378 192.168.1.10.50647 > 84.116.34.253.8080: . 126973:128393(1420) ack 917 win 1022 (DF)
22:18:14.936379 192.168.1.10.50647 > 84.116.34.253.8080: . 128393:129813(1420) ack 917 win 1022 (DF)
22:18:14.936379 192.168.1.10.50647 > 84.116.34.253.8080: . 129813:131233(1420) ack 917 win 1022 (DF)
22:18:14.936379 192.168.1.10.50647 > 84.116.34.253.8080: . 131233:132653(1420) ack 917 win 1022 (DF)
22:18:14.936379 192.168.1.10.50647 > 84.116.34.253.8080: P 132653:133055(402) ack 917 win 1022 (DF)
22:18:14.936443 192.168.1.10.50647 > 84.116.34.253.8080: . 133055:134475(1420) ack 917 win 1022 (DF)
22:18:14.936444 192.168.1.10.50647 > 84.116.34.253.8080: . 134475:135895(1420) ack 917 win 1022 (DF)
22:18:14.936444 192.168.1.10.50647 > 84.116.34.253.8080: . 135895:137315(1420) ack 917 win 1022 (DF)
22:18:14.936444 192.168.1.10.50647 > 84.116.34.253.8080: . 137315:138735(1420) ack 917 win 1022 (DF)
22:18:14.936444 192.168.1.10.50647 > 84.116.34.253.8080: . 138735:140155(1420) ack 917 win 1022 (DF)
22:18:14.936445 192.168.1.10.50647 > 84.116.34.253.8080: . 140155:141575(1420) ack 917 win 1022 (DF)
22:18:14.936445 192.168.1.10.50647 > 84.116.34.253.8080: . 141575:142995(1420) ack 917 win 1022 (DF)
22:18:14.936445 192.168.1.10.50647 > 84.116.34.253.8080: . 142995:144415(1420) ack 917 win 1022 (DF)
22:18:14.936445 192.168.1.10.50647 > 84.116.34.253.8080: . 144415:145835(1420) ack 917 win 1022 (DF)
22:18:14.936445 192.168.1.10.50647 > 84.116.34.253.8080: . 145835:147255(1420) ack 917 win 1022 (DF)
22:18:14.936446 192.168.1.10.50647 > 84.116.34.253.8080: . 147255:148675(1420) ack 917 win 1022 (DF)
22:18:14.936446 192.168.1.10.50647 > 84.116.34.253.8080: P 148675:149461(786) ack 917 win 1022 (DF)
22:18:14.936474 192.168.1.10.50647 > 84.116.34.253.8080: . 149461:150881(1420) ack 917 win 1022 (DF)
22:18:14.936475 192.168.1.10.50647 > 84.116.34.253.8080: . 150881:152301(1420) ack 917 win 1022 (DF)
22:18:14.936475 192.168.1.10.50647 > 84.116.34.253.8080: . 152301:153721(1420) ack 917 win 1022 (DF)
22:18:14.936475 192.168.1.10.50647 > 84.116.34.253.8080: . 153721:155141(1420) ack 917 win 1022 (DF)
22:18:14.936475 192.168.1.10.50647 > 84.116.34.253.8080: . 155141:156561(1420) ack 917 win 1022 (DF)
22:18:14.936475 192.168.1.10.50647 > 84.116.34.253.8080: . 156561:157981(1420) ack 917 win 1022 (DF)
22:18:14.936476 192.168.1.10.50647 > 84.116.34.253.8080: . 157981:159401(1420) ack 917 win 1022 (DF)
22:18:14.936476 192.168.1.10.50647 > 84.116.34.253.8080: . 159401:160821(1420) ack 917 win 1022 (DF)
22:18:14.936476 192.168.1.10.50647 > 84.116.34.253.8080: . 160821:162241(1420) ack 917 win 1022 (DF)
22:18:14.936476 192.168.1.10.50647 > 84.116.34.253.8080: . 162241:163661(1420) ack 917 win 1022 (DF)
22:18:14.936477 192.168.1.10.50647 > 84.116.34.253.8080: . 163661:165081(1420) ack 917 win 1022 (DF)
22:18:14.936477 192.168.1.10.50647 > 84.116.34.253.8080: P 165081:165867(786) ack 917 win 1022 (DF)
22:18:14.936503 192.168.1.10.50647 > 84.116.34.253.8080: . 165867:167287(1420) ack 917 win 1022 (DF)
22:18:14.936503 192.168.1.10.50647 > 84.116.34.253.8080: . 167287:168707(1420) ack 917 win 1022 (DF)
Now some acknowledgements are made available to the TCP stack, all grouped together (as a result of the "Interrupt Moderation" that we discussed earlier):
22:18:14.962886 84.116.34.253.8080 > 192.168.1.10.50647: . ack 102047 win 525 <nop,nop,sack 117667:118453> (DF)
22:18:14.967281 84.116.34.253.8080 > 192.168.1.10.50647: . ack 102047 win 525 <nop,nop,sack 104887:106307 117667:118453> (DF)
22:18:14.967282 84.116.34.253.8080 > 192.168.1.10.50647: . ack 106307 win 548 <nop,nop,sack 117667:118453> (DF)
22:18:14.967282 84.116.34.253.8080 > 192.168.1.10.50647: . ack 107727 win 570 <nop,nop,sack 117667:118453> (DF)
22:18:14.967282 84.116.34.253.8080 > 192.168.1.10.50647: . ack 107727 win 570 <nop,nop,sack 109147:110567 117667:118453> (DF)
22:18:14.967282 84.116.34.253.8080 > 192.168.1.10.50647: . ack 107727 win 570 <nop,nop,sack 111987:113407 109147:110567 117667:118453> (DF)
22:18:14.967282 84.116.34.253.8080 > 192.168.1.10.50647: . ack 107727 win 570 <nop,nop,sack 109147:113407 117667:118453> (DF)
22:18:14.967283 84.116.34.253.8080 > 192.168.1.10.50647: . ack 113407 win 592 <nop,nop,sack 117667:118453> (DF)
22:18:14.967283 84.116.34.253.8080 > 192.168.1.10.50647: . ack 114827 win 614 <nop,nop,sack 117667:118453> (DF)
22:18:14.967283 84.116.34.253.8080 > 192.168.1.10.50647: . ack 114827 win 614 <nop,nop,sack 116247:118453> (DF)
The last "ack" acknowledging 107727 also selectively acknowledges 118453 - something that was sent 7 (seven!) segments later than 107727 but which arrived earlier. This causes the TCP stack to conclude that the segment has been lost and to retransmit it (shown below). Because a group of acknowledgements were delivered at once, the trace above shows the segment at 107727 finally being acknowledged before the segment was retransmitted; this is because the stack is still "working through" the group and had not seen/processed the crucial acknowledgement at the time that the decision to retransmit was made.
22:18:14.967327 192.168.1.10.50647 > 84.116.34.253.8080: . 168707:170127(1420) ack 917 win 1022 (DF)
22:18:14.967336 192.168.1.10.50647 > 84.116.34.253.8080: . 107727:109147(1420) ack 917 win 1022 (DF)
Later, the TCP stack is unambiguously informed that the retransmitted segment was received twice via the "D-SACK block" mechanism:
22:18:14.997584 84.116.34.253.8080 > 192.168.1.10.50647: . ack 168707 win 786 <nop,nop,sack 107727:109147 171547:172967> (DF)
The Windows TCP stack seems to be able to cope with segments being deliver out-of-order provided the out-of-order "distance" is below 3 or so segments, but 7 segments is well beyond its capabilities.
The retransmission causes the "congestion window" to be reduced, and it is this that reduces the throughput. This pattern of retransmission occurs many times during the performance test.
The trace of the Microsoft-Windows-TCPIP provider shows that the receipt of the "D-SACK block" has no impact - it could/should reopen (perhaps just partially) the "congestion window" but it does nothing.
The trace also records a variable shown as "RackReoWind" which sounds as though it could be used to increase the size of the "re-ordering window", but it is just reported as zero throughout the trace.
Gary