廉价的方式来检测http的客户往返时间

我想找出一个方法来检测连接到我的服务器端口80每个IP往返时间。 什么是这样做的好方法?

有很多连接,ping每个ip是不实际的。 我在想,不知何故测量服务器发送syn / ack数据包和服务器收到数据包之间的时间差。

有没有办法以便宜的价格logging? 也许使用一些神奇的tcpdumpfilter?

这个练习的目标是汇总数据和数字,如果有任何路由效率低下。 说一个地区的一个ISP可能路由不正确等

FWIWnetworking服务器是nginx

$ tcpinfo_rtt,$ tcpinfo_rttvar,$ tcpinfo_snd_cwnd,$ tcpinfo_rcv_space

information about the client TCP connection; available on systems that support the TCP_INFO socket option 

http://nginx.org/en/docs/http/ngx_http_core_module.html#variables

如果您有权访问Linux或UNIX计算机1 ,则应使用tcptrace 。 您只需要使用wireshark或tcpdump将客户端stream量捕获到pcap文件。

在具有该.pcap文件2之后 ,使用tcptrace -xtraffic <pcap_filename> 3 。 这将生成两个文本文件,该pcap中所有连接的平均RTT统计信息显示在名为traffic_stats.dat的底部。

 [mpenning@Bucksnort tcpperf]$ tcptrace -xtraffic willers.pcap mod_traffic: characterizing traffic 1 arg remaining, starting with 'willers.pcap' Ostermann's tcptrace -- version 6.6.1 -- Wed Nov 19, 2003 16522 packets seen, 16522 TCP packets traced elapsed wallclock time: 0:00:00.200709, 82318 pkts/sec analyzed trace file elapsed time: 0:03:21.754962 Dumping port statistics into file traffic_byport.dat Dumping overall statistics into file traffic_stats.dat Plotting performed at 15.000 second intervals [mpenning@Bucksnort tcpperf]$ [mpenning@Bucksnort tcpperf]$ cat traffic_stats.dat Overall Statistics over 201 seconds (0:03:21.754962): 4135308 ttl bytes sent, 20573.672 bytes/second 4135308 ttl non-rexmit bytes sent, 20573.672 bytes/second 0 ttl rexmit bytes sent, 0.000 bytes/second 16522 packets sent, 82.199 packets/second 200 connections opened, 0.995 conns/second 11 dupacks sent, 0.055 dupacks/second 0 rexmits sent, 0.000 rexmits/second average RTT: 67.511 msecs <------------------ [mpenning@Bucksnort tcpperf]$ 

.pcap使用的.pcap文件是当我通过一个从我的服务器中抽取数据的expect脚本中产生的一个捕获。 这是我如何产生循环…

 #!/usr/bin/python from subprocess import Popen, PIPE import time for ii in xrange(0,200): # willers.exp is an expect script Popen(['./willers.exp'], stdin=PIPE, stdout=PIPE, stderr=PIPE) time.sleep(1) 

结束注意事项:

  1. 一个Knoppix Live-CD就可以做到
  2. 过滤只捕获testingstream量
  3. 如果你使用其他选项, tcptrace能够非常详细的每sockets统计信息…
 ================================
 [mpenning @ Bucksnort tcpperf] $ tcptrace -lr willers.pcap
剩余1个arg,从'willers.pcap'开始
 Ostermann的tcptrace版本6.6.1  -  2003年11月19日星期三

看到16522个数据包,跟踪16522个TCP数据包
经过的挂钟时间:0:00:00.080496,205252 pkts / sec分析
跟踪文件已用时间:0:03:21.754962
 TCP连接信息:
跟踪200个TCP连接:
 TCP连接1:
        主机c:myhost.local:44781
        主持人:willers.local:22
         complete conn:RESET(SYNs:2)(FINs:1)
        第一包:2011年5月31日星期二22:52:24.154801
        最后一包:5月31日星期二22:52:25.668430 2011
        已用时间:0:00:01.513628
        总数据包:73
        文件名:willers.pcap
    c-> d:d-> c:
     总包数:34个包总数:39
     重置发送:4重置发送:0
      ack pkts发送:29 ack pkts发送:39
     纯粹的艾克送:11纯粹的艾克送:2
     袋发送:0袋发送:0
     发送邮件:0发送邮件:0
     最大麻袋/ ack:0麻袋最大/ ack:0
     发送唯一字节:发送2512个唯一字节:14336
     实际数据包:17个实际数据包:36
     实际数据字节数:2512个实际数据字节数:14336
      rexmt data pkts:0 rexmt data pkts:0
      rexmt数据字节数:0 rexmt数据字节数:0
      zwnd probe pkts:0 zwnd probe pkts:0
      zwnd探测字节:0 zwnd探测字节:0
      outoforder pkts:0 outoforder pkts:0
     推送数据pkts:17推送数据pkts:33
     发送的SYN / FIN分组:1/1发送的SYN / FIN分组:1/0
     请求1323 ws / ts:Y / Y请求1323 ws / ts:是/是
      adv风级:6 adv风级:1
      REQ麻袋:Y REQ麻袋:Y
     麻袋送:0麻袋送:0
     紧急数据pkts:0 pkts紧急数据pkts:0 pkts
     紧急数据字节:0字节紧急数据字节:0字节
      mss请求:1460字节mss请求:1460字节
     最大分段大小:最大792字节分段大小:1448字节
      min分段大小:16字节分段大小:32字节
      avg segm size:147字节avg segm size:398字节
     最大胜利adv:40832 bytes最大胜利adv:66608字节
      min win adv:5888 bytes min win adv:66608 bytes
     零胜利adv:0 times zero win adv:0 times
      avg win adv:14035 bytes avg win adv:66608 bytes
     初始窗口:32字节初始窗口:40字节
     初始窗口:1 pkts初始窗口:1 pkts
      ttlstream长度:2512字节ttlstream长度:不适用
     错过的数据:0字节错过的数据:不适用
     截断数据:0字节截断数据:0字节
     截断数据包:0个数据包截断数据包:0个数据包
     数据传输时间:1.181秒数据传输时间:1.236秒
     空闲时间最大:196.9毫秒空闲时间最大:196.9毫秒
     吞吐量:1660 Bps吞吐量:9471 Bps

      RTT样本:18个RTT样本:24
      RTT最小值:43.8 ms RTT最小值:0.0 ms
      RTT最大值:142.5 ms RTT最大值:7.2 ms
      RTT avg:68.5 ms RTT avg:0.7 ms
      RTT标准:35.8毫秒RTT标准:1.6毫秒

      3WHS的RTT:80.8 ms 3WHS的RTT:0.0 ms

      RTT full_sz smpls:1 RTT full_sz smpls:3
      RTT full_sz min:142.5 ms RTT full_sz min:0.0 ms
      RTT full_sz max:142.5 ms RTT full_sz max:0.0 ms
      RTT full_sz avg:142.5 ms RTT full_sz avg:0.0 ms
      RTT full_sz stdev:0.0 ms RTT full_sz stdev:0.0 ms

     亏损后ack:0亏损后ack:0
      segs cum acked:0 segs cum acked:9
     重复acks:0重复acks:1
     三重dupacks:0三重dupacks:0
      max#retrans:0 max#retrans:0
     分钟时间:0.0毫秒分钟时间:0.0毫秒
     最大恢复时间:0.0 ms最大恢复时间:0.0 ms
      avg retr时间:0.0 ms avg retr时间:0.0 ms
      sdv retr time:0.0 ms sdv retr time:0.0 ms
 ================================