Ограничить скорость соединения в Python Twisted? - PullRequest
1 голос
/ 25 июля 2010

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

Ответы [ 2 ]

1 голос
/ 08 января 2012

Рассматривали ли вы использование токенов Bucket?

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

0 голосов
/ 25 июля 2010

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

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

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

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

...