The Throttle method limits the number of connections and
the connection rate to minimize the potential impact of a large
number of client connections over a short period of time. This can be
used to protect the server from a client application that is
malfunctioning or a deliberate denial-of-service attack in which the
attacker attempts to flood the server with connection attempts.
If the maximum number of client connections or maximum number of
connections per address is exceeded, the server will reject subsequent
connection attempts until the number of active client
sessions drops below the specified threshold. Note that adjusting
these values lower than the current connection limits will not affect
clients that have already connected to the server. For example, if
the Start method is called with the maximum number of clients
set to 100, and then the Throttle method is called lowering
that value to 75, no existing client connections will be affected by
the change. However, the server will not accept any new connections
until the number of active clients drops below 75.
Increasing the ConnectionRate value will force the server to slow
down the rate at which it will accept incoming client connection
requests. For example, setting this parameter to a value of 1000
would limit the server to accepting one client connection every
second, while a value of 250 would allow the server to accept four
client connections per second. Note that significantly increasing the
amount of time the server must wait to accept client connections can
exceed the connection backlog queue, resulting in client connections
being rejected.