今天做了柯志亨老师的实验23,比较不同的无线网络路由,DSDV/AODV/DSR。按照书上的要求写了脚本和AWK程序,测试一切顺利。但是到了实验二,做DSR实验的时候却出现了事件UID非法的提示。查看trace文件,发现确实停在了大概56s的位置。查了很多资料,解决方法没有找到。而且也不敢随便修改mac文件。不过看了一些解释,我怀疑可能是tcl脚本中的一项设置:Mac/802_11 set SlotTime_    0.000020  ;#20us不合适。这里设置slot长度为20us。我尝试改了这个参数。把20us改成了10us。运行一遍,顺利通过!

虽然通过测试了,但是我还是不太能够理解其中原因,现将tcl脚本一并贴上来,希望大家能够给我指点指点。

proc getopt {argc argv} {
  global opt
  lappend optlist nn
  for {set i 0} {$i<$argc} {incr i} {
    set opt($i) [lindex $argv $i]
  }
 }

getopt $argc $argv

#参数设置
set opt(chan)  Channel/WirelessChannel
set opt(prop)  Propagation/TwoRayGround
set opt(netif) Phy/WirelessPhy

#下面设置比较特别,若是使用DSR,所使用的ifq就要用CMUPriQueue
set opt(mac)  Mac/802_11
if {$opt(0) == "DSR"} {
  set opt(ifq)  CMUPriQueue
} else {
  set opt(ifq)  Queue/DropTail/PriQueue     ;#interface queue type
}

set opt(ll)  LL
set opt(ant) Antenna/OmniAntenna

set opt(x)  500
set opt(y)  500
set opt(ifqlen) 2000
set opt(seed)  0.0
set opt(tr)  trace2.tr   ;#trace file
set opt(adhocRouting)  $opt(0)
set opt(nn)  100
set opt(cp)  "cbr_n100_m10_r10"

set opt(sc)  "scen_100n_0p_10M_100t_500_500"

set opt(stop)  100.0

Mac/802_11 set CWMin_      31
Mac/802_11 set CWMax_      1023
Mac/802_11 set SlotTime_    0.000010  ;#10us
Mac/802_11 set SIFS_      0.000010  ;#10us
Mac/802_11 set PreambleLength_  144       ;#144bit
Mac/802_11 set PreambleDataRate_ 1.0e6   ;#1Mbps
Mac/802_11 set PLCPHeaderLength_  48       ;#48bit
Mac/802_11 set PLCPDataRate_   1.0e6    ;#1Mpbs
Mac/802_11 set RTSThreshold_      3000     ;#bytes Disable RTS/CTS
Mac/802_11 set ShortRetryLimit_   7        ;#retrans_mission_
Mac/802_11 set LongRetryLimit_    4      ;#retrans_mission_

Mac/802_11 set dataRate_     2Mb      ;#802.11data trans_mission rate
Mac/802_11 set basicRate_     1Mb   ;#802.11 basic trans_mission rate

set ns_ [new Simulator]
set tracefd [open $opt(tr) w]
$ns_ trace-all $tracefd
set topo [new Topography]
$topo load_flatgrid $opt(x) $opt(y)

set god_ [create-god $opt(nn)]
set chan_1_ [new $opt(chan)]

$ns_ node-config  -adhocRouting $opt(adhocRouting) \
         -llType $opt(ll) \
         -macType $opt(mac) \
         -ifqType $opt(ifq) \
         -antType $opt(ant) \
         -ifqLen $opt(ifqlen) \
         -propType $opt(prop) \
         -phyType $opt(netif) \
         -channel $chan_1_ \
         -topoInstance $topo \
         -agentTrace ON \
         -routerTrace ON \
         -macTrace OFF

for {set i 0} {$i < $opt(nn)} {incr i} {
  set node_($i) [$ns_ node]
  $node_($i) random-motion 0
}

#设置结点移动模式
puts "Loading connection pattern..."
#使用source去载入traffic pattern文件
source $opt(cp)

#设置联机传输模式
puts "Loading scenario file..."
#使用source去载入结点移动场景文件
source $opt(sc)

for {set i 0} {$i < $opt(nn)} {incr i} {
  $ns_ initial_node_pos $node_($i) 20
}

