Como definir tamanhos de buffer TCP no Windows 7 [closed]

2

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:

  1. Esta é a maneira correta de abordar isso? Existem muitos documentos para o WinXP, mas não tanto para o Win7.
  2. As 3 conexões com menos dados estão indo bem, mas a de 5Mbyte ocasionalmente ou expira ou erros indicam que o sistema precisou fechar a conexão.
  3. Eu acho que pelo que li, há um limite de 16MB na janela de recebimento. Isso é para todas as conexões ou está disponível para cada conexão?
  4. Se por conexão, posso definir cada conexão com um tamanho de janela de recebimento diferente?
  5. E por último, mas não menos importante, estou configurando o buffer de transmissão da mesma forma que o buffer de recebimento via setsockopts. Isso está fazendo alguma coisa?
por Cat 29.07.2011 / 03:22

0 respostas

Tags