15

On a multi-tier application, I need to simulate various TCP/IP errors to test some reconnection code. Does anyone know of any tools (Windows based) I can use for this purpose? Thanks.

bortzmeyer
  • 34,164
  • 12
  • 67
  • 91
Tom A
  • 1,662
  • 2
  • 23
  • 41
  • Got some great answers here. I'll post back as soon as I can try these out. Thanks everyone. – Tom A Jan 25 '10 at 16:23
  • Hi, Have you been able to test them? I want to introduce some errors which TCP cannot detect I wonder how. – Arash Jul 02 '23 at 18:09

5 Answers5

6

Scapy allows you to control every aspect of the packets, and randomly modify ("fuzz") the ones you don't want to control. If you're a command-line kind of guy, it's a great tool.

tbroberg
  • 635
  • 3
  • 11
5

Try netwox (formerly lcrzoex.) If it won't do it, it can't be done. It contains >200 tools.

Tyr
  • 560
  • 3
  • 5
1

On FreeBSD, the best tool, by far, is dummynet, "a tool originally designed for testing networking protocols, and since then used for a variety of applications including bandwidth management. It simulates/enforces queue and bandwidth limitations, delays, packet losses, and multipath effects."

On Linux, you will have to use netem. (It seems there is now a port of dummynet but I never tried it.)

More details (in French) in my article.

bortzmeyer
  • 34,164
  • 12
  • 67
  • 91
  • Unfortunately, neither of these would work as we're a Windows shop, and I don't have time to try to port them. Thanks Though. – Tom A Jan 25 '10 at 17:10
1

Clumsy is a good tool for TCP error simulation on Windows. It can simulate (copy-pasted from link above):

  • Lag, hold the packets for a short period of time to emulate network lagging.
  • Drop, randomly discard packets.
  • Throttle, block traffic for a given time frame, then send them in a single batch.
  • Duplicate, send cloned packets right after to the original one.
  • Out of order, re-arrange the order of packets.
  • Tamper, nudge bits of packet's content.
Nikita Levanov
  • 329
  • 3
  • 7
  • I've just tried clumsy and it's pretty good! It seems to be more brutal in effect than what the parameters seem to imply, but certainly does the job of messing up the transmissions. (e.g. I found adding a 50ms lag, totally breaks TCP which I would't have anticipated) – scipilot May 08 '16 at 06:35
  • Even with all the "Functions" off, when it's "Started" the traffic is always seriously broken. So it's not working properly...but does make errors. – scipilot May 08 '16 at 07:02
0

No tools that I'm aware of, but most of TCP errors can be emulated by a custom LSP filter. This article can get you started writing one


Rom
  • 4,129
  • 23
  • 18