Tải bản đầy đủ (.docx) (10 trang)

Kỹ thuật mô phỏng

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 (216.19 KB, 10 trang )


Kỹ thuật mô phỏng
1.1. Giới thiệu
Công cụ NS2 (network simulator version 2) [] được phát triền bởi
trường Đại học Berkeley (Mỹ) là một công cụ cho phép mô phỏng và
đánh giá đặc tính của mạng máy tính và viễn thông thay thế cho việc
tiến hành thực nghiệm trên thiết bị thực tế. Do có một số ưu điểm như
mã nguồn mở, có các module ứng dụng phong phú, NS2 hiện là một
trong những công cụ mô phỏng được phổ biến rộng rãi nhất hiện nay
trên thế giới, đặc biệt là trong các viện nghiên cứu và trường đại học.
Trong chương này, trước tiên chúng tôi sẽ trình bày khái niệm chung
về phương pháp mô phỏng dựa trên các sự kiện rời rạc (discrete
event simulation). Tiếp theo, nhằm cung cấp cho người đọc một cái
nhìn tổng quan về các công cụ mô phỏng cho mạng, chúng tôi sẽ giới
thiệu một số công cụ mô phỏng mạng thông dụng hiện nay và phân
tích các ưu nhược điểm của chúng. Cấu trúc của NS2, các module có
sẵn cũng như ứng dụng của chúng sẽ được trình bày trong phần tiếp
theo. Sau cùng là một số kết luận chung về phạm vi ứng dụng cũng
như ưu nhược điểm của NS2.
1.2. Mô phỏng dựa trên các sự kiện rời rạc và các công cụ
1.2.1. Phương pháp mô phỏng dựa trên sự kiện rời rạc
Trước khi đi vào trình bày khái niệm mô phỏng dựa trên sự kiện rời
rạc, chúng tôi định nghĩa một số khái niệm sau:
Định nghĩa 6.1 - Mô hình (Model): là sự biểu diễn một hệ
thống cần mô phỏng bằng cách mô tả các mối quan hệ toán
học, logic hoặc cấu trúc của nó về mặt trạng thái, các thực
thể làm nên hệ thống, sự kiện làm thay đổi trạng thái hệ
thống, các tiến trình hoặc các hoạt động của hệ thống đó.
Định nghĩa 6.2 - Trạng thái hệ thống (System State):
là tập hợp các biến cần thiết chứa đựng đầy đủ thông tin để
mô tả một hệ thống tại một thời điểm bất kỳ.


Định nghĩa 6.3 - Thực thể (Entity): Một mô hình của hệ
thống cần mô phỏng được chia nhỏ thành các thực thể với
các chức năng khác nhau (thí dụ hàng đợi, server, gói dữ
liệu .v.v.)
Định nghĩa 6.4 - Thuộc tính (Attributes): Mỗi thực thể
trong một hệ thống sẽ có các thuộc tính khác nhau đặc
trưng cho thực thể đó, thí dụ như luật phục vụ các gói trong
một hàng đợi .v.v..

Định nghĩa 6.5 - Sự kiện (Event): Sự xuất hiện của một
sự kiện sẽ làm thay đổi trạng thái của một hệ thống (thí dụ
sự kiện xuất hiện của gói mới sẽ làm tăng số gói đang chờ
trong một hàng đợi).
Định nghĩa 6.6 - Bản ghi sự kiện (Event Notice): Là
một bản ghi có gắn thời gian sẽ xảy ra một sự kiện trong
tương lai, cùng với nó là những dữ liệu cần thiết để thực
hiện sự kiện đó, thí dụ như kiểu sự kiện và thời gian xảy ra
sự kiện.
Định nghĩa 6.7 - Danh sách sự kiện (Event List): Là
một danh sách chứa nhiều bản ghi sự kiện được sắp xếp
theo trình tự thời gian xảy ra các sự kiện đó.
Định nghĩa 6.8 - Hoạt động (Activity): là một quãng thời
gian với độ dài được xác định (khoảng thời gian truyền
một gói tin, thời gian đến giữa hai gói tin liên tiếp) và thời
điểm bắt đầu của hoạt động đó cũng đã được xác định.
Định nghĩa 6.9 - Trễ (Delay): là một quãng thời gian với
độ dài không xác định (như khoảng thời gian đợi của một
gói tin trong một hàng đợi khi đằng trước nó còn n gói đang
đợi).
Định nghĩa 6.10 - Đồng hồ (Clock): Là một biến số thể

