38
Nguyễn Thị Thu Hằng ĐÁNH GIÁ HIỆU NĂNG MẠNG BẰNG BỘ MÔ PHỎNG NS2

Danh Dia Hieu Nang Mang - Hang

Embed Size (px)

Citation preview

Page 1: Danh Dia Hieu Nang Mang - Hang

Nguyễn Thị Thu Hằng

ĐÁNH GIÁ HIỆU NĂNG MẠNG BẰNG BỘ MÔ PHỎNG NS2

Page 2: Danh Dia Hieu Nang Mang - Hang

NỘI DUNG

Giới thiệu một số công cụ hỗ trợ việc phân tích và hiển

thị kết quả mô phỏng.

Cấu trúc tệp vết (trace file) chứa kết quả mô phỏng.

Một số độ đo đánh giá hiệu năng.

Một số ví dụ.

Page 3: Danh Dia Hieu Nang Mang - Hang

Giới thiệu một số công cụ hỗ trợ việc phân tích và hiển thị kết quả mô phỏng

Grep

Awk

Perl

GNUPLOT

xgraph

Trace graph

Page 4: Danh Dia Hieu Nang Mang - Hang

Ngôn ngữ Grep

Grep là một bộ lọc, nó tìm và hiển thị các dòng trong đầu

vào có chứa mẫu ký tự mà người sử dụng chỉ ra.

Có 2 cách chính để sử dụng grep:

Cách 1:

- Cú pháp: <Lệnh> | grep <Mẫu>

- Thí dụ: ps –a | grep “ R “

Cách 2: grep <mẫu> <tên file>

Page 5: Danh Dia Hieu Nang Mang - Hang

Ngôn ngữ awk

Awk được thiết kế để xử lý thông tin chứa trong file hoặc

thông tin do chương trình khác đưa ra truyền cho nó theo kiểu

đường ống .

Awk cho phép thực thi một số chức năng như tính giá trị

trung bình đưa ra trên một cột, tính tổng,…

Page 6: Danh Dia Hieu Nang Mang - Hang

Ngôn ngữ Perl

Perl là ngôn ngữ thông dịch có tác dụng trong việc tìm

kiếm, trích báo và báo cáo.

Perl rất phổ biến, do đó có nhiều script miễn phí.

Page 7: Danh Dia Hieu Nang Mang - Hang

Phần mềm vẽ đồ thị - GNUPLOT

Là phần mềm mã nguồn mở miễn phí được sử dụng rộng rãi.

Gnuplot nhận đầu vào từ nhiều file nhưng cần chỉ ra 2 cột trên mỗi file để lấy số liệu vẽ đồ thị.

Sử dụng kết quả để so sánh, đánh giá:Sử dụng lệnh plot <tên file.tr>

+ file có 2 cột để thể hiện các giá trị tọa độ x và y

+ Ví dụ: gnuplot> plot "hang3a-tcp0.tr" w lines, "hang3a-tcp1.tr" w lines, "hang3a-tcp2.tr" w lines

Page 8: Danh Dia Hieu Nang Mang - Hang

Kết quả nhận được trên màn hình như sau

Page 9: Danh Dia Hieu Nang Mang - Hang

Phần mềm vẽ đồ thị - xgraph

Là phần mềm ứng dụng để vẽ đồ thị.Câu lệnh xgraph có thể được khai báo trong kịch bản tcl do đó

có thể xuất ra đồ thị ngay sau khi kết thúc công việc mô phỏng.

Ví dụ:Xgraph f1 f2 –geomtry 800x400 –t “Loss rates” –x “time” -y “Lost packets”

Page 10: Danh Dia Hieu Nang Mang - Hang

Phần mềm vẽ đồ thị - trace graph

Là phần mềm mã nguồn mở có khả năng phân tích,

hiển thị kết quả mô phỏng (đầu vào là tệp vết .tr).

Page 11: Danh Dia Hieu Nang Mang - Hang

Cấu trúc tệp vết chứa kết quả mô phỏng.

cat out.tr |grep " 2 3 cbr "|grep ^r|perl column 1 10 \

awk '{dif = $2 - old2; if(dif==0) dif = 1; if(dif > 0) \

{printf ("%d\t%f\n", $2, ($1 - old1) / dif); old1 = $1; old2 = $2}}‘\

> jitter.txt

Page 12: Danh Dia Hieu Nang Mang - Hang

