2012-04-08 14 views
1

私は、TCPクライアントとサーバーを持つアプリケーションを持っています。クライアントとサーバーを別々のマシンにセットアップしました。今では、どれだけの帯域幅が消費されているか(アプリケーションの1回の実行中に送受信されたバイト数)を測定したいと考えています。私はwiresharkがこの統計を得るのに役立つツールの1つであることを発見しました。しかし、wiresharkはGUIに依存しているようです。私が望んでいたのは、この統計量の測定と報告を自動化する方法でした。 wiresharkでキャプチャされた個々のパケットに関する情報は気にしません。私はその情報は必要ありません。 wiresharkを実行する方法はありますか?アプリケーションが両端で実行されている間に、2つのホスト間で送受信された合計バイトをファイルに書き込むことです。2つのホスト間の帯域幅使用の測定を自動化する方法

また、この統計情報を取得するには良い方法がありますか? netstatまたは/ proc/dev/netまたは他のツールを使用していますか?

どちらのマシンにも、ubuntu 10.04以降が動作しています。

答えて

1

Broは、接続指向の統計を測定するのに適したツールです。アプリケーションによって送信され、受信したバイトの量のための同じディレクトリに接続ログ(conn.log)を見て、その後

bro -r <trace> 
bro -i <interface> 

:あなたは、あなたのアプリケーション通信のトレースを記録したり、リアルタイムでそれを分析しますか。具体的には、 conn.logが列 orig_bytesresp_bytesで公開されているTCPペイロードサイズに興味があります。次の出力が得られる

bro-cut id.orig_h id.resp_h conn_state orig_bytes resp_bytes < conn.log | head 

192.168.1.102 192.168.1.1  SF  301  300 
192.168.1.103 192.168.1.255 S0  350  0 
192.168.1.102 192.168.1.255 S0  350  0 
192.168.1.103 192.168.1.255 S0  560  0 
192.168.1.102 192.168.1.255 S0  348  0 
192.168.1.104 192.168.1.255 S0  350  0 
192.168.1.104 192.168.1.255 S0  549  0 
192.168.1.103 192.168.1.1  SF  303  300 
192.168.1.102 192.168.1.255 S0  -  - 
192.168.1.104 192.168.1.1  SF  311  300 

各行は単一の接続、トランスポート層ポートは省略を表し、ここでの例です。最後の2つの列は、発信者(第1列)および応答者(第2列)によって送信されたバイトを表します。列conn_stateは接続状態を表します。可能なすべてのフィールド値については、documentationを参照してください。いくつかの重要な値は次のとおりです。

  • S0:見接続の試み、応答なし。
  • S1:接続は確立されていません。
  • SF:正常な確立および終了。これは状態S1と同じ記号であることに注意してください。あなたは、S1のためにサマリーにバイトカウントがないので、SFのためには存在するので、2つに分けて言うことができます。
  • REJ:接続が拒否されました。
+0

ドキュメントを詳しく説明しますが、その行にリストされているホスト間でそれぞれ送信され、受信されたネットバイトを表すスナップショットの最後の2つの列ですか? – AnkurVj

+0

修正。各フローは単一の接続/フローを表します。 (回答を明確にしました) – mavam

+0

bro -i eth0を使用してbroを起動すると、パケットのキャプチャを停止する方法を教えてください。私は現在Ctrl + cを使用してプロセスを停止し、すべての統計がファイルに書き込まれることを期待しています。 – AnkurVj

関連する問題