Ubuntuで2つのシステム間で転送されるデータのサイズを計算する方法は?

Ubuntuで2つのシステム間で転送されるデータのサイズを計算する方法は?

コンピュータが2台あります。

1つ目はワークステーションです。ディープラーニングコードを実行し、有線接続を介してAPに接続します。

2番目はロボットとしてのコンピュータです。他のセンサーから画像やその他の情報を送信し、LANカードを介してAPに接続します。

端末で命令を利用してリアルタイムで送受信するパケットのデータサイズを知りたいです。

ネットワークを介して互いに送信されるデータをどのように測定しますか?

メモ:ローカル無線LANのみを使用します(インターネットなし)。

答え1

良いことを知らなくてもtcpdumpが良いスタートだと言いたいです。

tcpdump -s0 -ni <WIFI-DEVICE> host <ROBO-IP> -w data.pcap

Linuxシステムとロボット間のすべてのデータをdata.pcapに書き込みます。

ここからデータを分析できます。

  • scapy(python-lib)
  • ラインシャーク

data.pcapファイルをスキップできます。

  • Wiresharkを直接使用する(LinuxホストではXが必要)
  • 標準出力に直接書き込む tcpdump -s0 -ni <WIFI-DEVICE> host <ROBO-IP> -w -

次に、stdinからパケットを読み取って分析するプログラムが必要です。 tcpdump -s0 -ni <WIFI-DEVICE> host <ROBO-IP> -w - | <ANALYZER_PROG>

このANALYZER_PROGはscapyで書くことができます。

scapyソリューションの場合は、スタックオーバーフローも検索します。

ファタイ

答え2

iftopこの機能を提供してください。 Ubuntuでは、次のコマンドを使用してインストールできます。

sudo apt-get install -y iftop

特定のサーバーのトラフィックを監視するには、-f filter code次のものを使用できます。

iftop -f 'host <HOSTNAME/IP ADDRESS>'

次の内容が表示されます。

                12.5Kb           25.0Kb           37.5Kb           50.0Kb     62.5Kb
+---------------+----------------+----------------+----------------+----------------
10.184.240.3                 => 10.184.125.147               10.0Kb  8.00Kb  11.6Kb
                             <=                              2.75Kb  2.29Kb  2.86Kb
------------------------------------------------------------------------------------
TX:             cum:   58.0KB   peak:   54.2Kb      rates:   10.0Kb  8.00Kb  11.6Kb
RX:                    14.3KB           10.2Kb               2.75Kb  2.29Kb  2.86Kb
TOTAL:                 72.3KB           64.4Kb               12.8Kb  10.3Kb  14.5Kb

もちろん、マニュアルでは、このコマンドのさまざまなフラグについて読むことができます。

関連情報