File vết chapter5_sample1.tr của code vidu5.tcl

Page 13: Danh Dia Hieu Nang Mang - Hang

Ví dụ: thực hiện mô phỏng và đánh giá mô hình mạng như sau: (code 4node.tcl)

Page 14: Danh Dia Hieu Nang Mang - Hang

Thí dụ sử dụng các công cụ hỗ trợ để phân tích tệp vết “out.tr”

1. Kết xuất thông tin về thời điểm gửi TCP pkts ra tệp “tcp-send.tr”:

Cat out.tr|grep ^+|grep “ 0 2 tcp “|perl column 1 10 > tcp-send.tr

2. Kết xuất thông tin về thời điểm nhận TCP pkts ra tệp “tcp-receive.tr”:

Cat out.tr|grep ^r|grep “ 2 3 tcp “|perl column 1 10 > tcp-receive.tr

3. Kết xuất thông tin về thời điểm nhận ack pkts ra tệp “ack-receive.tr”:

Cat out.tr|grep ^r|grep “ 2 0 ack “|perl column 1 10 >ack-receive.tr

Page 15: Danh Dia Hieu Nang Mang - Hang

Lệnh thực hiện vẽ đồ thị so sánh hai file “tcp-send.tr” và “tcp-receive.tr”

Page 16: Danh Dia Hieu Nang Mang - Hang

plot “tcp-send.tr” w point, “tcp-receive.tr” w point

Page 17: Danh Dia Hieu Nang Mang - Hang

plot “tcp-send.tr” w lines, “ack-receive.tr” w lines

Page 18: Danh Dia Hieu Nang Mang - Hang

plot “tcp-send.tr” w lines, “tcp-receive.tr” w lines, “ack-receive.tr” w lines

Page 19: Danh Dia Hieu Nang Mang - Hang

Một số độ đo đánh giá hiệu năng

Các độ đo định tính

• Hoạt động phân bố

• Tránh hiện tượng lặp vòng

• Hoạt động trên cơ sở yêu cầu

• Hoạt động thường xuyên

• Bảo mật

• Hoạt động “ngủ” theo chu kỳ

• Khả năng hỗ trợ liên kết một chiều

Page 20: Danh Dia Hieu Nang Mang - Hang

Các độ đo định lượng• Thông lượng dữ liệu đầu cuối và độ trễ• Thời gian tìm đường• Phần trăm truyền không theo thứ tự• Độ hiệu quả• Giá trị trung bình của số lượng bit dữ liệu phải truyền chia

cho số lượng bit cần truyền.• Giá trị trung bình của số bit điều khiển phải truyền chia cho

số bit dữ liệu cần truyền.• Giá trị trung bình của số lượng gói tin dữ liệu và gói tin điều

khiển chia được truyền chia cho số lượng gói tin dữ liệu cần truyền.

Page 21: Danh Dia Hieu Nang Mang - Hang

Tính các tham số hiệu suất trung bình trong một khoảng thời gian

1. Tính thông lượng trung bình của từng kết nối

Thông lượng trung bình bằng tổng kích thước các gói dữ liệu nhận

được chia cho thời gian truyền lưu lượng qua kết nối cho từng kết

nối.

2. Tính độ trễ trung bình của các gói tin theo từng kết nối

Độ trễ trung bình được tính bằng tổng độ trễ của từng gói tin gửi

thành công chia cho tổng số lượng gói tin nhận được.

Page 22: Danh Dia Hieu Nang Mang - Hang

Thông lượng trung bình của từng kết nối# Type: perl avg_throughput_during_sim_time.pl <trace file> <flow id>

<required node>

$infile=$ARGV[0]; $flow_id=$ARGV[1]; $tonode=$ARGV[2];

$start_time=0; $end_time=0; $sum=0;

open (DATA,"<$infile"2) ||3 die4 "Can't open $infile $!";

while (<DATA>) {

@x = split(' ');

#checking if the event corresponds to a reception

if ($x[0] eq 'r' && $x[7] == $flow_id && $x[3] eq $tonode) {

if ($start_time == 0) {

$start_time=$x[1];

}

$sum=$sum+$x[5];

$end_time=$x[1];

} }

Page 23: Danh Dia Hieu Nang Mang - Hang

Kết quả thực hiện

1. $sum là tổng lưu lượng (số byte) nhận được tại node

$tpnode