for {set i 0} {$i < $opt(nn)} {incr i} {
  $ns_ at $opt(stop).1 "$node_($i) reset"
}

$ns_ at $opt(stop).1 "puts \"ns EXITING...\";$ns_ halt"

puts "Starting Simulation..."

$ns_ run

Scheduler:Event UID not valid(转)相关推荐

  1. Mendix开发不卡壳之 Scheduler Event定时任务使用

    任务需求:定时插入数据 解决方案:Timer & Scheduler Event,Timer之前已经用过,这里记录Scheduler Event的使用. Scheduler Event和MS ...

  2. NS2 教學手冊 ( NS2 Learning Guide)

    转载自:NS2 教学手册(柯志亨网站资源) NS2 教學手冊 ( NS2 Learning Guide) [快速連結區] My works  中文影音教學區  Q&A for my works ...

  3. 柯志亨老师-- NS2 教學手冊

    感谢柯志亨老师! NS2教學手冊( NS2 Learning Guide) [快速連結區] My works中文影音教學區Q&A for my worksMy BookMy TalksForu ...

  4. FlinkCEP - Complex event processing for Flink

    https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/libs/cep.html 首先目的是匹配pattern sequenc ...

  5. 单击屏幕亮屏流程分析

    一. kernel部分 1.看TP驱动有没有事件上报  cat /dev/input/evnet1  或者看kernel log [ 4036.282237] bt541_ts_device 5-00 ...

  6. ndnSIM学习(八)——examples之ndn-simple.cpp每个函数逐行剖析

    文章目录 前言 源代码 0.先聊聊Simulator 1.Config::SetDefault 2.CommandLine::Parse 3.NodeContainer::Create 4.Point ...

  7. TI Cortex-M4 USB Host CDC 驱动详解及源代码

    1. USB CDC介绍 USB的CDC类是USB通信设备类(Communication Device Class)的简称.CDC类是USB组织定义的一类专门给各种通信设备(电信通信设备和中速网络通信 ...

  8. CentOS7 基线检查

    口令锁定策略 威胁等级:Low 规则描述 设置口令认证失败后的锁定策略 审计描述 检查配置文件的/etc/pam.d/system-auth和/etc/pam.d/password-auth是否有 a ...

  9. 定时调度模块:sched

    定时调度模块:sched """A generally useful event scheduler class. 事件调度器类Each instance of this ...

最新文章

  1. python绘制简单图形-python绘制数学图形(堪比matlab)
  2. 201521123022 《Java程序设计》 第十三周学习总结
  3. NewLife.Net——管道处理器解决粘包
  4. 从PM到GAN——LSTM之父Schmidhuber横跨22年的怨念(文字版)
  5. Java并发编程实战~ReadWriteLock~
  6. android wear 运动程序,Android Wear 之 为通知添加动作
  7. H3C路由器映射端口到外网
  8. 2007年河南湖北各市GDP
  9. 里氏替换原则_趣谈设计模式之里氏替代原则
  10. 手把手教你学项目管理软件project
  11. FinBi银行数据驾驶舱
  12. 微型计算机原理与应用彭楚武,微型计算机原理及其应用
  13. Oracle数据库安装及配置(一)
  14. Shell脚本实现俄罗斯方块小游戏
  15. Improving and Simplifying Pattern Exploiting Training
  16. mezzanine timezone 的问题
  17. PacBio HiFi测序介绍及百迈客最新下机数据公布
  18. Java、JSP基于WEB的师生互动系统
  19. springboot萌宠宠物网店的开发与设计 毕业设计-附源码011042
  20. 天气预报小程序案例(springboot服务端)

热门文章

  1. Git如何配置多个SSH-Key呢?
  2. Docker Windows 安装
  3. 简易方法判断浏览器的类型和版本
  4. harmonyOS的架构图,HarmonyOS通用设计基础---应用架构
  5. python 矩阵乘法梯度下降_使用python和numpy进行梯度下降
  6. Carryon的字符串
  7. vim提示-bash:vim :common not found解决方法
  8. Python中字符串的startswith()和endswith()方法
  9. Linux下的less命令
  10. springmvc请求返回一个字符_Spring MVC框架详解01