hiện thời gian mô phỏng của một hệ thống.
Từ những khái niệm cơ bản trên, phương pháp mô phỏng dựa trên sự
kiện rời rạc được xây dựng bẳng cách mô hình hoá một hệ thống mà
trạng thái của nó thay đổi tại các thời điểm rời rạc, tức là thời điểm xảy
ra một sự kiện nào đó. Như vậy quá trình chạy một mô phỏng thực
chất là quá trình khảo sát một hệ thống khi trạng thái của nó thay đổi
từ thời điểm này sang thời điểm khác, tương ứng với thời điểm xảy ra
các sự kiện theo trình tự thời gian tăng dần.
Thí dụ 6.1:
Để dễ hiểu có thể lấy một thí dụ về một hệ thống bao gồm một hàng
đợi Q và hai thực thể phục vụ (server) A và B cùng phục vụ các gói
đang đợi ở Q. Đầu tiên các gói sẽ đi vào hàng đợi Q và đợi cho đến
lượt mình được phục vụ. Thực thể A và B có thời gian phục vụ gói
trung bình là t
sa
và t
sb
(đây chính là hai thuộc tính tương ứng với A và
B). Khi có một gói đến, nếu A đang rỗi thì A sẽ phục vụ gói đó, nếu A
bận B rỗi thì B phục vụ, nếu không gói sẽ đợi tại hàng đợi Q (Hình
6.1).
2
2
Hình 6.1. Hệ thống gồm 1 hàng đợi và 2 thực thể phục vụ
Có thể mô hình hoá hệ thống này bằng 3 trạng thái thể hiện bằng 3
tham số:
 L
Q
: độ dài hàng đợi (số gói hiện tại có trong Q)
 S

A
: 0 – A bận; 1 – A rỗi
 S
B
: 0 – B bận; 1 – B rỗi
Ngoài ra cũng có thể định nghĩa 3 kiểu sự kiện làm thay đổi trạng thái
của hệ thống như sau:
1) Sự kiện E
1
: một gói P
i
nào đó đi vào hàng đợi;
2) Sự kiện E
2
: gói P
i
bắt đầu được phục vụ bởi A hoặc B;
3) Sự kiện E
3
: gói P
i
được phục vụ xong.
Giả sử tại thời điểm t
1
gói P
n
được A phục vụ xong, P
n+1
bắt đầu được
phục vụ, tại thời điểm t

2
gói P
i
đi vào hàng đợi Q.
Hình 6.2. Mô phỏng hệ thống với trình tự thời gian tăng dần
3
3
Hình 6.2 thể hiện quá trình mô phỏng một hệ thống theo trình tự thời
gian của đồng hồ và quá trình thay đổi, bổ sung các bản ghi sự kiện
trong bản danh sách sự kiện. Việc xử lý danh sách sự kiện là một
trong những nhiệm vụ chính của bất kỳ một chương trình mô phỏng
nào. Do các bản ghi sự kiện là một chuỗi được sắp xếp theo trình tự
thời gian, một danh sách sự kiện bao giờ cũng có hai con trỏ: một con
trỏ trỏ vào đầu bản danh sách và con trỏ thứ hai trỏ vào bản ghi cuối
cùng trong danh sách. Mỗi bản ghi cũng phải có các con trỏ trỏ đến
bản ghi tiếp theo nằm trong bản danh sách. Các thao tác liên quan đến
danh sách sự kiện bao gồm:
1) Xoá bản ghi đầu danh sách;
2) Xoá bản ghi ở vị trí bất kỳ trong danh sách;
3) Thêm một bản ghi vào đầu hoặc cuối danh sách;
4) Thêm một bản ghi vào vị trí bất kỳ trong danh sách phụ thuộc vào
thời gian xảy ra sự kiện. Các phương pháp mô hình hoá một hệ
thống thông tin cũng như các chi tiết về kỹ thuật mô phỏng có thể
tìm thấy trong [][][].
1.2.2. Các công cụ mô phỏng thông dụng dựa trên sự kiện rời rạc
Trước khi đi vào trình bày cấu trúc của công cụ NS2, phần này sẽ
điểm lại một số công cụ mô phỏng thông dụng hiện nay và nhận xét
ưu nhược điểm của chúng.
OPNET [8] là một sản phẩm thương mại tương đối nổi tiếng của công
ty OPNET, bao gồm hai phần chính là OPNET Modeler và phần mở

