Bagaimana cara mensimulasikan bandwidth rendah, lingkungan latensi tinggi?


201

Saya perlu mensimulasikan bandwidth rendah, koneksi latensi tinggi ke server untuk meniru kondisi VPN di situs jarak jauh. Bandwidth dan latensi harus disesuaikan sehingga saya dapat menemukan kombinasi terbaik untuk menjalankan paket perangkat lunak kami.


7
Pertanyaan bagus! Saya ingin mendengar beberapa jawaban terkait dengan pengembangan web ASP .NET.
Carl

Jawaban:


79

Untuk macOS , ada Network Link Conditioner yang mensimulasikan bandwidth, latensi, dan paket yang dapat dikonfigurasi. Itu terkandung dalam paket Alat Tambahan untuk Xcode . Tangkapan layar


12
Panel preferensi "Network Link Conditioner" adalah bagian dari Hardware IO Tools untuk XCode, yang dapat Anda unduh dari developer.apple.com/downloads
avernet

sepertinya tidak bekerja dengan Genymotion. (Layar Hitam)
Bruno

1
Tautan unduhan untuk versi
XCode yang

@ jstorm31 Terima kasih. Saya telah memperbarui jawabannya dengan nama paket dan tautan saat ini.
Jon Colverson

37

Ada persiapan yang sangat baik untuk menyiapkan mesin FreeBSD untuk melakukan hal ini - ambil desktop lama standar Anda, masukkan NIC tambahan, dan bangun.

Lisan tersedia di http://www.freebsd.org/doc/en/articles/filtering-bridges/article.html .

Pada langkah 5 dari instruksi di atas, Anda mengaktifkan firewall. Untuk hanya mensimulasikan koneksi IP yang berbeda, Anda dapat (misalnya) melakukan hal berikut:

Buat file /etc/rc.firewall.56kyang berisi berikut ini:

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

Dan ubah /etc/rc.conf... ganti salurannya

firewall_type="open"

dengan

firewall_type="/etc/rc.firewall.56k"

reboot, dan Anda punya jembatan 56K!

Jika Anda kebetulan menggunakan Macintosh, OS itu secara default memiliki ipfw. Saya telah melakukan hal yang sama dengan merutekan lalu lintas jaringan melalui Bandara dan melalui ethernet, mengaturnya sehingga apa pun yang datang di bandara memiliki karakteristik yang sama dengan apa pun yang saya coba tiru. Anda dapat menjalankan perintah ipfw langsung dari terminal dan mendapatkan efek yang sama.


27

Di masa lalu, saya telah menggunakan jembatan menggunakan fungsi Linux Netem (Network Emulation). Ini sangat dapat dikonfigurasi - memungkinkan pengenalan penundaan (contoh pertama adalah untuk WAN), kehilangan paket, korupsi, dll.

EDIT: Ada juga antarmuka web MasterShaper untuk mengontrol pengaturan.

Saya perhatikan bahwa Netem bekerja sangat baik untuk aplikasi saya, tetapi saya juga akhirnya menggunakan WANem beberapa kali. ISO yang dapat di-boot (dan gambar alat virtual) yang disediakan membuatnya cukup praktis.


Sempurna untuk kebutuhan saya, dan tersedia di luar kotak di server Ubuntu 14.04 saya!
RobM

21

Charles

Saya menemukan Charles aplikasi proxy debugging web dan sangat sukses dalam meniru latensi jaringan. Ini berfungsi pada Windows, Mac, dan Linux.

Charles di Mac

Bandwidth throttle / simulator Bandwidth

Charles dapat digunakan untuk menyesuaikan bandwidth dan latensi koneksi Internet Anda. Ini memungkinkan Anda untuk mensimulasikan kondisi modem menggunakan koneksi kecepatan tinggi Anda.

Bandwidth mungkin diperketat ke byte sembarang per detik. Ini memungkinkan setiap kecepatan koneksi disimulasikan.

Latensi juga dapat ditetapkan ke jumlah milidetik sembarang. Keterlambatan latensi mensimulasikan latensi yang dialami pada koneksi yang lebih lambat, yaitu penundaan antara membuat permintaan dan permintaan yang diterima di ujung lainnya.

