Could anybody direct me to a tool that could be used to simulate a
cluster of heterogeneous servers, e.g., Linux, Windows, Sun etc.? I
need to do simulations for a new protocol that would need to specify
custom messages (not just standard TCP messages). I would also like
the tool to support encryption, like RSA.

I looked into ns2, but it is really hard to specify arbitrary messages
in that.

Can anybody guide me to such a tool? If you've used the particular
tool before, could you also point me to some manual or documentation?

I'd also like to know peoples' opinion on whether it is better to use
a simulation tool or whether it is better to just hard-code the whole
thing myself? In case of hard-coding, which do you think is a better
implementation language? C or Java?

Thanks in advance,