Subject: looking for a "client pool" simulator

From: Oleg Goldshmidt <[email-masked]>
Date: 13 Nov 2001 10:40:06 +0200

Hi everybody,

I am developing an application that is related to a server that is
supposed to respond to requests from numerous clients, and I need a
framework to test it.  I do not have the resources to create multiple
physical clients, so I need a means to simulate them on a single
computer.

I am looking for a tool that is able to simulate a large number of
clients with different IP addresses, the clients will send TCP and/or
UDP traffic to the server, the server will send traffic in response,
and the response has to be processed on the computer running the
clients (not necessarily by each client, though that might be helpful;
minimally, I only need to verify that the response was _sent_ by the
server where it was supposed to be sent).

I envisage something like a host running a "client pool", with the
clients sending, for the sake of the argument, http GET (or other, I
am just using http as an example) requests to a web server at a rather
high rate, in random order. The clients IP addresses will be taken
from a pool, and the host will be the gateway to the whole pool of
addresses, as far as the server is concerned. Thus, all the traffic
from the server will get to the host, and will somehow be captured
there and analyzed.

I am primarily be interested in the "client pool" simulation
application, the rest (response capture etc) I can handle myself. If
there is a tool that does all the job, great.

I would like the whole thing to be open source and licensed so that I
could use it for commercial development (without including any code
into the final product). I'd prefer it to be portable between
different UNICes (if M$ is thrown it, fine), but at least it should
work on linux/x86.

Does anyone know of any such client pool simulator? I suppose I can
write one, but if there is one ready I'd like to take advantage of it.
Any suggestions as to how to design and implement one, what to pay
attention to, etc, are also welcome. 

As I mentioned above, the context is commercial, so I can't provide
much detail regarding what I am doing exactly. This should not be
relevant, because the server in question can be, say, a vanilla web
server, and I am only interested in verifying that it gets the
requests and the clients get the right replies under various
conditions. If what I wrote is too vague, I'll try to clarify as much
as I can.

Thanks in advance,

-- 
Oleg Goldshmidt | [email-masked] 
"If it ain't broken, it has not got enough features yet."