計算機網路 COMPUTER NETWORK

Slides:



Advertisements
Similar presentations
翻譯技巧解說 例文 授課教師:何資宜. 一、加譯 「おしん」の視 聴率は、最高の時が 62.9 %に達した。ク ロジロが出てくる 「南極物語」は、配 給収入が 52 億円を超 えて、記録を更新し た。 《阿信》的收視率最 高時曾達 62.9% 。此 外,以兩隻小狗太郎 次郎為主角的《南極 物語》,票房收入也.
Advertisements

第一單元 建立java 程式.
存量房交易纳税评估 系统简介 常州市武进地方税务局 政策法规科 2011 年 7 月.
計算機程式語言實習課.
翰林版國文第三冊第六課 《迢迢牽牛星》 設計者:郭宜幸.
遊程規劃實務 中華民國遊程規劃設計協會.
102年度統一入學測驗 報名作業說明會 時 間:101年12月14日(星期五) A.M.9:00~10:20 地 點:行政七樓講堂
自 我 介 紹 班級:運促一乙 姓名:林以權 學號:D
姓名:劉芷瑄 班級:J201 座號:39號 ISBN:957-33-1963-2
让我们一起走进物流 大一的时光即将结束,马上就要开专业课了,作为物流管理系的学生,同学们是不是又对物流有了进一步的了解呢?今天让我们通过活动一起走进物流吧! 制作人:丁方媛、王志丹.
自 然 探 索 圓周美語 My name is.
NS-2.
Project-1 NS-2教學.
TCL多媒体2013校园招聘春季补招 TCL 多媒体科技控股有限公司(简称TCL 多媒体)是香港联交所上市公司(股票代码:01070),其母公司为 TCL 集团。TCL 多媒体是全球领先的消费电子产品生产商,主要从事电视机产品的研发、制造和销售,其中彩电是公司的核心产品。 TCL 多媒体总部设在中国深圳,其研发、生产的分支机构遍布世界各地。制造基地分别位于广东惠州、江苏无锡、内蒙呼和浩特、四川成都、墨西哥、波兰和越南胡志明市等,为全球客户提供高品质的产品。
如何查財產(2/6) EX:利息明細提醒您於金融機構有存款;營利(股利)明細提醒您有買股票。
中国家电行业 专业化与多元化道路         第9组               黄超               张黎江               鲍天钰               孙蓉               汤娜                 制作  黄超         
企业的创新 2011级会计学三班 姓名: 吴思思 学号:
五-4 台灣的生活禮俗 組員:603 15號 黃醴萬 6號 吳家熙 5號 楊証傑 11號 李偉新.
新世代的就業競爭力 報告人:朴子就業服務站劉美玲站長 日 期:96.10.
兒 童 營 養 高雄長庚醫院營養治療科 營養師 洪凱殷.
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
TQC+ JAVA全國教師研習會 PLWeb 程式設計練習平台 簡介.
Hadoop 單機設定與啟動 step 1. 設定登入免密碼 step 2. 安裝java step 3. 下載安裝Hadoop
計算機網路實驗- 使用NS2模擬多媒體通訊與無線網路(實驗四)
2018/9/19.
Chapter 5 迴圈.
基本程式範例.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
Computer Network Lab 資碩一 黃麒瑋
LINQ 建國科技大學 資管系 饒瑞佶.
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
亂數函數(Random-Number Function)
第八章 利用SELECT查詢資料.
學習如何使用NS-2和NSG2.
常用工具以及结果分析 画图, gnuplot,xgraph 分析trace文件 文本处理工具gawk 命令格式
在NS-2上模擬多個FTP連線,觀察頻寬的變化
NS2 教學.
(Circular Linked Lists)
安裝JDK 安裝Eclipse Eclipse 中文化
Quiz6 繳交期限: 12/14(四) 23:59前.
App Inventor2呼叫PHP存取MySQL
NS2 - Basic Ming-Feng Yang.
NS2 – TCP/IP Simulation How-Wei Wu.
暴力、草莽、土野、情色、權慾 —華西街的成人童話
第六章 安全衛生工作守則 6-1 前 言  6-2 訂定依據相關法令規定  6-3 工作守則製作程序及製作前應注意事項  6-4 如何訂定適合需要之安全衛生工作守則  6-5 結 論.
第一單元 建立java 程式.
Linux作業系統 電腦教室Linux使用說明.
Wireshark-解析HTTP封包(3)
刑事訴訟法 不受理.
NS2 (Network Simulator - version 2)
Introduction to C Programming
CH1 我的第一個App與變數宣告.
期末考.
共源極頻率響應 科系:通訊工程學系 執導老師:王志湖 學號:B 姓名:何信賢.
GridView.
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
函數應用(二)與自定函數.
陣列與結構.
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
NS3 & NS2 (network simulator)
臺中市龍山國小 校園常見瓢蟲辨識   瓢蟲屬於鞘翅目瓢蟲科。目前世界上約有5000多種瓢蟲,台灣地區約有80種以上,其中能捕食有害生物的瓢蟲約七十種之多。瓢蟲因為捕食有害生物為主食,所以又稱為『活農藥』。
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
SQLite資料庫 靜宜大學資管系 楊子青.
Unix指令4-文字編輯與程式撰寫.
第二节 偏 导 数 一、 偏导数概念及其计算 二 、高阶偏导数.
JUDGE GIRL 使用介紹 & 常見問題 TAs :
微 處 理 機 專 題 – 8051 C語言程式設計 主題:階乘計算
Department of Computer Information Science, NCTU
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

