This got a bit wordy, so there's a short version and a long version.
Given control over machine A (gentoo linux) and machine B (probably windows,
but I could find a linux one at a pinch), can anyone recommend any tools or
techniques with which I could cause a specified, large number of tcp
connections to be simultaneously set up between A and B? I don't just mean
having a known number of connections open, I mean they should be being set
up simultaneously -ie. A has sent N SYNs, but has not sent any ACKs yet.
The reason for this is that my cable modem (or some other part of my
provider's setup) has a problem which causes it to occasionally stop
working, requiring a powerdown/powerup of the modem to reconnect. Suffice
it to say that I have no expectation of the ISP even admitting to the
existence of the problem, let alone fixing it.
I have observed that the fault occurs when there are a large number of
simultaneous tcp connections, such as when bittorrent is running. Large
data rates do not cause a problem, as I can download and upload at maximum
data rates through one connection at a time without any trouble.
I have occasionally had many connections open at one time without the fault
occurring, and I have seen the fault occur when there haven't been that
many connections up. However, there are always multiple connections open.
This is what makes me think perhaps the problem might be to do with
simultaneously *setting up* numerous connections, rather than maintaining
What I would like to do is figure out exactly which situations cause this
problem and then use my packet filter or some kind of traffic shaping tool
to prevent the situation from occurring.
I have much to learn before I can complete this, but perhaps someone could
help with the first step. Can anyone recommend any tools or techniques with
which I could cause a specified, large number of tcp connections to be
simultaneously established with another machine over the internet?