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
1
ĐỒNG HỮU NGỌC HUY
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
• OTcl Script
Kịch bản OTcl
2
ĐỒNG HỮU NGỌC HUY
• Simulation Program
• OTcl
tượng
• NS Simulation Library
• Event Scheduler Objects
• Network Component Objects
• Network Setup Helping Modules
• Plumbling Modules
• Simulation Results
• Analysis
• NAM Network Animator
Chương trình Mô phòng
Bộ biên dịch Tcl mở rộng hướng đối
Thư viện Mô phỏng NS
Các đối tượng Bộ lập lịch Sự kiện
Các đối tượng Thành phần Mạng
Các mô đun Trợ giúp Thiết lập Mạng
Các mô đun Plumbling
Các kết quả Mô phỏng
Phân tích
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\.
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\
*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
gõ lệnh CD ns-allinone-2.30 để vào thư mục ns-allinone-2.30
3
ĐỒNG HỮU NGỌC HUY
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\ và sửa lại như sau:
export NS_HOME=/cygdrive/c/cygwin/home/tên người sử dụng/nsallinone-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]
4
ĐỒNG HỮU NGỌC HUY
• Để 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.
5
ĐỒNG HỮU NGỌC HUY
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>
• 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>
• 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
6
ĐỒNG HỮU NGỌC HUY
• 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 _
$udp set dst_addr_
$udp set dst_port_
$udp set class_
$udp set ttl_