Как уменьшить задержку TCP для игр?

6

Я использую Ubuntu для игр. В конкурентных играх каждый миллисекунда имеет значение.

Я знаю, что многие люди, которые используют Windows, используют что-то, называемое Leatrix Latency Fix , которое в основном является скриптом которые изменяют TCPAckFrequency. Это уменьшает латентность онлайн-игр за счет увеличения частоты подтверждений TCP, отправленных на игровой сервер.

В Mac OS X вы можете получить этот эффект, запустив sudo sysctl -w net.inet.tcp.delayed_ack=0 .

Я слышал, что ядро ​​Linux имеет очень сложный стек IP и может использовать много разных алгоритмов предотвращения переполнения TCP. Я не знаю, имеет ли это отношение к частоте подтверждения TCP. Я также слышал, что ядро ​​Linux автоматически настраивает параметры TCP / IP для оптимальной производительности.

Есть ли что-нибудь, что я могу сделать, чтобы уменьшить задержку TCP / IP?

    
задан Anonymous 18.02.2012 в 18:49
источник

2 ответа

2

Ну, вы должны убедиться, что все остальное вне вашего компьютера ведет себя красиво.

Запустите traceroute на игровом сервере. . ? Это нормально или происходит в тех местах, где это не должно быть?

Например, хоп из Нью-Йорка в Лондон будет добавлять латентность. Пятьдесят или около того миллисекунды до первого прыжка после вашего маршрутизатора, вероятно, означают неисправное оборудование на вашей последней миле; двойная проверка со своими соседями.

Сколько времени у вас есть на вашем маршрутизаторе? Переход от wifi к проводному подключению может быть не всегда возможным, но он может просто побрить пять или около того миллисекунд.

Является ли ваш компьютер достаточно хорошим для игры? Иногда игра будет иметь субоптимальную производительность под Wine, и хорошо, если игра не сможет обрабатывать пакеты в течение времени в оба конца (ваша латентность к игре сервер, измеренный через ping или traceroute удвоился), тогда узкое место фактически не является сетью.

Отличается ли ваш пинг? Большинство игр в реальном времени требуют, чтобы интерполяция выполнялась плавно. Это означает, что вы на самом деле играете «в прошлом». Например, в играх Source каждый игрок работает на 0,1 секунды в прошлом, что означает, что все игроки с задержкой в ​​двойных цифрах фактически играют на четном поле. Лично я играю в 160 пинг на TF2-серверах в США и на самом деле не слишком много проблем с ним. Подробнее здесь . Читайте здесь о сетевом стеке Unreal.

    
ответ дан badp 18.02.2012 в 19:45
0

Мой отец был большим поклонником TCP Doctor или какой-то такой программы в Windows, потому что он поклялся, что его интернет был намного быстрее с ним. Лично я никогда не видел разницы. Но он спросил меня, как он может это сделать в Linux. Он был настолько разочарован, что не мог использовать программу. Итак, я сделал свое исследование. Вы правы, Linux активно настраивает окно приема TCP и многие другие аспекты TCP автоматически. Если у вас нет реальных проблем, я оставил бы это как есть.

Однако, если вы чувствуете, что вам нужно настроить его, это достойная ссылка (но имейте в виду, что все эти файлы, о которых они говорят, автоматически управляются и корректируются ядром, если вы не изменяете их во время выполнения): < a href="http://www.speedguide.net/articles/linux-tweaking-121"> Ссылка

    
ответ дан Chuck R 18.02.2012 в 19:06