計算機網路實驗- 使用NS2模擬多媒體通訊與無線網路(實驗四)

Slides:



Advertisements
Similar presentations
 第11讲 美国 巴西.
Advertisements

PART III 10 無線網狀網路簡介與佈建  無線網狀網路的架構  SEE 網狀網路  無線網狀網路之網路規劃技術
實驗 9: 無線安全網路之建設.
计算机网络教程(第 2 版) 第 7 章 网络互连 课件制作人:谢希仁.
Network Simulator.
Ns2 一個常用的網路模擬器 台灣科技大學資管系資料庫實驗室 洪振洲.
CATIA V5 Training CATIA V5 装配设计 Assembly Design.
進階網路系統 作業 題目: 組別:第二組 組員: 蘇俊吉 盧柏崴 黃明煜 李德偉
路由器的性能特点和工作原理 两种常用的内部网关协议(RIP和OSPF) 路由器的产品结构 局域网中使用路由器的方案
计算机网络的组成 资源子网:   主机 终端 终端控制器   外设 软件资源 信息资源    .
计算机网络 暨南大学计算机科学系 学年 第一学期.
第1章 概述.
Profibus Training Course
NetGuru 創新 網路通訊實驗教學解決方案 PART I TCP/IP通訊協定深入剖析/以NetGuru實作
路由器繞送協定- 第三章 路由器動態繞送服務
AODV路由协议的正确性研究 蔡雪莲.
Routing Protocols and Concepts – Chapter 3
安徽广播电视大学 组网技术与配置(第2版) 第8章 路由器的配置 汪本标.
第31讲 帧中继技术FR 主讲:史宝会.
Author: Shigeki Takeuchi,Hiroyuki Koga, Katsuyoshi Iida,
張晃崚 麟瑞科技股份有限公司 網路基本概念/網路Router設定 張晃崚 麟瑞科技股份有限公司.
Computer Network Lab 資碩一 黃麒瑋
通訊協定 OSI分層模式 與 TCP/IP協定
基於OpenWSN之無線感測網路系統的實作
網路技術管理進階班---區域網路的技術發展
亂數函數(Random-Number Function)
项目五 构建与互联网可靠连接的小企业骨干网
Chapter 5 Verilog硬體描述語言
Internet Protocol (IP)
The Network Core 由互相連結成網狀的router所組成 資料在網路中傳送的方式 Circuit switching
TCP/IP Protocol Suite TCP/IP協定 第二組 投影片製作by簡嘉宏 綦凱宏 林睿敏 滕孟哲.
系統與網路管理工具.
锐捷网络实验室项目培训 交换技术.
在一定程度上 人类的思维产生于 简单个体之间的相互作用 ——Marvin Minsky.
Simulink建模与仿真.
什麼是網際網路? 面臨攻擊的網路 網路邊際 總結 網路核心
EWB 电 路 电 子 分 析 设 计 仿 真 软 件 软件简介   随着电子技术和计算机技术的发展,电子产品已与计算机紧密相连,电子产品的智能化日益完善,电路的集成度越来越高,而产品的更新周期却越来越短。电子设计自动化(EDA)技术,使得电子线路的设计人员能在计算机上完成电路的功能设计、逻辑设计、性能分析、时序测试直至印刷电路板的自动设计。EDA是在计算机辅助设计(CAD)技术的基础上发展起来的计算机设计软件系统。与早期的CAD软件相比,EDA软件的自动化程度更高、功能更完善、运行速度更快,而且操作界面
第4讲 传输层之二 本讲目的: 本讲概述: Internet传输层的实现和实例 面向连接的传输: TCP TCP拥塞控制 拥塞控制原则
江西财经大学信息管理学院 《组网技术》课程组
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
第七讲 网际协议IP.
NS2 - Basic Ming-Feng Yang.
NS2 – TCP/IP Simulation How-Wei Wu.
校園網路架構介紹與資源利用 主講人:趙志宏 圖書資訊館網路通訊組.
第5讲 网络层 本讲目的: 概述: 理解网络层服务原理: 因特网的实现实例 网络层的服务 路由选择原理 分层的路由选择 IP协议
Redis 客户端和工具集 潘海龙 平安健康互联网
iRepor报表设计基础 IReport安装 普通实体报表 数据结果集报表 工作流主从报表 饼状图报表 柱状图,曲线图报表 条形码报表
第十三章 TCP/IP 與 Internet 網路連結技術
電子商務網站架設技術 利用FB做Login
具通訊傳輸品質認知性之IEEE e網路形成和快速加入演算法設計
Advisor : Prof. Frank Y.S. Lin Presented by Yen-Yi, Hsu
无线传感器网络的仿真 仿真模块 ①无线信道模块:Channel/WirelessChannel;
第一章 测量误差与实验不确定度.
测试文档的讲解 Tester: YOYO.
NS2 (Network Simulator - version 2)
Source: Journal of Network and Computer Applications, Vol. 125, No
Speaker: Wang,Song-Ferng Advisor: Dr. Ho-Ting Wu 2015/7/6
爬蟲類動物2 Random Slide Show Menu
Toward realistic MPEG4 video transmission simulations
指導教授:梁明章 A 許之青 國立高雄大學 2010/06/25
Chapter 10 Mobile IP TCP/IP Protocol Suite
Create and Use the Authorization Objects in ABAP
控制系统计算机辅助设计-MATLAB语言与应用
Wireless Link Layer and IEEE
Mobile IPv4.
IP Layer Basics, Firewall, VPN, and NAT
Link Layer &一點點的Physical Layer
NS3 & NS2 (network simulator)
IP Layer Basics & Firewall
第 4 章 网络层.
Presentation transcript:

