如何在Windows 7中设置TCP缓冲区大小

我有一台Windows 7 64位机器,在同一台机器上运行两个独立的应用程序。 一个应用程序通过4个TCP连接(相同的IP,不同的端口)写入数据。 另一个应用程序读取数据。 所有这一切都在机器内部,尽pipe它连接到networking。

数据,大约8MB聚集,每秒写入。 个人消息大小从50KB到〜60KB。 这些消息中的10-15个每秒在每个套接字上发送一次。 这意味着其中一个连接是每秒一次(松散地)倾倒5M字节。

我已经设置了以下选项:

Tcp1323Opts=1 netsh int tcp set heuristics disabled 

我使用setsockopts设置接收缓冲区为8Mbytes的加载连接和2Mbytes的连接与较less的数据转储。

最后,问题是:

  1. 这是处理这个问题的正确方法吗? WinXP有很多文档,但Win7没有那么多。
  2. 数据较less的3个连接都没有问题,但5Mbyte偶尔会超时或错误地指出系统不得不closures连接。
  3. 我认为从我读到的接收窗口有一个16MB的限制。 这是所有连接,或可用于每个连接?
  4. 如果每个连接,我可以设置每个连接到不同的接收窗口大小?
  5. 最后但并非最不重要,我通过setsockopts设置发送缓冲区与接收缓冲区相同。 这是在做什么?