Round Trip Time (RTT) คือเวลาที่สัญญาณใช้ไป-กลับ: จากส่ง Request จนได้รับ Response/Acknowledgment
ปัจจัยที่ส่งผลต่อ RTT
- Data Transfer Rate ด้าน Sender
- ชนิด Transmission Media (Fiber, Copper, Wireless)
- ระยะทางจริงระหว่าง Sender-Receiver
- จำนวน Node/Router ระหว่างทาง
- Traffic บน LAN
- จำนวน Request ที่ Intermediate Points จัดการ
โค้ดตัวอย่าง
import time
import requests
import sys
def find_roundtrip_time(url):
initial_time = time.time() # เวลาส่ง Request
response = requests.get(url)
ending_time = time.time() # เวลาได้ Response
elapsed_time = ending_time - initial_time
print(f'The Round Trip Time for {url} is {elapsed_time:.4f} seconds')
if __name__ == "__main__":
if len(sys.argv) > 1:
find_roundtrip_time(sys.argv[1])
else:
print("Usage: python rtt.py ")
ผลลัพธ์ตัวอย่าง
$ python3 rtt.py https://www.tutorialspoint.com/ The Round Trip Time for https://www.tutorialspoint.com/ is 0.8301 seconds $ python3 rtt.py https://www.google.com The Round Trip Time for https://www.google.com is 0.5217 seconds
ขยายความสามารถ
import statistics
def measure_rtt_multiple(url, count=10):
times = []
for _ in range(count):
start = time.time()
requests.get(url, timeout=5)
times.append(time.time() - start)
print(f"Min: {min(times):.4f}s, Max: {max(times):.4f}s, Avg: {statistics.mean(times):.4f}s, Median: {statistics.median(times):.4f}s")
หมายเหตุ
- ใช้
time.perf_counter()แทนtime.time()เพื่อความแม่นยำสูงกว่า - ควรเพิ่ม Timeout และ Error Handling
- RTT ไม่รวมเวลา DNS Lookup (ถ้าใช้ IP จะแม่นยำกว่า)