網路兩端延時測試指令碼

振宇要低調發表於2016-12-22

本工具能夠在tcp層面測試網路兩端之間的rtt。原理是通過在client端與server端建立tcp 連線,之後通過該連線傳輸多個資料包,記錄傳輸時間,最終算出rtt的平均值。

1、Server端

指令碼:server.py

import socket
import sys
import time

ISOTIMEFORMAT='%Y-%m-%d %X'
address = ('0.0.0.0', int(sys.argv[1]))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(address)
s.listen(5)
var = 1
while var == 1 :
  ss, addr = s.accept()
  ss.send('a')
  ra = ss.recv(512)
ss.close()
s.close()

執行方法

#8384代表服務端監聽的埠
[root@ip-172-31-34-116 centos]# python server.py 8384

2、Client端

指令碼:client.py

import socket
import sys
import time

address = (sys.argv[1], int(sys.argv[2]))
var = int(sys.argv[3])
totalUseTime=0.0
while var > 0:
  startTime=time.time()
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  s.connect(address)
  s.send('a')
  data = s.recv(512)
  endTime=time.time()
  useTime=(endTime-startTime)*1000
  var-=1
  totalUseTime+=useTime
avgUseTime=totalUseTime/int(sys.argv[3])/2
print "Average rtt:",avgUseTime,"ms"
s.close()

執行方法

#引數意義:serverIP、serverPort、發包個數
[root@host-10-0-251-193 ~]# python client1.py 54.194.183.141 8384 4
Average rtt: 376.674851179 ms

 本工具與ping測試的rtt結果值對比(同時執行)

[root@host-10-0-251-193 ~]# python client1.py 54.194.183.141 8384 2
Average rtt: 375.127196312 ms
[root@host-10-0-251-193 ~]# python client1.py 54.194.183.141 8384 4
Average rtt: 374.948233366 ms
[root@host-10-0-251-193 ~]# python client1.py 54.194.183.141 8384 4
Average rtt: 375.898361206 ms
[root@host-10-0-251-193 ~]# python client1.py 54.194.183.141 8384 5
Average rtt: 375.646829605 ms
[root@host-10-0-251-193 ~]# python client1.py 54.194.183.141 8384 5
Average rtt: 376.039791107 ms
[root@host-10-0-251-193 ~]# python client1.py 54.194.183.141 8384 5
Average rtt: 374.842524529 ms
[root@host-10-0-251-193 ~]# python client1.py 54.194.183.141 8384 10
Average rtt: 376.598083973 ms
[root@host-10-0-251-193 ~]# python client1.py 54.194.183.141 8384 10
Average rtt: 375.741624832 ms
[root@host-10-0-251-193 ~]# ping 54.194.183.141 
PING 54.194.183.141 (54.194.183.141) 56(84) bytes of data.
64 bytes from 54.194.183.141: icmp_seq=1 ttl=37 time=369 ms
64 bytes from 54.194.183.141: icmp_seq=2 ttl=37 time=356 ms
64 bytes from 54.194.183.141: icmp_seq=3 ttl=37 time=369 ms
64 bytes from 54.194.183.141: icmp_seq=4 ttl=37 time=378 ms
64 bytes from 54.194.183.141: icmp_seq=5 ttl=37 time=378 ms
64 bytes from 54.194.183.141: icmp_seq=6 ttl=36 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=7 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=8 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=9 ttl=37 time=382 ms
64 bytes from 54.194.183.141: icmp_seq=10 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=11 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=12 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=13 ttl=36 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=14 ttl=37 time=382 ms
64 bytes from 54.194.183.141: icmp_seq=15 ttl=37 time=378 ms
64 bytes from 54.194.183.141: icmp_seq=16 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=17 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=18 ttl=36 time=370 ms
64 bytes from 54.194.183.141: icmp_seq=19 ttl=37 time=365 ms
64 bytes from 54.194.183.141: icmp_seq=20 ttl=37 time=365 ms
64 bytes from 54.194.183.141: icmp_seq=21 ttl=37 time=366 ms
64 bytes from 54.194.183.141: icmp_seq=22 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=23 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=24 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=25 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=26 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=27 ttl=36 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=28 ttl=37 time=382 ms
64 bytes from 54.194.183.141: icmp_seq=29 ttl=37 time=376 ms
64 bytes from 54.194.183.141: icmp_seq=30 ttl=37 time=377 ms
64 bytes from 54.194.183.141: icmp_seq=32 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=33 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=34 ttl=37 time=370 ms
64 bytes from 54.194.183.141: icmp_seq=35 ttl=37 time=374 ms
64 bytes from 54.194.183.141: icmp_seq=36 ttl=37 time=377 ms
64 bytes from 54.194.183.141: icmp_seq=38 ttl=37 time=370 ms
64 bytes from 54.194.183.141: icmp_seq=39 ttl=37 time=374 ms
64 bytes from 54.194.183.141: icmp_seq=40 ttl=37 time=366 ms
64 bytes from 54.194.183.141: icmp_seq=41 ttl=37 time=378 ms
64 bytes from 54.194.183.141: icmp_seq=42 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=43 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=44 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=45 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=46 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=47 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=48 ttl=36 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=49 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=50 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=51 ttl=36 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=52 ttl=37 time=382 ms
64 bytes from 54.194.183.141: icmp_seq=53 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=54 ttl=37 time=376 ms
64 bytes from 54.194.183.141: icmp_seq=55 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=56 ttl=37 time=378 ms
64 bytes from 54.194.183.141: icmp_seq=57 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=58 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=59 ttl=37 time=382 ms
64 bytes from 54.194.183.141: icmp_seq=60 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=62 ttl=37 time=372 ms
64 bytes from 54.194.183.141: icmp_seq=63 ttl=36 time=371 ms
64 bytes from 54.194.183.141: icmp_seq=64 ttl=36 time=366 ms
64 bytes from 54.194.183.141: icmp_seq=65 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=66 ttl=36 time=376 ms
64 bytes from 54.194.183.141: icmp_seq=67 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=68 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=69 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=70 ttl=37 time=381 ms
64 bytes from 54.194.183.141: icmp_seq=71 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=72 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=73 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=74 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=75 ttl=36 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=76 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=77 ttl=37 time=378 ms
64 bytes from 54.194.183.141: icmp_seq=78 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=79 ttl=36 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=80 ttl=36 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=81 ttl=37 time=380 ms
64 bytes from 54.194.183.141: icmp_seq=82 ttl=37 time=373 ms
64 bytes from 54.194.183.141: icmp_seq=83 ttl=37 time=372 ms
64 bytes from 54.194.183.141: icmp_seq=84 ttl=37 time=375 ms
64 bytes from 54.194.183.141: icmp_seq=85 ttl=37 time=372 ms
64 bytes from 54.194.183.141: icmp_seq=86 ttl=37 time=370 ms
64 bytes from 54.194.183.141: icmp_seq=87 ttl=37 time=376 ms
64 bytes from 54.194.183.141: icmp_seq=88 ttl=37 time=372 ms
64 bytes from 54.194.183.141: icmp_seq=89 ttl=37 time=370 ms
64 bytes from 54.194.183.141: icmp_seq=90 ttl=37 time=368 ms
64 bytes from 54.194.183.141: icmp_seq=91 ttl=36 time=377 ms
64 bytes from 54.194.183.141: icmp_seq=92 ttl=36 time=378 ms
64 bytes from 54.194.183.141: icmp_seq=93 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=94 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=95 ttl=37 time=376 ms
64 bytes from 54.194.183.141: icmp_seq=96 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=97 ttl=37 time=379 ms
64 bytes from 54.194.183.141: icmp_seq=99 ttl=37 time=374 ms
^C
--- 54.194.183.141 ping statistics ---
100 packets transmitted, 95 received, 5% packet loss, time 99113ms
rtt min/avg/max/mdev = 356.664/377.526/382.644/4.967 ms
您在 /var/spool/mail/root 中有新郵件

 

相關文章