我如何testing应用程序如何处理数千个TCP连接?

我们正在试图追查一个客户正在向我们的网关注入大量邮件的问题,并且在某个地方,他的连接被拒绝。 不幸的是,除此之外,客户还没有提供太多有用的数据,除了他似乎没有收到SYN ACK消息。

我们希望对服务进行一些testing,并确定在它扼杀之前它可以build立多less个TCP连接(以及后面的消息,我们可以注入)。 有没有我可以用来build立成千上万的TCP连接到目标的公用事业? 不需要有效载荷。

理想情况下,这个工具可以让我们了解它能够build立多less连接,或者有多快等等。

任何想法,高度赞赏!

您可以使用hping来生成stream量。 但是你最好试着去复制真实世界的负载。

hping例子

将TCP SYN数据包发送到主机example.com上的端口0(请注意,对于每个发送的数据包,hping将使源端口增加1):

hping example.com -S -V

将TCP SYN数据包发送到主机example.com上的端口443:

hping example.com -S -V -p 443

发送TCP数据包到主机example.com上的端口443并设置了SYN + ACK标志:

hping example.com -S -A -V -p 443

将TCP数据包发送到主机example.com上的端口443,同时设置SYN + ACK + FIN标志:

hping example.com -S -A -F -V -p 443

每5秒向主机example.com上的端口443发送TCP SYN数据包:

hping example.com -S -V -p 443 -i 5

每10万微秒(即每0.1秒或10每秒)发送TCP SYN包到主机example.com上的端口443。 请注意,详细信息已被删除:

hping example.com -S -p 443 -i u100000

每隔10000微秒(即每0.01秒或100每秒)发送一次TCP SYN数据包到主机example.com上的端口443:

hping example.com -S -p 443 -i u10000

每隔10000微秒(即每0.01秒或100每秒)发送TCP SYN包到主机example.com上的443端口。 500个数据包后停止:

hping example.com -S -p 443 -i u10000 -c 500