Eu tenho uma máquina Windows 7 de 64 bits com dois aplicativos separados em execução na mesma máquina. Um aplicativo grava dados por meio de 4 conexões TCP (mesmo IP, portas diferentes). A outra aplicação lê esses dados. Tudo isso é interno à máquina, embora esteja conectado a uma rede.
Os dados, com cerca de 8MB agregados, são gravados a cada segundo. Os tamanhos das mensagens individuais estão entre 50 KB e 60 KB. 10-15 dessas mensagens são enviadas em cada soquete uma vez por segundo. Isso significa que uma das conexões está descarregando 5Mbytes de uma só vez (livremente), a cada segundo.
Eu defini as seguintes opções:
Tcp1323Opts=1
netsh int tcp set heuristics disabled
Eu usei setsockopts para definir o buffer de recebimento como 8Mbytes na conexão carregada e 2Mbytes nas conexões com menos de um dump de dados.
Finalmente, as perguntas: