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

Tiểu Luận Tìm Hiểu NS2 Và Demo

16 1,7K 3

Đ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

Định dạng
Số trang 16
Dung lượng 275,66 KB

Nội dung

• Trong đó, C++ dùng để xử lý dữ liệu, các thao tác về gói tin và Otcl được sử dụng để định dạng cấu hình mô phỏng, điều khiển mô phỏng.. Code: gedit ~/.bashrc III.TÌM HIỂU VỀ NS2: 1.K

Trang 1

Trường đại học Khoa Học

Khoa công nghệ thông tin BÀI TẬP TIỂU LUẬN Đề tài:tìm hiểu ns2 và demo Giáo viên hướng dẫn: Sinh viên thực hiện:ĐỒNG HỮU NGỌC HUY MỤC LỤC MỤC LỤC 1

A.GIỚI THIỆU VỀ NS2: 2

I.GIỚI THIỆU VỀ NS: 2

II.CÀI ĐẶT NS2: 3

1.Cài trên windowns: 3

2.Cài ns-2 trên ubuntu: 4

III.TÌM HIỂU VỀ NS2: 4

1.KHỞI TẠO VÀ KẾT THÚC: 4

2.TẠO NÚT MẠNG: 5

3.TẠO LIÊN KẾT CÁC NÚT MẠNG: 6

a.Liên kết đơn công : 6

b.Liên kết song cong: 6

c.Làm đứt liên kết giữa 2 nút: 6

4.CÁC TÁC NHÂN-AGNET TRONG NS2: 6

a.khái niệm Agnet: 6

b.Agent UDP: 7

c.Agnet TCP: 7

4.LỚP ỨNG DỤNG TRONG NS2: 8

a.Lớp Application: 8

b.Phân loại ứng dụng: 8

c.Ứng dụng phát sinh lưu lượng mạng: 9

d.Ứng dụng giả lập mạng: 10

6.LẬP LỊCH SỰ KIỆN: 10

7.HIỂN THỊ DÙNG NAM: 10

8.LIÊN KẾT LỖI: 10

IV.CÁC PHẦN MỀM KẾT HỢP VỚI NS-2: 11

1.NAM 11

2 TRACEGRAPH: 12

B.PHẦN BÀI TẬP DEMO: 14

Trang 2

A.GIỚI THIỆU VỀ NS2:

I.GIỚI THIỆU VỀ NS:

• Ns là một 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 viết bằng ngôn ngữ C++ va OTCL

Trong đó, C++ dùng để xử lý dữ liệu, các thao tác về gói tin và

Otcl được sử dụng để định dạng cấu hình mô phỏng, điều khiển

mô phỏng

• Đây là lí do để hệ mô phỏng NS đạt hiệu quả Để giảm bớt thời gian xử lý gói tin và những sự kiện trong mô phỏng, tất cả đều được thực hiện trên C++

NS được sử dụng để mô phỏng LAN và WAN

• NS-2 được thiết kế để chạy trong môi trường Unix.Vì thế để chạy NS-2 trên windows ta cần Cygwin là phần mềm giả lập môi trường Unix trong Windows

• NS thực thi các giao thức mạng như Giao thức điều khiển truyền tải (TCP) và Giao thức gói người dùng (UDP); các dịch vụ nguồn lưu lượng như Giao thức truyền tập tin (FTP), Telnet, Web, Tốc độ bit cố định (CBR) và Tốc độ bit thay đổi (VBR) ; các kỹ thuật quản lý hàng đợi như Vào trước Ra trước (Drop Tail), Dò sớm ngẫu nhiễn (RED) và CBQ; các thuật toán định tuyến như

Dijkstra… NS cũng thực thi multicasting và vài giao thức lớp Điều khiển truy cập đường truyền (MAC) đối với mô phỏng LAN

Tổng quan về ns2:

Hình tổng quan ns2 dưới gốc độ người dùng

Trang 3

• Simulation Program Chương trình Mô phòng

tượng

• NS Simulation Library Thư viện Mô phỏng NS

• Event Scheduler Objects Các đối tượng Bộ lập lịch Sự kiện

• Network Component Objects Các đối tượng Thành phần Mạng

• Network Setup Helping Modules Các mô đun Trợ giúp Thiết lập Mạng

• Plumbling Modules Các mô đun Plumbling

• Simulation Results Các kết quả Mô phỏng

• NAM Network Animator Minh họa Mạng NAM

II.CÀI ĐẶT NS2:

1.Cài trên windowns:

B1: Quá trình chạy file này có những bước chọn sau:

- Chọn Install local from Directory trong hộp thoại Chose Install Type

- Chọn thư mục mặc nhiên là C:\Cygwin và chọn All User và

Unix/Binary trong hộp thoại Chose Installation Directory

- Hộp thoại Select local Package Directory chỉ định gói là đường dẫn đến thư mục ftp%3a%2f%2fftp.nctu.edu.tw%2fWindows%2fcygwin

- Trong hộp thoại Select Package chọn mục Currence và chọn All sao cho hiển thị Install

- Chương trình sẽ tự động cài đặt cho đến khi hoàn thành Nên chọn Creat Icon on Desktop Trên nền Desktop sẽ có biểu tượng của

Cygwin

B2: Cài đặt NS-2 Bước này gồm các bước nhỏ sau:

*b2.1: Double Click (Chạy file Cygwin) trên biểu tượng Cygwin trên

Desktop (Bước này phải thực hiện Khi file Cygwin chạy lần dầu sẽ khởi tạo thư mục có tên là tên của người sử dụng trong thư mục

C:\Cygwin\home\<tên người sử dụng>

Nếu không chạy file Cygwin thì không có thư mục này Màn hình làm việc giống màn hình DOS

*b2.2: Xả nén file ns-allinone-2.30.tar và chép thư mục ns-allinone-2.30 vào thư mục C:\Cygwin\home\<tên người sử dụng>

*b2.3: Trở lại màn hình của Cygwin (giống màn hình DOS), tại dấu mời có dạng

<ten người sử dụng>

gõ lệnh CD ns-allinone-2.30 để vào thư mục ns-allinone-2.30

Trang 4

tại dấu mời gõ lệnh: /install

chương trình se thực hiện cài đặt NS-2 cho đến khi hoàn thành

Mở file BASHRC này (với chương trình Wordpad) trong thư mục

C:\Cygwin\home\<tên người sử dụng> và sửa lại như sau:

export NS_HOME=/cygdrive/c/cygwin/home/tên người sử

dụng/ns-allinone-2.30

export PATH=$NS_HOME/tcl8.4.13/unix:$NS_HOME/tk8.4.13/unix:

$NS_HOME/bin:$PATH

export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.13/unix:

$NS_HOME/tk8.4.13/unix:$NS_HOME/otcl-1.12:$NS_HOME/lib:

$LD_LIBRARY_PATH

export TCL_LIBRARY=$NS_HOME/tcl8.4.13/library

2.Cài ns-2 trên ubuntu:

• B1: Đầu tiên update cho apt-get :

Lệnh code : sudo apt-get update

sau khi update xong ta thực hiện lệnh :

sudo apt-get install -f build-essential libxt-dev libxt6 libsm-dev libsm6 libice-dev libice6 libxmu-dev

• B2: Giải nén ns-allinone-2.34

Code: tar -xzvf ns-allinone-2.34.tar.gz

Thực hiện lênh sau để cài đặt

Code: /install

• B3: Cần chỉnh sửa thêm file /.bashrc như cài đặt trên windowns Để

mở file /.bashrc thực hiện lệnh sau

Code: gedit ~/.bashrc

III.TÌM HIỂU VỀ NS2:

1.KHỞI TẠO VÀ KẾT THÚC:

• Trong bộ công cụ giả lập ns-2,lớp quan trọng nhất là Simulator.Nó cung cấp các thủ tục giao tiếp để tạo,quản lý topology va lưu giữ các tham số cấu hình của các tham số cấu hình của các thành phần trong topology.Thông thường,các kịch bản giả lập thường bắt đầu bẳng việc giả lập,sau đó gọi các phương thức để tạo các node,topo và cấu hình cho các node,các liên kêt,ứng dụng

• Cú pháp để khởi tạo một đối tượng Simulator như sau:

Set tên_đối_tượng [new Simulator]

Trang 5

• Để có file đầu ra với dữ liệu mô phỏng (file bám vết ) hay các file sử dụng cho hiển thị (file nam) thì chúng ta cần tạo file này bằng cách sử dụng lệnh open như sau:

#mở file bám vết

Set tracefile1 [open out.tr w]//tao file bám vết tên là out.tr

$ns trace-all $tracefile1

#mở file bám vết nam

Set namfile [open out.nam w]//tạo file bám vết tên là out.nam

$ns namtrace-all $namfile

• Trong tập lệnh tcl,các file out.nam và out.tr không được gọi trực tiếp

mà thông qua 1 tên biến tracefile1 và namfile

• Phương thức trace-all là tên của file mà các trace sẽ chạy

• Để kết thúc chương trình ta dùng hàm finish

#định nghĩa 1 thủ tục `finish'

Proc finish {} {

glocal ns tracefile1 namfile

$ns flush-trace

close $tracefile1

close $namfile

exe nam out.nam &

exit 0

}

• Để gọi thủ tục hàm finish ta dùng lệnh $ns at t “finish” ,trong đó t là thời điểm muốn gọi hàm finish tính bằng giây

• Để bắt đầu quá trình mô phỏng : $ns run

2.TẠO NÚT MẠNG:

a.tạo 1 node:

cú pháp : set tên_node [$ns node]

vd: set n0 [$ns node]

• Một nút trong NS chứa ít nhất các thành phần sau:

+Địa chỉ hoặc số ID,giá trị được khởi tạo bằng 0 và tuần tự tăng 1 đơn vị khi có 1 node mới được tạo

+Danh sách các node láng giềng của nó(neighbor_)

+Danh sách các Agent (agent_)

+Loại node(nodetype_)

+Module định tuyến của node

Trang 6

3.TẠO LIÊN KẾT CÁC NÚT MẠNG:

Trong ns2 có 2 loại liên kết các node:

+liên kết đơn công(simple link)

+liên kết song công(duplex-link)

a.Liên kết đơn công :

• là loại liên kết theo kiểu point-to-point giữa 2 nút mà chỉ có 1 node truyền và 1 node nhận.Cú pháp:

$ns simplex-link <$node1> <$node2> <bandwidth><delay><queue_type>

• Trong đó:

+ bandwith:là băng thông

+delay:thời gian trễ giữa 2 lần

+queue_type:loại hàng đợi

b.Liên kết song cong:

• là loại liên kết theo kiểu point-to-point giữa 2 nút nhưng mỗi node vừa truyền và nhận.Cú pháp:

$ns duplex-link <$node1> <$node2> <bandwidth><delay><queue_type>

• Có các hàng đợi sau: +DropTail:loại bỏ gói tin cuối cùng

+RED:loại bỏ sớm ngẫu nhiên

+FQ:sắp hàng đợi cân bằng

c.Làm đứt liên kết giữa 2 nút:

• cú pháp : $ns rtmodel-at 1.0 down $n(1) $n(2)

$ns rtmodel-at 2.0 up $n(1) $n(2)

• 2 dòng lệnh trên sẽ làm đứt kết nối giữa 2 nút 1 và 2,từ 1 giây đến 2 giây.sau đó kết nối lại được thiết lập

4.CÁC TÁC NHÂN-AGNET TRONG NS2:

a.khái niệm Agnet:

• là giao thức ở tầng mạng hoặc ở tầng vận tải dùng để xử lý các gói tin khi node nhận được

Gồm các Agnet sau:

Thẻ Agent gồm có các giao thức:

Các TCP Agent nhận dữ liệu :

• Agent / TCPSink

• Agent / TCPSink / DelAck

• Agent / TCPSink / Sack1

Trang 7

• Agent / Null

Các TCP Agent truyền dữ liệu

• Agent / TCP

• Agent / TCP / Reno

• Agent / TCP / Sack

• Agent / TCP / Vegas

• Agent / TCp / Fack

• Agent/UDP

b.Agent UDP:

• là agent không hướng đối tượng tức là không cơ chế phát hiện gói tin

bị mất khi truyền và truyền lại gói tin khi bị mất

• Tạo 1 đối tượng UDP:

Set udp(int) [new agent/udp]

• Kết nối agent udp cho node:

$ns attach-agent <$node> <$agent>

• Cài đặt ứng dụng cho agent:

$traffic-gen attach-agent <$agent>

Trong đó: traffic-gen:là tên ứng dụng,để tạo 1 ứng dụng cú pháp:

Set traffic-gen [new application/traffic/traffic-gen]

• Tạo kết nối giữa 2 agnet:

$ns connect <$agnet1> <$agent2>

• Cấu hình cho 1 agent UDP:

$udp set packsize _<kich_thước>

$udp set dst_addr_<address>

$udp set dst_port_<portnum>

$udp set class_<class-type>

$udp set ttl_<time to live>

c.Agnet TCP:

Cấu hình TCP:

set tcp [new Agent/TCP]//tạo ra biến con trỏ tcp cho tác nhân TCP set sink [new Agent/TCPSink]//định nghĩa nút TCP đích và gán nó cho biến con trỏ sink

$ns attach-agent $n0 $tcp //định nghĩa nut nguồn kết nối TCP

$ns attach-agent $n1 $tcp_sink//định nghĩa nút đích

$ns connect $tcp $tcp_sink//kết nối TCP giữa các nút nguồn và đích

Trang 8

gồm 2 loại:

+agnet 1 chiều

+agent 2 chiều

Agent một chiều là những agent chỉ đóng một trong hai vai trò hoặc là bên gởi hoặc là bên nhận Trong khi đó, agent hai chiều là agent đóng cả hai vai trò vừa là bên nhận, vừa là bên gởi

• Một số tcp bên gửi:

 Tcp reno:

 TCP Newreno

• Một số tcp bên nhận:

 Tcp sink:nhiệm vụ trả về ACK,phát ra ACK cho mỗi lần packet nhận được.Kích thước của ACK có thể thay đổi được.Cấu hình:

Agent/TCPSink set packetSize_ kich_thước

 Tcp sink/delack:có thể gửi phản hồi ACK khi nhận được vài

packet.Cấu hình :

Agent/tcpsink/delack set interval_thời gian Trong đó:thời gian là thời gian chờ giữa hai lần truyền gói tin ACK

4.LỚP ỨNG DỤNG TRONG NS2:

a.Lớp Application:

• Ứng dụng trong NS-2 được xây dựng bỡi lớp application được cài đặt trong phần nhân của NS-2

• Lớp Application cung cấp một số phương thức cơ bản cho quá trình hoạt động của một ứng dụng: send(), recv(), resume(), start(),

stop(), một con trỏ trỏ đến giao thức ở tầng vận tải bên dưới mà nó kết nối

b.Phân loại ứng dụng:

Trong ns-2 có 2 loại ứng dụng:

• Ứng dụng phát sinh lưu lượng mạng (Traffic Generator)

• Ứng dụng giả lập mạng (Simulated Applications)

Trang 9

c.Ứng dụng phát sinh lưu lượng mạng:

Ứng dụng phát sinh lưu lượng mạng có thể chia làm ba loại: exponential, pareto và CBR

• Exponential: phát sinh lưu lượng mạng theo hai trạng thái ON/OFF

Ở trạng thái “ON”, các gói dữ liệu được phát sinh theo một tốc độ truyền không đổi Ngược lại, trong trạng thái “OFF”, không phát sinh lưu lượng mạng Các tham số cấu hình cho đối tượng:

PacketSize_ : kích thước của gói dữ liệu

burst_time_ : thời gian trung bình trong ở trạng thái ON

idle_time_ : thời gian trung bình trong ở trạng thái OFF

rate_ : tốc độ gởi các gói dữ liệu

Cú pháp:$exponential set thamso

• Pareto (Application/Traffic/Pareto): phát sinh lưu lượng

mạng theo hai trạng thái ON, OFF Các tham số cấu hình:

PacketSize_ : kích thước của gói dữ liệu

burst_time_ : thời gian trung bình trong ở trạng thái ON

idle_time_ : thời gian trung bình trong ở trạng thái OFF

rate_ : tốc độ gởi các gói dữ liệu

Cú pháp:$pareto set thamso

• Đối tượng CBR (Application/Traffic/CBR) dùng để phát sinh các gói dữ liệu theo một tốc độ bit không đổi Các tham số cấu hình:

PacketSize_ : kích thước của gói dữ liệu

rate_ : tốc độ truyền dữ liệu

interval_ : khoảng thời gian giữa hai lần truyền dữ liệu

random_ : phát sinh tín hiệu nhiễu một cách ngẫu nhiên Giá trị mặc định là off

maxpkts_ : số packet lớn nhất được truyền đi

Trang 10

Cú pháp:$cbr set thamso

d.Ứng dụng giả lập mạng:

• FTP:là ứng dụng dùng để truyền tải các file qua mạng

Các phương thức đã được cài đặt trong NS-2:

attach-agent : gắn ứng dụng FTP lên agent vận tải

start : khởi động ứng dụng FTP

stop : ngừng ứng dụng

Tham số cấu hình:

maxpkts : số gói dữ liệu lớn nhất được phát sinh ở bên gởi

• Telnet : dùng để phát sinh các gói dữ liệu theo một

trong hai cách dựa vào biến interval_ Mặc định , giá trị này bằng 0

6.LẬP LỊCH SỰ KIỆN:

• Ns2 là một mô phỏng dựa trên các tập sự kiện riêng lẻ,vì vậy cần lập lịch sự kiện bằng cú pháp sau:

$ns at <time> <event>

• Bộ lập lịch bắt đầu khi ta chạy ns :$ns run

• Vd:$ns at 0.1 “$cbr start”

$ns at 3 “$cbr stop”

Thời gian hoạt động của cbr là 0.1 đến 3 đơn vị tính bằng giây

7.HIỂN THỊ DÙNG NAM:

• Thủ tục thiết lập vị trí của các nút mạng trong nam:

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

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

$ns simplex-link-op $n2 $n3 orient left

$ns simplex-link-op $n3 $n2 orient right

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

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

• Tô màu nút:

$n0 color Red//tô đỏ nút n0

• Tô màu liên kết:

$ns duplex-link-op $n0 $n2 color “tên màu”

8.LIÊN KẾT LỖI:

• Liên kết lỗi là định tuyến đường đi khác khi tuyến đường cũ bị lỗi

• Cú pháp:

$ns rtpeoto dv

Trang 11

Đặt câu lệnh trước các đối tượng được tạo ra.

IV.CÁC PHẦN MỀM KẾT HỢP VỚI NS-2:

1.NAM

a.Chạy nam:ở màn hinh lệnh gõ nam

b.chức năng của NAM:

• Cung cấp trình diễn ảo cho mạng đã được tạo

• Có thể thi hành trực tiếp từ kịch bản Tcl

• NAM có giao diện đồ hoạ bắt mắt của CD player với các điều khiển bao gồm play (chạy), stop (ngưng), fast forward (chạy tiếp nhanh), rw (lùi lại), pause (tạm ngưng), điều khiển tốc độ trình diễn và tính năng giám sát packet

• Biểu diễn thông tin như throughput (thông lượng), số packet trên từng link

• Cung cấp giao diện rê và thả cho việc tạo ra các topology (mô hình) c.sử dụng NAM:

Thẻ Agent gồm có các giao thức:

• Các TCP Agent nhận dữ liệu :

• Agent / TCPSink

• Agent / TCPSink / DelAck

• Agent / TCPSink / Sack1

• Agent / Null

Trang 12

• Các TCP Agent truyền dữ liệu

• Agent / TCP

• Agent / TCP / Reno

• Agent / TCP / Sack

• Agent / TCP / Vegas

• Agent / TCp / Fack

• Agent/UDF

Thẻ TRAFFIC SOURCE gồm các ứng dụng:

• CBR

• EXPONENTIAL

• FTP

• PARETO

• TELNET

Thẻ LOSS MODEL:

• PERIODIC

2 TRACEGRAPH:

-TraceGraph là bộ phân tích file trace Tracegraph chạy trong hệ điều hành Windows, Linux, Unix và yêu cầu hệ thống có cài đặt Matlab 6.0 (hoặc các phiên bản cao hơn)

-gọi

Tracegraph hỗ trợ các định dạng file trace như sau:

• Wired (có dây)

• Satellite (vệ tinh)

• Wireless (không dây)

a.chức năng của Tracegraph:

• 238 đồ thị 2D (hai chiều)

• 12 đồ thị 3D (ba chiều)

• Các đồ thị và các thống kê về Delay (trì hoãn), jitter (độ rung pha), processing times (số lần xử lý), Round Trip Times (số lần khứ hồi), intermediate nodes (số node trung gian) và throughput (thông lượng)

• Các đồ thị và các thống kê cho toàn network (mạng), link (liên kết) và node

• Tất cả các kết quả có thể được lưu vào file dạng text (dạng văn bản), các đồ thị có thể lưu dưới dạng file jpeg hay tiff

Ngày đăng: 18/03/2016, 22:08

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w