2. $end_time - $start_time (sec) là thời gian truyền lưu

lượng qua kết nối.

Như vậy $sum / ($end_time - $start_time) chính là thông

lượng cần tính (bytes/s)

Page 24: Danh Dia Hieu Nang Mang - Hang

Tính độ trễ trung bình của các gói tin của từng kết nối

$infile=$ARGV[0];$flow=$ARGV[1];$src=$ARGV[2];$dst=$ARGV[3];@send = (0..0);@recv = (0..0);$max_pktid = 0;$num = 0;open (DATA,"<$infile") ||

die "Can't open $infile $!";

while (<DATA>) {@x = split(' ');$event_ = $x[0];$time_ = $x[1];$flow_ = $x[7];$pkt_ = $x[11];$node_ = $x[2] if (($event_ eq

"+") || ($event_ eq "s"));$node_ = $x[3] if ($event_ eq

"r");

perl avg_delay_during_sim_time.pl <trace file> <flow id> <source node> <dest node>

Page 25: Danh Dia Hieu Nang Mang - Hang

# Ghi thời điểm gửi và nhận từng gói tin vào mảng $send và $rev, $num đếm số gói tin

if ((($event_ eq "+") || ($event_ eq "s")) && ($flow_ ==$flow) && ($node_ == $src) && (!$send[$pkt_])) {# Kiem tra (!$send[$pkt_]) dam bao luon tinh goi tin duoc

gui lan dau, khong tinh goi tin gui lai$send[$pkt_] = $time_;$max_pktid = $pkt_ if ($max_pktid < $pkt_);}if (($event_ eq "r") && ($flow_ == $flow) && ($node_ ==$dst)) {$recv[$pkt_] = $time_;$num++;} }close DATA;

Page 26: Danh Dia Hieu Nang Mang - Hang

# Tính tổng thời gian trễ $delay rồi tính thời gian trễ trung bình của các gói tin $avg_delay

$delay = 0;for ($count = 0; $count <= $max_pktid; $count ++) {if ($send[$count] && $recv[$count]) {$send_ = $send[$count];$recv_ = $recv[$count];$delay = $delay + ($recv_ - $send_);}}$avg_delay = $delay / $num;

Page 27: Danh Dia Hieu Nang Mang - Hang

Thí dụ: Tính các tham số hiệu suất chính và sự chia sẻ đường truyền của các kết nối TCP, UDP

Page 28: Danh Dia Hieu Nang Mang - Hang

Kết quả mô phỏng – màn hình NAM

Page 29: Danh Dia Hieu Nang Mang - Hang

Thông lượng trung bình của từng kết nối trong thời gian mô phỏng

Để tính thông lượng trung bình của từng kết nối, cần thực hiện như sau đây (và nhận được kết quả trên

màn hình):

1. tcp0/sink0 (fid_ = 0, required node = 5): perl avg_throughput_during_sim_time.pl

chapter5_sample1.tr 0 5

Start_time = 0.425277 end_time = 10.478531

Avg throughput (flow id = 0; dst node = 5) = 738.722258484666 (Kbps)

2. tcp1/sink1 (fid_ = 1, required node = 6): perl avg_throughput_during_sim_time.pl

chapter5_sample1.tr 1 6

Start_time = 0.635981 end_time = 10.717037

Avg throughput (flow id = 1; dst node = 6) = 274.865797789438 (Kbps)

3. tcp2/sink2 (fid_ = 2, required node = 7): perl avg_throughput_during_sim_time.pl

chapter5_sample1.tr 2 7

Start_time = 0.970803 end_time = 10.861251

Avg throughput (flow id = 2; dst node = 7) = 285.091989766288 (Kbps)

4. udp/null (fid_ = 3, required node = 6): perl avg_throughput_during_sim_time.pl chapter5_sample1.tr

3 6

Start_time = 7.239792 end_time = 8.084539

Avg throughput (flow id = 3; dst node = 6) = 1312.8930910675 (Kbps)

Page 30: Danh Dia Hieu Nang Mang - Hang

Kết quả mô phỏng

Page 31: Danh Dia Hieu Nang Mang - Hang

Kết quả:

cbr: 1312.8930910675(Kbps)

ftp0: 738.722258484666(Kbps)

ftp1: 274.865797789438(Kbps)

ftp2: 285.091989766288(Kbps)

Nhận xét

Luồng cbr có thông lượng cao xấp xỉ bằng tốc độ sinh lưu

