awkによるデータ処理 データ(テキスト形式)の加工・取り出しが可能 読み込んだデータを1行ごとに処理 C言語っぽい 書式

Slides:



Advertisements
Similar presentations
並び替え. 名古屋市 県 名県 名 県庁所在地 秋田市 県 名県 名 県庁所在地 青森市 県 名県 名 県庁所在地.
Advertisements

1 通信教育学部 コンピュータ演習 Excel の書式設定と関数 授業ページ「コンピュータ演習(通信教育学 部)」を 開いてください。提出課題の一覧が掲載されてい ます。
データベースの基礎知識 ACEESS の基本操作. データベースの基礎知識 データベース  特定のテーマや目的に毎のデータの集合体 データベースソフトウェア  データベースを作成、管理するソフトウェアの総 称 Oracle(Oracle) IBM(DB2) Microsoft(SQL Server)
コンピュータ演習 Excel 入門 岡田孝・山下雅啓 Excel の機能は膨大 その中のごく一部を紹介 表計算機能 – データの入力、表の作成、計算など グラフ機能 – 棒グラフ、円グラフなどグラフ作成 データベース機能 – 並べ替え(ソート)、検索、抽出など マクロ機能 – VBA で自動化したマクロを作成可能.
MicroAVS 超入門 赤塚浩太. MicroAVS とは Visualization Tool Excel Java 膨大,高度なデータ処理が困難 高度なプログラミング能力必要 誰でも簡単に可視化できるツールの必要性 Micro AVS.
情報処理基礎 2006年 6月 15日.
初年次セミナー 第13回 2次元グラフィックス(1).
初年次セミナー 第14回 2次元グラフィックス(2).
神戸大学大学院 宇宙物理学研究室 青田 拓大 M2 田方 友梨 M2
インターネットの仕組み 例) Web閲覧 インターネット サーバ リクエスト データ 携帯電話 一般家庭 インターネットサービス
JXTA Shell (3) P2P特論 (ソフトウェア特論) 第6回 /
デジタルポートフォリオ作成支援ツール PictFolio 使用マニュアル
11.1 表の作成 表の各部名称 列 行 セル 罫線.
グラフ描画ソフト gnuplot を体験してみよう
ラウンドトリップタイムを指標とした 無線LAN のためのアクセスポイント選択手法
Advanced Unix Commands
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
第14章 ファイル操作 (コマンドプロンプト版)
詳解TCP/IP TCPタイムアウトと再転送 れにうむ.
Excelによる3-D/等高線グラフの描画 2変数関数の描画 Excel によるグレイスケールマップ風描画
TCP (Transmission Control Protocol)
Excelによる3-D/等高線グラフの描画 2変数関数の描画 Excel によるグレイスケールマップ風描画
TCP Tahoeのウインドウ制御 (復習)
詳解TCP/IP ACE B2 mewtwo.
ブロック線図によるシミュレーション ブロック線図の作成と編集 ブロック線図の保存と読込み ブロック線図の印刷 グラフの印刷
ファイル送信機能付きマルチキャストチャット
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング システムプログラミング プロセス間通信(パイプ) 担当:青木義満
Real Time Graph 指定された計測のデータを実時間収集サーバ(LABCOM)から取得し、リアルタイムにグラフとして表示する。
トランスポート層.
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
コンテンツ配信 エンコード (符号化) CBR (Constant Bit Rate) VBR (Variable Bit Rate)
ネットワーク性能評価.
グラフ描画ソフト gnuplot を体験してみよう
画像情報特論 (3) - TCP/IP (2) TCP (Transport Control Protocol)
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
第10回:Microsoft Excel (2/2)
ネットワークプログラミング 中村 修.
「XMLテンプレート」の利用 ~ 入力、編集、閲覧
インターネットの基礎知識 その3 ~TCP・UDP層編~
Ibaraki Univ. Dept of Electrical & Electronic Eng.
画像情報特論 (3) - TCP/IP (2) TCP (Transport Control Protocol)
画像情報特論 (3) - マルチメディアインフラとしてのTCP/IP (2)
画像情報特論 (3) - TCP/IP (2) TCP (Transport Control Protocol)
超高速ネットワークの弱点 光は速い 光は遅い 300km / 1msec (真空中) 180km / 1msec (光ファイバ中)
第14章 ファイル操作 (コマンドプロンプト版)
RTCPパケットの測定による マルチキャスト通信の品質評価
演習第6回 情報通信技術論 インターネット工学
Step.1 LinuxとIPコマンド ifconfig [-a] [インタフェース名] arp [-n]
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
グラフのPLOT方法 連続系演習補助資料.
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
TCP制御フラグの解析による ネットワーク負荷の推測
第4回 ファイル入出力方法.
演習第4回 情報通信技術論 インターネット工学
サービス指向ルータ向け 問合せ処理用ハードウェアの検討
レポート課題 レポートの提出は による。 提出期間を厳守する。 締切は2010年1月12日(火)
JXTA Shell (2) P2P特論 (ソフトウェア特論) 第5回 /
12 Microsoft Word(3) 12.1 表の作成 表の各部名称 列 行 セル 罫線.
実数列を生成する際の注意 数学関数の利用 Excel によるリサージュ図形描画 Excel による対数グラフ描画
第10回:Microsoft Excel (2/2)
PDFファイルの作り方① 「印刷」を利用して、PDFファイルを作成する。
ファイルの読み込み #!/usr/bin/env perl #Perlスクリプトの指定 open(FILE, "food.txt");
統計ソフトウエアRの基礎.
Excelによる3-D/等高線グラフの描画 2変数関数の描画 Excel によるグレイスケールマップ風描画
実数列を生成する際の注意 数学関数の利用 Excel によるリサージュ図形描画 Excel による対数グラフ描画
レポート課題1 基本問題:  課題1. あるマシンまでのRTT (Round Trip Time)を測定したところ 128msec(ミリ秒)であった。このマシンに対してウィンドウサイズ64KByteでTCPの通信を行う場合のスループットの予想値を計算せよ。 ヒント1: 授業中に説明したように、スループットの値は、ウィンドウサイズを往復遅延時間で割れば良い。Byteとbitの換算に注意する。計算を簡単にするために1024≒1000として計算して良い(もちろん、この概算を使わなくても良い)。スループットは、ど
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
画像情報特論 (3) - TCP/IP (2) TCP (Transport Control Protocol)
情報処理概論Ⅰ 2007 第11回 2007/7/4 情報処理概論Ⅰ 第11回.
TCP/IPの通信手順 (tcpdump)
Presentation transcript:

