Ограничить скорость соединения в Python Twisted?

1

Есть ли способ ограничить скорость соединения в Python Twisted? Мне нужно смоделировать медленный dataline, с тайм-аутами и, возможно, потерей данных и использовать скрученную инфраструктуру.

Теги:
twisted

2 ответа

1

Считаете ли вы использование витых маркеров токена?

http://en.wikipedia.org/wiki/Token_bucket http://twistedmatrix.com/documents/current/api/twisted.protocols.htb.html

0

этот пост предлагает три решения и обсуждает два возможных варианта: лучший из них - использовать iptables (или другое, в равной степени мощное и гибкое программное обеспечение брандмауэра, конечно), если ваша ОС поддерживает такое программное обеспечение (т.е. ограничивает скорость передачи данных за пределами скрученной); если ваша ОС не имеет такой мощности в вашем распоряжении, менее предпочтительное, но работоспособное решение, упомянутое там,

1) Создайте словарь {ip1: count1, ip2: count2,.} на сервере и проверьте подсчеты для каждого входящего соединения. Отключите связь transport.loseConnection(), если порог для ip: count превышены. Reset этот словарь для пустой dict {} каждую минуту с реактором .callLater таймер.

ограничение которого объясняется в сообщении как

Подход

(1) будет принимать accept() соединение и затем опустите его, давая хозяину на другом конце syn/ack, за которой следует закрытое соединение, а затем оно будет вероятно, попытайтесь снова подключиться немедленно.

  • 0
    Да, я видел этот пост .. Iptables это последний вариант.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню