Tải bản đầy đủ (.pdf) (61 trang)

NGHIÊN CỨU CÔNG CỤ MÔ PHỎNG NS-2

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.14 MB, 61 trang )

UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM
KHOA CÔNG NGHỆ THÔNG TIN

----------

SONEXAY KEOBOUAPHA

NGHIÊN CỨU CƠNG CỤ MƠ PHỎNG NS-2

KHĨA LUẬN TỐT NGHIỆP ĐẠI HỌC

Quảng Nam, tháng 5 năm 2018

UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM
KHOA CÔNG NGHỆ THÔNG TIN

----------

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Tên đề tài:

NGHIÊN CỨU CÔNG CỤ MÔ PHỎNG NS-2

Sinh viên thực hiện
SONEXAY KEOBOUAPHA

MSSV: 2114011018
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN



KHÓA 2014– 2018
Cán bộ hướng dẫn
ThS. LÊ THỊ THANH BÌNH

Quảng Nam, tháng 5 năm 2018

LỜI CẢM ƠN

Được sự phân công của khoa công nghệ thông tin, Trường Đại Học Quảng
Nam, và được sự đồng ý của giáo viên hướng dẫn ThS. Lê Thị Thanh Bình em đã
thực hiện đề tài “Nghiên cứu công cụ mô phỏng NS-2 ” .

Để hồn thành khóa luận này. Em xin chân thành cảm ơn thầy cô giáo trong
khoa đã tận tình hướng dẫn, giảng dạy trong suốt thời gian học tập, nghiên cứu
và rèn luyện ở trường đại học Quảng Nam.

Xin chân thành cảm ơn cô giáo hướng dẫn ThS. Lê Thị Thanh Bình đã tận
tình, chu đáo hướng dẫn em thực hiện khóa luận này.

Mặc dù có nhiều cố gắng thực hiện đề tài một cách hoàn chỉnh nhất nhưng
do buổi đầu mới làm quen với công tác nghiên cứu cũng như hạn chế về kiến
thức và kinh nghiệm nên không tránh khỏi những thiếu sót nhất định mà bản thân
chưa thấy được. Tơi rất mong được sự góp ý của q thầy cơ giáo và các bạn để
khóa luận hồn chỉnh hơn.

Em xin chân thành cảm ơn.

MỤC LỤC


PHẦN 1. MỞ ĐẦU ................................................................................................ 1
1.1. Lý do chọn đề tài ...................................................................................................... 1
1.2. Mục tiêu của đề tài ................................................................................................... 1
1.3. Đối tượng và phạm vi nghiên cứu........................................................................... 1
1.4. Phương pháp nghiên cứu ......................................................................................... 1
1.5. Đóng góp của đề tài.................................................................................................. 1
1.6 .Cấu trúc đề tài........................................................................................................... 1
CHƯƠNG III: MÔ PHỎNG VỚI NS-2 ................................................................ 2
PHẦN 2: NỘI DUNG NGHIÊN CỨU .................................................................. 3
CHƯƠNG I...................................................................................................................... 3
TỔNG QUAN VỀ CÔNG CỤ MÔ PHỎNG NS-2 ..................................................... 3
1.1. GIỚI THIỆU CÔNG CỤ NS-2 ............................................................................... 3
1.2. KIẾN TRÚC CỦA CÔNG CỤ NS-2 ..................................................................... 3

1.2.1. C++ và otcl ......................................................................................... 6
1.2.2. Các đặc tính của NS-2 ........................................................................ 8
1.3. ĐẶC ĐIỂM CỦA NS-2........................................................................................... 9
CHƯƠNG II .................................................................................................................. 11
GIỚI THIỆU CÁC BƯỚC CƠ BẢN MÔ PHỎNG KỊCH BẢN VÀ PHẦN MỀM
KẾT HỢP VỚI CÔNG CỤ NS-2 ................................................................................ 11
2.1. CÁC BƯỚC CƠ BẢN MÔ PHỎNG KỊCH BẢN TRONG CÔNG CỤ NS-2 11
2.1.1. Khởi tạo và kết thúc .......................................................................... 11
2.1.2. Định nghĩa các nút và mạng liên kết ................................................. 12
2.1.3. Khởi tạo Node ................................................................................... 15
2.1.4. Khởi tạo Link .................................................................................... 16
2.1.5. Khởi tạo Network Agents.................................................................. 17
2.1.6. Các loại traffic ................................................................................... 18
2.1.7. Các dịch vụ cơ bản trong Internet ..................................................... 20
2.1.8. Tracing............................................................................................... 21
2.1.9. Routing .............................................................................................. 23