シミュレーション結果の処理方法 ~awk, gnuplot~ 演習第2回 情報通信技術論 インターネット工学

awkによるデータ処理 データ(テキスト形式)の加工・取り出しが可能 読み込んだデータを1行ごとに処理 C言語っぽい 書式 オーク データ(テキスト形式)の加工・取り出しが可能 読み込んだデータを1行ごとに処理 C言語っぽい 書式 % awk ‘パターン {アクション}' 入力データファイル 条件が一致した場合に行う操作 If文の条件文みたいなもの

awkの簡単な使用例 LocationがSendaiの行を抜き出す 湿度が61の行を抜き出す 気温が16以下の行を抜き出す weather.dat 2列目($2) :Location 3列目($3) :気温 4列目($4) :湿度 LocationがSendaiの行を抜き出す ‘$2 = “Sendai”’とすると? 湿度が61の行を抜き出す 気温が16以下の行を抜き出す 気温>20かつ湿度<80の行を抜き出す 使用可能な演算子の例 % awk ‘$2 == “Sendai”’ weather.dat 札幌 Sapporo 9.1 84 青森 Aomori 12.1 76 秋田 Akita 13.6 71 盛岡 Morioka 12.7 69 仙台 Sendai 15.6 64 山形 Yamagata 14.2 69 福島 Fukushima 16.7 57 水戸 Mito 16.4 70 宇都宮 Utsunomiya 16.0 76 前橋 Maebashi 17.3 65 熊谷 Kumagaya 17.8 71 東京 Tokyo 18.8 61 鹿児島 Kagoshima 19.7 65 那覇 Naha 24.3 79 % awk ‘$4 == 61’ weather.dat % awk ‘$3 <= 16’ weather.dat % awk ‘$3>20 && $4<80’ weather.dat … +, -, *, /, % <, <=, ==, !=, >, >= &&, || 気象庁ホームページより・一部改変

行数を数える wc (Word Count) 行数だけを出力したい場合 ファイルの行数・単語数・バイト数(サイズ)を表示 % wc weather.dat 47 188 1833 weather.dat % wc -l weather.dat