rộng cho mạng không dây OPNET Wireless Module. OPNET chạy
dưới môi trường Windows cũng như Unix/Linux. OPNET rất thích hợp
cho các tổ chức công nghiệp trong việc quy hoạch và đánh giá chất
lượng dịch vụ của mạng thực tế bởi nó có sẵn một thư viện rất phong
phú với các module mô phỏng thiết bị của nhiều nhà sản xuất khác
nhau như Cisco, Lucent, Juniper. Tuy nhiên đối với các cơ sở nghiên
cứu và trường đại học, có lẽ OPNET không phù hợp do giá tương đối
đắt, mặt khác khi mô hình hoá một hệ thống, OPNET yêu cầu phải sử
dụng thư viện với các thiết bị cụ thể nên việc xây dựng các mô hình
tổng quát sẽ gặp khó khăn.
Ptolemy II [] là một bộ công cụ mô phỏng trên nền Java được phát
triển bởi trường Berkeley (Mỹ). Ptolemy II có thể được tải xuống miễn
phí, tuy nhiên Ptolemy II chỉ cung cấp môi trường mô phỏng dựa trên
sự kiện rời rạc nói chung, các module hỗ trợ cho mô phỏng hệ thống
mạng không có nhiều nên người lập trình phải tự phát triển các ứng
dụng của riêng mình.
OMNET++ [] là chương trình mô phỏng cho hệ thống mạng được phát
triển bởi Andras Varga, trường Đại học Bách khoa Budapest.
OMNET++ được viết bằng ngôn ngữ C++ và hỗ trợ cả Windows lẫn
Unix/Linux. OMNET++ có thể tải xuống miễn phí. Ngoài ra OMNET++
sử dụng giao diện đồ hoạ thân thiện với người sử dụng (như trong môi
trường phát triển của OPNET), do đó khối lượng công việc và độ phức
4
4
tạp khi phát triển một module mới được giảm nhẹ khá nhiều. Tuy nhiên
OMNET++ vẫn còn khá mới trong cộng đồng nghiên cứu nên các
module có sẵn vẫn chưa nhiều.
NS2 [5] là công cụ mô phỏng mạng được sử dụng khá rộng rãi hiện
nay trong các trường đại học và viện nghiên cứu. NS2 được phát triển
trong khuôn khổ của dự án VINT, kết hợp giữa trường Berkeley, Viện

Khoa học thông tin ISI, Xerox PARC và phòng thí nghiệm quốc gia
Lawrence Berkeley. NS2 là công cụ mô phỏng hướng đối tượng, được
phát triển dựa trên hai ngôn ngữ là C++ và OTcl (Object-oriented Tcl),
chủ yếu chạy trong môi trường Unix/Linux. Ưu điểm của NS2 là mã
nguồn mở, có cộng đồng sử dụng và phát triển khá đông đảo nên các
module hỗ trợ cho mô phỏng mạng (như các giao thức, các cơ chế
đảm bảo chất lượng dịch vụ, các công nghệ mạng lớp 2, 3) rất phong
phú. Tuy nhiên nó cũng có một số nhược điểm:
 Do không có giao diên đồ hoạ với người sử dụng nên việc tạo các
kịch bản mô phỏng cũng như phát triển các module mới phức tạp
hơn các công cụ khác như OPNET hoặc OMNET++;
 Khả năng hỗ trợ các hệ điều hành khác như Windows kém;
 Do được phát triển bởi nhiều cá nhân và tổ chức khác nhau nên
cấu trúc NS2 tương đối phức tạp, sau một thời gian làm quen và
dùng thử nhất định người sử dụng mới có khả năng làm chủ
chương trình, đặc biệt khi phải tạo ra các module chức năng mới.
Sau đây chúng tôi sẽ tập trung giới thiệu công cụ NS2. Việc so
sánh và liệt kê công cụ mô phỏng và đánh giá hoạt động của mạng
có thể tìm thấy trong [][][].
1.3. Công cụ mô phỏng mạng NS2
1.3.1. Cấu trúc
Hình 3. Cấu trúc của công cụ mô phỏng NS
Mô phỏng NS được xây dựng trên cơ sở hai ngôn ngữ:
 C++: NS có một thư viện phong phú về đối tượng mạng và giao
thức được mô tả bằng C++ (thí dụ như các nút mạng, đường nối,
nguồn, hàng đợi .v.v.).
5
5

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×