Pinvon's Blog

所见, 所闻, 所思, 所想

初识ns-3

Table of Contents

ns-3简介

ns-3不支持ns-2的API, 它的最终目标是使ns-3成为ns-2的替代品, 并像ns-2一样流行.

ns-2使用C++语言进行功能扩展, 使用Otcl脚本语言配置仿真场景, 仿真结果可以用网络动画器NAM来演示. 在ns-2中, 如果仅使用C++语言而不用Otcl, 仿真功能是不可能运行起来的.

ns-3中, 仿真器都由C++编写, 用C++就可以既开发扩展模块又编写网络仿真脚本. ns-3还提供了Python语言绑定, 也可以使用Python编写ns-3脚本. ns-3的动画不仅支持离线的NetAnim, 还有Python语言开发的在线可视化模块PyViz.

ns-3简单易学, 可扩展性好, 节省资源, 并且能提供高性能的、与真实网络相近的网络仿真, 尤其能够集成到实验床和虚拟机环境, 逐渐得到学术界的认可.

ns-3中有几个关键概念, 如节点(node), 网络设备(net device), 信道(channel), 应用程序(application)等, 如果能和实际网络相对应, 就能很轻松地搭建网络仿真环境. 在实际环境中, 计算机网络就是多个计算机(节点)通过网卡(网络设备)和媒介(信道)相连, 机器中配有相应的软件协议, 对应ns-3中的是应用层和协议栈(主要是IP 层), 应用层和IP层通过传输层(TCP和UDP)相连, 在ns-3的网络设备中包含了MAC层和物理层, 而信道相当于媒体层, 有些地方称为0层.

Comments

使用 Disqus 评论
comments powered by Disqus