NS-3学习笔记(十五):NS-3仿真的基本概念 发表于 2018-11-22 | 分类于 网络 , 仿真 , NS-3 | 评论数: 本章主要介绍NS-3网络仿真的基本概念。通过一个简单的例子介绍如何使用NS-3进行网络仿真,然后解释例子当中使用的一些基本概念,包括节点、协议栈、网络设备、接口、应用、通道、帮助类和容器。最后介绍如何使用图表的方式展示程序所创建的网络拓扑。 阅读全文 »
NS-3学习笔记(十四):NS-3中使用哈希函数(Hash functions) 发表于 2018-11-22 | 分类于 网络 , 仿真 , NS-3 | 评论数: 本章主要介绍NS-3当中的哈希函数的使用。NS-3提供了一个使用哈希函数的通用的接口。可以方便地调用内置的哈希函数来将一个字节数组或者字符串转换成一个哈希值。根据底层算法的不同,哈希值可以是32位或者是64位的整数。NS-3默认使用的哈希算法是murmur3,它可以返回32和64位的值。可以轻易地使用其他哈希算法实现。如果NS-3所提供的哈希实现都无法达到要求,也可以方便地添加自己的实现。 阅读全文 »
NS-3学习笔记(十三):随机数生成器 发表于 2018-11-17 | 更新于 2018-11-22 | 分类于 网络 , 仿真 , NS-3 | 评论数: 本章主要介绍NS-3当中的(伪)随机数生成器。NS-3提供了简单方便的随机数类型,可以生成各种分布的随机数。随机数生成器也属于NS-3对象框架的类,适用一切对象框架中的特性。此外,随机数可以作为属性值,并且方便地从字符串创建。为了生成互不相交的随机数序列,NS-3使用了随机数流的概念,保证不同的随机数生成器的实例当中,生成的随机数尽量不存在相互交叉的情况。 阅读全文 »
NS-3学习笔记(十二):事件与调度器 发表于 2018-11-01 | 更新于 2018-11-21 | 分类于 网络 , 仿真 , NS-3 | 评论数: 本章主要介绍NS-3当中的事件与调度器。NS-3本质上是一个离散事件的调度器。其执行过程是按事件的发生时间来推进的。NS-3的事件与调度API提供了添加取消调度事件的功能。同时,NS-3提供了多种不同的调度器实现。 阅读全文 »
NS-3学习笔记(十一):命令行 发表于 2018-10-31 | 更新于 2018-11-02 | 分类于 网络 , 仿真 , NS-3 | 评论数: 本章主要介绍NS-3当中的命令行。在NS-3当中,我们经常需要对属性进行设置,除了直接对单个已经创建的对象进行属性操作之外,我们还可以通过配置路径进行批量配置。配置路径可以和命令行参数结合使用,在启动脚本的同时传入命令行参数来进行设置,避免在改变属性设置等的时候要重新编译脚本的尴尬。除此之外,也可以使用命令行来改变程序当中变量的值,也可以避免因修改代码而重新编译脚本。 阅读全文 »
NS-3学习笔记(十):NS-3的配置路径 发表于 2018-10-24 | 更新于 2018-10-31 | 分类于 网络 , 仿真 , NS-3 | 评论数: 本章主要介绍NS-3当中的配置路径与命令行。在NS-3当中,我们经常需要对属性进行设置,除了直接对单个已经创建的对象进行属性操作之外,我们还可以通过配置路径进行批量配置。对于追踪源也是同样的,我们除了可以对单个对象进行追踪之外,还可以考虑直接使用剖之路径进行追踪,避免要获取对象。配置路径可以和命令行参数结合使用,在启动脚本的同时传入命令行参数来进行设置,避免在改变属性设置等的时候要重新编译脚本的尴尬。 阅读全文 »
NS-3学习笔记(九):NS-3的对象框架 之 追踪框架 发表于 2018-10-22 | 更新于 2018-10-29 | 分类于 网络 , 仿真 , NS-3 | 评论数: 本章主要介绍NS-3当中的追踪框架。追踪框架主要用于追踪一个对象当中某个属性的变更、或者某个事件的发生。例如,当TCP的窗口变化的时候,我们希望获得窗口的变化过程。或者当网络中队列产生丢包的时候,我们希望获取这个事件以便统计丢包率等等。NS3使用回调的机制让我们能够方便地获取这些信息。 阅读全文 »
NS-3学习笔记(八):NS-3的对象框架 之 对象初始化与释放 发表于 2018-08-04 | 更新于 2018-10-29 | 分类于 网络 , 仿真 , NS-3 | 评论数: 本章主要介绍NS-3当中对象的初始化与释放。传统C++对象可以在构造函数中来初始化,然而由于NS-3对象的属性是在构造函数之后才初始化的,因此必须使用特定的初始化方法来得到正确的结果。除此之外,对象在使用完成之后也应该正确释放使用的资源。NS-3也提供了专门的方法来完成资源的释放,并且充分地考虑了聚合的因素,使得对象的释放非常完善。本章将介绍NS-3当中对象的正确初始化和释放的方法。 阅读全文 »
NS-3学习笔记(七):NS-3的对象框架 之 聚合 发表于 2018-06-04 | 更新于 2018-10-29 | 分类于 网络 , 仿真 , NS-3 | 评论数: 本章主要介绍NS-3的聚合。聚合是一种对象组合和功能扩展的设计范式。是一种比类的继承更加有效的类的功能扩展方式。NS-3在其对象框架当中实现了聚合的概念以及很多工具方法,使得我们在NS-3当中使用聚合变得非常的容易。同时,NS-3当中大量的使用了对象聚合的思想来进行设计,特别是网络协议的组合方面。 阅读全文 »
NS-3学习笔记(六):回调 发表于 2018-05-01 | 更新于 2018-10-29 | 分类于 网络 , 仿真 , NS-3 | 评论数: 本章主要介绍NS-3的回调。它是C语言基本的函数指针的封装类。可以将回调作为参数传给某个函数,或者作为类的成员变量,然后等待在合适的时机(例如某个事件的发生、时间超时或者数据准备好后)再进行调用。NS-3中大量地使用了回调的思想来处理各种协议调用或者追踪系统等。 阅读全文 »