ns3学习之旅 对象模型架构

本文介绍了NS3网络模拟器的核心组件——C++类的架构。网络元素如节点、应用程序、通信信道等都对应特定的基类,如Node、Application和Channel。此外,SimpleRefCount、ObjectBase和Object三大基类分别负责内存管理、属性配置和对象聚合。通过这些基类,NS3实现了网络元素的动态管理和交互。
摘要由CSDN通过智能技术生成

以下内容是基于《开源网络模拟器ns-3 架构与实践》的学习笔记

NS3重要成分  类的介绍

 NS3主要语言之一是C++,而C++是面向对象编程的程序语言,类的重要性不言而喻。

网络元素:是指网络节点、应用程序、通信信道、网络设备、节点中的协议栈、分组等。

每个网络元素对应一个C++基类:

  • 节点        ---->Node
  • 应用程序 ---->Application
  • 通信信道 ---->Channel
  • 网络设备---->NetDevice
  • ..........

 以上基类定义了对应网络元素的基本行为,或者说是共性。具体的网络元素会重写父类,用子类实现具体的功能。

为了实现类的管理,对象模型方法定义三个基类:SimpleRefCount、ObjectBase、Object。

几乎所有网络元素的C++类都是以上三个基类的子类。

三大基类的作用

SimpleRefCount类通过定义一个引用计算器记录指向自己内存的指针数量,来解决单个类的动态内存管理问题。当计数器为0时,表示该内存无人使用,该内存就会被自动释放。

ObjectBase类实现了单个类的另外一个重要功能需求:配置属性和trace变量。ObjectBase类定义了对以上变量进行配置的方法和存储数据结构。

Object类通过“对象聚合”功能解决多个类的动态关联问题。通过对象聚合,有关联的对象指针被统一管理在动态大小的指针数组中。

备注:

  • Object类是SimpleRefCount类和ObjectBase类的子类
  • 有不属于对象模型的C++类(即不是以上三大基类的子类):NodeContainer、所有的助手类、.......
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值