Mô phỏng kết nối mạng băng thông thấp, độ trễ cao trên Linux


19

Tôi muốn mô phỏng kết nối mạng băng thông thấp, độ trễ cao trên máy Linux của tôi.

Giới hạn băng thông đã được thảo luận trước đây, ví dụ ở đây , nhưng tôi không thể tìm thấy bất kỳ bài đăng nào giới hạn cả băng thông và độ trễ.

Tôi có thể có độ trễ cao hoặc băng thông thấp bằng cách sử dụng tc. Nhưng tôi đã không thể kết hợp những thứ này thành một kết nối duy nhất. Cụ thể, tập lệnh kiểm soát tỷ lệ ví dụ ở đây không hoạt động đối với tôi:

# tc qdisc add dev lo root handle 1:0 netem delay 100ms 
# tc qdisc add dev lo parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
RTNETLINK answers: Operation not supported

Làm cách nào tôi có thể tạo kết nối băng thông thấp, độ trễ cao, sử dụng tchoặc bất kỳ công cụ có sẵn nào khác?


1
bạn đã thử kết hợp các cách tiếp cận từ các liên kết của bạn, ví dụ. sử dụng tc cho độ trễ và nhỏ giọt cho băng thông? (Nó xấu hơn so với chỉ sử dụng tc, nhưng vẫn có thể hoạt động;)
Andy

Đó là một ý tưởng tốt (và, thực sự, nhỏ giọt thậm chí sẽ thêm độ trễ), nhưng thật không may, Firefox không tải dưới mánh khóe, và đó là điều tôi cần kiểm tra.
Justin L.

Câu trả lời:


15

Aha! Nó hoạt động nếu chúng ta đảo ngược thứ tự của các lệnh.

tc qdisc add dev lo root handle 1: htb default 12 
tc class add dev lo parent 1:1 classid 1:12 htb rate 20kbps ceil 20kbps 
tc qdisc add dev lo parent 1:12 netem delay 1000ms 

https://lists.linux-foundation.org/pipermail/netem/2010-May/001388.html


Bất cứ ai quan tâm đến lý do tại sao, dường như netem qdisc không thể là cha mẹ, vì vậy bạn phải sắp xếp lại thứ bậc để có nó như một nút lá.
Andy

3
Lưu ý rằng giới hạn băng thông chỉ theo một hướng (đi). Bạn phải thực hiện công việc bổ sung để thực hiện theo cả hai hướng (rõ ràng là sử dụng ifb). linuxfoundation.org/collabISE/workgroups/networking/ trộm
Roger Binns

Đã qua điều này khi cố gắng để mò mẫm tc. Từ những gì tôi đã đọc, dòng đầu tiên tạo ra 1: 0, nhưng dòng thứ hai đề cập đến 1: 1? (có lẽ sự hiểu biết của tôi là sai - nhưng tôi đã xem qua rất nhiều trang đang cố gắng hiểu cách các lớp / qtdiscs được đánh số)
symcbean

1

Nó không miễn phí, nhưng Proxy gỡ lỗi Charles Web có thể mô phỏng các kết nối có độ trễ cao băng thông thấp

http://www.charlesproxy.com/documentation/proxying/throttling/


Thật thú vị, tôi thực sự đang làm điều này để gỡ lỗi web. Nhưng chắc chắn phải có một cách để làm điều này mà không tốn tiền. :)
Justin L.

Đáng buồn thay Charles dường như không làm việc với giao thông địa phương. Nó chết khi tôi cố gắng truy cập 192.168.1.1 thông qua proxy.
Justin L.

2
Hoặc chỉ sử dụng WANEm, miễn phí: wanem.sourceforge.net
Nathan Kidd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.