zoukankan      html  css  js  c++  java
  • 【NS2】学习点滴

    1
    $ns duplex-link-op $n2 $n3 queuePos 0.5#此命令用于设置在NAM中显示的队列方向
    #经测试,发现:
    # queuePos 0.5表示包从上到下进入队列
    # queuePos 0表示包从右到左进入队列
    # queuePos 1表示包从左到右进入队列
     
    队列类型有:drop-tail(先进先出)、RED缓冲区管理、CBQ(优先级和轮换调用)、各种公平排队
    2

    从网络拓扑仿真、协议仿真和通信量仿真等方面介绍NS的相应元素:

    ⑴网络拓扑主要包括节点、链路。NS的节点由一系列的分类器(Classifier,如地址分类器等)组成,而链路由一系列的连接器(Connector)组成。

    ⑵在节点上,配置不同的代理可以实现相应的协议或其它模型仿真。如NS的TCP代理,发送代理有:TCP,TCP/Reno,TCP/Vegas,TCP/Sack1,TCP/FACK,TCP/FULLTCP等,接收代理有:TCPSINK,TCPSINK/DELACK。TCPSINK/SACK1,TCPSINK/SACK1/DELACK等。此外,还提供有UDP代理及接收代理Null(负责通信量接收)、Loss Monitor(通信量接收并维护一些接收数据的统计)。

    ⑶网络的路由配置通过对节点附加路由协议而实现。NS中有三种单播路由策略:静态、会话、动态。

    ⑷在链路上,可以配置带宽、时延和丢弃模型。NS支持:Drop-tail(FIFO)队列、RED缓冲管、CBO(包括优先权和Round-robin 调度)。各种公平队列包括:FQ,SFQ,DRR等。

    ⑸通信量仿真方面,NS提供了许多通信应用,如FTP,它产生较大的峰值数据传输;Telnet则根据相应文件随机选取传输数据的大小。此外,NS提供了四种类型的通信量产生器:①EXPOO,根据指数分布(On/Off)产生通信量,在On阶段分组以固定速率发送,Off阶段不发送分组,On/Off的分布符合指数分布,分组尺寸固定;②POO,根据Pareto分布(On/Off)产生通信量,它能用来产生长范围相关的急剧通信量;③CBR,以确定的速率产生通信量,分组尺寸固定,可在分组间隔之间产生随机抖动;④Traffic Trace,根据追踪文件产生通信量。

     向NS2中添加新协议类型的步骤 

    具体源码见 "~ns/tcp" 目录、 "~ns/common" 目录以及"~ns/tcl/lib" 目录下的相关文件。

    1. 为packet头定义一个struct数据类型, 例如 "struct hdr_tcp"; ( 在 "~ns/tcp/tcp.h" 文件中)
    2. 实现该packet的OTcl linkage,即需要定义一个 PacketHeader 类。例如 static class TcpHeaderClass,并需要将"PacketHeader/TCP" 作为参数传给该类的构造函数; (在 "~ns/tcp/tcp.cc" 文件中)
    3. 在 "~ns/common/packet.h" 文件中,为 enum packet_t 添加一个新的条目 "PT_TCP" ,并在p_into类的构造函数中添加一个新的数组元素 name[PT_TCP] = "tcp",要注意此处的位置必须对应。
    4. 在文件 "~ns/tcl/lib/ns-packet.tcl" 中添加,往 "foreach prot" 中添加一行 "TCP" 。

    以上各个步骤中,步骤1是为了定义新的包头格式;步骤2是为了能够将该数据包与Otcl联系起来;步骤3是为了在trace中能够使用该数据包,注意name[PT_TCP]="tcp",其中的 "tcp" 即是出现在trace文件中的第五列,pkt type;步骤4是为了NS在启动的时候能够载入我们定义的包头。

    最后需要注意:如果新建的协议是无线路由协议,则还需要在 "~ns/tcl/lib/ns-lib.tcl" 文件中Simulator的create-wireless-node方法中添加相应的处理。

     4

     在windows下安装cygwin,路径设置

    export NS_HOME=/cygdrive/f/NS2/cygwin/ns-allinone-2.29
    export PATH=$NS_HOME/tcl8.4.11/unix:$NS_HOME/tk8.4.11/unix:$NS_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.11/unix:$NS_HOME/tk8.4.11/unix:$NS_HOME/otcl-1.11:$NS_HOME/lib:$LD_LIBRARY_PATH
    export TCL_LIBRARY=$NS_HOME/tcl8.4.11/library

       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
  • 相关阅读:
    Java Output流写入包装问题
    SpringBoot项目单元测试不经过过滤器问题
    SpringSecurity集成启动报 In the composition of all global method configuration, no annotation support was actually activated 异常
    JWT jti和kid属性的说明
    Maven 排除依赖
    第五章 基因概念的发现
    第三章 孟德尔遗传的拓展
    第二章 孟德尔遗传
    第一章 引言
    GWAS全基因组关联分析
  • 原文地址:https://www.cnblogs.com/helloWaston/p/4544862.html
Copyright © 2011-2022 走看看