リダイレクション・パイプ リダイレクション: awkの実行結果をファイルに保存 パイプ: awkの実行結果を入力として他のコマンドを実行 気温>16である行をfileに保存(上書きに注意) 行数は? パイプ: awkの実行結果を入力として他のコマンドを実行 気温>16である行の行数 % awk ‘$3 > 16’ weather.dat > file % wc -l file % awk ‘$3 > 16’ weather.dat | wc -l

何に使うのか? sample.tclを実行 cbr out.tr, out.tcp, out.namが生成される tcp % ns sample.tcl cbr ノード0 ノード2 ノード3 tcp ノード1

out.tr (抜粋) $1: イベント $2: イベント発生時刻 $3, $4: イベント発生場所(リンク) $5: パケットの種類 $11: パケットのシーケンス番号 $12: パケット固有の番号(ID) + 1 0 2 cbr 210 ------- 0 0.0 3.0 0 0 - 1 0 2 cbr 210 ------- 0 0.0 3.0 0 0 + 1.00375 0 2 cbr 210 ------- 0 0.0 3.0 1 1 - 1.00375 0 2 cbr 210 ------- 0 0.0 3.0 1 1 r 1.00556 0 2 cbr 210 ------- 0 0.0 3.0 0 0 + 1.00556 2 3 cbr 210 ------- 0 0.0 3.0 0 0 - 1.00556 2 3 cbr 210 ------- 0 0.0 3.0 0 0 + 1.0075 0 2 cbr 210 ------- 0 0.0 3.0 2 2 - 1.0075 0 2 cbr 210 ------- 0 0.0 3.0 2 2 r 1.00931 0 2 cbr 210 ------- 0 0.0 3.0 1 1 …

パケットの一生を見てみる あるパケット(ID=200, cbr)の流れに注目 cbr tcp % awk ‘$12 == 200’ out.tr + 1.64875 0 2 cbr 210 ------- 0 0.0 3.0 173 200 - 1.64875 0 2 cbr 210 ------- 0 0.0 3.0 173 200 r 1.65431 0 2 cbr 210 ------- 0 0.0 3.0 173 200 + 1.65431 2 3 cbr 210 ------- 0 0.0 3.0 173 200 - 1.672033 2 3 cbr 210 ------- 0 0.0 3.0 173 200 r 1.683153 2 3 cbr 210 ------- 0 0.0 3.0 173 200 cbr ノード0 ノード2 ノード3 tcp ノード1

パケットの流れ あるパケット(ID=200, cbr)の流れに注目 % awk ‘$12 == 200’ out.tr r 1.65431 0 2 cbr 210 ------- 0 0.0 3.0 173 200 + 1.65431 2 3 cbr 210 ------- 0 0.0 3.0 173 200 - 1.672033 2 3 cbr 210 ------- 0 0.0 3.0 173 200 r 1.683153 2 3 cbr 210 ------- 0 0.0 3.0 173 200 パケット キュー (バッファ) ノード0 ノード2 ノード3 リンク

パケットの流れ(ドロップされるパケット) あるパケット(ID=234, cbr)の流れに注目 % awk ‘$12 == 234’ out.tr + 1.6975 0 2 cbr 210 ------- 0 0.0 3.0 186 234 - 1.6975 0 2 cbr 210 ------- 0 0.0 3.0 186 234 r 1.70306 0 2 cbr 210 ------- 0 0.0 3.0 186 234 + 1.70306 2 3 cbr 210 ------- 0 0.0 3.0 186 234 d 1.70306 2 3 cbr 210 ------- 0 0.0 3.0 186 234 一度キューに入って(入ろうとして)からドロップされる ドロップ パケット キュー (バッファ) ノード0 ノード2 ノード3 リンク

TCPのシーケンス番号に注目してみる あるパケット(seqno=100, tcpおよびack)の流れに注目 tcp ack % awk ‘($5==“tcp”||$5==“ack”) && $11==100’ out.tr + 2.489317 1 2 tcp 1040 ------- 1 1.0 3.1 100 631 - 2.49209 1 2 tcp 1040 ------- 1 1.0 3.1 100 631 r 2.499863 1 2 tcp 1040 ------- 1 1.0 3.1 100 631 + 2.499863 2 3 tcp 1040 ------- 1 1.0 3.1 100 631 - 2.503757 2 3 tcp 1040 ------- 1 1.0 3.1 100 631 r 2.519303 2 3 tcp 1040 ------- 1 1.0 3.1 100 631 + 2.519303 3 2 ack 40 ------- 1 3.1 1.0 100 643 - 2.519303 3 2 ack 40 ------- 1 3.1 1.0 100 643 r 2.529517 3 2 ack 40 ------- 1 3.1 1.0 100 643 + 2.529517 2 1 ack 40 ------- 1 3.1 1.0 100 643 - 2.529517 2 1 ack 40 ------- 1 3.1 1.0 100 643 r 2.534623 2 1 ack 40 ------- 1 3.1 1.0 100 643 RTT 2.534623 -) 2.489317 0.045306 tcp ノード1 ノード2 ノード3 ack

