จำลองการเชื่อมต่อเครือข่ายแบนด์วิธต่ำและความหน่วงสูงบน Linux


19

ฉันต้องการจำลองการเชื่อมต่อเครือข่ายแบนด์วิธต่ำและแฝงบนเครื่อง Linux ของฉัน

การ จำกัด แบนด์วิดท์ได้รับการกล่าวถึงก่อนเช่นที่นี่แต่ฉันไม่สามารถหาโพสต์ใด ๆ ที่อยู่ จำกัด ทั้งแบนด์วิดท์และแฝง

tcฉันจะได้รับอย่างใดอย่างหนึ่งเวลาแฝงที่สูงหรือต่ำแบนด์วิดธ์ที่ใช้ แต่ฉันไม่สามารถรวมสิ่งเหล่านี้ไว้ในการเชื่อมต่อเดียวได้ โดยเฉพาะอย่างยิ่งสคริปต์ควบคุมอัตราตัวอย่างที่นี่ไม่ทำงานสำหรับฉัน:

# 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

ฉันจะสร้างการเชื่อมต่อที่มีแบนด์วิดท์ต่ำความหน่วงสูงการใช้งานtcหรือเครื่องมืออื่น ๆ ที่พร้อมใช้งานได้อย่างไร


1
คุณได้ลองรวมแนวทางจากลิงก์ของคุณแล้วหรือยัง ใช้ tc สำหรับเวลาแฝงและหยดเพื่อแบนด์วิดธ์หรือไม่ (มันน่าเกลียดกว่าการใช้ tc แต่อาจยังใช้งานได้)
Andy

นั่นเป็นความคิดที่ดี (และแน่นอนหยดก็จะเพิ่มความล่าช้า) แต่น่าเสียดายที่ Firefox ไม่โหลดภายใต้การหยดและนั่นคือสิ่งที่ฉันต้องทดสอบ
Justin L.

คำตอบ:


15

Aha! มันทำงานได้ถ้าเรากลับคำสั่งของคำสั่ง

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


ใครก็ตามที่สนใจว่าทำไมดูเหมือนว่า netem qdisc ไม่สามารถเป็นพาเรนต์ได้ดังนั้นคุณต้องจัดลำดับชั้นใหม่เพื่อให้มันเป็นโหนดปม
Andy

3
โปรดทราบว่าขีด จำกัด แบนด์วิดท์อยู่ในทิศทางเดียวเท่านั้น (ขาออก) คุณต้องทำงานเพิ่มเติมเพื่อให้มันเกิดขึ้นในทั้งสองทิศทาง (เห็นได้ชัดว่าใช้ ifb) linuxfoundation.org/collaborate/workgroups/networking/…
Roger Binns

มาข้ามเรื่องนี้เมื่อพยายามจะงอ tc จากสิ่งที่ฉันได้อ่านบรรทัดแรกจะสร้าง 1: 0 แต่บรรทัดที่สองหมายถึง 1: 1 (อาจเป็นความเข้าใจของฉันซึ่งเป็นสิ่งที่ผิด - แต่ฉันได้อ่านหลาย ๆ หน้าพยายามที่จะเข้าใจว่าจำนวนคลาส / qtdiscs เป็นอย่างไร)
symcbean

1

มันไม่ฟรี แต่ Charles Web Debugging Proxy สามารถจำลองการเชื่อมต่อแบนด์วิธสูงที่มีความหน่วงต่ำ

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


น่าสนใจพอจริง ๆ แล้วฉันทำสิ่งนี้เพื่อการดีบักเว็บ แต่แน่นอนว่าต้องมีวิธีการทำเช่นนี้โดยไม่ต้องใช้เงิน :)
Justin L.

Sadly Charles ดูเหมือนจะไม่ทำงานกับการจราจรในท้องถิ่น มันตายเมื่อฉันพยายามเข้าถึง 192.168.1.1 ผ่านพร็อกซี
Justin L.

2
หรือเพียงแค่ใช้ WANEm ได้ฟรี: wanem.sourceforge.net
Nathan Kidd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.