低帯域幅、高レイテンシの環境をどうやってシミュレートしますか?


201

リモートサイトでVPNの状態をエミュレートするために、サーバーへの低帯域幅、高遅延接続をシミュレートする必要があります。ソフトウェアパッケージを実行するための最適な組み合わせを見つけることができるように、帯域幅と遅延は微調整可能である必要があります。


7
すばらしい質問です。ASP .NET Web開発に関連するいくつかの回答を聞きたいです。
カール

回答:


79

以下のためのMacOS、そこにあるネットワークリンクコンディショナーは、設定可能な帯域幅、遅延、パケットロスをシミュレートしています。Xcodeパッケージの追加ツールに含まれています。 Screenshot


12
「ネットワークリンクコンディショナー」環境設定パネルでは、からダウンロードすることができXCodeのためのハードウェアIOツールの一部であるdeveloper.apple.com/downloads
avernet

Genymotionでは動作しないようです。(ブラックスクリーン)
Bruno

1
新しいXCodeバージョンのダウンロードリンク:developer.apple.com/download/more/
q

@ jstorm31ありがとうございます。回答をパッケージの現在の名前と現在のリンクで更新しました。
Jon Colverson

37

これを行うために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で作業している場合、そのOSにはデフォルトでipfwが組み込まれています。私は同じことを、空港とイーサネットを介してネットワークトラフィックをルーティングし、空港を経由するすべてのトラフィックが、私がエミュレートしようとしているものと同じ特性を持つように設定することで行いました。端末から直接ipfwコマンドを呼び出して、同じ効果を得ることができます。


27

以前は、Linux Netem(ネットワークエミュレーション)機能を使用してブリッジを使用していました。これは高度に設定可能です-遅延の導入(最初の例はWANの場合)、パケット損失、破損などを許可します。

編集:設定を制御するためのMasterShaper Webインターフェイスもあります。

Netemは私のアプリケーションで非常にうまく機能したことを指摘していますが、結局、WANemを数回使用することにもなりました。提供されている起動可能なISO(および仮想アプライアンスイメージ)は非常に便利です。


私のニーズに最適で、Ubuntu 14.04サーバーですぐに使用できます。
RobM

21

チャールズ

Charlesのウェブデバッグプロキシアプリケーションに出会い、ネットワーク遅延のエミュレートに大成功しました。Windows、Mac、Linuxで動作します。

Macのチャールズ

帯域幅スロットル/帯域幅シミュレーター

Charlesを使用して、インターネット接続の帯域幅と遅延を調整できます。これにより、高速接続を使用してモデムの状態をシミュレートできます。

帯域幅は、毎秒任意のバイトに制限される場合があります。これにより、任意の接続速度をシミュレートできます。

待ち時間は、任意のミリ秒数に設定することもできます。レイテンシの遅延は、遅い接続で発生するレイテンシ、つまり、要求を行ってからもう一方の端で要求が受信されるまでの遅延をシミュレートします。

DummyNet

vmwareを使用してBSDまたはLinuxを実行し、この記事(DummyNet)またはこれを試すこともできます


2
CharlesはHTTPプロキシであるため、HTTPアプリケーションのテストにのみ適しています。それぞれに、しかし私の意見では、これはおそらく私が今まで使った中で最悪のソフトウェアのいくつかでしょう。Macで作業する必要があった間、私はそれを短時間だけ使用しました。Windowsユーザーの場合、HTTPデバッグプロキシが必要な場合はFiddlerをお勧めします。残念ながら、Charles for OSX以外は見つかりませんでした。
ブラッド

6
こんにちはブラッド。どのような問題がありましたか?
アンテ

17

私はこの不器用な Windows用の小さなプログラムを見つけました。アルファステータスのようなものですが、私には問題なく動作するようで、オープンソースです。

編集:他人は不器用に帯域幅を制限できないことに気づきました、そしてそれは本当です。追加できるのは、遅延とその他のネットワーク関連のエラーのカップルのみです。これは、この回答を質問への有効な回答として失格にします。ただし、不良ネットワークをシミュレートしたいときにそれをうまく利用したので、投票数が0以上である限り、ここに残します。


ぎこちない方法で帯域幅をどのように制御しますか?
user3731622

3
素晴らしいプログラム。ちょうど私が必要としたもの。私はそれをお勧めします。魅力のように機能し、超簡単です。
Jh62

1
ほとんどの人が「帯域幅を制限する」と言うとき、彼らは帯域幅を制限するので、単純に大量の待ち時間とパケット損失を追加するだけで満足しません。また、このプログラムは驚くほど簡単に使用でき、Windowsで試した他のすべてのものに勝っています。
ロール

13

試してみてくださいWANemを

WANemは、広域ネットワークエミュレーターであり、アプリケーション開発/ LAN環境でのテスト中に、広域ネットワーク/インターネットの実際のエクスペリエンスを提供することを目的としています。


