如何自动测量两台主机之间的带宽使用情况

2023-12-04

我有一个具有 TCP 客户端和服务器的应用程序。我在不同的机器上设置客户端和服务器。现在我想测量消耗了多少带宽(在应用程序的单次运行期间发送和接收的字节数)。我发现wireshark就是这样一个可以帮助我获得统计数据的工具。然而,wireshark 似乎依赖于 GUI。我想要的是一种自动测量和报告该统计数据的方法。我不关心wireshark捕获的各个数据包的信息。我不需要那个信息。有没有某种方法可以运行wireshark,以便它所做的只是写入文件,即应用程序在两端运行时在两个主机之间发送和接收的总字节数?

另外,是否有更好的方法来捕获此统计数据?通过 netstat 或 /proc/dev/net 或任何其他工具?

我的两台机器都运行 ubuntu 10.04 或更高版本。


Bro是测量面向连接的统计数据的合适工具。您可以记录应用程序通信的痕迹或实时分析它:

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

此后,查看连接日志(conn.log)在同一目录中,用于计算应用程序发送和接收的字节数。具体来说,您对 TCP 有效负载大小感兴趣,其中conn.log通过列暴露orig_bytes and resp_bytes。这是一个例子:

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

每行代表一个连接,省略传输层端口。最后两列表示发起者(第一列)和响应者(第二列)发送的字节。专栏conn_state代表连接状态。请参阅文档对于所有可能的字段值。一些重要的值是:

  • S0:看到连接尝试,没有回复。
  • S1:连接已建立,未终止。
  • SF:正常建立和终止。请注意,这与状态 S1 的符号相同。您可以区分两者,因为对于 S1,摘要中不会有任何字节计数,而对于 SF,摘要中会有。
  • REJ:连接尝试被拒绝。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何自动测量两台主机之间的带宽使用情况 的相关文章

  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • 防止 WNetAddConnection2 类允许被禁止的用户访问共享文件夹

    我开发了 C windows 应用程序 操作系统是Windows 7 要求 是使用带有凭据的代码访问网络共享文件夹 Test WNetAddConnection2 class 限制 是某些用户可以访问此共享文件夹 测试 但对于其他用户 设置
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • sendfile64 只复制约2GB

    我需要使用 sendfile64 复制大约 16GB 的文件 到目前为止我所取得的成就是 include
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 如何在Linux内核源代码中打印IP地址或MAC地址

    我必须通过修改 Linux 内核源代码来稍微改变 TCP 拥塞控制算法 但为了检查结果是否正确 我需要记录 MAC 或 IP 地址信息 我使用 PRINTK 函数来打印内核消息 但我感觉很难打印出主机的MAC IP地址 printk pM
  • PHP 从命令行启动 gui 程序,但 apache 不启动

    首先 我阅读了有类似问题的人的一些帖子 但所有答案都没有超出导出 DISPLAY 0 0 和 xauth cookies 这是我的问题 提前感谢您的宝贵时间 我开发了一个小库 它使用 OpenGL 和 GLSL 渲染货架 过去几天我将它包装
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • Linux 可执行文件与 OS X“兼容”吗?

    如果您在基于 Linux 的平台上用 C 语言编译一个程序 然后将其移植以使用 MacOS 库 它会工作吗 来自编译器的核心机器代码在 Mac 和 Linux 上兼容吗 我问这个问题的原因是因为两者都是 基于 UNIX 的 所以我认为这是真
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • iptables通过注释删除特定规则

    我需要删除一些具有相同评论的规则 例如 我有带有 comment test it 的规则 所以我可以像这样获得它们的列表 sudo iptables t nat L grep test it 但是我怎样才能删除所有带有注释 测试它 的 PR
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少
  • 如何通过保持目录结构完整来同步路径中匹配模式的文件?

    我想将所有文件从服务器 A 复制到服务器 B 这些文件在不同级别的文件系统层次结构中具有相同的父目录名称 例如 var lib data sub1 sub2 commonname filetobecopied foo var lib dat
  • 如何授予 apache 使用 NTFS 分区上的目录的权限?

    我在一台带有 20GB 硬盘的旧机器上运行 Linux Lubutu 12 10 我有一个 1 TB 外部硬盘 上面有一个 NTFS 分区 在该分区上 有一个 www 目录 用于保存我的网页内容 它在启动时自动安装为 media t515
  • 为arm构建WebRTC

    我想为我的带有arm926ej s处理器的小机器构建webrtc 安装 depot tools 后 我执行了以下步骤 gclient config http webrtc googlecode com svn trunk gclient s

