NS-3学习笔记(4)水声模块aqua-sim-ng模型及helper类内容解析

aqua-sim-ng模块

官方给出的该模块的结构图如下:
NS-3学习笔记(4)水声模块aqua-sim-ng模型及helper类内容解析_第1张图片
可以看出从底向上,信道的实现包括: 传播模型, 噪声生成,多信道支持。
随后是水声模块的节点依附: NetDevice类。其余模块都依托该类展开。
物理层: 物理层包括能量模型, 信号缓存, 接收信号判别, 调制, 时延等信息。
MAC层:给出了不同的MAC算法: T-MAC, Broadcast MAC, ALOHA等。同时还有信道中的碰撞模型。(还有一些不知道的)
Route部分: 给出了该模块实现的一些路由算法。VBF, hop-hop-VBF,VBVA等。
下面对其中具体对应的模型源码进行说明。

aqua-model 内容

节点或者涵盖范围大的模块

    // 空的文件, 应该是为了好看。
aqua-sim.cc
// 节点类
    // 在sink 中被使用
aqua-sim-hash-table.cc
    // 报文头格式,头文件部分
    // 提供了一些基础功能以及可以继承的虚函数, 
    // 私有变量为相关的报文头的格式。
aqua-sim-header.cc
aqua-sim-header-goal.cc
aqua-sim-header-mac.cc
    // 多种路由协议的报文头部
    // 动态路由, 基于向量的路由协议
    // 并且给出了部分对应路由的论文。
aqua-sim-header-routing.cc
    // Kinematic mobility model
aqua-sim-mobility-kinematic.cc
    // AquaSimMobilityPattern
    // 相关移动模型的基础类。
    // 
aqua-sim-mobility-pattern.cc
    // RWP mobility model
    // 随机移动模型
    // 指定一个目标节点,随后思考一定时间。
    // 选择下一个目标位置。
aqua-sim-mobility-rwp.cc
    // 水下的设备结构。 继承于ns2.
    // aquaSimDevice继承于普通的NetDevice
    // aquaSimDevice为承载 水下仿真特性 类。 其中可以对 phy, mac, route, energy, attack进行绑定。
	// 还包括了许多从NetDevice继承的特性。
aqua-sim-net-device.cc
    // 全部注释。
    // CURRENTLY AquaSimNode NOT IN USE, SEE AquaSimNetDevice INSTEAD.
    // 当前该节点类不使用。
aqua-sim-node.cc
	// trace 的输出变量结构
    // 条目:
    // 单位: , respectivitly
aqua-sim-trace-reader.cc
    // 简单的 流量生成 应用层协议
    // 继承了常用的Application类。
aqua-sim-traffic-gen.cc

信道相关模型

// 信道相关
    // 信道模型, 包括: net-device, propagation, noise-generator
    // 当前仅支持单信道模型。()
    // friend class: 定义在类外部,但可以访问 类private和protected成员的函数。
    // 成员说明: 噪声生成。 传播模型。 对应的设备(device)。
aqua-sim-channel.cc
// 物理层相关
    // 继承于 netDevice 的能量模型
    // Base case is very similar to UAN's AcousticModemEnergyModel.
aqua-sim-energy-model.cc
    // 简单的传播模型
    // 允许所有节点接收信息, 但根据 range/power/noise等参数决定收到的信息是否可以解码。
aqua-sim-simple-propagation.cc
    // 为 sink 节点设计, 但功能重复,未使用。
aqua-sim-sink.cc
        // 调制相关类
    // 包括发送时间, 包大小,时间间隔, bps等
aqua-sim-modulation.cc
    
    // 解码判别器,判断经过信道衰减后的模型能否正确解码。
aqua-sim-sinr-checker.cc
    // 同步类。
    // 用于 netdevice 的同步
aqua-sim-synchronization.cc
    // 常数噪声, 随机噪声, 周期噪声。
aqua-sim-noise-generator.cc
aqua-sim-phy.cc
aqua-sim-phy-cmn.cc
    // 水下传播模型的基类。
    // ray? rayleigh model
aqua-sim-propagation.cc
    //  Generic packet tag used to assist in declaring protocols used for each packet
    // 包含了一系列不同协议的标号, 由一个枚举变量管理。
aqua-sim-pt-tag.cc
    // AquaSimRangePropagation 
    // 来帮助判断哪些节点在发射节点的覆盖范围之内。
    // 包含带宽, 温度, 盐度, 噪声扽给影响信息传播的参量
