I've been tossing an idea around for the last 24 hours for a very simple
feature to add to TarProxy.  There's always a battle agains scope creep,
but this seems like it could have a nice payoff.  I'd like to hear your
thoughts.

As the doc on the project site (which needs some minor updating)
describes, Tokenizers generate tokens, which are fed to Classifiers,
which tell us how spammy the connection is.

I'm thinking about adding another class that can receive tokens in the
same way as Classifiers, which for the moment I'm calling Referees.

A Referee's job is simpler than a Classifier's job.  It looks for
behavior that breaks a set of rules, and puts the connection in a
penalty box upon seeing any such behavior.

For example, if a Tokenizer generates a meta-token when it sees "we do
not relay" sent by the proxied server, a Classifier can take that into
account in its classification calculations and eventually have an effect
on the connection.

A Referee can see that same token and IMMEDIATELY impose, say a 1-minute
penalty on the connection.  The connection will essentially go to sleep
for 1 minute before the server's response is forwarded to the remote
host.

Another Referee might notice attempts to send mail to bad email
addresses, and impose a 30-second penalty on the connection on each
attempt.

This is much less elegant than letting the Classifier process every
token and the Throttle change the connection parameters, but I think
there are several situations in which we can be certain enough to
respond immediately to various events.  It also provides some
functionality in a new installation with an untrained Classifier.

Once the penalty is over, the connection will resume at whatever rate
the Throttle decides is appropriate.  It won't "catch up" to keep the
*net* data rate the same; time will simply stop for the connection
during the penalty.

Any thoughts?

-- 
Marty Lamb
Martian Software
<mlamb at martiansoftware dot com>

----
: The tarproxy-list mailing list is archived at
:   http://www.mail-archive.com/tarproxy-list%40martiansoftware.com/
:
: To unsubscribe from this list, follow the instructions at
:   http://www.martiansoftware.com/contact.html
:
: TarProxy's project page can be found at
:   http://www.martiansoftware.com/tarproxy

Reply via email to