You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ONOS SDN拓扑中,寻求支持最大带宽限制的节点间测量方案

解决ONOS拓扑下iperf TCP模式带宽上限限制问题

核心问题说明

iperf的-b参数在TCP模式下是目标发送速率,它会通过调整发送窗口维持恒定带宽,无法实现"2Gbps作为上限、测试值在其上下浮动"的需求。要实现带宽上限限制,需要结合网络层面的流量控制,而非仅依赖iperf参数。


方案1:通过ONOS配置QoS流规则限制带宽

ONOS原生支持QoS流量控制,可直接为指定端口或流设置带宽上限:

    1. 定位测试节点的设备ID、端口号,以及测试流的源/目的IP、协议类型(TCP)
    1. 使用ONOS CLI创建QoS规则:
    # 为指定端口设置最大带宽2Gbps(单位:bps)
    qos-add <device-id> <port-number> type=MAX-RATE rate=2000000000
    
    若需针对特定流限制,可先创建流规则,再将QoS条目关联到该流
    1. 运行iperf测试(无需-b参数):
    # 服务器端
    iperf -s
    # 客户端:每5秒采集一次,持续1分钟
    iperf -c <server-ip> -i 5 -t 60
    
    此时ONOS会将该端口/流的带宽限制在2Gbps以内,测试值会在2G上下浮动。

方案2:用Linux tc工具在节点上做流量整形

如果ONOS QoS配置复杂,可直接在测试节点的网卡上通过tc(流量控制)工具设置带宽上限:

  • 在发送或接收节点执行tc命令:
    # 为网卡添加令牌桶过滤器,限制带宽为2Gbps
    tc qdisc add dev <interface-name> root tbf rate 2gbit burst 10mb latency 70ms
    
    其中burst允许短时间内的突发流量,latency控制流量处理延迟
  • 执行iperf测试命令(同方案1的客户端/服务器端命令),iperf会全力发送数据,tc会将带宽限制在2Gbps以内,测试结果符合需求。

关键参数说明

  • -i 5:每5秒输出一次带宽统计数据,满足你的采集频率要求
  • -t 60:设置测试持续时间为60秒,符合1分钟的测试要求
  • TCP模式下无需加-b参数,让iperf全力发送,才能真实反映带宽在2Gbps上限附近的波动情况

内容的提问来源于stack exchange,提问作者Iwannis Koulouras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 09:45:27