1
私はこれを試してみましたが、うまく動作しないようです。何らかの理由でネットワークからIPアドレスを取得できませんが、他のコンピュータには問題がありません。
マイケルベック


7

Linuxでnetemを使用してみます。それを使用すると、追加の遅延、破損、パケット損失、および複製をシミュレートできます。ループバックデバイスでも機能します。


ねえ、あなたはnetemと同じようにWindows用のコマンドをいくつか持っていますか?
Shashi Ranjan

6

別のクライアント側プログラム(Windowsのみ)はNetLimiterです-http ://www.netlimiter.com


2
ネットリミッターは良いですが、それは低い帯域幅しかできないと思います-待ち時間を変更することはできませんか?
ネイサン

v3のベータ計画では、計画された機能としてレイテンシシミュレーションがリストされています。これは、最近リリースされた、その機能はそれで作られたかどうかは確認するために、まだそれを使用していない。
kaliatech

その機能は、ベータバージョン9には含まれていませんでした。
cacba 2013

4
現在のベータ版(NetLimiter 4)でも、待ち時間を変更することはできません。
影響力のある14年

5

WindowsマシンでNetBalancerを使用しています。

http://seriousbit.com/netbalancer/

2017-10-07の更新NetBalancerの最後の無料バージョンは9.2.7です。プログラムには、ハードコードされた有効期限があります。NetBalancerサービスを開始する前に、2016-10-18より前にシステムクロックを戻す必要があります。詳細については、この記事を参照してください。


ありがとうございました!!NetBalancerは、このページにリストされている唯一のツールであり、私が仕事に取り掛かり、待ち時間を制御することができました。
影響力のある14年



3

Google Chromeを使用してWebサイトをテストするための低帯域幅接続をシミュレートするには、F12ツールの[ネットワーク]タブに移動して、シミュレーションする帯域幅レベルを選択するか、シミュレーションするカスタム帯域幅を作成します。


1
ありがとう!見つからない場合は、Chromeコンソールの[ネットワーク]タブの[キャッシュを無効にする]ボタンの右側にあります。デフォルト値は「スロットルなし」です。
アランウィルムズ2016


1

Linuxを使用している場合は、Traffic Controlプログラムがこの種のことの大きな助けになると思います。


1

さまざまなネットワーク条件をシミュレートするために使用できるVEデスクトップと呼ばれるhttp://www.shunra.comの製品があります。シンプルなUIで待ち時間、帯域幅、パケットロスを微調整できます。唯一の警告は、それは無料ではありません。お役に立てれば。


1

このタイプのテスト用の使いやすいツールをしばらく探していました。私は先日これに出くわしました: Network Delay Simulator

Windowsを実行している場合は、チェックアウトする必要があります。設定と導入は非常に簡単で、本当にうまく機能しているようです。帯域幅、待ち時間、および各方向のパケット損失を定義できます。もう1つの本当に素晴らしいことは、「フロー一致条件」を定義して、必要なトラフィックのみに影響を与えることができることです。そうそう、それは無料です。



1

帯域幅、待ち時間、パケット損失、パケットの並べ替え、パケットの複製、パケットの断片化、ネットワークの輻輳、その他多くの障害を構成して、ラボで実際のネットワーク条件を作成できるNE-ONEネットワークエミュレータを見てください。 。アップとダウンリンクにさまざまな障害を設定できるため、アップリンクは非常に良好ですが、ダウンリンクのエクスペリエンスは非常に悪くなる可能性があります。ACKがタイムリーに返されず、全体的な遅延が発生するため、アプリがTCPキューを処理する方法を確認するのに最適です。したがって増加します!

ここに概要のビデオがありますhttp://www.youtube.com/watch?v=DwtqlE7LcrQ特にゲーム開発者を対象としが、それが何であるかを示しています。NE-ONEはWebブラウザーを使用して構成されているため、簡単にインストールして構成できます。ネットワークの第一人者である必要はありません。

ハードウェアバージョンがあります-http://www.itrinegy.com/index.php/products/network-emulators/ne-one-または、VMware ESXi Serverで実行される仮想アプライアンス(ソフトウェア)バージョンをダウンロードできます。仮想アプライアンスは、VMwareのSolution Exchangeからダウンロードできます-solutionexchange.vmware.com/store/products/ne-one-flex-network-emulator



0

LANforge ICEは、 仮想ルーティング、ジッター、破損、遅延に重点を置いたネットワークエミュレーターです。プロジェクトは、衛星リンク、ケーブルおよびモデム接続、および高速(10ギガビット)WANエミュレーションをエミュレートするためにそれを使用しました。Java GUIを使用して仮想ネットワークを構築し、トラフィックフローの非常に詳細なレポートを生成できます。LANforge製品は、フレーム、イーサネット、レイヤー3およびステートフルトラフィック(NFS、http)のトラフィック生成機能も提供します。LANforgeの最近のエディションには、洗練されたWiFiテスト機能もあります。


0

あなたはこれを試すことができます: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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.