如何计算Ubuntu中两台机器之间传输的数据大小?

如何计算Ubuntu中两台机器之间传输的数据大小?

我有两台电脑。

第一个是作为工作站。它运行深度学习代码并通过有线连接连接AP。

第二个是作为机器人的计算机。它发送来自其他传感器的视频和其他信息,并通过 LAN 卡连接 AP。

我想使用终端中的命令了解它们之间实时交换的数据包的数据大小。

如何测量它们通过网络相互传输的数据?

笔记:我仅使用本地无线局域网(没有互联网)

答案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

当然,您可以在手册中阅读该命令的不同标志。

相关内容