随机推荐

  • 在Python中,命令行参数无需导入?

    在Python中 是否可以在不导入sys 或任何其他模块 的情况下获取命令行参数 是的 如果您使用的是 Linux 如果您知道进程 ID 则可以读取它 proc pid cmdline文件 其中包含以 null 分隔的命令行参数列表 PRO
  • VBA Excel 变量对多个键/顺序进行排序

    如何同时对多个列 键 订单 进行排序 当我运行下面的代码时 它会在执行每一行时对数据重新排序 而不是在排序中对多列进行排序 将 密钥 或 订单 编号从 1 更改为 2 等没有帮助 谢谢 wsLast Row Cells Rows Count
  • javascript数组的总和返回所有数字的字符串连接[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我有一个由 ajax 获取的 php json encode 对象 我想做的就是对这个数组求和 这是我到目前为止所做的 var json parseJSON data var
  • 如何在Tensorflow中设置分层学习率?

    我想知道是否有一种方法可以像 Caffe 中那样对不同层使用不同的学习率 我正在尝试修改预先训练的模型并将其用于其他任务 我想要的是加快新添加层的训练速度 并将训练后的层保持在较低的学习率 以防止它们被扭曲 例如 我有一个 5 卷积层的预训
  • 当服务打开时,如何强制应用程序选择退出省电模式?

    预期的行为是应用程序在处于开启状态时将始终运行 当应用程序一段时间不活动时 某些手机会将应用程序置于后台模式 我希望应用程序始终运行 即使处于待机模式 待机模式意味着当我们按下主页按钮时 应用程序将进入后台 并且它将运行一段时间 我找到了以
  • 配置按键重复延迟以检测按键是否被按下

    我正在用 C 语言编写一个程序 它使用 ncurses 来检查是否按下了某个键 问题是按键重复有延迟 例如 如果我在终端中按住 a 键 则在重复输入 a 之前会有短暂的延迟 我希望能够知道它是否是从实际按下的位置按下的 在终端中如何暂时将此
  • opengles 在 iPhone 中显示人脸

    我需要将人类 2D 脸部制作为 3D 脸部 我用了这个链接加载 obj 文件并映射纹理 此示例仅适用于立方体和金字塔 我加载了人脸 obj 文件 This loads the obj file and can get the human f
  • Spring 对每个未经授权的 HTTP POST 返回 HTTP 405

    Spring 似乎没有正确路由 授权 HTTP POST 请求 当我发送 HTTP POST 请求时 我总是收到 405 Method Not allowed 响应 并在日志文件中显示 org springframework web ser
  • Jquery 数据表排序不适用于日期列?

    我有一个 jquery 数据表 其中日期列格式为 2018 年 2 月 16 日 但是当它排序时 它没有正确排序 我已经使用了提到的所有与日期相关的列类型Here 但似乎没有任何作用 我该如何解决 这是代码 div class panel
  • 列表追加到 pandas 单元格中

    我有一个数据框 其中包含列中的列表项 例子 df column1 column2 column3 1 c d 2 x 3 foo car 所以我想将另一个项目附加到第3列中 结果应该是这样的 column1 column2 column3
  • 如何使用 SimpleXML 解析 XML 并忽略错误

    我的 xml 文档经常包含错误 无论如何 我想解析我的文档直至出现错误或尝试自动修复错误 那可能吗 我已经尝试过这个 但它不起作用 xml simplexml load file url SimpleXMLElement array LIB
  • 基本矩阵的投影矩阵

    我已经获得了两个摄像机之间的基本矩阵 我也有他们的内部参数3 X 3我之前通过棋盘获得的矩阵 使用基本矩阵 我得到了P1 and P2 by P1 I 0 and P2 e x F e 这些投影矩阵对于获取精确的 3D 位置并没有真正的用处
  • 使用 python-pptx 从现有图表中读取图表数据

    我想使用 python pptx 库从演示文稿中的图表中读取数据 我已经看过替换图表数据的文档 但我不知道如何读取数据 图表数据为 图表的图表类型 它的类别名称 以及可能的层次结构 它的系列名称 及其系列值 这些可在绘图级别使用 例如 gt
  • 如何将 Objective-C 函数作为回调传递给 C 函数?

    我想从 Objective C 调用 C 函数并将 Objective C 函数作为回调传递 问题是这个函数有一个回调作为参数 所以我必须将 Objective C 函数作为回调传递给 c 函数 这是c函数的头文件 struct mg co
  • 带有上传附件选项的文本区域 HTML/JQuery

    我创建了文本区域 允许用户输入文本 如下所示
  • Microsoft VS C++ 编译器可以从临时对象初始化引用是否是一个错误[重复]

    这个问题在这里已经有答案了 可能的重复 将临时绑定到左值引用 使用VS2008 C 编译器 编译代码无编译错误 class A int main A a ref A return 0 我相信 C 标准 C 2003 和即将推出的 C 0x
  • R:条形图高度必须是向量或矩阵[重复]

    这个问题在这里已经有答案了 我正在尝试使用分组条形图制作条形图 但出现此错误 高度 必须是向量或矩阵 我不知道为什么 我的代码是 rebDef sample 50 100 14 replace F rebOf sample 20 40 14
  • 如何让模拟器与我的电脑处于同一网络?

    我在 NET 4 Visual Studio 2010 中创建了一些 Web API 方法 现在已将其移植到 VS 2013 RC 我想使用 RestSharp 从 Windows CE Compact Framework 应用程序中使用它
  • Spark 2.2 Scala DataFrame 从字符串数组中选择,捕获错误

    我是 SparkSQL Scala 的新手 正在努力完成一些看似简单的任务 我正在尝试从 Scala 字符串数组构建一些动态 SQL 我正在尝试在 DataFrame 中重新输入一些列 但直到运行时我才能看到 DataFrame 中的列集时
  • 如何自动测量两台主机之间的带宽使用情况

    我有一个具有 TCP 客户端和服务器的应用程序 我在不同的机器上设置客户端和服务器 现在我想测量消耗了多少带宽 在应用程序的单次运行期间发送和接收的字节数 我发现wireshark就是这样一个可以帮助我获得统计数据的工具 然而 wiresh