Назад | Перейти на главную страницу

Как установить размер буфера TCP в Windows 7

У меня 64-разрядная машина с Windows 7 с двумя отдельными приложениями, работающими на одной машине. Одно приложение записывает данные через 4 TCP-соединения (тот же IP, разные порты). Другое приложение считывает эти данные. Все это является внутренним для машины, хотя она подключена к сети.

Данные, совокупно около 8 МБ, записываются каждую секунду. Размер отдельных сообщений составляет от 50 КБ до ~ 60 КБ. 10-15 таких сообщений отправляются на каждый сокет раз в секунду. Это означает, что одно из подключений сбрасывает 5 Мбайт за раз (грубо говоря) каждую секунду.

Я установил следующие параметры:

Tcp1323Opts=1 
netsh int tcp set heuristics disabled

Я использовал setsockopts, чтобы установить для буфера приема значение 8 МБ для загруженного соединения и 2 МБ для соединений с меньшим дампом данных.

Наконец, вопросы:

  1. Это правильный подход? Для WinXP существует множество документов, но не так много для Win7.
  2. 3 соединения с меньшим объемом данных работают нормально, но 5-мегабайтное соединение иногда выходит из строя или выходит из строя, говоря, что системе пришлось закрыть соединение.
  3. Я думаю, что из того, что я прочитал, существует ограничение на размер окна приема 16 МБ. Это для всех подключений или доступно для каждого подключения?
  4. Если для каждого подключения, могу ли я установить для каждого подключения разный размер окна приема?
  5. И последнее, но не менее важное: я устанавливаю буфер передачи таким же, как буфер приема, через setsockopts. Это что-нибудь делает?