web-dev-qa-db-ja.com

低速インターネット接続のシミュレーション

これはちょっと奇妙な質問だと思います。私は通常、すべてのユーザーのインターネット接続が遅いという「仮定」に基づいてアプリケーションを開発しています。しかし、遅いインターネット接続をプログラムでシミュレートする方法があると誰もが思うので、さまざまな「接続速度」の下でアプリケーションがどのように動作するかを「見る」ことができますか?

どの言語が使用されているか心配していません。また、コードサンプルなどを探しているのではなく、その背後にあるロジックにのみ興味があります。

174
anon271334

Windowsを実行している場合、 fiddler は素晴らしいツールです。モデムの速度をシミュレートする設定があり、さらに制御したい人のために 各リクエストにレイテンシを追加するプラグイン があります。

レイテンシコードをアプリケーションに配置するよりもはるかに現実的なシミュレーションであり、実際のビットを設計したりコーディングしたりしないので、このようなツールを使用することを好みます。最良のコードは、書く必要のないコードです。

を追加:Software Technologiesに関するPavel Donchevのブログのこの記事では、カスタムのシミュレートされた速度を作成する方法を示します。 Fiddlerでインターネット接続速度を制限する

103
Philip Rieck

Chrome 38以降では、プラグインなしでこれを行うことができます。検査要素をクリックするだけです(または F12 ホットキー)、[デバイスの切り替え]をクリックしますenter image description here 次のようなものが表示されます。

enter image description here

他の多くの機能の中で、特定のインターネット接続(3G、GPRS)をシミュレートできます。

P.S。アップロード速度を制限しようとする人向け。残念ながら、現時点では不可能です。

P.S.2今、何も切り替える必要はありません。スロットルパネルは、ネットワークパネルから直接利用できます。 enter image description here

No throttlingをクリックすると、カスタムのスロットルオプションを作成できることに注意してください。

enter image description here

151
Salvador Dali
43
Stin

http://www.netlimiter.com/ を使用していましたが、非常にうまく機能します。単一プロセスの速度を制限するだけでなく、実際の転送速度も示します。

11
Piotr Müller

Linuxマシンでは、wondershaperを使用できます

apt-get install wondershaper

$ Sudo wondershaper {interface} {down} {up}

{down}および{up}はkpbs単位の帯域幅です

たとえば、インターフェースeth1の帯域幅を256kbpsアップリンクと128kbpsダウンリンクに制限する場合、

$ Sudo wondershaper eth1 256 128

制限をクリアするには、

$ Sudo wondershaper clear eth1 
10

IprelayやSloppyのようなTCPプロキシがあり、低速の接続をシミュレートするために帯域幅シェーピングを行います。また、ipfwやiptablesなどのIPフィルタリングツールを使用して、帯域幅シェーピングを行い、パケット損失をシミュレートできます。

6
hobbs

また、一部の* nixで遅い接続をシミュレートするには、 ipfw を使用してみてください。詳細については、このQuoraに関するBen Newmanの回答によって提供されます question

4

Dummynet を試すことができます。キューと帯域幅の制限、遅延、パケット損失、マルチパス効果をシミュレートできます

4
tszming

Charlesや Fiddler などの調整機能を備えたWebデバッグプロキシを使用します。

あなたはそれらが一般的に有用なウェブ開発を見つけるでしょう。大きな違いは、Charlesはシェアウェアであるのに対し、Fiddlerは無料であることです。

3
Ben M

NetEm(Network Emulation)プロキシサーバーとして使用して、多くのネットワーク特性をエミュレートできます(速度、遅延、パケット損失、等。)。 iproute2 パッケージを使用してネットワークを制御し、ほとんどのLinuxディストリビューションのカーネルで有効になっています。

tcコマンドラインアプリケーション(iproute2パッケージから)によって制御されますが、NetEm用のWebインターフェイスGUIもいくつかあります。たとえば、 PHPnetemGUI2

利点は、私が書いたように、異なるネットワーク速度だけでなく、たとえば、パケット損失、複製および/または破損、ランダムまたは定義された遅延などをエミュレートできるため、さまざまなパフォーマンスの低いネットワークをエミュレートできることです。

アプリケーションでは完全に透過的であるため、NetEmプロキシサーバーを使用するようにオペレーティングシステムを構成できるため、そのマシンからのすべての接続はNetEmを経由します。または、プロキシとして使用するようにアプリケーションのみを構成できます。

さまざまなエミュレートされたパフォーマンスの低いネットワークでAndroidアプリのパフォーマンスをテストするために使用しています。

TCPMon のようなツールを使用します。接続が遅くなる可能性があります。

基本的には、まったく同じものを要求し、実際のサーバーにまったく同じ要求を転送し、設定されたバイト数だけ応答を遅延させます。

2
pickypg

10.10以降のMac OSXには Murus Firewall と呼ばれるアプリがあり、これはipfwの代わりとなるpfのGUIとして機能します。

システム全体またはドメイン固有の調整に非常に適しています。ストリーミングビデオプレーヤーの調整方法をテストするために、300Kbpsから30Mbpsの間でダウンロード速度をスライドさせるために使用できました。

1
Ben Wheeler

私が探していた答えが言及されていなかったので、これを(それが尋ねられてから9年後に)更新しました:

Firefoxには、接続速度を調整するためのプリセットもあります。開発者ツールのNetwork Monitorタブでそれらを見つけます。デフォルトは「スロットルなし」です。

最も遅いGPRSダウンロード速度:50 Kbps、アップロード速度:20 Kbps、最小遅延(ms):500 )、「good」および「regular」2G、3G、4GからDSLおよびWiFiダウンロード速度:30Mbps、アップロード速度:15Mbps、最小レイテンシ(ms):2)。

Dev Tools docs の詳細。

0
lazysoundsystem

WIPFWと呼ばれる別のツールもあります- http://wipfw.sourceforge.net/

それは少し古い学校ですが、それを使用してより遅い接続をシミュレートできます。 Windowsベースであり、このツールを使用すると、管理者はルーターが特定のマシンから取得しているトラフィックの量や、転送しているWWWトラフィックの量などを監視できます。

0
Deano