Python & Simpy: имитировать ограниченную пропускную способность и перегрузку сети - PullRequest
0 голосов
/ 31 января 2020

Я использую simpy в своей реализации симулятора дискретной сети. Однако на данный момент мои серверы (мой собственный класс) обрабатывают любое количество полученных пакетов. Но в реальных сетях каждый сервер имеет определенную максимальную пропускную способность, которую я также хотел бы добавить в свой симулятор. Есть ли в simpy способ имитировать серверы, имеющие ограниченную емкость, и, следовательно, посмотреть, с какой скоростью трафика c начинается перегрузка?

1 Ответ

1 голос
/ 06 апреля 2020

Simpy имеет класс Resource для моделирования общих / ограниченных ресурсов. Различные типы ресурсов доступны для различных типов потребностей.

В вашем случае, если вы имеете дело с TCP-соединениями, у вас может быть Resource на каждом сервере, и машины, пытающиеся отправить сообщения на сервер, сначала должны "приобрести" этот ресурс, чтобы установить sh соединение (например, имитировать максимальное количество соединений). Это несколько похоже на пример Carwa sh в простой документации.

Если вы работаете с UDP-пакетами, вы можете заглянуть в ресурс Store и сделайте так, чтобы каждый пакет, отправленный на сервер, попадал в хранилище этого сервера перед обработкой. Если хранилище заполнено, пакет не доставлен.

...