Speedbump - proxy TCP hỗ trợ độ trễ biến thiên
(github.com/kffl)- Một proxy TCP được viết bằng Go, có thể mô phỏng nhiều mức độ trễ mạng biến thiên khác nhau
Ví dụ sử dụng cơ bản
- Tạo một instance mới lắng nghe trên cổng 2000 để proxy lưu lượng TCP tới localhost:80, với độ trễ mặc định là 100ms, biên độ sóng sin là 100ms (độ trễ bổ sung tối đa 200ms, tối thiểu 0), chu kỳ 1 phút:
speedbump --latency=100ms --sine-amplitude=100ms --sine-period=1m --port=2000 localhost:80 - Hoặc khi chạy speedbump bằng image container kffl/speedbump:
docker run --net=host kffl/speedbump:latest --latency=100ms --sine-amplitude=100ms \ --sine-period=1m --port=2000 localhost:80 - Tạo một instance mới với độ trễ mặc định 300ms, và độ trễ dạng sóng răng cưa có biên độ 200ms, chu kỳ 2 phút như biểu đồ bên dưới:
speedbump --latency=300ms --saw-amplitude=200ms --saw-period=2m --port=2000 localhost:80 - Có thể chạy đồng thời việc cộng gộp nhiều mức độ trễ.
- Speedbump có thể được dùng như một thư viện Go thông qua gói
lib.
Ý kiến của GN⁺:
- Speedbump là một công cụ hữu ích để mô phỏng độ trễ mạng, có thể giúp kiểm thử và tối ưu hiệu năng của các ứng dụng dựa trên mạng.
- Được viết bằng Go nên quen thuộc với các nhà phát triển Go, đồng thời cung cấp khả năng dễ dàng mô phỏng nhiều kiểu độ trễ khác nhau.
- Đây là mã nguồn mở và tuân theo giấy phép Apache 2.0, nên có khả năng tiếp tục được cải thiện thông qua sự đóng góp của cộng đồng.
1 bình luận
Ý kiến trên Hacker News
tcđể thêm độ trễ cho một giao diện cụ thể, và nó cũng hoạt động tốt trong container Docker. Có thể nó đã được cài sẵn trên nhiều hệ thống.tc qdisc add dev eth0 root netem delay 100ms