lượng ( đưa vào mạng) được chúng ta thiết lập bằng 1.5Mbps.

Các luồng lưu lượng ftp0, ftp1 và ftp2 mặc dù đều truyền dữ

liệu trong khoảng thời gian gần bằng nhau, nhưng đạt được

thông lượng trung bình khác nhau do được thiết lập các giá trị

cửa sổ cực đại khác nhau (32, 16 và 64 packet).

Page 32: Danh Dia Hieu Nang Mang - Hang

Độ trễ trung bình của các gói tin của từng kết nối trong thời gain mô phỏng

1. tcp0/sink0 (fid_ = 0, required node = 5): perl avg_delay_during_sim_time.pl

chapter5_sample1.tr 0 0 5

Avg delay (flow id = 0; src node =0; dst node = 5) = 0.214065594535518(s)

2. tcp1/sink1 (fid_ = 1, required node = 6): perl avg_delay_during_sim_time.pl

chapter5_sample1.tr 1 1 6

Avg delay (flow id = 1; src node = 1; dst node = 6) = 0.226549915204678(s)

3. tcp2/sink2 (fid_ = 2, required node = 7): perl avg_delay_during_sim_time.pl

chapter5_sample1.tr 2 2 7

Avg delay (flow id = 2; src node = 2; dst node = 7) = 0.151829485632184(s)

4. udp/null (fid_ = 3, required node = 6): perl avg_delay_during_sim_time.pl

chapter5_sample1.tr 3 1 6

Avg delay (flow id = 3; src node = 1; dst node = 6) = 0.0924173269230769 (s)

Page 33: Danh Dia Hieu Nang Mang - Hang

Kết quả thực hiện

Page 34: Danh Dia Hieu Nang Mang - Hang

NHẬN XÉTKết quả:

cbr: 0.0924173269230769(s)

ftp0: 0.214065594535518(s)

ftp1: 0.226549915204678(s)

ftp2: 0.151829485632184(s))

Nhận xét:Độ trễ trung bình của các gói tin thuộc luồng cbr có giá trị nhỏ nhất, bởi vì khi

gửi đi các gói tin, thực thể gửi UDP không cần chờ phản hồi, không cần tự

thích ứng với dải thông của đường truyền.

Các luồng lưu lượng ftp0, ftp1 và ftp2 mặc dù đều truyền dữ liệu trong

khoảng thời gian bằng nhau, qua cùng một số node mạng và qua các đường

truyền có dải thông và độ trễ như nhau; tuy nhiên độ trễ trung bình của các gói

tin của các luồng khác nhau, do giá trị cực đại của các cửa sổ gửi được thiết

lập khác nhau (32, 16 và 64 packet).

Page 35: Danh Dia Hieu Nang Mang - Hang

Vẽ đồ thị thông lượng trung bình của 4 kết nối trong quá trình mô phỏng

Xây dựng chương trình Perl throughput.plGọi thực hiện chương trình như sau:

perl throughput.pl <trace file> <flow id> <required node> Tạo các file số liệu thông lượng trung bình của từng kết nối tại

các node nhận thay đổi theo thời gian mô phỏng, như sau:

perl throughput.pl chapter5_sample1.tr 0 5 > out-tcp0.tr

perl throughput.pl chapter5_sample1.tr 1 6 > out-tcp1.tr

perl throughput.pl chapter5_sample1.tr 2 7 > out-tcp2.tr

perl throughput.pl chapter5_sample1.tr 3 6 > out-cbr.tr

Page 36: Danh Dia Hieu Nang Mang - Hang

- set title “Throughput-During-Sim-Time of all Connections”- set xlabel “Simulation Time (s)”- set ylabel “Throughput(t) (kbps)”- Plot ‘out-tcp0.tr’ w lines,‘out-tcp0.tr’ w lines, ‘out-tcp1.tr’ w lines, ‘out-tcp2.tr’ w lines, ‘out-cbr.tr’ w lines

Page 37: Danh Dia Hieu Nang Mang - Hang

Tài liệu tham khảo

Bài giảng thực hàng mạng viễn thông - Nguyễn Thị

Thu Hằng – BM Tin học viễn thông

Bài giảng đánh giá hiệu năng mạng của thầy Nguyễn

Đình Việt – Đại học quốc gia

Page 38: Danh Dia Hieu Nang Mang - Hang