Saya tahu ini adalah pertanyaan aneh. Karena saya biasanya mengembangkan aplikasi berdasarkan "asumsi" bahwa semua pengguna memiliki koneksi internet yang lambat. Tetapi, apakah ada yang berpikir bahwa ada cara untuk mensimulasikan secara terprogram koneksi internet yang lambat, sehingga saya dapat "melihat" bagaimana suatu aplikasi bekerja di bawah berbagai "kecepatan koneksi"?
Saya tidak khawatir tentang bahasa yang digunakan. Dan saya tidak mencari sampel kode atau apa pun, hanya tertarik pada logika di baliknya.
sumber
Dimulai dengan Chrome 38 Anda dapat melakukan ini tanpa plugin apa pun. Cukup klik periksa elemen (atau F12hotkey), lalu klik "toggle device mod" dan Anda akan melihat sesuatu seperti ini:
Di antara banyak fitur lainnya, ini memungkinkan Anda untuk mensimulasikan koneksi internet spesifik (3G, GPRS)
PS untuk orang yang mencoba membatasi kecepatan unggah. Sayangnya pada saat ini tidak mungkin.
PS2 sekarang Anda tidak perlu beralih apa pun. Panel pelambatan tersedia langsung dari panel jaringan.
Perhatikan bahwa sambil mengeklik opsi Tidak ada pelambatan, Anda dapat membuat opsi pelambatan khusus Anda.
sumber
Google merekomendasikan :
sumber
Di mesin Linux, Anda dapat menggunakan
wondershaper
{down} dan {up} adalah bandwidth dalam kpbs
Jadi misalnya jika Anda ingin membatasi bandwidth antarmuka eth1 ke 256kbps uplink dan 128kbps downlink,
Untuk menghapus batas,
sumber
Saya menggunakan http://www.netlimiter.com/ dan bekerja dengan sangat baik. Tidak hanya membatasi kecepatan untuk proses tunggal tetapi juga menunjukkan kecepatan transfer aktual.
sumber
Ada proksi TCP di luar sana, seperti iprelay dan Sloppy, yang melakukan bandwidth membentuk untuk mensimulasikan koneksi lambat. Anda juga dapat melakukan pembentukan bandwidth dan mensimulasikan kehilangan paket menggunakan alat pemfilteran IP seperti ipfw dan iptables.
sumber
Anda dapat mencoba Dummynet , ia dapat mensimulasikan batasan antrian dan bandwidth, penundaan, kehilangan paket, dan efek multipath
sumber
Gunakan proxy debugging web dengan fitur pelambatan, seperti Charles atau Fiddler .
Anda akan menemukan mereka pengembangan web yang bermanfaat secara umum. Perbedaan utama adalah bahwa Charles adalah shareware, sedangkan Fiddler gratis.
sumber
Juga, untuk mensimulasikan koneksi lambat pada beberapa * nixes, Anda dapat mencoba menggunakan ipfw . Informasi lebih lanjut diberikan oleh jawaban Ben Newman tentang pertanyaan Quora ini
sumber
Gunakan alat seperti TCPMon . Itu bisa memalsukan koneksi yang lambat.
Pada dasarnya, Anda memintanya hal yang sama persis dan itu hanya meneruskan permintaan yang sama persis ke server nyata, dan kemudian menunda respons dengan hanya jumlah byte yang ditetapkan.
sumber
Anda dapat menggunakan NetEm (Emulasi Jaringan) sebagai server proxy untuk meniru banyak karakteristik jaringan (kecepatan, penundaan, kehilangan paket, dll.). Ini mengontrol jaringan menggunakan paket iproute2 dan itu diaktifkan di kernel dari kebanyakan distribusi Linux.
Ini dikendalikan oleh aplikasi
tc
command-line (dari paket iproute2 ), tetapi ada juga beberapa antarmuka web GUI untuk NetEm, misalnya PHPnetemGUI2 .Keuntungannya adalah, seperti yang saya tulis, ia dapat meniru tidak hanya kecepatan jaringan yang berbeda tetapi juga, misalnya, paket yang hilang, duplikasi dan / atau korupsi, penundaan acak atau pasti, dll., Sehingga Anda dapat meniru berbagai jaringan yang berkinerja buruk.
Untuk aplikasi Anda ini benar-benar transparan, Anda dapat mengkonfigurasi sistem operasi untuk menggunakan server proxy NetEm, sehingga semua koneksi dari mesin itu akan melalui NetEm. Atau Anda hanya dapat mengonfigurasi aplikasi Anda untuk menggunakannya sebagai proxy.
Saya telah menggunakannya untuk menguji kinerja aplikasi Android di berbagai jaringan yang bereplikasi buruk.
sumber
Mac OSX sejak 10.10 memiliki aplikasi bernama Murus Firewall , yang bertindak sebagai GUI untuk pf, pengganti ipfw.
Ini bekerja sangat baik untuk pelambatan sistem atau domain-spesifik. Saya hanya bisa menggunakannya untuk menggeser kecepatan unduh saya antara 300Kbps dan 30Mbps untuk menguji bagaimana pemutar video streaming menyesuaikan.
sumber
Ada juga alat lain yang disebut WIPFW - http://wipfw.sourceforge.net/
Ini sekolah yang agak tua, tetapi Anda dapat menggunakannya untuk mensimulasikan koneksi yang lebih lambat. Ini berbasis Windows, dan alat ini memungkinkan administrator untuk memonitor berapa banyak traffic yang didapat router dari mesin tertentu, atau berapa banyak traffic WWW yang diteruskan, misalnya.
sumber
Memperbarui ini (9 tahun setelah ditanya) karena jawaban yang saya cari tidak disebutkan:
Firefox juga memiliki preset untuk pembatasan kecepatan koneksi. Temukan mereka di tab Monitor Jaringan pada alat pengembang. Standarnya adalah 'Tidak ada pembatasan'.
Terlambat adalah GPRS ( Kecepatan unduh: 50 Kbps, Kecepatan unggah: 20 Kbps, Latensi minimum (ms): 500 ), mulai dari 2G 'baik' dan 'biasa', 3G dan 4G ke DSL dan WiFi ( Kecepatan unduh: 30Mbps, Unggah kecepatan: 15Mbps, Latensi minimum (ms): 2 ).
Lebih banyak di dokumen Dev Tools .
sumber
Untuk Linux, daftar makalah berikut mungkin berguna:
Secara pribadi, walaupun Dummynet bagus, saya menemukan NetEm sebagai yang paling serbaguna untuk kasus penggunaan saya; Saya biasanya tertarik pada efek keterlambatan, bukan bandwidth (yaitu masalah koneksi WiFi), dan sangat mudah untuk meniru kehilangan paket acak / korupsi, dll. Ini juga sangat mudah diakses, dan gratis (tidak seperti Linktropy berbasis hardware ).
Di samping catatan, untuk Windows, Clumsy mengagumkan. Saya juga ingin menambahkan bahwa (mengenai situs web) pembatasan browser bukanlah metode yang akurat untuk meniru masalah jaringan kehidupan nyata (saya pikir "TKK" mengomentari beberapa alasan mengapa di atas).
Semoga ini bisa membantu seseorang!
sumber
Salah satu kasus umum membentuk koneksi TCP tunggal sebenarnya dapat dirakit dari pasangan ganda
socat
dancpipe
dalam mode UNIX seperti ini:socat TCP-LISTEN:5555,reuseaddr,reuseport,fork SYSTEM:'cpipe -ngr -b 1 -s 10 | socat - "TCP:localhost:5000" | cpipe -ngr -b 1 -s 300'
Ini mensimulasikan koneksi dengan bandwidth sekitar 300 kB / s dari layanan Anda di
:5000
dan hingga sekitar 10kB / s dan mendengarkan:5555
untuk koneksi masuk. Peringatan : Perhatikan bahwa ini per-koneksi , sehingga setiap koneksi TCP individu mendapatkan jumlah ini.Penjelasan: Bagian luar (kiri)
socat
mendengarkan dengan opsi yang diberikan:5555
sebagai server forking.cpipe
Perintah pertama dalamSYSTEM:...
opsi kemudian throttles data yang masuk ke soket: 5555 (dan keluar dari yang pertama, luarsocat
) hingga paling banyak 10kByte / s. Data itu kemudian diteruskan menggunakan yang lainsocat
yang terhubunglocalhost:5000
(di mana layanan yang Anda ingin memperlambat harus mendengarkan). Data darilocalhost:5000
kemudian dimasukkan ke dalamcpipe
perintah yang benar , yang (dengan nilai yang diberikan) mengecilkannya menjadi sekitar 300 kB / s.Pilihan
-ngr
untukcpipe
itu penting. Itu menyebabkan cpipe membaca dengan tidak rakus dari file-deskriptor inputnya. Jika tidak, Anda mungkin terjebak dengan data di buffer yang tidak diteruskan dan menunggu balasan.Menggunakan alat yang lebih umum
buffer
daripadacpipe
mungkin juga mungkin.(Penghargaan: Ini berdasarkan resep "tee ganda" oleh Christophe Loor dari
socat
dokumentasi)sumber