aqua-sim-range-propagation.cc
// mac层相关
	// 碰撞
	// 包含多个类: 
    // 碰撞模型的基类; 拒绝服务攻击和泛洪攻击模型, Sinkholes
    // Selective Forward, Sybil 等碰撞模型。
aqua-sim-attack-model.cc
// 支持8bit,和16 bit 地址。
	// 
	// 重载了运算符
aqua-sim-address.cc
    // 节点位置
    // 包括, 节点位置置信度。
    // 。
aqua-sim-localization.cc
    // mac层
    // ACK retry assistance for Aloha protocol
    // Implementation of ALOHA (backoff assisted) protocol in underwater
    // 从ns-2 中继承了四个mac协议:
      // T-MAC, R-MAC, Aloha-Mac, Broadcast-Mac
aqua-sim-mac-aloha.cc
    // 基于竞争机制的非持续载波侦听,
    // 使用GEO(基于位置) 路由协议
    // 
aqua-sim-mac-broadcast.cc
    // 所有mac 协议的基类。
    // 成员变量: 包含了指向 物理层,设备,路由,的智能指针。
    // 提供了如下接口: 发送接收报文;设置发射功率。
    // 给定了半双工的传输特性。
aqua-sim-mac.cc
    //  COntention based Parallel rEservation MAC
    // 介于竞争的 并行 rMac  ?
    // 一种mac协议, 
aqua-sim-mac-copemac.cc
    // mac层协议
    // AquaSimFama协议
aqua-sim-mac-fama.cc
    // Geo-rOuting Aware MAC protocoL goal-mac 协议
    // 与 VBF 有关, 一篇2010年的论文。
aqua-sim-mac-goal.cc
    // Slotted FAMA protocol
aqua-sim-mac-sfama.cc
    // UWAN protocol 
aqua-sim-mac-uwan.cc
    // timeout mac, 有助于最小侦听时延。
aqua-sim-tmac.cc
    // aqua-sim 针对水声信道提出的新协议
    // 节点周期性侦听和睡眠
    // 信道预约机制
    // 节点初始化; 节点有一个侦听和睡眠的时间, 广播交换信息,记录包含所有节点的周期时间表; 节点协调传输 
aqua-sim-rmac-buffer.cc
aqua-sim-rmac.cc
    // 信号信息缓存类
    // 帮发出调制解调器处理信号并无需考虑多径效应
    // 具有鲁棒性的信息处理过程。对多径效应的容忍。
aqua-sim-signal-cache.cc

路由相关部分

// 路由相关
    // 路由部分。
    // buffer-helper 类
    // 定义了 class AquaSimRoutingBuffer。 包括了增删packet,增删队列的功能。
aqua-sim-routing-buffer.cc
aqua-sim-routing.cc
    // Depth based routing alogrithm。
aqua-sim-routing-dbr.cc
aqua-sim-routing-ddbr.cc
    // 检测ddos攻击
aqua-sim-routing-ddos.cc
    // Dummy routing class. 一种路由方式
aqua-sim-routing-dummy.cc
    // dynamic 路由
aqua-sim-routing-dynamic.cc
    //flooding 路由, 与 vbf相关
aqua-sim-routing-flooding.cc
    // static路由
aqua-sim-routing-static.cc
    // 路由方式
    // 提供了Packet Hash table 来
    // 提供了 基于向量的转发方式。
aqua-sim-routing-vbf.cc
    //  Vector Based Void Avoidance。vbf的修改,避免空的。
aqua-sim-routing-vbva.cc

水声网络aqua-sim的helper类

	// AquaSimChannelHelper 类:
	// 设置 传输:
	// 噪声:
	// 信道变量
	// AquaSimHelper 类
	// 设置物理层, Mac层, Routing层。
aqua-sim-helper.cc
	// AquaSimTrafficGenHelper
    // 设置 流量产生协议(int), 远程通信地址。
aqua-sim-traffic-gen-helper.cc
	// class NamedDataHelper
	// 设置 channel类
    // attacker: 碰撞模型类(int数代表)
    // 物理层, 能量模型等。
named-data-helper.cc
	// OnOffNdHelper
    // OnOffNDApplications 的助手类。
on-off-nd-helper.cc

你可能感兴趣的:(学习,c++)