Hello Quake,
We are a lot closer to understanding this problem - which seems to affect both TCP and UDP traffic over IPv6.
For a TCP connection, the first two data link frames received from the remote system typically have lengths of 86 and 74 bytes - these sizes correspond to the size of the network layer content. All subsequently received data link frames on the connection have a size of at least 92 bytes - even if their network layer content is smaller.
If the data link frame has a size of 92 or 93 bytes, a checksum error is always reported and the frame is dropped/discarded.
Sometimes, after a while, the remote system might have enough data to send such that the resulting data link frame is 94 or more bytes in size - this passes the checksum test and (temporarily) unblocks the stalled connection.
My current guess is that the Intel I211 Gigabit Network driver is responsible for this problem - the network adapter is a complicated device that understands network and transport layer protocols and can fragment and coalesce data.
Have you changed any of the "Advanced Properties" of the adapter?
Could you issue the command reg export HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318} why.txt
and make the file why.txt available? This file will contain the advanced properties of all network adapters on the system.
Another thing that might be useful/interesting would be a new trace (with a slightly modified command) with IPv6 re-enabled. The new command is pktmon start --capture --comp all --flags 0x1F --trace --provider Microsoft-Windows-TCPIP --keywords 0x200700000000 --level 16 --file-name why.etl
The only differences in the commands is that "nics" has been replaced by "all" in order to capture packets at multiple points in their processing and the flags have been changed from their default of 0x12 to 0x1F.
Gary