2.2. CÁC PHẦN MỀM KẾT HỢP VỚI CÔNG CỤ NS-2........................................ 24
2.2.1. Nam ................................................................................................... 24
2.2.2. NSCRIPT........................................................................................... 28
2.2.3. Topology Generator .......................................................................... 29
2.2.4. Trace Data Analyzers ........................................................................ 29

CHƯƠNG III ................................................................................................................. 39
MÔ PHỎNG VỚI NS-2................................................................................................ 39
3.1. CÀI ĐẶT CÔNG CỤ NS-2................................................................................... 39
3.2. CHẠY MỘT CHƯƠNG TRÌNH NS-2................................................................ 43

3.2.1. Mục đích mơ phỏng........................................................................... 43
3.2.2. kết quả mô phỏng .............................................................................. 44
PHẦN 3. KẾT LUẬN .......................................................................................... 53
PHẦN 4. TÀI LIỆU THAM KHẢO.................................................................... 54

DANH MỤC CÁC TỪ VIẾT TẮT

Viết tắt Nghĩa tiếng Anh Nghĩa tiếng việt
CBR Constant Bit Rate Tốc độ bit cổ định
CBQ Class Based Queucing Hàng đợi đựa trên lớp
FTP
HBT File Transfer Protocol Giao thức truyền tập tin
High Priority Best effort Traffic Lưu lượng nỗ lực tối đa có
HTTP độ ưu tiên cao nhất
Hypertext Transfer Protocol Giáo thức truyền tải siêu văn bản

ID Identifier Mã nhận dạng
IEEE Institute of Electrical and Viện kỹ thuật điện điện tử

Electronic Engineers
IP Internet Protocol Giáo thức Internet
LAN Local Area Network Mạng cức bộ
MAC Media Access Control Điều khiển truy cập đường truyền
MMS MPLS Network Simulation Mô phỏng mạng MPLS
MPLS Multicast-Protocol Label Chuyển mạch nhân giaothức
Switching
NAM Network Animator Mịnh họa mạng
NFS Network Filesystems Các tập tin hệ thống mạng
NS Network Simulator Mô phỏng mạng
OSPF Open shortest Path First Đường dẫn ngắn nhất mở đầu tiền
RED Random Early Detection Hàng đợi dò sớm ngẫu nhiên
RT Realtime Traffic Lưu lượng thời gian thực
SBT Simple Best Effort Traffic Lưu lượng nỗ lực tối đa đơn gian
SPF shortest Path First Đường dẫn ngắn nhất đầu tiền
ST Singnaling Traffic Lưu lượng tin hiệu
TCP Transmission Control Protocol Giao thức điều khiển truyền tải
TTL
UDP Time-To-Live Thời gian tồn tại
VBR User Datagram Protocol Giao thức gói người dùng
WAN Variable Bit Rate Tốc độ bit thay đổi được
WLAN wide Area Network Mạng diện rộng
WWW Wireless Local Area Network Mạng cực bộ không dây
World Wide Web Môi trường internets

DANH MỤC HÌNH ẢNH

Hình 1.1: Tổng quan về NS-2 dưới góc độ người dụng ........................................ 4
Hình 1.2: Luồng các sự kiện cho file Tcl chạy trong NS....................................... 5
Hình 1.3: Kiến trúc của NS-2................................................................................. 6

Hình 1.4: C++ và OTcl sự đối ngẫu ....................................................................... 6
Hình 1.5: TclCL hoạt động như liên kết giữa A và B............................................ 7
Hình 2.1: sự liên kết các đối tượng cơ bản trong NS ........................................... 15
Hình 2.2: Node unicast và node multicast ........................................................... 15
Hình 2.3: Link ...................................................................................................... 16
Hình 2.4: Chèn đối tượng trace ............................................................................ 21
Hình 2.5: Giao diện đồ họa Nam ......................................................................... 24
Hình 2.6: Cửa sổ Nam console ............................................................................ 25
Hình 2.7: Cửa sổ minh họa Nam.......................................................................... 26
Hình 2.8: Cấu trúc lien kết của 5 node mạng ....................................................... 29
Hình 2.9: mơ hình ví dụ được diễn trong xgraph................................................. 34
Hình 3.1: Lệnh Code trong Terminal để cài đặt công cụ biên dịch ..................... 39
Hình 3.2: Cách Fix bug từ CC=@cc@ trở thành CC=gcc-4.4 ............................ 40
Hình 3.3: Cách cài đặt NS2 trong thư mục ns-allinone-2.35 .............................. 41
Hình 3.4: Thiết lập biến mơi trường .................................................................... 42
Hình 3.5: Cài đặt thành cơng................................................................................ 43
Hình 3.6: Mơ hình mạng sử dụng giao thức TCP, TCP Reno, TCP Vegas ......... 43
Hinh 3.7: Kết quả mơ hình chương trình đang hoạt động ................................... 51
Hinh 3.8: Kết quả thơng tin Simulation ............................................................... 51
Hinh 3.9: Kết quả mơ hình trong GRAPH ........................................................... 52

PHẦN 1. MỞ ĐẦU

1.1. Lý do chọn đề tài
Hiện nay, các hệ thống mạng ngày càng phức tạp, đòi hỏi phải đáp ứng

được với nhiều loại dịch vụ khác nhau, với tốc độ dịch vụ khác nhau, lưu lượng
các gói tin trên đường truyền khơng ngừng tăng lên, nhiều lúc dẫn đến tắc nghẽn.
Vì vậy, việc sử dụng các phương pháp giải thích ngày càng trở nên phức tạp
trong tính tốn các đối tượng ngẫu nhiên, đồng thời khó có những mơ hình thực

tế để do thử nghiệm nên việc sử dụng các hệ thống mơ phỏng máy tính trở nên
thuận lợi hơn nhiều.

Phương pháp mô phỏng là sử dụng chương trình phần mềm xây dựng các
đối tượng trong mạng dựa trên Topology mạng đã được thiết kế. Thiết lập bảng
hoạt động cho từng node mạng, thiết lập các thông số đường truyền, thời gian
truyền.

Hiện tại có rất nhiều phần mềm mơ phỏng, một trong số đó là NS2, là một
sản phẩm phần mềm lớn, chuyên dụng cho việc mô phỏng mạng trước thực tế
này, được sự định hướng và chỉ dẫn của ThS. Lê Thị Thanh Bình, em đã chọn đề
tài: “ Nghiên cứu công cụ mô phỏng NS-2 ” để làm khóa luận tốt nghiệp.
1.2. Mục tiêu của đề tài

- Nghiên cứu về công cụ NS-2
- Nghiên cứu phần mềm kết hợp với NS-2
- Thực hiện mô phỏng với NS-2
1.3. Đối tượng và phạm vi nghiên cứu
- Đề tài tập trung nghiên cứu về công cụ NS-2 và ứng dụng của nó.
1.4. Phương pháp nghiên cứu
- Nghiên cứu lý thuyết NS-2.
- Mô phỏng thực nghiệm.
1.5. Đóng góp của đề tài
- Đề tài trình bày cách thức cài đặt NS-2 trên Ubuntu và chạy các ví dụ .tcl
trên nền NS-2
1.6 .Cấu trúc đề tài
Đề tài gồm có ba chương như sau :

1