計算機網路實驗- 使用NS2模擬多媒體通訊與無線網路(實驗四) 指導教授:許子衡老師 學生:羅英辰

網路模擬 結束模擬後,通常我們會要用到過程中產生的記錄來分析以得到吞吐量(Throughput)、封包延遲(Packet delay)、抖動率(Jitter)和封包遺失率(Packet loss rate)。 以下就是有線網路記錄的格式: Event Time From node To node Pkt type Pkt size Flags Fid Src addr Dst addr Seq num Pkt id 2010/3/5

ftp tcp sink s1 2Mbps, 10ms r 1.7Mbps, 20ms d s2 2Mbps, 10ms udp sink cbr cbr ftp sec 2010/3/5 0.1 1.0 4.0 4.5

封包第一和第四欄 2010/3/5

2010/3/5

UDP的吞吐量計算 #使用方法: perl measure-throughput.pl <trace file> <granlarity> #記錄檔檔名 $infile=$ARGV[0]; #多少時間計算一次(單位為秒) $granularity=$ARGV[1]; $sum=0; $sum_total=0; $clock=0; $maxrate=0; $init=0; #打開記錄檔 open (DATA,"<$infile") || die "Can't open $infile $!"; 2010/3/5

#讀取記錄檔中的每行資料,資料是以空白分成眾多欄位 while (<DATA>) { @x = split(' '); if($init==0){ $start=$x[2]; $init=1; } #讀取的第零個欄位是pkt_id #讀取的第一個欄位是封包傳送時間 #讀取的第二個欄位是封包接收時間 #讀取的第三個欄位是封包end to end delay #讀取的第四個欄位是封包大小 #判斷所讀到的時間,是否已經達到要統計吞吐量的時候 if ($x[2]-$clock <= $granularity) { #計算單位時間內累積的封包大小 $sum=$sum+$x[4]; #計算累積的總封包大小 $sum_total=$sum_total+$x[4]; 2010/3/5