DummyNet

Anda juga dapat menggunakan vmware untuk menjalankan BSD atau Linux dan mencoba artikel ini (DummyNet) atau yang ini.


2
Charles adalah proxy HTTP, dan karenanya hanya cocok untuk menguji aplikasi HTTP. Untuk masing-masing mereka sendiri, tetapi menurut saya itu mungkin beberapa perangkat lunak terburuk yang pernah saya gunakan. Saya hanya menggunakannya untuk waktu yang singkat sementara saya harus bekerja di Mac. Untuk pengguna Windows, saya akan merekomendasikan Fiddler jika Anda memerlukan proxy debugging HTTP. Sayangnya, saya tidak menemukan selain Charles untuk OSX.
Brad

6
Hai Brad. Bisakah Anda menyebutkan masalah seperti apa yang Anda miliki?
Ante

17

Saya menemukan program kecil yang rapi ini untuk Windows yang disebut canggung . Ini dalam status alfa, tetapi tampaknya berfungsi dengan baik untuk saya, dan ini open source.

Sunting: Orang lain telah memperhatikan bahwa Anda tidak dapat membatasi bandwidth dengan canggung, dan itu benar. Anda hanya dapat menambahkan Latency dan beberapa kesalahan terkait jaringan lainnya. Ini akan mendiskualifikasi jawaban ini sebagai jawaban yang valid untuk pertanyaan tersebut, namun karena saya menggunakannya dengan baik ketika saya ingin mensimulasikan jaringan yang buruk sehingga saya akan meninggalkannya di sini selama ia memiliki> 0 suara atau yang serupa.


Bagaimana Anda mengontrol bandwidth dengan kikuk?
user3731622

3
Program luar biasa. Apa yang saya butuhkan. Saya merekomendasikannya. Bekerja seperti pesona dan sangat mudah.
Jh62

1
Ketika kebanyakan orang mengatakan "membatasi bandwidth" mereka mungkin lebih dari senang dengan hanya menambahkan sejumlah besar latensi dan kehilangan paket, karena ini secara efektif membatasi bandwidth. Juga program ini luar biasa mudah digunakan, mengalahkan semua yang saya coba di windows.
bergulung

13

Coba WANem

WANem adalah Wide Area Network Emulator, yang dimaksudkan untuk memberikan pengalaman nyata dari Wide Area Network / Internet, selama pengembangan / pengujian aplikasi melalui lingkungan LAN.


1
Saya sudah mencoba ini dan sepertinya tidak bisa membuatnya bekerja. Itu tidak akan mendapatkan alamat IP dari jaringan kami karena beberapa alasan sementara komputer lain tidak memiliki masalah dengannya.
Michael Beck


7

Saya akan mencoba menggunakan netem di linux. Dengan itu Anda dapat mensimulasikan penundaan tambahan, korupsi, kehilangan paket, dan duplikasi. Ia bahkan bekerja pada perangkat loopback.


Hei, apakah Anda memiliki perintah yang setara untuk windows sebagai netem?
Shashi Ranjan

6

Program sisi klien lain (hanya Windows), adalah NetLimiter - http://www.netlimiter.com


2
Netlimiter bagus, tapi saya pikir itu hanya bandwidth rendah - tidak dapat mengubah latensi?
Nathan

Beta berencana untuk simulasi latensi yang terdaftar v3 sebagai fitur yang direncanakan. Baru-baru ini dirilis dan saya belum menggunakannya untuk melihat apakah fitur itu membuatnya masuk
Kaliatech

Fitur itu tidak membuatnya masuk ke versi beta 9. Ugh.
cacba

4
Bahkan beta saat ini (NetLimiter 4) tidak membiarkan Anda mengubah latensi.
influen

5

Saya menggunakan NetBalancer di mesin Windows saya.

http://seriousbit.com/netbalancer/

Pembaruan pada 2017-10-07 : Versi gratis terakhir NetBalancer adalah 9.2.7. Program ini memiliki tanggal kedaluwarsa dalam bentuk kode. Sebelum Anda memulai layanan NetBalancer, Anda perlu memutar kembali jam sistem sebelum 2016-10-18. Lihat artikel ini untuk detailnya.


