`

NS2 基础

阅读更多
1.NS-2模拟的基本流程
(1) 修改源码(这步只有在需要修改源码的时候才考虑)
(2) 编写Tcl/OTcl模拟代码(这是NS2模拟中不可缺少的一步)
  • 创建模拟器对象,用来定义和控制模拟过程
  • 设置跟踪文件
  • 创建网络拓扑结构
  •         (配置节点属性
            (创建拓扑结构
  • 设置代理和应用层协议
  • 使用模拟器对象的at过程设置节点事件和时间的对应关系
  • 使用模拟器对象的run过程开始模拟
  • (3) 分析模拟结果(非常重要的一环)

    2.Tcl中的一些基本语法内容
    (1)常用的关键字
    set unset info
    (2)组合和替代(组合一般是先在替代之前进行)
    命令替代([])、 反斜杠替代(\)、组合({}和"")、
    (3)组合替代总结
        Tcl需要决定如何组织命令参数
        在大括号组合中不允许替代,而在引号中可以替代
        组合总是在替代之前进行
        $是用于变量替换
        中括号用于命令替代
        反斜杠替代用来引用特殊的字符
        在执行一个Tcl命令前先进行替代
    3.NS-2基础
  • NS-2的离散事件调度机制(Simulator是基础)
  • set ns [new Simulator] #创建一个模拟器对象,同时:
        (1初始化分组格式
        (2创建一个事件调度器
        (3创建一个空代理
    相关的命令:
    set ns [new Simulator] #创建一个模拟器对象
    set now [$ns now] #将ns调度器的当前时间赋值给变量now
    $ns run #启动调动器
    $ns halt #停止或暂停调度器
    $ns at <time> <event> #在一个特定的时间调度一个事件
    $ns cancel <event> #取消一个事件
  • 节点(Node)
  • (单播节点
    一个单播节点是一个组合对象,主要包括两个Tcl对象:地址分类器(address classifier)和端口分类器(port classifier).以下是创建一个单播节点:
    set ns [new Simulator]
    set n0 [$ns node]
    (多播节点
    多播节点主要由多播分类器(Multicast Classifier)和复制器(Replicator)构成.
    以下是创建一个多播节点:
    set ns [new Simulator - Multicast on]
    set n1 [$ns node]
    注意:一旦 -Multicast设置为on,之后创建的节点都是多播节点。只有显示的将其设置为off,才能创建一个单播节点.
  • 链路(Link)
  • 两台网络设备之间的通信按通信方式可分为单工、半双工和全双工三种方式。相关命令如下:
    $ns simplex-link <node1> <node2> <bandwidth> <delay> <queue_type> <args>
    $ns duplex-link <node1> <node2> <bandwidth> <delay> <queue_type> <args>
    $ns simplex-link-op <node1> <node2> <option> <args>
    $ns duplex-link-op <node1> <node2> <option> <args>
  • 代理(Agent)
  • 代理可以构建和销毁网络层的分组,是网络层分组的起点和终点,同时代理可以实现各种不同层的网络协议。
    Agent类是由C++和OTcl共同实现的。
        (1 C++的Agent类包含的一系列内部状态变量:
    addr_    dst_    size_    type_    fid_    prio_    flags_    defttl_
        (2 仅存在于OTcl Agent类中的变量:
    agent_addr_    agent_port_    dst_addr_    dst_port_
        (3 UDP 和 TCP
    Agent/UDP代理的创建和设置肺痿以下四步:
            (1)创建一个Agent/UDP对象并将其帮定到相应的节点上作为分组的发送器
            (2)设置Agent/UDP的部分内部变量
            (3)创建一个Agent/Null对象并将其帮定到相应的节点上作为分组的接收器
            (4)在两个发送和接收代理之间创建connect连接
    在NS-2中有两类TCP代理:单向代理和双向代理。双向代理目前有FullTcp,并且还在进一步完善中。单向Tcp包括有Agent/TCP(Tahoe TCP)和 Agent/TCPSink等。设置和创建过程如下:
            (1)创建一个Agent/TCP对象,作为分组的发送器
            (2)设置Agent/TCP的部分内部变量
            (3)创建一个Agent/TCPSink对象,作为分组的接收器
            (4)在两个发送和接收代理之间创建connect连接
        与Agent相关的命令:
            set agent [new Agent/AgentType]
            $ns attach-agent <node> <agent>
            $agent port
            $agent dst-port
            $agent attach-app <s_type>
            $ns connect <src> <dst>
            $ns create-connect <srctype> <src> <dsttype> <dst> <pktclass>
            $agent attach-trace <file>
  • 应用层(Application)
  • 在NS-2中,应用层程序构建在传输层之上,分为两大类:流产生器(traffic generator)和应用模拟器(simulated application).流产生器一般用在UDP代理之上,应用模拟器主要用于TCP代理之上。
        (1 四种流产生器,一般都是建立在UDP代理之上的。
            (1)指数分布流产生器(EXPOO_Traffic generator,在OTcl中对应的类是Application/Traffic/Exponential)
            (2)Pareto流产生器(POO_Traffic generator,在OTcl中对应的类是Application/Traffic/Pareto)
            (3)固定比特率流产生器(CBR_Traffic generator,在OTcl中对应的类是Application/Traffic/CBR)
            (4)Trace文件流产生器(Traffic Trace generator,在OTcl中对应的类是Application/Traffic/Trace)
        (2 FTP应用模拟器(Application/FTP)和Telnet应用模拟器(Application/Telnet)
    4.TclCL机制
    TclCL(OTcl C++ Linkage)把两种语言的对象和变量联系对应起来。OTcl类主要提供C++对象面向用户的配置接口,而C++用来实现网络组件的主要功能。C++类的继承关系通常和OTcl类的继承关系保持一致。
    5.
    6.
    7.
    8.
    9.
    10.
    分享到:
    评论

    相关推荐

      NS2.zip_ns2 基础

      NS2基础学习文件, 简单易懂, 非常值得参考!

      网络仿真软件NS2基础教程

      学习网络仿真软件NS2的一些基础教程,ppt文件

      ns2.rar_NS2仿真_ns2 基础_ns2网络仿真

      NS2网络仿真的基础教程,很不错,能够带你走进NS2的大门

      NS2基础与安装—NS2的入门资料

      本书主要介绍NS2的下载、在Linux、Windows下的安装、NS2的仿真基础以及常见问题解答,是学习NS2的入门资料。

      NS2基础以及实例介绍

      ns2的安装以及简单的实例介绍 $ns_ node-config -adhocRouting $opt(adhocRouting)‏ -llType $opt(ll) ;# LL层 -macType $opt(mac) ;#MAC层 -ifqType $opt(ifq) ;#接口队列 -ifqLen $opt(ifqlen)‏ ;#...

      NS2网络模拟器的原理和应用_part2

      第一部分 NS2基础  第1章 NS2概述  1.1 NS2简介  1.2 NS2的基本结构  1.3 NS2中C++和0Tcl的关系  1.4 使用NS2的流程  1.5 模拟结果的分析  1.6 NS2中对象和各种协议的对应关系  第2章 NS2安装  2.1 ...

      NS2网络模拟器的原理和应用_part5

      第一部分 NS2基础  第1章 NS2概述  1.1 NS2简介  1.2 NS2的基本结构  1.3 NS2中C++和0Tcl的关系  1.4 使用NS2的流程  1.5 模拟结果的分析  1.6 NS2中对象和各种协议的对应关系  第2章 NS2安装  2.1 ...

      NS2网络模拟器的原理和应用_part3

      第一部分 NS2基础  第1章 NS2概述  1.1 NS2简介  1.2 NS2的基本结构  1.3 NS2中C++和0Tcl的关系  1.4 使用NS2的流程  1.5 模拟结果的分析  1.6 NS2中对象和各种协议的对应关系  第2章 NS2安装  2.1 ...

      NS2网络模拟器的原理和应用_part1

      第一部分 NS2基础  第1章 NS2概述  1.1 NS2简介  1.2 NS2的基本结构  1.3 NS2中C++和0Tcl的关系  1.4 使用NS2的流程  1.5 模拟结果的分析  1.6 NS2中对象和各种协议的对应关系  第2章 NS2安装  2.1 ...

      NS2网络模拟器的原理和应用_part4

      第一部分 NS2基础  第1章 NS2概述  1.1 NS2简介  1.2 NS2的基本结构  1.3 NS2中C++和0Tcl的关系  1.4 使用NS2的流程  1.5 模拟结果的分析  1.6 NS2中对象和各种协议的对应关系  第2章 NS2安装  2.1 ...

      NS2入门基础知识介绍

      对于NS2初学者的入门介绍 关于NS2的简介、安装、编译、学习等 适合于初学者

      NS2仿真实验源代码

      《NS2仿真实验:多媒体和无线网络通信》一书以实验为基础,兼顾教学需要,介绍了NS2及TCL语言,同时为使学生在学习理论之后能够有所实践,提供了各种NS2实验过程。《NS2仿真实验:多媒体和无线网络通信》共有26个实验...

      NS-2网络模拟基础与应用源代码

      NS-2网络模拟基础与应用源代码 NS-2网络模拟基础与应用源代码 NS-2网络模拟基础与应用源代码 NS-2网络模拟基础与应用源代码 NS-2网络模拟基础与应用源代码

      NS2与网络模拟__于斌

      本书是专门介绍NS2模拟软件的入门和进阶教程,内容包括NS2模拟软件在不同平台下的安装,进行网络模拟的方法和技巧,以及Tcl、OTcl语言等必备的基础知识,并通过NS2模拟软件介绍了网络模拟的研究思路和研究方法。...

      NS2学习笔记

      NS2基础讲解,包括安装,示例,组成机理与底层代码的修改

      ns2中文手册精美版

      该手册介绍了ns2基础知识,让读者对ns2这个开源软件有一个基本的了解

      《NS2与网络模拟》

      本书是专门介绍NS2模拟软件的入门和进阶教程,内容包括NS2模拟软件在不同平台下的安装,进行网络模拟的方法和技巧,以及Tcl、OTcl语言等必备的基础知识,并通过NS2模拟软件介绍了网络模拟的研究思路和研究方法。...

      ns2 tutorial documentation

      ns 手册,概述从构建到实验,详细讲述了ns2使用基础,并且网站上还提供了相关源代码。 本章讲述了获得各种ns2相关的源码下载方式。

      NS2在windows和Linux下的安装及基础教程

      这是一本对入门者的一个好书,这本书详细介绍了NS2在WINDOWS , LINUX下的安装,并简要的介绍了下NS2的应用和实例!

      NS2实验手册

      本手册阐述了NS2 的编程基础知识,仅作为入门介绍,如需更加详细了解和深 入编程,及其NS2实验仿真

    Global site tag (gtag.js) - Google Analytics