計算機網路 COMPUTER NETWORK 實驗(五)網路效能量測 計算機網路 COMPUTER NETWORK

實驗步驟 學習TCL語言 分析out.tr 分析相關數值 學習AWK語言 利用NSG2所提供的範例檔,並產生TCL檔

TCL TCL(Tool Command Language) 用途:描述腳本 描述要模擬的網路環境和參數設定

TCL基本介紹(變數宣告及使用) set $ Example 執行方法 執行結果 variable.tcl set name “jim” Puts “my name is $name” $ns variable.tcl my name is jim

TCL基本介紹(表示式) set value [expr 0==1] puts $value set value [expr 2+3] 判斷真假 example 數學表示式 Example expr2.tcl expr1.tcl set value [expr 0==1] puts $value set value [expr 2+3] puts $value $ns expr1.tcl $ns expr2.tcl 5

TCL基本介紹(指令替換) example CommandSubstitution.tcl puts “I am [expr 10*2] years old” $ns CommandSubsitution.tcl I am 20 years old

TCL基本介紹(流程控制) if-else、switch、while、for、foreach example ControlFlow.tcl set my_planet “earth” If {$my_planet == “earth”} { puts “I feel right at home.” } else if {$my_planet == “mars”}{ puts “This is not my home.” } else { puts “I am neither from earth , nor from mars.” } set temp 25 If {$temp < 20 } { puts “It’s a little chilly.” puts “Warm enough for me” $ns ControlFlow.tcl I feel right at home. Warm enough for me. 空格要注意,一定要空,不然不能跑

TCL基本介紹(程序) TCL中也允許使用者自定程序 example procedure.tcl proc sum_proc {a b} { 空格注意 proc sum_proc {a b} { return[expr $a =$b] } set num1 5 set num2 6 set sum [sum_proc $num1 $num2] puts “the sum is $sum” $ns procedure.tcl the sum is 11

TCL基本介紹(陣列) set myarray(0) “Zero” set myarray(1) “One” example array.tcl set myarray(0) “Zero” set myarray(1) “One” set myarray(2) “Two” for { set i 0} {$i <3} {incr i 1} { puts $myarray($i) } $ns array.tcl Zero One Two 空格要注意,一定要空,不然不能跑

Out.tr Analysis 欄位一 : 封包事件 (r:receive,+:enpueue, -:dequeue,d:drop) 欄位二 : 事件發生時間 欄位三、欄位四 : from node 到 to node 欄位五 : 封包型態 欄位六 : 封包大小 1 2 3 4 5 6 7 8 9 10 11 12 欄位七 : 旗標 欄位八 : 表示封包屬於的資料流 欄位九、欄位十 : 封包來源端和目的端 x.y -> x:節點編號 , y:port number 欄位十一 : 封包序號 欄位十二 : 封包id Event time From node To Packet type size flags Flow Id Src addr Dst Seq num ID + 0.1 1 2 cbr 1000 --------- 1.0 3.1

Analysis End-to-End Delay 端點到端點的延遲 = receiver time – sender time Jitter 抖動率(延遲時間變化量) = (receiver time(j) – sender time(j)) – (receiver time(i) – sender time(i)), j > i Throughput 吞吐量 packet loss 封包遺失率 Ex: from node=1 to node=2 且event=“+”從n1送到n2封包 Flowid=2 & event=“d” 封包遺失 所以封包遺失率= 封包遺失數/(封包送達數+封包遺失數)

AWK 一種程式語言 變數無形別之分 擅長處理資料列、欄位型態的資料。

AWK 當awk讀入資料列後,會把每個欄位的值存入欄位變數 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $0 當awk讀入資料列後,會把每個欄位的值存入欄位變數 欄位變數 意義 上例欄位的東西 $0 為一串列,其內容為目前awk所獨去的資料列 + 0.1 1 2 cbr 1000 --------- 2 1.0 3.1 0 0 $1 代表$0上第一個欄位的資料 + $2 代表$0上第二個欄位的資料 0.1 $X 代表$0上第X個欄位的資料 ……….

AWK 程式主要結構 一般常用”關係判斷式來當Pattern” 提供C語言常見的關係運算元,如>、<、>=、<=、==、!=…等 I/O指令:print、printf()……等 流程控制指令:if(…){…}else{…}、while(…){…}…… AWK語言與C語言類似,在空格不會像TCL一樣,有一定要空格的問題 Pattern1 { Action1} Pattern2 { Action2} …………………………………. Pattern3 { Action3}

AWK 工作流程 從指定的資料檔中讀取一筆資料列 更新相關的內建變數之值 逐次執行程式所有的 Pattern { Actions }

AWK學習 網站一血落閣 Linux相關技術學習 http://blog.xuite.net/mb1016.flying/linux/28111008- linux+shell+awk+%E8%AA%9E%E6%B3%95 此網站是翻譯成繁中版 來源出處(weekly123的专栏 http://blog.csdn.net/weekly123/article/details/1465675) 網站二 http://lalakiwe.myweb.hinet.net/Documents/awk/awk_1.html

作業 本實驗將利用NSG2實作範例圖(圖同實驗三)所產生的 tcl檔和out.tr檔 再撰寫一程式,計算每個封包之delay time,jitter 及Package Loss Rate

PacketLoss.awk dst = $10; seq_no = $11; packet_id = $12; BEGIN {#程式初始化,設定一變數記錄packet被drop的數目 fsDrops = 0; numFs = 0; } { action = $1; time = $2; from = $3; to = $4; type = $5; pktsize = $6; flow_id = $8; src = $9; dst = $10; seq_no = $11; packet_id = $12; #統計從n1送出多少packets #統計flow_id為2,且被drop的封包 } END { printf

Delay.awk(1) BEGIN { highest_packet_id = 0; } { action = $1; time = $2; from = $3; to = $4; type = $5; pktsize = $6; flow_id = $8; src = $9; dst = $10; seq_no = $11; packet_id = $12; #記錄目前最高的packet ID if ( packet_id > highest_packet_id ) #記錄封包的傳送時間 if ( start_time[packet_id] == 0 ) start_time[packet_id] = time;

Delay.awk(2) #記錄CBR (flow_id=2) 的接收時間 if ( flow_id == 2 && action != "d" ) { if ( action == "r" ) { } } else { #把不是flow_id=2的封包或者是flow_id=2但此封包被drop的時 間設為-1 END { #當資料列全部讀取完後,開始計算有效封包的端點到端點延 遲時間 for ( packet_id = 0; packet_id <= highest_packet_id; packet_id++ ) { start = end = packet_duration = end - start; #只把接收時間大於傳送時間的記錄列出來 if ( start < end ) printf("%f %f\n", start, packet_duration); }

Jitter.awk(1) BEGIN {#程式初始化,設定一變數以記錄目前最高處理封包的ID。 highest_packet_id = 0;} { action = $1; time = $2; from = $3; to = $4; type = $5; pktsize = $6; flow_id = $8; src = $9; dst = $10; seq_no = $11; packet_id = $12; #記錄目前最高的packet ID if ( packet_id > highest_packet_id ) #記錄封包的傳送時間 if ( start_time[packet_id] == 0 ) { # 記錄下包的seq_no pkt_seqno[packet_id] = seq_no; start_time[packet_id] = time; } }

Jitter.awk(2) #記錄CBR (flow_id=2) 的接收時間 if ( flow_id == 2 && action != "d" ) { if ( action == "r" ) { } } else { #把不是flow_id=2的封包或者是flow_id=2但此封包 被丟棄的時間設為-1 END { # 初始化jitter計算所需變量 last_seqno = 0; last_delay = 0; seqno_diff = 0; #當資料列全部讀取完後,開始計算有效封包的端 點到端點延遲時間 for ( packet_id = 0; packet_id <= highest_packet_id; packet_id++ ) { start = end = packet_duration = end - start;

Jitter.awk(3) printf("%f %f\n", start, jitter); #只把接收時間大於傳送時間的記錄列出來 if ( start < end ) { # 得到了delay值(packet_duration)後計算jitter seqno_diff = delay_diff = if (seqno_diff == 0) { jitter =0; } else { jitter = delay_diff/seqno_diff; } printf("%f %f\n", start, jitter); last_seqno = pkt_seqno[packet_id]; last_delay = packet_duration; }

HINT 根據上列(P17~P22投影片) 提示,來完成橘色空格, 並完成AWK檔,搭配out.tr 來計算出相關數值 如果真的不熟悉AEK語言 ,也可以由(P17~P22投影片) 提示,自行做出C、C++程式 語言版本,來計算出相關數 值

作業 Doc檔上,須說明: 封面(班級、學號、姓名) 檔名範例:Hw3_498410561_張建雄 相關程式碼 Terminal在執行$awk結果之截圖(如有三個awk檔,則截三個圖) 如果是用其他語言的也須附上截圖 心得 若有問題請e-mail給助教