Terima kasih!! NetBalancer adalah satu-satunya alat yang terdaftar di halaman ini yang dapat saya gunakan untuk bekerja dan dapat mengontrol latensi.
influen



3

Untuk mensimulasikan koneksi bandwidth rendah untuk menguji situs web menggunakan Google Chrome, Anda dapat pergi ke Network Tab di F12 Tools dan pilih level bandwidth untuk mensimulasikan atau membuat bandwidth kustom untuk disimulasikan.


1
Terima kasih! Jika Anda tidak dapat menemukannya, ada di konsol Chrome, tab Network, di sebelah kanan tombol "Nonaktifkan cache". Nilai standarnya adalah "Tanpa pelambatan".
Alan Willms



1

Ada produk dari http://www.shunra.com yang disebut VE Desktop yang dapat digunakan untuk mensimulasikan berbagai kondisi jaringan. Ini memungkinkan Anda untuk mengubah latensi, bandwidth, dan packetloss dengan UI sederhana. Satu-satunya peringatan adalah, itu tidak gratis. Semoga ini membantu.


1

Saya telah mencari alat yang mudah digunakan untuk jenis pengujian untuk sementara waktu sekarang. Saya baru saja menemukan ini kemarin: Network Delay Simulator

Jika Anda menjalankan Windows, Anda harus memeriksanya. Sangat mudah untuk mengatur dan memulai, dan tampaknya bekerja dengan sangat baik. Ini memungkinkan Anda untuk menentukan bandwidth, latensi, dan kehilangan paket di setiap arah. Hal lain yang sangat menyenangkan adalah Anda dapat mendefinisikan "Kondisi Kecocokan Aliran" sehingga hanya memengaruhi lalu lintas yang Anda inginkan. Oh ya, dan gratis.



1

Lihatlah NE-ONE Network Emulator yang memungkinkan Anda mengonfigurasi bandwidth, latensi, kehilangan paket, pengurutan paket, duplikasi paket, fragmentasi paket, kemacetan jaringan, dan banyak lagi gangguan sehingga Anda dapat menciptakan kondisi jaringan dunia nyata di lab. . Kerusakan berbeda dapat dikonfigurasikan untuk naik dan turun sehingga Anda bisa memiliki uplink yang benar-benar baik tetapi pengalaman downlink sangat buruk, bagus untuk melihat bagaimana aplikasi menangani antrian TCP karena acks tidak kembali pada waktu yang tepat dan latensi keseluruhan karenanya meningkat!

Ada video ikhtisar di sini http://www.youtube.com/watch?v=DwtqlE7LcrQ khusus ditujukan untuk pengembang game, tetapi ini menunjukkan apa itu. NE-ONE dikonfigurasi menggunakan browser web sehingga sangat mudah untuk diinstal dan dikonfigurasi - Anda tidak perlu menjadi guru jaringan :-)

Ada versi perangkat keras - http://www.itrinegy.com/index.php/products/network-emulators/ne-one - atau Anda dapat mengunduh versi Virtual Appliance (perangkat lunak) yang berjalan di bawah VMware ESXi Server. Virtual Appliance dapat diunduh dari Solution Exchange VMware - solutionexchange.vmware.com/store/products/ne-one-flex-network-emulator



0

LANforge ICE adalah emulator jaringan dengan penekanan pada perutean virtual, jitter, korupsi, dan penundaan. Proyek telah menggunakannya untuk meniru sambungan satelit, koneksi kabel dan modem, dan emulasi berkecepatan tinggi (10Gbit). Anda dapat menggunakan Java GUI untuk membangun jaringan virtual Anda dan menghasilkan laporan arus lalu lintas yang sangat terperinci. Produk LANforge juga menyediakan fitur penghasil lalu lintas: frame, ethernet, layer-3, dan stateful traffic (NFS, http). Edisi terbaru untuk LANforge juga memiliki fitur pengujian WiFi yang canggih.


0

Anda dapat mencoba ini: CovenantSQL / GNTE cukup tulis YAML seperti ini:

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"

Lari ./generate scripts/your.yaml

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.