ฉันต้องการจำลองแบนด์วิธต่ำการเชื่อมต่อเวลาแฝงสูงกับเซิร์ฟเวอร์เพื่อเลียนแบบเงื่อนไขของ VPN ที่ไซต์ระยะไกล แบนด์วิดท์และเวลาแฝงควรปรับเปลี่ยนเพื่อให้ฉันสามารถค้นพบชุดค่าผสมที่ดีที่สุดเพื่อเรียกใช้แพคเกจซอฟต์แวร์ของเรา
ฉันต้องการจำลองแบนด์วิธต่ำการเชื่อมต่อเวลาแฝงสูงกับเซิร์ฟเวอร์เพื่อเลียนแบบเงื่อนไขของ VPN ที่ไซต์ระยะไกล แบนด์วิดท์และเวลาแฝงควรปรับเปลี่ยนเพื่อให้ฉันสามารถค้นพบชุดค่าผสมที่ดีที่สุดเพื่อเรียกใช้แพคเกจซอฟต์แวร์ของเรา
คำตอบ:
สำหรับmacOSมีNetwork Link Conditionerที่จำลองแบนด์วิดท์ที่กำหนดค่าได้ความหน่วงและการสูญหายของแพ็กเก็ต มันมีอยู่ในแพ็คเกจ เครื่องมือเพิ่มเติมสำหรับ Xcode
มีการเขียนที่ยอดเยี่ยมของการตั้งค่าเครื่อง FreeBSD เพื่อทำสิ่งนี้ - ใช้เดสก์ท็อปเก่ามาตรฐานของคุณโยน NIC เพิ่มเติมและสร้าง
เขียนขึ้นสามารถใช้ได้ที่http://www.freebsd.org/doc/en/articles/filtering-bridges/article.html
ในขั้นตอนที่ 5 ของคำแนะนำข้างต้นคุณเปิดใช้งานไฟร์วอลล์ สำหรับการจำลองการเชื่อมต่อ IP ที่แตกต่างกันคุณสามารถ (ตัวอย่าง) ทำสิ่งต่อไปนี้:
สร้างไฟล์/etc/rc.firewall.56k
ที่มีสิ่งต่อไปนี้:
ipfw add pipe 1 ip from any to any out
ipfw add pipe 2 ip from any to any in
ipfw pipe 1 config bw 56Kbit/s
ipfw pipe 2 config bw 56Kbit/s
และเปลี่ยน/etc/rc.conf
... แทนที่บรรทัด
firewall_type="open"
กับ
firewall_type="/etc/rc.firewall.56k"
เริ่มต้นใหม่และคุณมีสะพาน 56K ด้วยตัวคุณเอง!
หากคุณบังเอิญทำงานจาก Macintosh ระบบปฏิบัติการนั้นจะมี ipfw อยู่ภายในแล้วตามค่าเริ่มต้น ฉันทำสิ่งเดียวกันโดยการกำหนดเส้นทางการรับส่งข้อมูลเครือข่ายผ่านสนามบินและผ่านทางอีเธอร์เน็ตการตั้งค่าเพื่อให้ทุกสิ่งที่เข้ามาในสนามบินมีลักษณะเดียวกับสิ่งที่ฉันพยายามเลียนแบบ คุณสามารถเรียกใช้คำสั่ง ipfw โดยตรงจากเทอร์มินัลและรับเอฟเฟกต์เดียวกัน
ในอดีตฉันใช้บริดจ์โดยใช้ฟังก์ชันการทำงานของ Linux Netem (Network Emulation) มันสามารถกำหนดค่าได้อย่างสูง - ช่วยให้การเปิดตัวของความล่าช้า (ตัวอย่างแรกสำหรับ WAN), การสูญเสียแพ็คเก็ต, ความเสียหาย ฯลฯ
แก้ไข: นอกจากนี้ยังมีเว็บอินเตอร์เฟสMasterShaperเพื่อควบคุมการตั้งค่า
ฉันสังเกตว่า Netem ทำงานได้ดีมากสำหรับแอปพลิเคชันของฉัน แต่ฉันก็ลงเอยด้วยการใช้WANemหลายครั้ง ISO ที่สามารถบูตได้ที่มีให้ (และอิมเมจเครื่องใช้เสมือน) ทำให้มีประโยชน์มาก
ฉันเจอชาร์ลส์แอพพลิเคชั่นพร็อกซีดีบักเว็บและประสบความสำเร็จอย่างมากในการลอกเลียนแบบเครือข่ายแฝง มันทำงานบน Windows, Mac และ Linux
Bandwidth throttle / Bandwidth Simulator
Charles สามารถใช้เพื่อปรับแบนด์วิดท์และเวลาแฝงของการเชื่อมต่ออินเทอร์เน็ตของคุณ สิ่งนี้ช่วยให้คุณจำลองสภาพของโมเด็มโดยใช้การเชื่อมต่อความเร็วสูง
แบนด์วิดท์อาจถูก จำกัด เป็นไบต์ใดก็ได้ต่อวินาที สิ่งนี้ทำให้สามารถจำลองความเร็วการเชื่อมต่อใด ๆ
เวลาแฝงอาจถูกตั้งค่าเป็นมิลลิวินาทีใดก็ได้ เวลาหน่วงแฝงจะจำลองเวลาแฝงที่พบในการเชื่อมต่อที่ช้าลงนั่นคือความล่าช้าระหว่างการทำคำขอและคำขอที่ได้รับที่ปลายอีกด้านหนึ่ง
คุณสามารถใช้ vmware เพื่อรัน BSD หรือ Linux และลองบทความนี้ (DummyNet)หรืออันนี้
ผมพบว่าโปรแกรมนี้เรียบร้อยเล็ก ๆ น้อย ๆ สำหรับ Windows เรียกว่าเงอะงะ มันอยู่ในสถานะ alpha แต่ดูเหมือนจะใช้ได้ดีสำหรับฉันและเป็นโอเพ่นซอร์ส
แก้ไข:คนอื่นสังเกตว่าคุณไม่สามารถ จำกัด แบนด์วิดท์ด้วยความซุ่มซ่ามและนั่นเป็นเรื่องจริง คุณสามารถเพิ่ม Latency และข้อผิดพลาดอื่น ๆ ที่เกี่ยวข้องกับเครือข่ายสองสามอย่างเท่านั้น นี่จะตัดสิทธิ์คำตอบนี้เป็นคำตอบที่ถูกต้องสำหรับคำถามอย่างไรก็ตามเนื่องจากฉันใช้มันได้ดีเมื่อฉันต้องการจำลองเครือข่ายที่ไม่ดีดังนั้นฉันจะทิ้งมันไว้ที่นี่ตราบใดที่มันมีคะแนน> 0 หรือคล้ายกัน
ลองWANem
WANem เป็น Wide Area Network Emulator ซึ่งหมายถึงการมอบประสบการณ์ที่แท้จริงของ Wide Area Network / อินเทอร์เน็ตในระหว่างการพัฒนาแอพพลิเคชั่น / ทดสอบบนสภาพแวดล้อม LAN
สำหรับ Windows คุณสามารถใช้แอปพลิเคชันนี้: http://www.softperfect.com/products/connectionemulator/
WAN Connection Emulator สำหรับ Windows 2000, XP, 2003, Vista, Seven และ 2008
อาจเป็นเพียงหนึ่งเดียวที่ใช้ได้กับ Windows
ฉันจะลองใช้netemบน linux ด้วยคุณสามารถจำลองความล่าช้าเพิ่มเติมความเสียหายการสูญเสียตและการทำซ้ำ มันยังใช้งานได้บนอุปกรณ์ลูปแบ็ค
โปรแกรมฝั่งไคลเอ็นต์อื่น (Windows เท่านั้น) คือ NetLimiter - http://www.netlimiter.com
ฉันใช้ NetBalancer บนเครื่อง Windows ของฉัน
http://seriousbit.com/netbalancer/
อัปเดตเมื่อวันที่ 2017-10-07 : NetBalancerเวอร์ชันล่าสุดฟรีคือ 9.2.7 โปรแกรมมีวันหมดอายุแบบตายตัว ก่อนที่คุณจะเริ่มบริการ NetBalancer คุณจะต้องย้อนกลับนาฬิการะบบก่อน 2016-10-18 ดูบทความนี้สำหรับรายละเอียด
พบไฟล์นี้สำหรับ Windows ที่ใช้ Fiddler (วิธีแก้ปัญหาฟรี) http://www.logic-worx.com/index.php/tools-and-apps/fiddler-connection-simulator/
Rules -> Performance -> Simulate Modem Speeds
ถ้าคุณไม่ต้องการใช้ปลั๊กอินแยกต่างหาก
ฉันเดาว่าtc
สามารถทำงานบนแพลตฟอร์มที่ใช้ UNIX ได้
tc
ใช้เพื่อกำหนดค่า Traffic Control ในเคอร์เนล Linux
http://lartc.org/manpages/tc.txt
หากต้องการจำลองการเชื่อมต่อแบนด์วิดท์ต่ำสำหรับการทดสอบเว็บไซต์ใช้ Google Chrome คุณสามารถไปที่แท็บเครือข่ายในเครื่องมือ F12 และเลือกระดับแบนด์วิดท์เพื่อจำลองหรือสร้างแบนด์วิดท์ที่กำหนดเองเพื่อจำลอง
นี่คือบทความที่ดีเกี่ยวกับhttp://purefinity.blogspot.com/2009/01/simulating-network-delay-using-linux.html
มีผลิตภัณฑ์จากhttp://www.shunra.comชื่อ VE Desktop ซึ่งสามารถใช้เพื่อจำลองสภาพเครือข่ายที่แตกต่างกัน จะช่วยให้คุณปรับแต่ง latencies แบนด์วิดท์และ packetloss ด้วย UI ที่เรียบง่าย ข้อแม้เท่านั้นมันไม่ฟรี หวังว่านี่จะช่วยได้
ฉันกำลังมองหาเครื่องมือที่ใช้งานง่ายสำหรับการทดสอบประเภทนี้มาระยะหนึ่งแล้ว ฉันเพิ่งเจอกันเมื่อวันก่อน: Network Delay Simulator
หากคุณใช้ Windows คุณควรลองใช้งาน มันง่ายมากที่จะตั้งค่าและเริ่มต้นและดูเหมือนว่าจะทำงานได้ดีจริงๆ อนุญาตให้คุณกำหนดแบนด์วิดท์เวลาหน่วงและการสูญหายของแพ็กเก็ตในแต่ละทิศทาง สิ่งที่ดีจริงๆอีกอย่างคือคุณสามารถกำหนด "เงื่อนไขการจับคู่ Flow" เพื่อให้มีผลกับปริมาณการใช้งานที่คุณต้องการ โอ้ใช่แล้วมันฟรี
ฉันคิดว่าฉันพบสิ่งที่ฉันต้องการ บางทีคุณอาจจะใช้พร็อกซี่ชาร์ลส์หรือslowy หวังว่ามันจะช่วย
ลองดูที่ NE-ONE Network Emulator ซึ่งช่วยให้คุณสามารถกำหนดแบนด์วิดธ์, ความหน่วง, การสูญหายของแพ็กเก็ต, การเรียงแพ็กเก็ตใหม่, การทำซ้ำแพ็คเก็ต, การกระจายแพ็คเก็ต, ความแออัดของเครือข่ายและความบกพร่องอื่น ๆ อีกมากมาย . ความบกพร่องที่แตกต่างกันสามารถกำหนดค่าสำหรับการขึ้นและลงเพื่อให้คุณสามารถมีการถ่ายทอดสัญญาณที่ดีมาก แต่เป็นประสบการณ์การรับส่งสัญญาณที่ไม่ดีจริงๆเหมาะสำหรับการดูว่าแอปจัดการกับการเข้าคิว TCP เนื่องจาก acks ไม่กลับมาในเวลาที่เหมาะสม ดังนั้นจะเพิ่มขึ้น!
มีวิดีโอภาพรวมที่นี่http://www.youtube.com/watch?v=DwtqlE7LcrQมุ่งเป้าไปที่นักพัฒนาเกมโดยเฉพาะ แต่มันแสดงให้เห็นว่ามันเกี่ยวกับอะไร NE-ONE ได้รับการกำหนดค่าโดยใช้เว็บเบราว์เซอร์ดังนั้นจึงเป็นเรื่องง่ายในการติดตั้งและกำหนดค่า - คุณไม่จำเป็นต้องเป็นกูรูด้านเครือข่าย :-)
มีรุ่นฮาร์ดแวร์ - http://www.itrinegy.com/index.php/products/network-emulators/ne-one - หรือคุณสามารถดาวน์โหลดเวอร์ชัน Virtual Appliance (ซอฟต์แวร์) ที่ทำงานภายใต้ VMware ESXi Server Virtual Appliance สามารถดาวน์โหลดได้จาก Solution Exchange ของ VMware - solutionexchange.vmware.com/store/products/ne-one-flex-network-emulator
เราใช้ซอฟต์แวร์นี้เมื่ออยู่ในเครื่องเสมือนเพื่อทำการทดสอบสเกลแบนด์วิดท์:
http://www.softinengines.com/index.php?section=download&langu=en
มันไม่ฟรี แต่มีการทดลองใช้ 30 วัน
LANforge ICE เป็นโปรแกรมจำลองเครือข่ายที่ ให้ความสำคัญกับการกำหนดเส้นทางเสมือน, jitter, ทุจริตและล่าช้า โครงการต่างๆใช้มันเพื่อจำลองการเชื่อมต่อดาวเทียมการเชื่อมต่อเคเบิลและโมเด็มและการจำลองความเร็วสูง (10Gbit) คุณสามารถใช้ Java GUI เพื่อสร้างเครือข่ายเสมือนของคุณและสร้างรายงานโดยละเอียดเกี่ยวกับการไหลเวียนของข้อมูล ผลิตภัณฑ์ LANforge ยังมีคุณสมบัติการสร้างทราฟฟิก: เฟรม, อีเธอร์เน็ต, เลเยอร์ 3 และทราฟฟิกแบบสภาวะ (NFS, http) LANforge รุ่นล่าสุดมีคุณสมบัติการทดสอบ WiFi ที่ซับซ้อนเช่นกัน
คุณสามารถลองสิ่งนี้: CovenantSQL / GNTE เพียงแค่เขียน YAML เช่นนี้:
group:
-
name: china
nodes:
-
ip: 10.250.1.2
cmd: "cd /scripts && ./YourBin args"
-
ip: 10.250.1.3
cmd: "cd /scripts && ./YourBin args"
delay: "100ms 10ms 30%"
loss: "1% 10%"
-
name: us
nodes:
-
ip: 10.250.2.2
cmd: "cd /scripts && ./YourBin args"
-
ip: 10.250.2.3
cmd: "cd /scripts && ./YourBin args"
delay: "1000ms 10ms 30%"
loss: "1% 10%"
network:
-
groups:
- china
- us
delay: "200ms 10ms 1%"
corrupt: "0.2%"
rate: "10mbit"
วิ่ง ./generate scripts/your.yaml