版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CCU_COMM_ANT LABNS2 教學CCU_COMM_ANT LABIntroduction 為什麼要用Simulator作模擬?為什麼要用NS2?Open sourceObject-OrientedOTclCCU_COMM_ANT LABOutline 什麼是NS2Tcl簡介開始模擬模擬結果分析分析結果圖形化CCU_COMM_ANT LAB什麼是NS2?Network Simulator Version 21989年由Real Network Simulator 改版,目前由SAMAN和CONSER維護NS is a discrete event simulator targeted
2、 at networking research.CCU_COMM_ANT LABNS2架構UIEvent SchedulerNetworkComponentTCLC+TclclOTclCCU_COMM_ANT LAB為什麼要用二種語言 ?用 C+ : 處理封包傳送 更改一些底層或新增 protocols 之類的 C+ Class 不常更動,執行速度快 用 OTcl : 負責設定檔部分 運作已編譯過的 C+ Objects 常會更動,執行時需花一點直譯的時間CCU_COMM_ANT LABTcl簡介(Tool Command Language) ns使用MIT發展的OTcl (Object Tc
3、l)做為描述、配置、執行模擬的語言,OTcl是Tcl的物件導向延伸版本。在使用ns進行網路模擬之前,必須先學會這個語言,可以參考ns/otcl/doc目錄下有一份OTcl Tutorial,是一份不錯的入門文件。CCU_COMM_ANT LABTcl簡介(Tool Command Language) cont.1: #範例:遞迴解費氏數 2: set count 20 ; # The number of Fibonacci numbers to print 3: set num(0) 0; set num(1) 1 ; # First and second seed values 4: put
4、s The first $count Fibonacci numbers: 5: for set i 1 $i $count incr i 1 6: puts $i:t$num(0) 7: set num(1) expr $num(0) + $num(1) 8: incr i 1 9: puts $i:t$num(1) 10: set num(0) expr $num(0) + $num(1) 11: CCU_COMM_ANT LABTcl簡介(Tool Command Language) cont.2: set count 20 ; # The number of Fibonacci num
5、bers to print 3: set num(0) 0; set num(1) 1 ; # First and second seed valuesset count 20 int count = 20; set num(0) 0; set num(1) 1 ;int num2; num0 = 0; num1 = 1; CCU_COMM_ANT LABTcl簡介(Tool Command Language) cont.puts The first $count Fibonacci numbers: do variable substitution variable substitution
6、 does not take place Puts “the first $count Fibonacci numbers”the first 20 Fibonacci numbersPuts the first $count Fibonacci numbersthe first $count Fibonacci numbersCCU_COMM_ANT LABTcl簡介(Tool Command Language) cont.for set i 1 $i $count incr i 1 for ( i = 1 ; i count ; i+ ) 流程控制流程控制(control flow) if
7、-else、switch、while、for、foreach set my_planet earthif $my_planet = earth puts I feel right at home. elseif $my_planet = venus puts This is not my home. else puts I am neither from Earth, nor from Venus.set num_legs 4switch $num_legs 2 puts It could be a human. 4 puts It could be a cow. 6 puts It coul
8、d be an ant. 8 puts It could be a spider. default puts It could be anything.set i 0while $i 5 puts In the while loop, and i = $i incr i 1 CCU_COMM_ANT LABTcl簡介(Tool Command Language) cont.set num(1) expr $num(0) + $num(1) num1 = num0 + num1; indicate command substitution puts I am expr 10 * 3 years
9、old, and my I.Q. is expr 100 + 75 執行的結果:I am 30 years old, and my I.Q. is 175CCU_COMM_ANT LAB開始NS2模擬:模擬環境介紹CCU_COMM_ANT LABNS2模擬:Tcl Script # 產生一個模擬的物件set ns new Simulator#針對不同的資料流定義不同的顏色,這是要給NAM用的$ns color 1 Blue$ns color 2 Red#開啟一個NAM trace fileset nf open out.nam w$ns namtrace-all $nf#開啟一個trace f
10、ile,用來記錄封包傳送的過程set nd open out.tr w$ns trace-all $ndCCU_COMM_ANT LABNS2模擬:Tcl Script (cont.)#定義一個結束的程序proc finish global ns nf nd $ns flush-trace close $nf close $nd #以背景執行的方式去執行NAM exec nam out.nam & exit 0CCU_COMM_ANT LABNS2模擬:Tcl Script (cont.)#產生四個網路節點set n0 $ns nodeset n1 $ns nodeset n2 $ns
11、 nodeset n3 $ns node#把節點連接起來 $ns duplex-link $n0 $n2 2Mb 10ms DropTail$ns duplex-link $n1 $n2 2Mb 10ms DropTail$ns duplex-link $n2 $n3 1.7Mb 20ms DropTail#設定ns2到n3之間的Queue Size為10個封包大小$ns queue-limit $n2 $n3 10CCU_COMM_ANT LABNS2模擬:Tcl Script (cont.)#設定節點的位置,這是要給NAM用的$ns duplex-link-op $n0 $n2 orien
12、t right-down$ns duplex-link-op $n1 $n2 orient right-up$ns duplex-link-op $n2 $n3 orient right#觀測n2到n3之間queue的變化,這是要給NAM用的$ns duplex-link-op $n2 $n3 queuePos 0.5#建立一條TCP的連線set tcp new Agent/TCP # 創造一個TCP的Agent $ns attach-agent $n0 $tcp # TCP agent 結合到 node(n0) # 但就此範例光是 TCP 無法產生任何 Traffic, 所以通常我們都會再建
13、立一些# Application 的 Protocol 於 TCP 上(如 FTP、Telnet) set ftp new Agent/TCP $ns attach-agent $n3 $sinkCCU_COMM_ANT LABNS2模擬:Tcl Script (cont.)#設定FTP和CBR資料傳送開始和結束時間$ns at 0.1 $cbr start$ns at 1.0 $ftp start$ns at 4.0 $ftp stop$ns at 4.5 $cbr stop#結束TCP的連線$ns at 4.5 $ns detach-agent $n0 $tcp#$ns at #在模擬環境
14、中,5秒後去呼叫finish來結束模擬$ns at 5.0 finish“#開始執行 scheduler.$ns runCCU_COMM_ANT LABNS2模擬:模擬結果 0.1 1 2 cbr 1000 - 2 1.0 3.1 0 0 0.1 1 2 cbr 1000 - 2 1.0 3.1 0 0 0.108 1 2 cbr 1000 - 2 1.0 3.1 1 1 0.108 1 2 cbr 1000 - 2 1.0 3.1 1 1r 0.114 1 2 cbr 1000 - 2 1.0 3.1 0 0 0.114 2 3 cbr 1000 - 2 1.0 3.1 0 0 0.114
15、2 3 cbr 1000 - 2 1.0 3.1 0 0 0.116 1 2 cbr 1000 - 2 1.0 3.1 2 2 0.116 1 2 cbr 1000 - 2 1.0 3.1 2 2r 0.122 1 2 cbr 1000 - 2 1.0 3.1 1 1 0.122 2 3 cbr 1000 - 2 1.0 3.1 1 1.event time fromtonodepktnodepkttypeflagsizefidsrcaddrdstaddrseqnumpktid一二三四五六七八九十十一十二CCU_COMM_ANT LABawk語言 數值分析資料列:awk從資料檔上讀取的基本單位
16、,以trace file為例,awk讀入的第一筆資料列為 ” 0.1 1 2 cbr 1000 - 2 1.0 3.1 0 0”第二筆資料列為 “ 0.1 1 2 cbr 1000 - 2 1.0 3.1 0 0”一般而言,一筆資料列相當於資料檔上的一行資料。CCU_COMM_ANT LABawk語言 簡介程式主要節構:Pattern1 Actions1 Pattern2 Actions2 Patternx Actionsx 一般常用關係判斷式來當成Pattern。例如:x 3 用來判斷變數x是否大於3x = 5 用來判斷變數x是否等於5awk提供c語言常見的關係運算元,如:、!等等Actio
17、ns是由許多awk指令所構成,而awk的指令與c語言中的指令非常類似 。IO指令:print 、 printf( ) 、getline .流程控制指令 : if ( .) . else 、 while() CCU_COMM_ANT LABawk語言 執行流程執行awk時, 它會反複進行下列四步驟 自動從指定的資料檔中讀取一筆資料列。自動更新(Update)相關的內建變數之值。逐次執行程式中 所有 的 Pattern Actions 指令。當執行完程式中所有 Pattern Actions 時,若資料檔中還有未讀取的料,則反覆執行步驟1到步驟4。CCU_COMM_ANT LABawk語言 例子B
18、EGIN #程式初始化,設定一變數以記錄目前最高處理封包的ID。 highest_packet_id = 0; action = $1; time = $2; node_1 = $3; node_2 = $4; type = $5; flow_id = $8; node_1_address = $9; node_2_address = $10; seq_no = $11; packet_id = $12; CCU_COMM_ANT LABawk語言 例子 (cont.)#記錄封包的傳送時間 if ( start_timepacket_id = 0 ) start_timepacket_id = time;#記錄CBR (flow_id=2) 的接收時間 if ( flow_id = 2 & action != d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年齐齐哈尔市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及1套完整答案详解
- 东营市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(突破训练)
- 2026年江门市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(巩固)
- 2026年金昌市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(b卷)
- 东营市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(能力提升)
- 中卫市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(历年真题)
- 2026年温州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及完整答案详解1套
- 平顶山市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(培优a卷)
- 盘锦市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(各地真题)
- 2026年黔南布依族苗族自治州农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(典型题)
- 国际分工与世界市场教学课件
- 德育与班级管理知到智慧树章节测试课后答案2024年秋西南大学
- 《小学教育中家校合作存在的问题及完善对策研究》7200字(论文)
- 2025年中国长江三峡集团限公司“基石”校园招聘110人高频重点提升(共500题)附带答案详解
- 2025年中国银行招聘笔试参考题库含答案解析
- 内部控制与风险管理(第3版)题库
- 2024-2025华为ICT大赛(实践赛)-网络赛道理论考试题库大全-下(判断题)
- 钢棚钢结构施工方案
- 2023年三峡集团招聘笔试真题
- 110kv输电线路工程施工作业指导书
- (国铁)机车检查保养员(机车整备工)职业技能考试题及答案
评论
0/150
提交评论