送受信パケットの抽出 cbr tcp 送信されたcbrパケットの表示 送信されたtcpパケットの表示 ノード0 ノード2 ノード3 tcp ノード1 送信されたcbrパケットの表示 送信されたtcpパケットの表示 受信されたcbr / tcpパケットの表示 % awk ‘$1==“+” && $3==0 && $4==2 && $5==“cbr”’ out.tr % awk ‘$1==“+” && $3==1 && $4==2 && $5==“tcp”’ out.tr % awk ‘$1==“r” && $3==2 && $4==3 && $5==“cbr”’ out.tr % awk ‘$1==“r” && $3==2 && $4==3 && $5==“tcp”’ out.tr

ドロップされたパケットの抽出 cbr tcp 廃棄されたcbr /tcpパケットの表示 ノード0 ノード2 ノード3 ノード1 % awk ‘$1==“d” && $5==“cbr”’ out.tr % awk ‘$1==“d” && $5==“tcp”’ out.tr ※ 廃棄された場所(リンク)は問わない

送受信/ドロップパケット数の算出 送信パケット数の算出 受信パケット数の算出 ドロップパケット数の算出 % awk ‘$1==“+” && $3==0 && $4==2 && $5==“cbr”’ out.tr | wc -l % awk ‘$1==“+” && $3==1 && $4==2 && $5==“tcp”’ out.tr | wc -l % awk ‘$1==“r” && $3==2 && $4==3 && $5==“cbr”’ out.tr | wc -l % awk ‘$1==“r” && $3==2 && $4==3 && $5==“tcp”’ out.tr | wc -l % awk ‘$1==“d” && $5==“cbr”’ out.tr | wc -l % awk ‘$1==“d” && $5==“tcp”’ out.tr | wc -l

通信品質の評価指標 (総受信パケット数)×(パケットサイズ)[bytes] スループット[Mbps] = (通信時間)[s] 受信者が受信した量 ヘッダを含む (総受信パケット数)×(パケットサイズ)[bytes] スループット[Mbps] = (通信時間)[s] 送信者がパケットを送出した時間 ドロップの場所は問わない (総ドロップパケット数) パケットドロップ率[%] =                ×100  (総送信パケット数) 送信者が送信した量 ※ M = 106 bps = bit/sec 1 bytes = 8 bits

gnuplotによるグラフ描画 基本的な使用方法 % gnuplot … gnuplot> p “データファイル” ニュープロット 基本的な使用方法 % gnuplot … gnuplot> p “データファイル” u x軸のデータがある列:y軸のデータがある列 t “凡例名” w プロット形式 gnuplot> rep “データファイル” … 納得のいくグラフが作成できたら gnuplot> set term post color gnuplot> set output “ファイル名.ps” gnuplot> rep gnuplot> q (終了) % gv ファイル名.ps (結果の確認) % lpr ファイル名.ps (印刷) (※ 実際には1行)

gnuplotの簡単な使用例 x軸を時刻、y軸を気温としてプロット x軸を時刻、y軸を湿度として上のグラフに 重ねてプロット sendai.dat 1列目($1) :時刻 2列目($2) :気温 3列目($3) :湿度 x軸を時刻、y軸を気温としてプロット プロット形式:l, lp, st, d, iなど 目的に合わせてプロット形式を選択する 凡例はお好みで x軸を時刻、y軸を湿度として上のグラフに 重ねてプロット ps (postscript)形式で保存 gnuplot> p “sendai.dat” u 1:2 w lp # 時刻 気温 湿度 1 18.4 48 2 16.0 67 3 16.7 51 4 16.2 49 5 16.0 50 6 15.9 51 7 16.4 48 8 15.7 57 9 16.5 57 10 16.9 56 11 16.3 65 12 16.3 65 23 13.3 83 24 12.5 90 gnuplot> rep “sendai.dat” u 1:3 w lp … gnuplot> set term post color gnuplot> set output “sendai.ps” gnuplot> rep gnuplot> q 気象庁ホームページより・一部改変