$throughput=$sum*8.0/$granularity; if ($throughput > $maxrate){ else { #計算吞吐量 $throughput=$sum*8.0/$granularity; if ($throughput > $maxrate){ $maxrate=$throughput; } #輸出結果: 時間 吞吐量(bps) print STDOUT "$x[2]: $throughput bps\n"; #設定下次要計算吞吐量的時間 $clock=$clock+$granularity; $sum_total=$sum_total+$x[4]; $sum=$x[4]; 2010/3/5

$throughput=$sum*8.0/$granularity; $endtime=$x[2]; #計算最後一次的吞吐量大小 $throughput=$sum*8.0/$granularity; print STDOUT "$x[2]: $throughput bps\n"; $clock=$clock+$granularity; $sum=0; #print STDOUT "$sum_total $start $endtime\n"; $avgrate=$sum_total*8.0/($endtime-$start); print STDOUT "Average rate: $avgrate bps\n"; print STDOUT "Peak rate: $maxrate bps\n"; #關閉檔案 close DATA; exit(0); 2010/3/5

2010/3/5

TCP的吞吐量計算 2010/3/5

無線網路 以下是無線網路模擬後所產生的值: s -t 0.267662078 -Hs 0 -Hd -1 -Ni 0 -Nx 5.00 -Ny 2.00 -Nz 0.00 -Ne -1.000000 -Nl RTR -Nw --- -Ma 0 -Md 0 -Ms 0 -Mt 0 -Is 0.255 -Id -1.255 -It message -Il 32 -If 0 -Ii 0 -Iv 32 2010/3/5

在上述trace記錄中,第一列描述了發生在節點上的事件類型,有四種: s 發送 r 接收 d 丟棄 f 轉發 s -t 0.267662078 在上述trace記錄中,第一列描述了發生在節點上的事件類型,有四種: s 發送 r 接收 d 丟棄 f 轉發 第二列以“-t”開始,表示的是時間或者全局設置 -t 時間 -t * (全局設置) 2010/3/5

-Ni 0 -Nx 5.00 -Ny 2.00 -Nz 0.00 -Ne -1.000000 -Nl RTR -Nw --- -Hs 0 -Hd -1 Hs:目前節點的id Hd:下一個hop節點的id -Ni 0 -Nx 5.00 -Ny 2.00 -Nz 0.00 -Ne -1.000000 -Nl RTR -Nw --- 這一列描述了節點諸如node-id等屬性,tracing的層級可能是agent、router或者MAC。這些標識以“-N”開始並如下所示: -Ni: 節點id -Nx: 節點的x坐標 -Ny: 節點的y坐標 -Nz: 節點的z坐標 -Ne: 節點能量級別 -Nl: 節點trace層級,比如AGT,RTR,MAC -Nw: 事件原因。 2010/3/5

該列標識以“-I”開始,其解釋如下: -Ma 0 -Md 0 -Ms 0 -Mt 0 該列給出了MAC層信息,標識以“-M”開始 -Is 0.255 -Id -1.255 -It message -Il 32 -If 0 -Ii 0 -Iv 32 該列標識以“-I”開始,其解釋如下: -Is: 來源地址 -Id: 目的地址 -It: 封包類型 -Il: 封包大小 -If: 資料流id -Ii: 唯一的id -Iv: ttl值(time to live) 2010/3/5

範圍:1000m*1000m 移動節點:三個 N0和N2是以CBR/UDP連線。 當time=200時,N1從(500,500)移到(500,900)。 當time=500時,N1從(500,900)移到(500,100)。 當time=1000時結束。 2010/3/5

(500,900) Time = 200 Time = 500 (350,500) (500,500) (650,500) (500,100) 2010/3/5

# Define options 定義一些變數 #=========================================================== set val(chan) Channel/WirelessChannel ;# channel type set val(prop) Propagation/TwoRayGround ;#radio-propagation model set val(netif) Phy/WirelessPhy ;# network interface type set val(mac) Mac/802_11 ;# MAC type set val(ifq) Queue/DropTail/PriQueue ;# interface queue type set val(ll) LL ;# link layer type set val(ant) Antenna/OmniAntenna ;# antenna model (天線模型) set val(x) 1000 ;#拓樸範圍:X set val(y) 1000 ;#拓樸範圍:Y set val(ifqlen) 50 ;# max packet in ifq set val(nn) 3 ;# number of mobile nodes set val(seed) 0.0 set val(stop) 1000.0 ;# simulation time set val(tr) exp.tr ;# trace file name set val(rp) DSDV ;# routing protocol 2010/3/5

# Initialize Global Variables set ns_ [new Simulator] # Open trace file 開啟trace file $ns_ use-newtrace set namfd [open nam-exp.tr w] $ns_ namtrace-all-wireless $namfd $val(x) $val(y) set tracefd [open $val(tr) w] $ns_ trace-all $tracefd # set up topography object #建立一個拓樸物件,以紀錄mobilenodes在拓樸內移動的情況 set topo [new Topography] # 拓樸的範圍為 1000m x 1000m $topo load_flatgrid $val(x) $val(y) # create channel set chan [new $val(chan)] # Create God set god_ [create-god $val(nn)] 2010/3/5

$ns_ node-config -adhocRouting $val(rp) \ -llType $val(ll) \ # Create the specified number of mobile nodes [$val(nn)] and "attach" them # to the channel. Three nodes are created : node(0), node(1) and node(2) # 設置Mobile node的參數 $ns_ node-config -adhocRouting $val(rp) \ -llType $val(ll) \ -macType $val(mac) \ -ifqType $val(ifq) \ -ifqLen $val(ifqlen) \ -antType $val(ant) \ -propType $val(prop) \ -phyType $val(netif) \ -channel $chan \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace OFF \ -movementTrace OFF for {set i 0} {$i < $val(nn) } {incr i} { set node_($i) [$ns_ node] $node_($i) random-motion 0 ;# disable random motion } 2010/3/5

# Provide initial (X,Y, for now Z=0) co-ordinates for mobilenodes # # 設定節點0在一開始時,位置在(350.0, 500.0) $node_(0) set X_ 350.0 $node_(0) set Y_ 500.0 $node_(0) set Z_ 0.0 # 設定節點1在一開始時,位置在(500.0, 500.0) $node_(1) set X_ 500.0 $node_(1) set Y_ 500.0 $node_(1) set Z_ 0.0 # 設定節點2在一開始時,位置在(650.0, 500.0) $node_(2) set X_ 650.0 $node_(2) set Y_ 500.0 $node_(2) set Z_ 0.0 # Load the god object with shortest hop information # 在節點1和節點2之間最短的hop數為1 $god_ set-dist 1 2 1 # 在節點0和節點2之間最短的hop數為2 $god_ set-dist 0 2 2 # 在節點0和節點1之間最短的hop數為1 $god_ set-dist 0 1 1 2010/3/5

# Now produce some simple node movements # Node_(1) starts to move upward and then downward set god_ [God instance] # 在模擬時間200秒的時候,節點1開始從位置(500, 500)移動到(500, 900), # 速度為2.0 m/sec $ns_ at 200.0 "$node_(1) setdest 500.0 900.0 2.0" # 然後在500秒的時候,再從位置(500, 900)移動到(500, 100),速度為2.0 m/sec $ns_ at 500.0 "$node_(1) setdest 500.0 100.0 2.0" 2010/3/5

# Setup traffic flow between nodes 0 connecting to 2 at time 100.0 # 在節點0和節點2建立一條CBR/UDP的連線,且在時間為100秒開始傳送 set udp_(0) [new Agent/mUDP] #設定傳送記錄檔檔名為sd_udp $udp_(0) set_filename sd_udp $udp_(0) set fid_ 1 $ns_ attach-agent $node_(0) $udp_(0) set null_(0) [new Agent/mUdpSink] #設定接收檔記錄檔檔名為rd_udp $null_(0) set_filename rd_udp $ns_ attach-agent $node_(2) $null_(0) set cbr_(0) [new Application/Traffic/CBR] $cbr_(0) set packetSize_ 200 $cbr_(0) set interval_ 2.0 $cbr_(0) set random_ 1 $cbr_(0) set maxpkts_ 10000 $cbr_(0) attach-agent $udp_(0) $ns_ connect $udp_(0) $null_(0) $ns_ at 100.0 "$cbr_(0) start" 2010/3/5

#Define node initial position in nam, only for nam # 在nam中定義節點初始所在位置 for {set i 0} {$i < $val(nn)} {incr i} { # The function must be called after mobility model is defined. $ns_ initial_node_pos $node_($i) 60 } # Tell nodes when the simulation ends # 設定節點模擬結束時間 for {set i 0} {$i < $val(nn) } {incr i} { $ns_ at $val(stop) "$node_($i) reset"; $ns_ at $val(stop) "stop" $ns_ at $val(stop) "puts \"NS EXITING...\" ; $ns_ halt" proc stop {} { global ns_ tracefd namfd $ns_ flush-trace close $tracefd close $namfd puts "Starting Simulation..." $ns_ run 2010/3/5

2010/3/5

2010/3/5

2010/3/5

2010/3/5

2010/3/5