使用 iperf3 工具测试TCP/UDP吞吐量

news/2024/10/15 5:26:16/

测试目标


- 测试网络的 TCP 和 UDP 吞吐量性能,包括不同并发连接数和目标带宽条件下的表现。

测试环境


- **测试工具**: iperf3
- **固定 IP 地址**:
  - 服务器 IP: `192.168.1.10`
  - 客户端 IP: `192.168.1.20`
- **端口号**: `5201`

测试准备


1. **安装 iperf3**:
   在服务器和客户端上安装 iperf3:
   sudo apt-get install iperf3

2. **启动服务器端**:
   在服务器上执行以下命令以开始监听:
   iperf3 -s -p 5201

测试步骤

### 4.1 TCP 吞吐量测试

1. **执行客户端测试**:
   在客户端上进行 TCP 吞吐量测试,循环执行,并将结果重定向到文件 `tcp_results.txt`:
   ```
   for i in {1..5}; do
       iperf3 -c 192.168.1.10 -p 5201 -t 60 -P 1 >> tcp_results.txt
       echo "=====================" >> tcp_results.txt
   done
   ```

2. **增加进程数**:
   执行 TCP 测试时增加并发连接数(例如:4个连接)并记录结果:
   ```
   for i in {1..5}; do
       iperf3 -c 192.168.1.10 -p 5201 -t 60 -P 4 >> tcp_results.txt
       echo "=====================" >> tcp_results.txt
   done
   ```

### 4.2 UDP 吞吐量测试

1. **执行客户端测试**:
   在客户端上进行 UDP 吞吐量测试,循环执行并将结果重定向到文件 `udp_results.txt`,设置目标带宽为 100 Mbps:
   ```
   for i in {1..5}; do
       iperf3 -c 192.168.1.10 -p 5201 -u -t 60 -b 100M >> udp_results.txt
       echo "=====================" >> udp_results.txt
   done
   ```

2. **增加目标带宽变化**:
   修改目标带宽参数进行多次测试,记录不同带宽下的结果:
   ```
   for bandwidth in 50M 100M 200M; do
       for i in {1..5}; do
           iperf3 -c 192.168.1.10 -p 5201 -u -t 60 -b $bandwidth >> udp_results.txt
           echo "=====================" >> udp_results.txt
       done
   done
   ```

3. **增加进程数变化**:
   对于 UDP 测试,指定并发连接数并记录结果:
   ```
   for bandwidth in 100M; do
       for i in {1..5}; do
           iperf3 -c 192.168.1.10 -p 5201 -u -t 60 -b $bandwidth -P 4 >> udp_results.txt
           echo "=====================" >> udp_results.txt
       done
   done
   ```

## 5. 数据统计与分析
### 5.1 结果整理
- 整理 `tcp_results.txt` 和 `udp_results.txt` 中的结果,提取关键信息(如带宽、丢包率、延迟等)。

### 5.2 示例表格格式

| 测试类型 | 进程数 | 目标带宽 | 平均带宽 (Mbps) | 丢包率 (%) | 发送端统计信息 | 接收端统计信息 |
|----------|--------|----------|-----------------|-------------|-----------------|-----------------|
| TCP      | 1      | N/A      | XX              | N/A         | XX              | XX              |
| TCP      | 4      | N/A      | XX              | N/A         | XX              | XX              |
| UDP      | 1      | 50M      | XX              | XX          | XX              | XX              |
| UDP      | 1      | 100M     | XX              | XX          | XX              | XX              |
| UDP      | 1      | 200M     | XX              | XX          | XX              | XX              |
| UDP      | 4      | 100M     | XX              | XX          | XX              | XX              |

测试报告


- 整理测试结果,形成报告,包含以下内容:
  - 测试环境概述
  - 测试步骤
  - TCP 和 UDP 吞吐量结果总结
  - 数据分析及结论

注意事项


- 确保在测试期间网络没有其他干扰(如大流量传输)。
- 多次运行测试以获取更具代表性的结果,并计算平均值。
- 根据需求调整测试时长和带宽配置。


http://www.ppmy.cn/news/1539282.html

相关文章

【图论】Dijkstra

Dijkstra 前置知识 堆图论基础Bellman-Ford 思路 Dijkstra 算法是一种求正权图单源最短路的算法。 注意到BF最大的缺陷在于其对于一个点的松弛方式太暴力了。 注意到有正权这个条件。 那么我们发现,只要选取当前距离最小的点,该点不可能被松弛。 于是…

Spring-事务的其他属性

说到事务,就要说事务的隔离级别: 事务还有回滚,这里也有回滚的控制属性: rollbackFor可以指定对遇到什么异常回滚事务:默认是所有的运行时异常都要回滚,这个属性,知道就行,一般就取默…

C++刷怪笼(7)string类

目录 1.前言 2.正文 2.1标准库中的string类 2.1.1string类 2.1.2auto和范围for 2.1.3string类的常用接口说明 2.2string类的模拟实现 2.2.1经典的string类问题 2.2.2浅拷贝 2.2.3深拷贝 ​编辑 2.2.4写时拷贝 3.小结 1.前言 前面我们对C的封装这一大特性进行了详细…

DAY8 Final等

Final关键字 final修饰静态变量,这个变量今后被称为常量, 可以记住一个固定值,并且程序中不能修改了,通常这个值作为系统的配置信息。常量的名称,建议全部大写,多个单词用下划线连接。 public static final…

vue中watch和watchEffect区别

在Vue中,watch和watchEffect都是用于观察和响应数据变化的工具,但它们在使用方式和功能上有一些显著的区别。以下是watch和watchEffect的主要区别: 1. 执行时机 watch:是惰性执行的,即它不会在组件第一次执行时立即执…

【食物识别】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+TensorFlow+模型训练+图像识别

一、介绍 食物识别系统。该项目通过构建包含11种常见食物类别(包括’Bread’, ‘Dairy product’, ‘Dessert’, ‘Egg’, ‘Fried food’, ‘Meat’, ‘Noodles-Pasta’, ‘Rice’, ‘Seafood’, ‘Soup’, ‘Vegetable-Fruit’)的图片数据集&#xff…

darknet_ros 使用教程

首先是git clone可能会因为到没有权限的问题(SSH),此时输入 git clone --recursive https://github.com/leggedrobotics/darknet_ros.git 下载成功之后 catkin_make -DCMAKE_BUILD_TYPERelease catkin失败原因(在CMakefile中&…

Chatgpt 原理解构

一、背景知识 1. 自然语言处理的发展历程 自然语言处理在不同时期呈现出不同的特点和发展态势。萌芽期,艾伦・图灵在 1936 年提出 “图灵机” 概念,为计算机诞生奠定基础,1950 年他提出著名的 “图灵测试”,预见了计算机处理自然…