Chương I: TỔNG QUAN VỀ CÔNG CỤ MÔ PHỎNG NS-2
Chương II: GIỚI THIỆU CÁC BƯỚC CƠ BẢN MÔ PHỎNG KỊCH BẢN
VÀ PHẦN MỀM KẾT HỢP VỚI NS-2
Chương III: MÔ PHỎNG VỚI NS-2

2

PHẦN 2: NỘI DUNG NGHIÊN CỨU
CHƯƠNG I

TỔNG QUAN VỀ CÔNG CỤ MÔ PHỎNG NS-2

1.1. GIỚI THIỆU CÔNG CỤ NS-2
NS-2 (Network simulator Version 2) 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 đại học California tại
Berkely, được viết bằng ngôn ngữ C++ và Otcl. Được sử dụng rất phổ biến trong
các nghiên cứu khoa học về mạng (rất hữu ích cho việc mơ phỏng mạng WAN và
mạng LAN). Bốn lợi ích lớn nhất của NS-2 phải kể đế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
Mục đích của NS-2 là tạo ra một môi trường giả lập cho việc nghiên cứu,
kiểm tra, thiết kế các giao thức, các kiến trúc mới, so sánh các giao thức và tạo ra
các mơ hình mạng phức tạp.
Phiên bản thứ nhất của NS được phát triển vào năm 1995 và phiên bản thứ
hai ra đời năm 1996. NS-2 là phần mềm mã nguồn mở có thể chạy được trong

mơi trường Linux và Window.
1.2. KIẾN TRÚC CỦA CÔNG CỤ NS-2
NS là một phần mềm hướng đối tượng sử dụng hai ngôn ngữ C++ và
OTcl. Phần dữ liệu và phần điều khiển được tách biệt.
- C++ cho phần dữ liệu: Xử lý mỗi gói tin, thực thi nhanh chóng, chi tiết
hóa, bổ sung đầy đủ cho việc điều khiển, các thuật toán đối với bộ dữ liệu lớn.
- OTcl cho phần điều khiển :

+ Mơ phỏng các cấu hình cho kịch bản
+ Thực thi nhanh chóng ,dễ dàng cấu hình lại
+ Thao tác với các đối tượng C++ hiện tại.
+ Viết mã nhanh chóng và thay đổi dễ dàng.

3

Hình 1.1: Tổng quan về NS-2 dưới góc độ người dụng

- OTcl Script Kịch bản OTcl

- Simulation Program Chương trình Mơ phịng

- OTcl Bộ biên dịch Tcl mở rộng hướng đối

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

- Analysis Phân tích

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

Trong hình 1.1. NS-2 là bộ biên dịch Tcl mở rộng hướng đối tượng, bao

gồm các đối tượng bộ lập lịch sự kiện, các đối tượng thành phần mạng và các mô

đun trợ giúp thiết lập mạng (hay các mơ đun Plumbing).

Kịch bản OTcl có thể thực hiện những việc sau:

- Khởi tạo Bộ lập lịch Sự kiện

- Thiết lập Mơ hình mạng dùng các đối tượng Thành phần Mạng

- Báo cho nguồn traffic khi nào bắt đầu truyền và ngưng truyền packet

trong Bộ lập lịch Sự kiện.

4

Thuật ngữ plumbing được dùng để chỉ việc thiết lập mạng, vì thiết lập một

mạng nghĩa là xây dựng các đường dữ liệu giữa các đối tượng mạng bằng cách
thiết lập con trỏ “neighbor ” cho một đối tượng để chỉ đến địa chỉ của đối tượng
tương ứng. Mô đun plumbing OTcl trong thực tế thực hiện việc trên rất đơn giản.
Plumbing làm nên sức mạnh của NS.

Thành phần lớn khác của NS bên cạnh các đối tượng thành phần mạng là
bộ lập lịch sự kiện. bộ lập lịch sự kiện trong NS-2 thực hiện những việc sau:

- Tổ chức Bộ định thời Mô phỏng
- Huỷ các sự kiện trong hàng đợi sự kiện
- Triệu gọi các Thành phần Mạng trong mô phỏng
Phụ thuộc vào mục đích của user đối với kịch bản mơ phỏng OTcl mà kết
quả mơ phỏng có thể được lưu trữ như file trace. Định dạng file trace sẽ được tải
vào trong các ứng dụng khác để thực hiện phân tích:
- File nam trace (file.nam) được dùng cho công cụ minh họa mạng NAM
- File Trace (file.tr) được dùng cho công cụ lần vết và giám sát mơ phỏng
XGRAPH hay TRACEGRAPH.

Hình 1.2: Luồng các sự kiện cho file Tcl chạy trong NS

- NAM Visual Simulation Mô phỏng ảo NAM

- Tracing and Monitoring Simulation Mô phỏng Lần vết và Giám sát

5

1.2.1. C++ và otcl
Hình 1.3 biểu diễn kiến trúc chung của NS-2. User có thể tưởng tượng

mình đang đứng ở góc trái dưới, thiết kế và chạy các mô phỏng trong Tcl. Tcl

dùng các đối tượng mô phỏng trong OTcl. Các đối tượng bộ lập lịch sự kiện và
hầu hết các đối tượng thành phần mạng thực thi bằng C++ và sẵn có cho OTcl
qua một liên kết OTcl. Liên kết OTcl này được thực thi dùng TclCL. Tất cả đã
làm nên NS, bộ biên dịch Tcl mở rộng hướng đối tượng và các thư viện mô
phỏng mạng.

Network Event
Components Scheduler

TclCL
OTcl

Tcl

C/C++

ns-2

Hình 1.3: Kiến trúc của NS-2

NS sử dụng hai ngôn ngữ lập trình: Ngơn ngữ kịch bản (Tcl – Tool
Command Language, đọc là tickle) và Ngơn ngữ lập trình hệ thống (C/C++)

NS là tầng biên dịch Tcl để chạy các kịch bản Tcl
Bằng cách sử dụng C++/OTcl, bộ mơ phỏng mạng phải hồn tồn là
hướng đối tượng
Hình 1.4 chỉ ra các đối tượng C++ có liên kết OTcl. Khi đó, nếu chúng tạo
nên một phân cấp thì các đối tượng OTcl cũng có một phân cấp tương ứng như vậy.

Hình 1.4: C++ và OTcl sự đối ngẫu


6

OTcl là ngôn ngữ được sử dụng để cung cấp liên kết giữa C++ và OTcl.
Các kịch bản Tcl/OTcl được viết để thiết lập và cấu hình topology của mạng.
TclCL cung cấp liên kết giữa phân cấp lớp, khởi tạo đối tượng, nối kết biến và
gửi lệnh.

Hình 1.5: TclCL hoạt động như liên kết giữa A và B
NS cần đến 2 ngơn ngữ là vì bộ mơ phỏng cần thực hiện hai việc khác
nhau.Một mặt là vì các mô phỏng cho các giao thức yêu cầu một ngơn ngữ lập
trình hệ thống có thể tính tốn một cách hiệu quả các byte, các tiêu đề packet và
các thuật toán thực thi đang chạy trên một tập dữ liệu lớn. Với tác vụ này, run-
time speed (tốc độ thời gian chạy thực) là quan trọng trong khi turn-around time
(thời gian thay đổi) thì ít quan trọng hơn. Turn-around time bao gồm thời gian
chạy mơ phỏng, thời gian tìm lỗi, thời gian sửa lỗi, thời gian biên dịch lại và thời
gian chạy lại.
Mặt khác, khi nghiên cứu mạng thì rất cần quan tâm đến các tham số và
các cấu hình có thay đổi nhưng không đáng kể, hay quan tâm đến các scenario
(tình huống) cần khám phá thật nhanh chóng. Trong tác vụ này thì iteration time
(thời gian lặp lại, tức là thời gian hay đổi mơ hình và chạy lại) là quan trọng hơn.
Vì cấu hình chỉ chạy một lần lúc bắt đầu mô phỏng nên run-time trong tác vụ này
rõ ràng kém quan trọng hơn.
Dùng C++ để:
- Mô phỏng giao thức chi tiết u cầu ngơn ngữ lập trình hệ thống
+ Thao tác trên byte, xử lý gói, thực thi thuật tốn
+ Tốc độ thời gian thực là quan trọng nhất