out.tcp (抜粋) $1: 時刻 $16: 送信シーケンス番号 $18: 輻輳ウインドウサイズ $20: スロースタート閾値 … time: 0.00000 saddr: 1 sport: 0 daddr: 3 dport: 1 maxseq: -1 hiack: -1 seqno: 0  cwnd: 1.000 ssthresh: 20 dupacks: 0 rtt: 0.000 srtt: 0.000 rttvar: 12.000 bkoff: 1 time: 1.53096 saddr: 1 sport: 0 daddr: 3 dport: 1 maxseq: 0 hiack: 0 seqno: 1 cwnd: 2.000 ssthresh: 20 dupacks: 0 rtt: 0.030 srtt: 0.030 rttvar: 0.015 bkoff: 1 time: 1.57005 saddr: 1 sport: 0 daddr: 3 dport: 1 maxseq: 2 hiack: 1 seqno: 3 cwnd: 3.000 ssthresh: 20 dupacks: 0 rtt: 0.040 srtt: 0.030 rttvar: 0.015 bkoff: 1 time: 1.57559 saddr: 1 sport: 0 daddr: 3 dport: 1 maxseq: 4 hiack: 2 seqno: 5 cwnd: 4.000 ssthresh: 20 dupacks: 0 rtt: 0.040 srtt: 0.030 rttvar: 0.015 bkoff: 1 time: 1.60869 saddr: 1 sport: 0 daddr: 3 dport: 1 maxseq: 6 hiack: 3 seqno: 7 cwnd: 5.000 ssthresh: 20 dupacks: 0 rtt: 0.040 srtt: 0.030 rttvar: 0.015 bkoff: 1 time: 1.61535 saddr: 1 sport: 0 daddr: 3 dport: 1 maxseq: 8 hiack: 4 seqno: 9 cwnd: 6.000 ssthresh: 20 dupacks: 0 rtt: 0.040 srtt: 0.030 rttvar: 0.015 bkoff: 1 time: 1.62202 saddr: 1 sport: 0 daddr: 3 dport: 1 maxseq: 10 hiack: 5 seqno: 11 cwnd: 7.000 ssthresh: 20 dupacks: 0 rtt: 0.040 srtt: 0.030 rttvar: 0.015 bkoff: 1 time: 1.62757 saddr: 1 sport: 0 daddr: 3 dport: 1 maxseq: 12 hiack: 6 seqno: 13 cwnd: 8.000 ssthresh: 20 dupacks: 0 rtt: 0.040 srtt: 0.030 rttvar: 0.015 bkoff: 1 time: 1.64733 saddr: 1 sport: 0 daddr: 3 dport: 1 maxseq: 14 hiack: 7 seqno: 15 cwnd: 9.000 ssthresh: 20 dupacks: 0 rtt: 0.040 srtt: 0.030 rttvar: 0.015 bkoff: 1 …

各変数の時間変化の図示 シーケンス番号($16: seqno) 輻輳ウインドウサイズ($18: cwnd) スロースタート閾値($20: ssthresh) 輻輳ウインドウサイズと”20”の最小値 gnuplot> p “out.tcp” u 2:16 t “seqno” w l gnuplot> p “out.tcp” u 2:18 t “cwnd” w st gnuplot> rep “out.tcp” u 2:20 t “ssthresh” w st gnuplot> p “out.tcp” u 2:($18 < 20 ? $18 : 20) w st ※ 単純に列数を示す場合以外は$が必要

gnuplot – 補足 ラベルの指定 表示範囲の指定 片対数グラフの作成 x軸を対数プロットにする場合 gnuplot> set xl [x軸のラベル] gnuplot> set yl [y軸のラベル] gnuplot> rep gnuplot> set xr [x軸の最小値:x軸の最大値] gnuplot> set xr [y軸の最小値:y軸の最大値] gnuplot> rep gnuplot> set log x gnuplot> rep

レポートに関する補足 シミュレーションの実行、結果の処理 グラフの作成 レポート作成 もちろん、他の言語を使用しても構いません C言語 Perl, Ruby, シェルスクリプト, … グラフの作成 もちろん、他のアプリケーションを使用しても構いません グラフ用紙に手書き Excel, OpenOffice Calc, … レポート作成 紙で提出してください レポート用紙に手書き LaTeX Word, OpenOffice Writer, 一太郎, …