Как я могу имитировать плохое интернет-соединение для целей тестирования?

Я разрабатываю онлайн-многопользовательскую игру. Он работает хорошо, когда я тестирую его в локальной сети, но прежде чем я его выпущу, я хотел бы проверить, как работает пользовательский опыт для тех, у кого нет такого хорошего соединения с сервером. Как я могу имитировать плохое интернет-соединение с высокой задержкой, низкой пропускной способностью, дрожанием и случайной потерей пакетов в локальной среде?

99 голосов | спросил Philipp 30 PM000000120000000631 2013, 12:31:06

6 ответов


62

Я думаю, Dummynet - это то, что вы ищете. Dummynet - это инструмент сетевой эмуляции, который может имитировать ограничения пропускной способности, задержки, потери пакетов и многое другое. Вы можете легко выбрать, какой трафик вы хотите перехватить и настроить ограничения, например. чтобы ограничить весь входящий трафик TCP до 2 Мбит /с, вы делаете

ipfw add pipe 2 in proto tcp
ipfw pipe 2 config bw 2Mbit/s

Вы видите, что выбор трафика выполняется известным брандмауэром ipfw, а в каналах предусмотрены ограничения.

Он доступен для FreeBSD, Linux и Windows.

ответил Marc Bury 30 PM00000010000000831 2013, 13:04:08
32

Сетевой концентратор

Если вы находитесь на Mac, вы можете использовать Network Link Conditioner.

Панель настройки кондиционера сети

Вы можете моделировать различные случаи плохих интернет-соединений, включая Edge и 3G.

Кроме того, вы можете создавать свои собственные профили со своими настройками:

Пользовательские профили кондиционера сети

Это бесплатная загрузка в Xcode (перейти к Xcode â † 'Open Developer Tool â † «Дополнительные инструменты для разработчиков» и загрузить Hardware IO Tools для Xcode ).

ответил grg 30 PM00000070000004831 2013, 19:01:48
14

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

Существует опция для окон под названием NetLimiter , но я не использовал ее, поэтому не могу ручаться за нее.

Просто нашел приложение Mac под названием SlowlyApp .

ответил Martin Tale 30 PM00000010000003331 2013, 13:02:33
7

Неуклюжий , для Windows Vista и amp; 7.

неуклюжий

ответил user2818782 11 Maypm15 2015, 15:40:32
6
  

Как смоделировать плохое интернет-соединение с высокой задержкой, низкой пропускной способностью, дрожанием и случайной потерей пакетов в локальной среде?

Если вы находитесь в Windows, вы можете попробовать SoftPerfect Connection Emulator . Это в основном драйвер, который внедряет себя между вашим приложением и сетевым уровнем (аналогичным Wireshark /WinPCAP) для выбранного сетевого адаптера и может имитировать ограниченную пропускную способность, задержку, потерю пакетов и другие вещи. Пользовательский интерфейс прост и понятен.

Это коммерческий продукт, но пробная версия позволяет вам делать 30-секундные всплески «помех», которые должны быть достаточно хороши для того, чтобы вы могли судить, делает ли этот инструмент то, что вы хотите.

Другой кросс-платформенный вариант DummyNet , который ведет себя аналогичным образом (через ipfw), но немного менее прост в использовании.

  

Я хотел бы проверить, как пользовательский опыт работает для тех, у кого нет такого хорошего соединения с сервером.

Я думаю, что эту часть вопроса можно было бы переформулировать как «как мне заниматься сетевой латентностью в моем приложении?» Одним из наиболее часто используемых и эффективных методов является Dead Reckoning . Связанная статья объясняет это лучше, чем я могу, но основная идея заключается в том, что ваши клиенты «имитируют», где каждый объект должен быть и что он должен делать по алгоритму. Всякий раз, когда объект отклоняется от этого алгоритма (т. Е. Вход игрока, серверное событие и т. Д.), Он отправляет обновление каждому клиенту.

ответил Justin ᚅᚔᚈᚄᚒᚔ 30 PM00000060000003831 2013, 18:46:38
4

Я не использовал его некоторое время, но я использовал Charles для тестирования этого. Это приложение с различными инструментами диагностики сети, включая моделирование проблем, о которых вы говорили: «плохое подключение к Интернету с высокой задержкой, низкая пропускная способность, джиттер и случайная потеря пакетов»

ответил jhocking 30 PM00000040000003631 2013, 16:34:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132