tcpのパケットロスをパッシブに監視する方法は?(Linux)
自分のマシンとの間のTCP接続におけるパケットロスをパッシブに監視するにはどうしたらいいですか?
基本的には、バックグラウンドでTCPのack/nak/re-transmitを監視して、どの相手のIPアドレスでパケットロスが発生しているかのレポートを作成するツールが欲しいです。
SFのこのような質問では、ほとんどがiperfのようなツールの使用を勧めています。 しかし、私のマシン上の実際のアプリケーションとの接続を監視する必要があります。
このデータは、LinuxのTCPスタックの中にあるだけなのでしょうか?
61
3
問題の規模を大まかに把握するには、
netstat -s
で再送回数の合計を記録します。grep for
segments
を実行すると、より詳細な情報を得ることができます。もっと詳しく知りたい場合は、Wiresharkを起動するとよいでしょう。
Wireshark でフィルタを
tcp.analysis.retransmission
に設定し、フローごとの再送を確認します。これが私が思いついた最良の選択肢です。
他にも行き詰まったところがあります。
を stracing したところ、
/proc/net/netstat` を出力しているだけであることがわかりました。これらの統計情報は /proc/net/netstat にあり、
collectl
はこれらの統計情報をインタラクティブに監視したり、後で再生するためにディスクに書き込んだりします。もちろん、ネットワークトラフィックと並べて表示したい場合は、
-s
にn
を付ければOKです。ノースカロライナ大学(UNC)の人たちが、まさにこれを調べるためにユーティリティーを作ったようです。
メソドロジー となっています。 TCPはレガシープロトコルの典型的な例であり、変更を受けると 変更されます。残念ながら、TCPの損失検出/回復メカニズムのような TCPの損失検出/回復メカニズムのような基本的なものの評価は 包括的なものではありません。私たちの目的は、TCPの損失とその回復メカニズムの現実的な評価を TCPの損失とそのパフォーマンスへの影響を評価することを目的としています。
また、実世界のTCPコネクションの受動的な分析を行うことで、必要なレベルの詳細さと現実性を実現しています。
http://www.cs.unc.edu/~jasleen/Research-passivetcp.htm#Tool
ツール
本番さながらとは言いませんが。 以前、ip/port/ackのタプルをメモリに格納し、pcap出力をスキャンして重複するデータをレポートする簡単なperlスクリプトを作ったことがありますが、これはより詳細な分析ができそうです。