Synthetic Traffic Generation

I recently had a need to create a multitude of similar TCP sessions from a host to itself.  Wanted to document a few of the resources and potentially useful applications/frameworks I reviewed or considered while putting something together.  This will be primarily Windows focused since that’s the platform I’m investigating/troubleshooting, but I’m sure I will make detours into other arenas as I do my research.  Sessions will be short-lived, complete sessions from SYN to FIN, and sourced from an ephemeral port on the ethernet-associated IP of a host to a high (greater than 1024) port on the same ethernet IP.  This will be done to test the behavior of the system – and hosted applications – at a high ratio of TCP sessions to maximum concurrent TCP sessions, and at various levels of sessions in (and configured timeout values for) TCP sessions in TIME_WAIT state (see http://smallvoid.com/article/winnt-tcpip-max-limit.html for additional detail on the topic and parameters to be tested).

http://nmap.org

NMAP in conjunction with its scripting engine may be a quick and easy fit for this scenario.

http://info.iet.unipi.it/~luigi/dummynet/

Dummynet allows the configuration of a test network with user determined behavior in order to emulate the characteristics of a real-world network.

http://www.cs.unc.edu/~jeffay/papers/BROADNETS-07.pdf

Modeling and Generating TCP Application Workloads
Provides a methodology for capturing network flows for utilization in generation of similar workflows in the test/development environment.

http://www.item.ntnu.no/people/personalpages/fac/poulh/gensyn

GenSyn appears to isolate the network component of testing from the user component, and uses modeling to create the user portion of the session and an actual network for modeling that component.  Looks to be well built and developed and to extend several areas of past research, and may have some use cases in providing an ideal modeling of network behavior in the future, but I would have to say is overkill and too steep a learning curve for my current needs (as much as I’d like to be, I’m not yet any level of statistician).

http://code.google.com/p/ostinato/

Ostinato looks to be a very good possibility if I can make it generate a large number of TCP sessions in series.  Maybe this is feasible by throwing it in a “for, next” loop… didn’t look to be built into the scripting from an initial cursory glance.  Will run on Windows, that’s a plus.

Leave a Reply

Your email address will not be published. Required fields are marked *