Прочтите значимые моменты в статье:
- Во-первых, мы сосредоточились на случае, когда только TCP-соединения используют всю пропускную способность сети.
- С увеличением количества TCP-соединений на узел может одновременно приходить большее количество пакетов, что сильно переполняет буфер и, таким образом, приводит к более частой потере пакетов.
Таким образом, тестируемый канал WAN насыщен, и тестирование проводится для обеспечения справедливости протоколов TCP и UDP. В статье 29 West, связанной в комментариях, также отмечается:
Миф - в сетях нет потерь
которые работают правильно.
Реальность - Нормальная работа TCP
контроль заторов может привести к потерям из-за
в очереди переполнения. См. этот отчет для
Дополнительная информация. Нормы потерь
несколько процентов были распространены под
тяжелые заторы.
Ничто из этого не является особенно новым или никого не должно удивлять. Рассмотрим домашнее подключение к Интернету, DSL или кабель с минимальной скоростью, например, 2 Мбит / с и настройте один компьютер с Bittorrent, загружая несколько больших файлов, теперь попробуйте запустить игру UDP, такую как Valve's Team Fortress 2. Это не будет работать хорошо.
С VoIP многие сетевые специалисты начали искать методы для улучшения этой ситуации, что приводит к качеству обслуживания. QoS, однако, требует сотрудничества обоих концов WAN, и это не приносит пользы большинству конечных пользователей. Единственное реальное решение - регулирование пропускной способности. Если у вас есть ссылка 2 МБ, вы задаете для трафика TCP значение 1,5 МБ, а оставшуюся часть оставляете для трафика UDP для игр.
Если вы разрабатываете игру с разделенным протоколом, вы должны определить верхний предел пропускной способности, скажем, 25 КБ / с на клиента для общего трафика, а затем определить отдельные пределы для трафика TCP и UDP в пределах этого ограничения, например, 15 КБ / с для TCP и 10 КБ / с для UDP. Как правило, игры используют HTTP (TCP) для загрузки игрового контента вне игры, а затем переключаются на UDP внутри игры, чтобы полностью устранить проблему.