1

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

1 ответ1

1

Все коммутаторы с ограничением скорости на порту или vlan должны позволять вам "симулировать" потерю пакетов. Если вашему приложению требуется 1 Мб трафика, установите ограничение чуть ниже этого, и коммутатор должен отбрасывать пакеты.

Помните, что все переключатели, которые имеют эту функцию, должны иметь выборку, чтобы иметь возможность ограничения. Например: порт 1 установлен на ограничение 1 Мб. Порт 1 отправляет трафик 2 Мб за доли секунды. Большая часть этого, вероятно, сделает это. Это связано с тем, что до тех пор, пока коммутатор не сможет обнаружить и измерить объем трафика, он не знает, что отбросить. В зависимости от вашего поставщика это может быть реализовано разными способами, некоторые буферы затем отбрасывают пакеты из буфера, а некоторые просто позволяют моментально входить и выходить, а затем ограничивать.

Если вы ищете, как именно будет реагировать ваше приложение, я бы предложил установить блок BSD прямо перед компьютером, на котором вы тестируете приложение. В BSD (только потому, что я использую их для своих брандмауэров) есть команда ipfw , которая позволит вам напрямую контролировать соединение. Итак, давайте предположим, что ваш текущий сценарий следующий:

+--------------------+      +----------------+
| Application Server | ---> | Client Machine |
+--------------------+      +----------------+

Я понимаю, что это было бы чрезмерным упрощением, но оно иллюстрирует концепцию. То, что вы можете сделать, это установить nat в середине и ограничить его

+--------------------+      +-----------------------+      +----------------+
| Application Server | ---> | Rate Limit Box        | ---> | Client Machine |
|           10.0.0.5 |      | 10.0.0.6  192.168.1.1 |      | 192.168.1.2    |
+--------------------+      +-----------------------+      +----------------+

Еще раз я знаю, что это чрезмерное упрощение. Я добавил IP-адреса, чтобы я мог показать вам, какие команды будут в BSD в поле ограничения скорости. Сначала настройте BSD в качестве обычного маршрутизатора, вы можете использовать pf sense и т.д. Затем вы можете добавить следующие команды в командной строке.

ipfw pipe 1 config bw 101Kbit
ipfw add 1 pipe 1 ip from 10.0.0.5 to 192.168.1.2
ipfw add 2 pipe 1 ip from 192.168.1.2 to 10.0.0.5

Это имитирует соединение 101кб с клиентом и сервером. Затем вы можете изменить значение 101 на что угодно, чтобы видеть, что происходит в различных пределах. Настоящее преимущество этого коммутатора по сравнению с коммутатором, который поддерживает ограничивающие функции, заключается в том, что он дешев (простой компьютер с парой интерфейсов) и что при необходимости можно использовать wireshark для захвата трафика, чтобы затем увидеть, что именно отбрасывается, и Сколько. Эта информация может быть очень полезна при разработке лучшего приложения.

по моему мнению

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .