Câu trả lời:
Các netem mô-đun hạt nhân, điều khiển bởi iproute.
Bạn cần biên dịch Netem với kernel:
Networking -->
Networking Options -->
QoS and/or fair queuing -->
Network emulator
Khi mô-đun netem được tải, tpr của iproute cho phép bạn những thứ như:
tc qdisc add dev tap0 root netem delay 50ms loss 50%
(Mất gói 50%, độ trễ thêm 50 ms)
sch_netem
. Nói chung không cần tải bằng tay, nó sẽ được tải tự động khi cần.
rate
tùy chọn : tc qdisc add dev lo root handle 1:0 netem delay 10ms rate 1mbit limit 1000
. Lưu ý rằng đối với một số thiết bị như lo
(để truy cập localhost), bạn cũng cần đặt độ dài hàng đợi : ifconfig lo txqueuelen 1000
. Xem serverfault.com/a/394949/76090
Phía khách hàng, phải không?
nhỏ giọt nên làm những gì bạn muốn. Nếu bạn đang chạy Ubuntu (hoặc Debian, tôi nghĩ vậy), bạn có thể cài đặt nó sudo apt-get install trickle
và sau đó chạy nó. trickle -s -d 10 -u 10 firefox
(hoặc vì vậy, tôi đã không sử dụng nó trong một thời gian) sẽ chạy firefox, giới hạn tốc độ tải xuống và tải lên của nó xuống 10 kilobyte một giây.
Tôi đã tìm ra cách để tránh hộp của mình ăn hết băng thông có sẵn trên mạng bằng cách sử dụng một công cụ có tên là 'wonderershaper' trong ubfox. Tôi hy vọng nó tồn tại trong các phiên bản linux khác. Tôi có thể giới hạn băng thông mà máy tính linux nhà tôi có thể tiêu thụ bằng cách sử dụng lệnh sau.
sudo wondershaper eth0 1000 200
Điều này giới hạn giới hạn tải xuống ở mức 1000 kilobit và tăng lên tới 200 kilobit. Tham khảo các trang hướng dẫn sử dụng wonderershaper để biết thêm thông tin / tùy chọn.
wondershaper
trong Debian.
sudo wondershaper clear eth0
NIST tạo một trình giả lập mạng có tên là NistNet.
http://snad.ncsl.nist.gov/nistnet/ (liên kết dường như đã chết)
http://cs.ecs.baylor.edu/~donahoo/tools/nistnet/
NistNet cho phép bạn tạo một bộ định tuyến mô phỏng liên kết comms bạn chọn.
Để thao tác đơn giản nhất, bạn có nó trên một hộp có hai NIC giữa hai mạng.
Ví dụ, tôi có một ứng dụng phải hoạt động qua liên kết vệ tinh.
Dữ liệu có thể đi qua liên kết 2Mbps với độ trễ LỚN. Kiểm soát phải đi qua một liên kết 128kbps, với cùng độ trễ.
NistNet đã giúp mọi thứ hoạt động trên 128kbps.
Sử dụng NistNet tôi có thể mô phỏng không chỉ băng thông, mà cả độ trễ và nó cũng sẽ bỏ các gói cho bạn, mô phỏng một liên kết bận hoặc không đáng tin cậy.
Nếu bạn muốn mô phỏng một kết nối abitrary, đừng chỉ giới hạn băng thông, hãy tăng độ trễ.
Đừng quên các gói phân mảnh. Bạn có thể đặt MTU nhỏ đẹp trên liên kết giả mạo.
IIRC thêm jitter gói sẽ cho phép bạn tìm hiểu xem bạn có thể đối phó với các gói không theo thứ tự không.
Cá nhân tôi đã sử dụng wonderershaper trong quá khứ cho việc này, mặc dù nó được viết cho trường hợp sử dụng ngược lại - tận dụng tối đa kết nối ADSL của bạn.
Tôi sẽ phải thử những người khác được đề cập ở đây mặc dù.
Ví dụ, bạn có thể sử dụng proxy mực được cài đặt cục bộ để giới hạn băng thông để kiểm tra một trang web trên liên kết chậm:
Cài đặt proxy mực từ bản phân phối của bạn - trên Fedora của tôi, nó dễ như vậy yum install squid
.
Thêm vào như sau /etc/squid/squid.conf
:
delay_pools 1
delay_class 1 1
delay_access 1 allow all
delay_parameters 1 16000/16000
Điều này sẽ giới hạn băng thông ở khoảng 128 kbps (16000 Bps).
Bắt đầu câu mực :/etc/init.d/squid start
Cấu hình trình duyệt của bạn để sử dụng localhost
cổng máy chủ proxy 3128
.
Chưa ai đề cập đến ip_relay , được đặt tên là "iprelay" trong kho Debian. Nó hoạt động như một proxy TCP, thay vì chặn các cuộc gọi theo cách nhỏ giọt và sẽ hoạt động với bất kỳ ứng dụng nào có thể sử dụng proxy (ví dụ: trình duyệt web) hoặc chấp nhận cổng đích do người dùng xác định (telnet, ssh, ftp, curl, et cetera ).
Việc cài đặt khó khăn hơn một chút, nhưng thường hoạt động trong các tình huống khó khăn.