1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bao cao nhom bài tập lớn mô phỏng rada

25 687 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Bài Tập Lớn Môn Cơ Sở Mạng Thông Tin
Tác giả Nguyễn Ngọc Mạnh, Lưu Tiến Đạt, Nguyễn Viết Thu
Người hướng dẫn TS. Phạm Văn Tiến
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Điện Tử Viễn Thông
Thể loại Báo cáo
Năm xuất bản 2010
Thành phố Hà Nội
Định dạng
Số trang 25
Dung lượng 0,92 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

báo cáo bài tập lớn môn cơ sở mạng thông tin

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

KHOA ĐIỆN TỬ VIỄN THÔNG

BÁO CÁO BÀI TẬP LỚN MÔN CƠ SỞ MẠNG THÔNG TIN

ĐỀ BÀI SỐ 2

SINH VIÊN THỰC HIỆN:

Nguyễn Ngọc Mạnh(TN) MSSV:20071914 Lưu Tiến Đạt MSSV:20070716 Nguyễn Viết Thu MSSV:20072801

HÀ NỘI 11/2010

Trang 2

Tóm tắt nội dung báo cáo :

I, Đề bài và phân tích yêu cầu 3

II Cách thức tiến hành công việc 4

III Giới thiệu về NS2 4

IV, Nội dung chương trình mô phỏng 8

V, Kết quả mô phỏng 13

VI,Kết luận 24

Trang 3

I, Đề bài và phân tích yêu cầu :

+ Băng thông các liên kết giữa các nút như trên hình vẽ

- Mạng truyền 2 nguồn thông tin :

+ Thứ nhất là nguồn lưu lượng tcp - ứng dụng FTP :

Kích thưóc file : 50MByteKích thước gói : 1400 byte+ Thứ hai là luồng udp - traffic CBR

Tốc độ : 1MbpsKích thước gói : 1024 byteNguồn lưu lượng tcp khởi động trước luồng udp : 10s

2, Yêu cầu :

- Viết kịch bản và chạy mô phỏng mạng với thời gian lớn hơn 2 phút

- Thu thập số liệu về khả thông của mỗi luồng và vẽ đồ thị

- Thu thập và vẽ đồ thị cửa sổ tắc nghẽn (congestion window)

Trang 4

- Thay đổi tham số luồng udp sau đó thu thập và vẽ đồ thị tỷ lệ mất gói tại node_1 và node_2 của luồng udp.

II Cách thức tiến hành công việc:

II.1 Công việc chung:

-Tìm hiểu về NS2

-Viết các chương trình đơn giản và chạy trong NS2

-Tạo topology cho bài tập lớn và tự tạo kịch bản để chạy

II.2 Phân chia công việc:

1.Nguyễn Ngọc Mạnh (trưởng nhóm) :

-Cài đặt NS2, tìm tài liệu liên quan và cung cấp cho các thành viên trong nhóm Điều phối công việc của nhóm

-Tìm hiểu khái niệm congestion window

-Thu thập số liệu và vẽ cửa sổ tắc nghẽn

-Thay đổi tốc độ luồng UDP và thu thập số liệu

-Viết chương trình tính tỉ lệ mất gói tại node_1, node_2

III Giới thiệu về NS2

NS (phiên bản) là phần mềm mô phỏng mạng điều khiển sự kiện riêng rẽ hướng đối tượng, được phát triển tại UC Berkely, viết bằng ngôn ngữ C++

và OTcl NS rất hữu ích cho việc mô phỏng mạng diện rộng (WAN) và mạng local (LAN) Bốn lợi ích lớn nhất của NS-2 phải kể đến đầu tiên là:

 Khả năng kiểm tra tính ổn định của các giao thức mạng đang tồn tại

 Khả năng đánh giá các giao thức mạng mới trước khi đưa vào sử dụng

 Khả năng thực thi những mô hình mạng lớn mà gần như ta không thểthực thi được trong thực tế

 Khả năng mô phỏng nhiều loại mạng khác nhau

Trang 5

Các lệnh cơ bản:

1.

Tạo biến mới

Để tạo một biến mới ta dùng lệnh set Có 3 cách dùng lệnh set như sau:

set a 0 : Tạo một biến a và gán cho a giá trị bằng 0.

set b $a: Tạo biến b và gán cho b giá trị bằng giá trị của biến a

set a [] : Tạo biến a và gán cho a giá trị của một hàm ở trong “[]” set a [ new Node]: Tạo biến a và thiết lập a là một node Node là một

đối tượng ở trong NS2

2 Kiểu biến

Chú ý rằng ở trong Tcl cũng như trong NS2 không có kiểu của biến.Biến là string hay interger phụ thuộc vào giá trị ta gán cho biến Ví dụ:

