BrowserUk has asked for the wisdom of the Perl Monks concerning the following question:

Does anyone have, or know of (and recommend!) a free tcp stress test tool that'll run under win32?

I need something with quite basic facilities. Given a host/port it should:

  • Make connections (logging time between first syn and ack)
  • Send (configurable) volumes of data (in configurable blocks) receiving any replies, logging throughput.
  • Randomly make new connections and drop old ones midstream.
  • Log everything.

    I started writing my own, but this has to exist somewhere?


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
    "Science is about questioning the status quo. Questioning authority".
    The "good enough" maybe good enough for the now, and perfection maybe unobtainable, but that should not preclude us from striving for perfection, when time, circumstance or desire allow.
  • Replies are listed 'Best First'.
    Re: tcp stress test tools (Win32)
    by NetWallah (Canon) on Oct 17, 2005 at 05:27 UTC
      I have been searching for a similar beast myself, but have not found anything completely satisfactory yet - I have met immediate needs with the traffic generator from sourceforge, but that was quite buggy and old.

      This is a link to a list of traffic tools , of which this one looks promising. Dont bother with Sourceforge - they offer only antique and brittle traffic tools.

      Please post your selection info here when you get done.

           "Man cannot live by bread alone...
               He'd better have some goat cheese and wine to go with it!"

        Thankyou. It's early days yet, but iperf seems to do most of what I need, and has very easily used docs too.

        It took under 4 minutes to down load and run my first test, and it does most of what I hoped for--and probably more.

        C:\downloaded\iperf>iperf -c localhost -p 12345 -P 10 ------------------------------------------------------------ Client connecting to localhost, TCP port 12345 TCP window size: 8.00 KByte (default) ------------------------------------------------------------ [1924] local 127.0.0.1 port 4286 connected with 127.0.0.1 port 12345 [1912] local 127.0.0.1 port 4287 connected with 127.0.0.1 port 12345 [1896] local 127.0.0.1 port 4288 connected with 127.0.0.1 port 12345 [1880] local 127.0.0.1 port 4289 connected with 127.0.0.1 port 12345 [1864] local 127.0.0.1 port 4290 connected with 127.0.0.1 port 12345 [1848] local 127.0.0.1 port 4291 connected with 127.0.0.1 port 12345 [1832] local 127.0.0.1 port 4292 connected with 127.0.0.1 port 12345 [1816] local 127.0.0.1 port 4293 connected with 127.0.0.1 port 12345 [1800] local 127.0.0.1 port 4294 connected with 127.0.0.1 port 12345 [1784] local 127.0.0.1 port 4295 connected with 127.0.0.1 port 12345 server sent unexpected data failed [ ID] Interval Transfer Bandwidth [1848] 0.0-31.0 sec 424 KBytes 112 Kbits/sec server sent unexpected data failed [1784] 0.0-32.0 sec 424 KBytes 108 Kbits/sec server sent unexpected data failed [1832] 0.0-32.4 sec 424 KBytes 107 Kbits/sec server sent unexpected data failed [1816] 0.0-32.5 sec 424 KBytes 107 Kbits/sec server sent unexpected data failed [1880] 0.0-60.0 sec 1.27 MBytes 178 Kbits/sec server sent unexpected data failed [1912] 0.0-74.4 sec 1.86 MBytes 210 Kbits/sec server sent unexpected data failed [1896] 0.0-76.2 sec 2.08 MBytes 229 Kbits/sec read on server close failed: Connection reset by peer [1864] 0.0-130.3 sec 9.96 MBytes 641 Kbits/sec read on server close failed: Connection reset by peer [1800] 0.0-130.5 sec 9.93 MBytes 638 Kbits/sec read on server close failed: Connection reset by peer [1924] 0.0-130.8 sec 6.04 MBytes 387 Kbits/sec [SUM] 0.0-130.8 sec 32.8 MBytes 2.10 Mbits/sec

        Unless it suddenly stops working, I doubt I shall need to look further. I'd already been through half a dozen "tcp traffic generators" (TrafficEmulator, Blast2.0, FSMax2.0 etc.) but they are very limited in their application. Searching turns up many, many hits, but like man's multi-track mind, some are dead ends, and many of the others lead to the same places :)


        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
        "Science is about questioning the status quo. Questioning authority".
        The "good enough" maybe good enough for the now, and perfection maybe unobtainable, but that should not preclude us from striving for perfection, when time, circumstance or desire allow.
    Re: tcp stress test tools (Win32)
    by McDarren (Abbot) on Oct 17, 2005 at 05:30 UTC
      Have you looked at ethereal?
      I'm not sure whether or not it can actually generate packets (I haven't used it myself), but it might be worth a look :)
        Ethereal doesn't generate traffic, it only captures traffic, and allows analysis on them. A great tool, though.