7


- Thực hiện bất kỳ việc gì mà cần phải xử lý tứng packet của một luồng.
Thay đổi hành vi của lớp C++ đang tồn tại theo những hướng đã không được
lường trước.
Và dùng OTcl để:
- Mô phỏng những thông số hay cấu hình thay đổi

+ Tham dị nhanh một số tình huống
+ Thời gian tương tác (thay đổi mơ hình hay chạy lại) là quan trọng
- Cấu hình, thiết lập hay những gì chỉ làm một lần.
- Thực hiện những cái ta muốn bằng cách thao tác trên các đối tượng C++ đang
tồn tại.
1.2.2. Các đặc tính của NS-2

NS-2 thực thi những tính năng sau:
- Các kỹ thuật quản lý hàng đợi Router như DropTail, RED, CBQ,
- Multicasting
- Mô phỏng mạng không dây:

+ Được phát triển bởi Sun Microsystems + UC Berkeley (Dự án
Daedalus).

+ Thuộc mặt đất (di động, adhoc, GPRS, WLAN, BLUETOOTH), vệ
tinh.

+ Chuẩn IEEE 802.11 có thể được mơ phỏng, các giao thức Mobile-IP và
adhoc như DSR, TORA, DSDV và AODV.

- Hành vi nguồn traffic – www, CBR, VBR
- Các agent truyền tải – UDP, TCP
- Định tuyến

- Luồng packet
- Mơ hình mạng
- Các ứng dụng – Telnet, FTP, Ping
- Các packet tracing trên tất cả các link và trên các link xác định

8

1.3. ĐẶC ĐIỂM CỦA NS-2
Cơng cụ mơ phỏng NS2 có thể hỗ trợ người nghiên cứu mạng các đặc

điểm nỗi bật sau:
- Khả năng trừu tượng hóa: giúp nghiên cứu các giao thức mạng ở nhiều

mức khác nhau, từ hành vi đơn lễ của một giao thức đến kết hợp của nhiều luồng
dữ liệu và tương tắc của nhiều giao thức. Điều này giúp người cứu có thể dễ dàng
so sánh và phân tích các kết quả chi tiết với trừu tượng.

- Khả năng tương tác với mạng thực: cho phép chương trình mơ phỏng
đang chạy tương tác với các nút mạng thực đang hoạt đông thông qua việc thiết
lập lưu lương cho các liên kết mạng.

- Khả năng tạo ngữ cảnh: người nghiên cứu có thể tạo các hiện trạng mạng
phức tập và các sự kiện động như lỗi liên kết một cách dễ dàng. Điều này giúp
cho việc nghiên cứu, kiểm chứng các giao thức mạng trong các mơ hình mạng
khác nhau được đúng đắn hơn.

- Khả năng hiền thị hóa: thơng qua cơng cụ hiển thị NAM, người nghiên
cứu có thể quan sát trực quan hoạt động của các nút mạng, lưu lượng, tỷ lệ lỗi để
từ đó dễ dàng hiểu được các hành vi phức tập của đồ hình mạng mơ phỏng .


- Khả năng mở rộng được: NS2 cho phép mở rộng các chức năng mới một
cách dễ dàng như thay đổi các tham số, xây dựng lên một giao thức mới, thử
nghiệm các kịch bản khác nhau.

- Khả năng mô phỏng NS: với bộ mơ phỏng NS2, người dùng có thể mô
phỏng nhiều giao thức khác nhau tại nhiều tầng khác nhau như: tại tầng ứng
dụng, FTP, HTTP, tại tầng giao viên như: UDP, TCP (reno, tahoe, vegas, sack...),
tại tầng MAC như: MAC 802.3, MAC 802.11, MAC 802.15,...trong các mô hình
mạng có dây, mơ hình mạng khơng dây và mơ hình mạng hỗn hợp. Ngồi ra NS-
2 cịn có thể mơ phỏng các thuật tốn định tuyến trong mạng khơng dây, đặc biệt
là mạng Ad-Hoc: DSDV, DSR, AODV, TORA,... các vấn đề về định tuyến
Unicast/Multicast, liên mạng sử dụng về tinh (Satellite network) và nhiều các vấn
đề khác cụ thể như:
+ Đối với mạng có dây:

- Các đường truyền điểm-điểm đơn công , song công, mạng cục bộ LAN.
- Các chính sách phục vụ hàng đợi.

9

- Các mơ hình sinh lỗi.
- Vấn đề định tuyến Unicast/Multicast (Unicast/Multicast routing).
- Các giao thức tầng giao vận:
TCP/Tahoe/Reno/NewReno/Sack/Vegas,UDP, điều khiển lưu lượng và điểu
khiển tắc nghẽn.
- Các giao thức tầng ứng dụng, Web caching, truyền luồng dữ liệu đa
phương tiện.
+ Đối với mạng không dây:
- kênh truyền.
- Sự đi chuyển của các nút mạng trong không gian hai chiều.

- Mạng LAN không dây (WLAN) 802.11.
- Mobile IP.
- Các thuật tốn định tuyến trong mạng khơng dây đặc biệt (Ad Hoc
networks): DSDV, DSR, AODV, TORA...
- Liên mạng sử dụng vệ tinh (Satellite Networking).
+ Trong lĩnh vực mạng hỗn hợp có dây và không dây:
- Trạm cơ sở (Base station) đóng vai trị gateway giữa mạng có dây và
mạng khơng dây.
- Snoop TCP

10

CHƯƠNG II

GIỚI THIỆU CÁC BƯỚC CƠ BẢN MÔ PHỎNG KỊCH
BẢN VÀ PHẦN MỀM KẾT HỢP VỚI CÔNG CỤ NS-2

2.1. CÁC BƯỚC CƠ BẢN MÔ PHỎNG KỊCH BẢN TRONG CÔNG CỤ
NS-2
2.1.1. Khởi tạo và kết thúc

Một mô phỏng bắt đầu với câu lệnh: Set ns [new Simulator]. Đây là dòng
lệnh đầu tiên trong tập lệnh tcl. Dòng này khai báo một biến mới dùng lệnh set.
Dùng biến ns để có thể sử dụng tất cả các phương thức của lớp Simulator. Để lưu
trữ dữ liệu mô phỏng và hiển thị kết quả mô phỏng chúng ta tạo file bằng cách sử
dụng lện “open”
#Open the Trace file
Set tracefile1 [open out.tr.w]
$ns trace-all $tracefile1
#Open the NAM trace.file

set namfile [open out.nam w]
$ns trace-all $namfile
Kết thúc chương trình được thực hiện bằng một thủ tục “finish”
#Define a ‘finish’ procedure
Proc finish {} {

global ns tracefile1 namfile
$ns flush-trace
close $tracefile1
close $namfile
exec nam out.nam &
exit 0
}
Cuối chương trình ns chúng ta sẽ gọi thủ tục “finish” và chỉ ra thời điểm kết
thúc.
Ví dụ : $ns at 125.0 “finish”

11

Lệnh trên được dùng để gọi “finish” vào thời điểm 125 giây. Cuối cùng cho
trình mơ phỏng bắt đầu bằng lệnh:

$ns run
2.1.2. Định nghĩa các nút và mạng liên kết

Đầu tiên là quá trình thiết lập mạng cơ bản. NS script bắt đầu bằng việc
tạo ra một instance cho đối tượng Simulator (đối tượng mô phỏng).

set ns [new Simulator]: tạo instance của Simulator, gán vào biến ns. Dòng
này sẽ thực hiện:


- Khởi tạo định dạng packet.
- Tạo Bộ lập lịch (mặc định là Calender scheduler - Bộ lập lịch Thời gian).
Đối tượng “Simulator” có các hàm thành viên thực hiện những việc sau:
- Tạo đối tượng ghép như các node và các link
- Connect (nối) các đối tượng Thành phần Mạng đã được tạo lại với nhau
(ví dụ như hàm attach-agent)
- Gán giá trị cho các tham số cho các đối tượng Thành phần Mạng (thường
là cho các đối tượng ghép)
- Tạo các connection giữa các agent (ví dụ như tạo connection giữa “tcp” và
“sink”)
- Xác định tuyến tùy chọn trình diễn NAM.
- v.v…

Hầu hết các hàm thành viên dùng cho mục đích thiết lập mơ phỏng (được
đề cập đến như các hàm plumbing) và cho mục đích lập lịch. Tuy nhiên cũng có
những hàm là cho việc trình diễn bằng NAM. Các thực thi cho các hàm thành
viên của đối tượng “Simulator” được định vị trong file “ns-2/tcl/lib.ns-lib.tcl”.

$ns color fid color : gán màu các packet cho luồng có mã nhận dạng luồng
fid. Hàm thành viên này của đối tượng Simulator được dùng cho việc trình diễn
NAM, và khơng có tác dụng gì trên mơ phỏng thực tế.

$ns namtrace-all file-descripto : hàm thành viên này yêu cầu mô phỏng
lưu lại các dấu vết mô phỏng vào trong định dạng đầu vào cho NAM. Đồng thời
có thể cung cấp tên file mà trace (dấu vết) sẽ được ghi vào bằng lệnh $ns flush-

12

trace. Tương tự, hàm thành viên trace-all dùng lưu trace theo định tuyến dạng

chung.

proc finish{} : được gọi sau khi mô phỏng đã kết thúc. Trong hàm này các
tiến trình post-simulation (mơ phỏng thông báo) được xác định.

set n0 [$ns node]: hàm thành viên node khởi tạo một node. node trong NS
là đối tượng ghép bao gồm address (địa chỉ) và port classifiers (bộ phân loại
cổng). User có thể tạo node bằng các tạo riêng đối tượng address và port
classifier và nối chúng lại với nhau.Tuy nhiên các hàm thành viên của đối tượng
Simulator đã thực hiện việc này rất đơn giản. Xem file “ns-2/tcl/lib/ns-lib.tcl” và
“ns-2/tcl/lib/ns-node.tcl” để viết Simulator tạo node như thế nào.

$ns duplex-link node1 node2 bandwidth delay queue-type: tạo hai simplex
link (liên kết đơn) với band width và delay xác định tuyến, nối hai node xác định
lại với nhau. Trong NS, hàng đợi đầu ra của node được thực thi như một phần
của link, vì vậy user nên xác định ln queue-type khi khởi tạo link. Giống như
node, link là đối tượng ghép, user có thể tạo và nối các link với các node. Mã
nguồn link được tìm trong file “ns-2/tcl/lib/ns-lib.tcl” và “ns-2/tcl/lib/ns-link.tcl”.
Cần chú ý là ta hồn tồn có thể chèn các mơ đun lỗi vào trong thành phần link
để mô phỏng một link hay bị mất gói cũng như chèn thêm bất kỳ đối tượng mạng
nào.

$ns queue-linit node1 node2 number: xác định giới hạn hàng đợi của hai
simplex link kết nối node1 và node2 với nhau.

$ns duplex-link-op node1 node2 : dùng cho NAM.
Quá trình tiếp theo là thiết lập các agent như TCP, UDP; các nguồn traffic như
FTP, CBR; connect các agent với các node và connect các nguồn traffic với các
agent.


set tcp [new Agent/TCP]: lệnh tạo ra một agent TCP, và đây cũng là cách
để tạo ra bất kỳ agent hay nguồn traffic nào. Các agent và các nguồn traffic chứa
trong các đối tượng cơ bản thực (không phải trong các đối tượng kép), hầu như
được thực thi trong C++ và được liên kết đến OTcl. Vì vậy, khơng có hàm thành
viên nào của một đối tượng Simulator xác định là có thể tạo ra các instance của

13


×