set a [expr 1/20] : a có giá trị bằng 0.

set a [expr 1.0/20.0] : a có giá trị chính xác là 0.05

Điều này rất quan trọng trong quá trình lập trình cho NS2

3 Lệnh puts

Lệnh puts dùng để ghi giá trị ra bên ngoài Trong NS2 thì lệnh puts sẽ ghi

ra bảng lệnh terminal Mỗi lần lệnh puts được gọi, nó sẽ tạo ra một dòng mới Ngoài ra lệnh puts còn được dùng để ghi các giá trị lên một biến được

dùng để ghi giá trị ra ngoài (trong nam hoặc graph) đã được định nghĩa từtrước Ví dụ:

set nf [open out.nam w]n

for{ set i 0}{$i < 5} {incr i}{

<execute some comands>

}

6 Chương trình con

Trang 6

Trong Tcl cũng như trong NS2, để chú thích ta sử dụng dấu # ở đầudòng Điều này sẽ làm cho chương trình thoáng, gọn gang hơn, dễ đọc và dễsửa sai.

Cấu trúc của một chương trình con:

proc test2 { par1, par2, par3…}{

global var1, var2, var3….

- Tạo file theo dõi hệ thống phục vụ cho việc mô phỏng:

set nf [open out.nam w]

$ns namtrace-all $nf

- Gọi phần mềm mô phỏng Nam Lệnh này thường được đặt trongchương trình con “finish”

exec nam out.nam &

Lệnh này sẽ gọi chương trình Nam và chạy nó dựa vào file theo theo dõi out.nam

- Xác định vị trí các node trong cửa sổ Nam

$ns duplex-link-op $node1 $node2 orient right

Chú ý rằng ở câu lệnh trên right là dùng để chỉ phương hướng Hoàntoàn có thể thay right bằng left, right – down, down, left – down, v.v

- Gán màu cho các gói tin khi chạy chương trình mô phỏng

$ns color 1 red # Gán cho các gói tin thuộc luồng 1 màu đỏ

- Gán màu cho node

$node color red # có thể thay red bằng blue, green, yellow……

- Gán hình dạng cho các node

$node shape box

- Gán màu sắc cho đường link

$ns duplex-link-op $node1 $node2 “green”

Trang 7

2 Theo dõi sự kiện

2a Các lệnh theo dõi cơ bản

Các lệnh cơ bản dùng để theo dõi các sự kiện trên hệ thống:

- Cân bằng cấp phát bộ đệm cho tất cả các file theo dõi:

$ns flush-trace

- Tạo một đối tượng theo dõi:

Cấu trúc: create-trace {type filename scr dst}

Ví dụ : $ns create-trace Drop $tf $n0 $n2

- Theo dõi tất cả các sự kiện trên hệ thống:

$ns trace-all $tf

2b Cấu trúc file trace

Mỗi một lệnh theo dõi trong các lệnh trên sẽ có các cấu trúc đầu rakhác nhau Ở đây chúng ta chỉ xét đến cấu trúc file đầu ra của lệnh “trace-all” Với các công cụ phân tích file dữ liệu có sẵn như awk, grep, perl,….Chúng ta có thể có được tất cả các thông tin mong muốn trong quá trình hệthống mạng được mô phỏng bằng cách phân tích file “trace-all”

File trace được tổ chức trong 12 trường như trong hình dưới

1 Trường đầu tiên mô tả loại sự kiện, được cho bởi một trong 4 kí tự r, +,

-, d tương ứng với các trường hợp đã nhận (ở đầu ra của link), đã xếp vào

trong hàng đợi (enqueued), rời khỏi hàng đợi (dequeued), đã bị hủy(dropped)

2 Trường thứ hai biểu diễn thời gian sự kiện xuất hiện

3 Thông báo node input của link nơi sự kiện xảy ra

4 Thông báo node ouput của link nơi sự kiện xảy ra

5 Loại gói tin ( ví dụ TCP, CBR, tên loại tương ứng với tên củaapplication mà chúng ta đã đặt, ví dụ trong phần trước thì application TCPđược gọi là “tcp”)

Trang 8

6 Kích cỡ gói tin.

7 Một vài loại cờ Chúng ta sẽ xét ở phần sau

8 Flow id (fid) của Ipv6 mà người dùng thiết lập cho mỗi luồng (flow) tạiđầu vào OTcl cript Ta có thể dùng trường này để phân tích kết quả, cũngnhư để thiết lập màu sắc cho các luồng trong mô phỏng NAM

9 Địa chỉ của nguồn, nơi phát gói tin, được cho dưới dạng “node.port”

10 Địa chỉ của nguồn đích, nơi nhận gói tin, được cho với cùng dạng nhưtrên

11 Số chuỗi các gói tin của một lớp giao thức mạng Mặc dù thành phầnUDP trong mạng thực tế không có số các chuỗi nhưng ns vẫn giữ lại các vết(track) để phân tích kết quả

12 Trường cuối cùng ghi chỉ số id của gói tin (unique id of packet)

IV, Nội dung chương trình mô phỏng:

Mở đầu một chương trình mô phỏng luôn luôn là một lệnh tạo một đối tượngSimulator:

set ns [new Simulator]

-gán màu cho 2 luồng dữ liệu:

$ns color 1 Blue

$ns color 2 Red

-Tạo file lưu cửa sổ tắc nghẽn

set cwnd [open cwnd.tr w]

- Tạo file trace lưu tất cả các thông số về mạng đang xét

set tracefile [open TraceAll.tr w]

Trang 9

-Tạo 2 file chứa thông tin băng thông:

set f1 [open khathong1.tr w]

set f2 [open khathong2.tr w]

- Xác định phương thức định tuyến cho mạng :

$ns duplex-link-op $s1 $n1 orient right-down

$ns duplex-link-op $s2 $n1 orient right-up

$ns duplex-link-op $n1 $n2 orient right-up

$ns duplex-link-op $n2 $n3 orient right-down

$ns duplex-link-op $n3 $d0 orient right

$ns duplex-link-op $n1 $n4 orient right-down

$ns duplex-link-op $n4 $n3 orient right-up

$ns duplex-link-op $n1 $n3 orient right

Trang 10

-Đặt kích thước băng thông cho các liên kết:

- Tạo ra các nguồn lưu lượng :

+ Nguồn lưu lượng tcp và gắn mã luồng 1 cho nguồn lưu lượng này :

set tcp [new Agent/TCP]

-Thiết lập UDP và kết nối

set udp [new Agent/UDP]

$ns attach-agent $s2 $udp

set sink1 [new Agent/LossMonitor]

$ns attach-agent $d0 $sink1

$ns connect $udp $sink1

$udp set class_ 2

-Cài đặt ứng dụng CBR cho UDP

set cbr [new Application/Traffic/CBR]

global tcp cwnd sink1 sink2 f1 f2

set ns [Simulator instance]

set time 0.5

#so byte nhan duoc tu moi luong

Trang 11

set bw1 [$sink1 set bytes_]

set bw2 [$sink2 set bytes_]

#cai dat thoi gian hien tai

set now [$ns now]

#tinh toan bang thong va ghi no vao file

puts $f1 "$now [expr $bw1/$time*8/1000000]"

puts $f2 "$now [expr $bw2/$time*8/1000000]"

#Reset gia tri sink

$sink1 set bytes_ 0

$sink2 set bytes_ 0

close $losspacket_1

close $losspacket_2

## Luu thong tin mat goi tai node2 cua luong cbr vao file node_2.dat

exec awk -f node_1.awk TraceAll.tr >node_1.dat exec awk -f node_2.awk TraceAll.tr >node_2.dat

exec nam out.nam &

exec xgraph cwnd.tr -bg white -zg blue -t "Cua so tac nghen" &

exec xgraph khathong1.tr khathong2.tr -bg white -y "Bandwith (Mbps)" -x "Time (s)" -t "Do thi kha thong" -geometry 800x400 &

exec xgraph node_1.dat node_2.dat -bg white -t "Ti le mat goi cua luong CBR o

node_1 node_2" -x "Time (s)" -y "%" -geometry 800x400 &

Trang 12

1, Mô hình thu được trên NAM :

a, Khi tốc độ luồng udp la 1MB

- Mô hình mô phỏng

mô phỏng trước 10s( dùng công cụ edit cua Nam đễ sắp xếp)

Trang 13

- mô phỏng sau 10.1s:

Trang 14

b,Khi tốc độ luồng udp1 là 1.5MB

mô phỏng sau 10.1s:

Trang 15

c,Khi tốc độ luồng udp1 là 2MB

mô phỏng sau 10.1s:

Trang 17

2, Các đồ thị thu được :

a, Khi tốc độ luồng udp1 là 1MB :

- Đồ thị khả thông :

Trang 18

Đường màu đỏ biểu diễn khả thông của luồng udp

Đường màu xanh biểu diễn khả thông của luồng tcp

- Đồ thị cửa sổ tắc nghẽn :

Trang 19

- Đồ thị tỷ lệ mất gói tại node_1 và node_2 :

b, Khi tốc độ luồng udp là 1:

- Đồ thị khả thông :

Trang 20

- Đồ thị cửa sổ tắc nghẽn :

- Đồ thị tỷ lệ mất gói tại node_1 và node_2 :

c, Khi tốc độ luồng udp là 2MB

- Đồ thị khả thông :

Trang 22

- Đồ thị cửa sổ tắc nghẽn :

Trang 23

- Đồ thị tỷ lệ mất gói tại node_1 và node_2 :

Nhận xét:

-Nhìn vào đồ thị khả thông ta có thể thấy ngay khi luồng udp bắt đầu phát

thì tốc độ của luồng tcp giảm mạnh, thậm chí giảm về 0 Điều này là giaothức truyền tin UDP và TCP TCP và UDP là 2 giao thức ở tầng giao vận vàcùng sử dụng giao thức IP trong tầng mạng Nhưng TCP cung cấp dịch vụliên kết đáng tin cậy hơn

◦ 2 ứng dụng sử dụng TCP phải thiết lập liên kết với nhautrước khi trao đổi dữ liệu Dữ liệu từ tầng ứng dụng gửi đếnđược TCP chia thành các segment có kích thước phù hợpnhất để gửi đi Khi TCP gửi 1 segment nó duy trì 1 thời gianđợi phúc đáp từ nơi nhận, nếu trong thời gian đó nó khôngnhận được phúc đáp, hoặc có phúc đáp báo sai thì segment

đó được gửi lại

◦ Khác với TCP, UDP không có cơ chế báo nhận, không cóchức năng thiết lập và giải phóng liên kết, không sắp xếptuần tự các đơn vị dữ liệu Vì vậy nó có thể dẫn đến tìnhtrạng mất hoặc trùng dữ liệu mà không hề có thông báo lỗiđến người gửi

Trang 24

-Nhìn vào cửa sổ tác nghẽn của luồng TCP ta thấy cơ chế truyền gói tin của giao thức TCP:

+10s đầu tiên giá trị cửa sổ tăng dần

+sau khi luồng UDP phát thì kích thước cửa sổ giảm mạnh và khi ổn định thì kích thước cửa sổ không thay đổi nhiều

Đặc biệt khi tốc độ luồng UDP tăng lên (1.5Mbps và 2Mbps) thì cửa

sổ biến mất

-Nhìn vào đồ thị “tỉ lệ mất gói tại node1 và node2”:

- Khi luồng UDP phát gói tin thì tại node1 xảy ra hiện tượng mất gói tin Với tốc độ luồng UDP 1Mbps thì tỉ lệ mất gói tại nút này là thấp (khoảng 1,2-1,4%) Do lúc này tốc độ luồng UDP vẫn còn thấp

Khi tăng tốc độ lên 1.5Mbps thì tỉ lệ mất gói tăng vọt (~20%)

Tiếp tục tăng tốc độ lên 2Mbps thì ban đầu (10.1-25s) thì vẫn xảy ra mất góinhưng có xu hướng giảm dần và sau đó (từ 25s trở đi) tỉ lệ mất gói là bằng 0

-Tỉ lệ mất gói ở nút 2 luôn bằng không.( hay không xảy ra hiện tượng mấtgói) Điều này dễ dàng giải thích do nút 2 chỉ là nút trung gian trong quá trình truyền gói thông tin từ nguồn đến đích

VI,Kết luận :

Môn cơ sở mạng thông tin là một môn học chuyên ngành thú vị,và bổích Nó cung cấp những kiến thức cơ bản nhất cho những bạn nào có định hướng theo mảng Viễn Thông Và theo quan điểm học phải đi đôi với hành,

em thấy việc cho bọn em có cơ hội được làm bài tập lớn là một việc rất có ý nghĩa Và đề bài thầy giao cũng rất phù hợp với trình độ hiện tại của chúng

em Sau khi làm xong bài tập này chúng em đã học thêm được rất nhiều điều Trước tiên phải kể đến đó là kiến thức về mạng thông tin, các giao thứctruyền và gửi gói tin, Thứ hai đó là biết cách sử dụng công cụ hỗ trợ thiết

kế mạng rất hữu hiệu đó là NS2, và còn biết thêm về hệ điều hành mã nguồn

mở đang được sử dụng ngày càng phổ biến ngày này đó là Linux

Mặc dù đã cố gắng hết sức nhưng chúng em cũng tự nhận thấy bài làm của mình còn nhiều thiếu sót, mong thầy xem xét và cho ý kiến để bài tập này được hoàn thiện hơn

Lời cuối, nhóm chúng em chúc thầy công tác tốt, sức khỏe và có đượcnhiều thành công hơn nữa

* * *

Trang 25

Tài liệu tham khảo

1 Slide bài giảng Cơ sở mạng thông tin của thầy Phạm Văn Tiến

2.Ebook: -Introduction to Network Simulator NS2 của Teerawat

- Ns2_manual.pdf

-NS2 for beginner.pdf

3.Trang web tham khảo: http://www.isi.edu/nsnam/ns/tutorial/

4.Sử dụng Google.com

Ngày đăng: 19/01/2014, 15:30

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w