背景
私たちのクライアントの1人は、ユーザーが大きなファイルをダウンロードしたときにパケットをドロップするというインターネットの断続的な問題に苦しんでいます(彼らのITは問題を調査しています)。
Windows 2008 R2 IIS7.5を実行しているWebサーバーと、Windows 7を実行しているクライアントで構成されるアプリケーションがありますChrome長時間実行されるXMlHttpRequestを使用して、サーバーからサーバーに「メッセージ」を転送します。クライアント。
問題。
私のアプリケーションは、これらのパケット損失の影響をかなり受けないはずですが、実際にはそうではありません。
ランダムな1%のパケット損失、バースト性のパケット損失など、さまざまなネットワーク問題のシナリオでアプリケーションをテストしたいと思います。たとえば、4000ミリ秒のパケットが完全に失われるなどです。
シナリオを「再現」してアプリケーションをテストできるソリューションを探しています。 3Gを使用することも、ネットワークケーブルを抜き差しすることもできますが、その効果はあまり再現できません。
質問です。
「危険な」インターネット接続を模倣するために自分のマシンにインストールできるアプリケーション/ドライバーはありますか?または、これらのシナリオをモックするためにネットワークで使用できるアプライアンスまたはプロキシサーバーでしょうか。
TCPスタックのほとんどがネットワークカードにオフロードされると思うので、最近のコンピューターで行うのはそれほど簡単ではないと思いますが、これはかなり人気のあることだと思いました試してみてください、しかし私はグーグルで運がありませんでした。私はWindowsに精通していますが、クライアントまたはプロキシとしてLinuxを使用するソリューションは歓迎されます。
真ん中の単純なLinuxルーターは、これを完璧に行うことができます。 netem
を読んでください。失われたパケット、並べ替えられたパケット、破損したパケット、さらには遅延を含むすべてを複製できます。私は衛星ベースのリンクをシミュレートするためにそれを自分で使用します。
私はこれを実行するためにTMNetSimを使用しました。必要なポートをプロキシするため、ほとんどのアプリケーションで使用できます。
http://www.tmurgent.com/Tools.aspx
クライアント側とサーバー側の両方で相関パケットキャプチャを実行し、クライアントがRSTパケットを受信しているかどうかを確認することをお勧めします。もしそうなら、それはあなたのサーバーから来ていますか?また、5分間操作がなかった後など、予測可能な時間に発生しますか。