2017-04-18 10 views
1

私は宿題の割り当てとして、チェックサムを使用してUDP通信のエラーを修正し、正しく受信したパケットを確認しようとするUDPサーバークライアントアプリケーションを作成しました。Qt UDPプログラムのパケットロスをシミュレートするにはどうすればよいですか?

ローカルホストでは、すべてのパケットが問題なく受信されるという問題があります。私はいくつかのパケット改ざんプログラムを試しましたが、それらはすべてネットワークインターフェイスを介した通信が必要です。

ローカルホストのループバックアドレスでUDPパケットの損失をシミュレートする方法はありますか。

答えて

4

UDPは簡単に処理できます。送信者または受信者にメッセージの特定の割合をドロップするコードを書き込んで、時には時折並べ替えることもあります。

実際の送信者または受信者を変更できない場合は、途中にある簡単なプログラムを作成して、パケットをいくつかのドロップや並べ替えで転送するのは簡単です。

Linuxを使用している場合は、おそらくを設定してパケットを廃棄することができます:http://code.nomad-labs.com/2010/03/11/simulating-dropped-packets-aka-crappy-internets-with-iptables/ - これはループバックポートでも機能するようです。

+0

私は送信者と受信者を変更できますが、プログラムを再コンパイルせずに簡単に機能をデモンストレーションできるようにしたいと考えていました。私は主にウィンドウで作業しますが、必要に応じてLinuxでテストできます。 –

+1

@TomášZato:さて、それを設定またはコマンドラインオプションにしてください。 –

関連する問題