压测tcpdump和精度控制

为了dump有用的数据,去除一些TCP协议握手的数据包,tcpdump有一些参数可以控制,过滤出push的数据包

1、tcpdump数据去除握手的数据包

     TCP/IP协议的数据包有一字段TCP flags (URG,ACK,PSH,RST,SYN,FIN),每个字段各占一个字节,其中PSH字段如果为1,则是client发往Server端的数据包,在tcpdump工具中,tcp[13]代表flag的数据值

     # Unskilled 32

     # Attackers 16 

     # Pester     8

     # Real       4

     # Security   2

     # Folks      1

因此,tcpdump -w online.pcap -s0 tcp and dst host 10.48.42.20 and port 1987 and 'tcp[13] & 8 != 0' and 'tcp[13] & 7 == 0' and 'tcp[13] & 4 == 0' and 'tcp[13] & 3 == 0' -vvv

通过该命令就能过滤掉一些握手的数据包,能够减少1/4的流量包

 

2、qps精度控制

     假设要发送的qps为m,控制精度在ms,平均在毫秒以内

     1、记录发送第一个数据包的当前时间:T

     2、发送第N-1个数据包的实际发送完成时间是:T(N-1)

     3、理论上开始发送N的时间是:T(N) = T + 1000/m * (N-1)

     4、if T(N) > T(N-1):

                 time.sleep(T(N) - T(N-1))

                 send(data)

          else:

                 send(data)



 



 

猜你喜欢

转载自jy-damon.iteye.com/blog/2355849