ns-3 2.5 再探脚本:常用技术解析

本文深入探讨ns-3模拟器中的脚本助手类,属性变量配置,包括助手类、命令行和Config::SetDefault()的使用。同时解析数据输出的trace变量,介绍Config::Connect()和助手类配置方法。文章还涉及行为控制、计划事件、回调函数和Log系统,为ns-3模拟提供全面指导。
摘要由CSDN通过智能技术生成

2.5.1 脚本助理:助手类

ns-3中类名以Helper结尾的C++类是助手类

助手类的设计初衷是,通过屏蔽实现细节,来降低脚本编写的复杂度

ns-3每个模块都有自己的助手类,这些助手类的源代码位于【src/<模块名>/helper】,例如,为结点安装TCP/IP协议栈的【InternetStackHelper】在【src/internet/helper/internet-stack-helper.h】中定义
在这里插入图片描述

2.5.2 参数输入:属性变量

1. 属性

ns-3中,属性是网络模拟中的用户可配置参数,从程序角度来讲,属性其实就是C++类中的一个变量

由于这些变量的取值往往影响着网络性能和模拟结果,因此需要一种方法让用户在脚本中对其进行配置,这种方法即为属性系统

属性系统的任务就是把这些内部的私有成员变量变成外部可配置的参数

这样,只需要一个脚本就可以模拟多个拓扑相同但配置不同的网络场景,如通过设置不同的传输速率和传播延迟可以模拟出高宽带低延迟和低宽带高延迟两种应用场景
在这里插入图片描述

2. 配置属性

ns-3中配置属性的方法很多,根据单次可配置属性的数量和新属性值的作用时间范围划分为3类
在这里插入图片描述

(1)第一类:助手类、命令行和Config::SetDefault()

可以一次性对多个对象中的同名属性进行配置,但只能在对象创建之前使用

(2)ObjectBase::SetAttribute()函数

Node,Application,NetDevice,Channel都是ObjectBase的子类

一种更为精确的属性配置方法,一次只能修改一个属性的取值,并且针对的是已创建对象中的属性,如在模拟过程中改变一个网络设备的传输速率

(3)Config::Set()

Config是ns3命名空间中的一个嵌套命名空间,Config命名空间中的函数主要用于设置属性和trace变量

Config::Set()可以被视为前两类的综合体,可以一次性配置多个已创建对象中的同名属性
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

itsdandy

感谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值