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

Mô phỏng, so sánh, phân tích và đánh giá hiệu năng của giao thức DSDV và AODV trong mạng AD HOCc

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 (631.54 KB, 67 trang )

LỜI CẢM ƠN
Lời đầu tiên cho em gửi lời cảm ơn chân thành nhất tới tất cả các thầy, cô
giáo Trường Đại Học Công Nghệ Thông Tin & Truyền Thông - Đại Học Thái
Nguyên nói chung và các thầy cô giáo trong Bộ môn Mạng và Truyền thông nói
riêng, đã tận tình giảng dạy, trang bị cho em vốn kiến thức cũng như những kinh
nghiệm quý báu để em có thể đạt được kết quả tốt nhất trong học tập cũng như
trong công việc của em sau này. Đặc biệt em xin chân thành cảm ơn thầy giáo
ThS. Đỗ Đình Cường - người đã trực tiếp hướng dẫn giúp đỡ em trong thời gian
làm đồ án vừa qua. Trong thời gian hướng dẫn tuy thầy rất bận nhưng thầy vẫn
dành thời gian chỉ bảo truyền đạt cho em những kinh nghiệm và những định
hướng cho bài báo cáo của em đảm bảo kết quả, và hoàn thành đúng thời gian
theo quy định.
Mặc dù em đã cố gắng hoàn thành đồ án trong phạm vi và năng lực cho
phép, tuy nhiên không thể nào tránh khỏi được những sai sót, em rất mong nhận
được sự cảm thông và những ý kiến đóng góp của quý thầy cô cùng các bạn để
đề tài có thể phát triển và hoàn thiện hơn.
Xin chân thành cảm ơn!
Thái Nguyên, Tháng 06 Năm 2012
Sinh viên
Nguyễn Phương Bắc

1


LỜI CAM ĐOAN
Em xin cam đoan: Đồ án tốt nghiệp này là công trình nghiên cứu thực sự
của cá nhân em và được thực hiện trên cơ sở kiến thức lý thuyết đã thu được từ
quá trình học tập tại trường và tự tìm hiểu của bản thân dưới sự hướng dẫn khoa
học của ThS. Đỗ Đình Cường. Các nội dung nghiên cứu và kết quả trong đồ án là
trung thực và chưa từng được công bố dưới bất kỳ hình thức nào trước khi bảo
vệ. Đồ án có sử dụng một số nhận xét đánh giá cũng như số liệu của các tác giả,


cơ quan tổ chức khác, điều này được thể hiện trong phần tài liệu tham khảo. Nếu
phát hiện có bất kỳ sự gian lận nào em xin hoàn toàn chịu trách nhiệm trước Hội
đồng bảo vệ, cũng như kết quả đồ án của mình.
Thái Nguyên, tháng 6 năm 2012
Sinh viên thực hiện

Nguyễn Phương Bắc

2


MỤC LỤC

3


DANH MỤC TỪ VIẾT TẮT
MANET
CSMA/CA
CSMA/CD
IEEE
NS-2
AODV
DSDV
MPR
RREP
RREQ
PRnet
MAC
LAN

WLAN

Mobile Adhoc NETwork
Carrier sense multiple access with collision avoidance
Carrier Sense Multiple Access with Collision Detection
Institute of Electrical and Electronics Engineers
Network Simulator 2
Adhoc On-demand Distance Vector
Destination-Sequenced Distance Vector
Multi-Point Relays
Route Reply
Route Request
Packet Radio Network
Media Access Control
Local Area Network
Wireless LAN

4


DANH MỤC HÌNH ẢNH

5


DANH MỤC BẢNG

6



LỜI NÓI ĐẦU
Sự phát triển của các thiết bị phần cứng đã và đang tạo động lực để mạng di
động phát triển với nhiều loại hình mạng và dịch vụ khác nhau. Trong số những
loại hình mạng, mạng Ad hoc đã thu hút được nhiều sự quan tâm của giới chuyên
môn. Với những đặc điểm nổi bật như: khả năng không sử dụng cơ sở hạ tầng, các
nút mạng có thể di chuyển theo hướng và tốc độ tùy ý, mạng Ad hoc có thể đáp
ứng được yêu cầu khắt khe của những ứng dụng trong môi trường đặc biệt như:
chiến trường, thám hiểm, lò vũ khí hạt nhân, nơi xảy ra thiên tai, hỏa hoạn… Tuy
nhiên, mạng Ad hoc cũng gặp nhiều thách thức trong môi trường truyền thông do
chính những đặc điểm của nó. Vì vậy, việc đảm bảo chất lượng truyền tin trong
mạng Ad hoc là một vấn đề cần được quan tâm. Nếu trong các mạng cố định, định
tuyến là vấn đề không thể thiếu thì trong mạng Ad hoc - là mạng định tuyến động định tuyến là cơ chế quan trọng ảnh hưởng tới chất lượng dịch vụ. Vậy làm thế nào
để nâng cao chất lượng truyền tin trong mạng Ad hoc?
Với suy nghĩ trên, cùng với sự định hướng và chỉ dẫn của Th.S Đỗ Đình
Cường em đã chọn đề tài “Mô phỏng, so sánh, phân tích và đánh giá hiệu năng
của giáo thức DSDV và AODV trong mạng Ad-hoc”. Mục tiêu của đồ án là
nghiên cứu Giao thức DSDV và AODV và xây dựng mô hình định tuyến. Em xin
chân thành cám ơn Th.S Đỗ Đình Cường đã tận tình hướng dẫn để em có thể
hoàn thành đề tài.
Thái nguyên, tháng 6 năm 2012
Sinh viên
Nguyễn Phương Bắc

7


Chương 1: CƠ SỞ LÝ THUYẾT
1.1. Lịch sử phát triển của mạng Ad hoc
Mạng Ad hoc xuất phát từ mạng vô tuyến gói. Vì vậy, trước hết bài đồ án
tóm tắt vài nét tìm hiểu qua về sự ra đời và phát triển của mạng vô tuyến gói.

Sự phát triển vô tuyến gói cho truyền thông máy tính ra đời đầu tiên vào năm
1970 là một phần của dự án ALOHANET được thực hiện bởi Đại học Hawaii.
ALOHANET bao gồm một mạng vô tuyến để kết nối các máy tính trong trường đại
học với nhau. Tuy nhiên, mạng mới chỉ gồm các nút mạng giao tiếp trực tiếp với
nhau. Từ dự án ALOHANET, vô tuyến gói phát triển trên hai hướng chính là: các
mạng vô tuyến gói nghiệp dư và các mạng vô tuyến gói quân sự. Trong đó mạng vô
tuyến gói quân sự là nền tảng cho sự phát triển của mạng Ad hoc.
Bên cạnh phát triển ALOHANET, DARPA (Defense Advanced Research
Projects Agency) dự án mạng vô tuyến gói (Packet Radio Network - PRNET) mở
rộng vô tuyến gói đơn bước thành mạng vô tuyến gói đa bước (multi-hop) được
phát triển từ năm 1972 đến năm 1983, dự án PRNET thiết kế và kiểm tra các giao
thức trong môi trường mà các nút mạng trên nền tảng di động. Kết quả là các
giao thức đã tự động thích ứng với sự thay đổi tôpô mạng. Năm 1987, PRNET hỗ
trợ cho 183 nút mạng, cả các trạm vô tuyến gói và các trạm tham gia. Nó sử dụng
giao thức vector khoảng cách để định tuyến.
Khi dự án PRNET chấm dứt, dự án SUAN (Survivable Adaptive
Network) bắt đầu và thực hiện từ năm 1983 tới năm 1992. SUSAN lại được tiếp
tục bởi dự án GLoMo (Global Mobile Information System - Hệ thống thông tin
di động toàn cầu) thực hiện từ 1995 đến 2000. Tiếp theo, dự án NTDR (Near
Term Digital Radio) được thực hiện để phát triển vô tuyến gói một cách chiến
thuật để triển khai trên chiến trường.
Trên cơ sở dự án ALOHANET, PRNET… mạng Ad hoc đã ra đời đáp ứng
nhu cầu không chỉ trong quân sự mà trong giao dịch thương mại và nhu cầu đời
sống. Sau đây chúng ta sẽ tìm hiểu qua về mạng Ad hoc.

8


1.2. Những đặc điểm cơ bản của mạng Ad hoc
Như đã giới thiệu ở mục 2.1, lịch sử của các mạng vô tuyến được bắt đầu

từ những năm 1970 và từ đấy đã thu hút được sự quan tâm đặc biệt của thế giới.
Trong suốt thập kỷ sau, sự quan tâm này đã bùng nổ bởi sự phát triển nhanh
chóng của Internet và sau đấy là công nghệ mạng không dây. Mạng không dây là
một công nghệ nổi bật hiện nay, nó cho phép người sử dụng truy nhập thông tin
và các dịch vụ xử lý số liệu bằng điện tử mà không quan tâm tới vị trí địa lý của
họ. Các loại mạng không dây có thể chia thành hai loại: mạng có cơ sở hạ tầng
(thường được biết đến như các WLAN) và mang không có cơ sở hạ tầng (thường
gọi là Ad hoc). Mạng Ad hoc với những khả năng ưu việt vẫn đang được tiếp tục
phát triển và sẽ phổ biến trong tương lai không xa.
1.2.1. Phân loại mạng Ad hoc
Có hai loại mạng Ad hoc không dây là: Mạng Ad hoc di động (MANET)
và mạng cảm ứng thông minh .
Mạng cảm ứng thông minh bao gồm một số những sensor rải dọc theo một
vùng địa lý. Mỗi sensor có khả năng kết nối không dây và khả năng hiểu biết để
xử lý tín hiệu và hoạt động mạng của dữ liệu.
MANET là một tập độc lập các nút mạng hoặc người sử dụng di động mà
kết nối qua đường không dây. Ví dụ: thiết lập liên lạc trong những tình trạng
khẩn cấp hoặc các hoạt động cứu trợ, những nỗ lực làm giảm nhẹ thảm hoạ và
các mạng lưới thông tin quân sự. Trong những viễn cảnh này, việc kết nối tập
trung không thể tin cậy, do đó MANET sẽ là một giải pháp hiệu quả. Với mạng
tập trung, các nút mạng phải thực hiện tìm ra tôpô mạng và chuyển giao thông
báo. Với MANET, thuật toán tìm đường ngắn nhất không đáp ứng như một thuật
toán định tuyến tối ưu. Các nhân tố như: chất lượng kết nối không dây thường
xuyên biến đổi, mất đường truyền, sự giảm âm, nhiễu do nhiều người sử dụng,
nguồn điện sử dụng và sự thay dổi topo trở thành những vấn đề quan trọng.
Mạng phải thay đổi một cách phù hợp với định tuyến để làm giảm bớt những tác
động trên..

9



MANET dựa trên những nền tảng di động. MANET là một hệ thống độc
lập của các nút mạng di động và nó có thể hoạt động một cách riêng biệt hoặc có
thể có các gateway như mạng cố định. Những nút mạng MANET được trang bị
những máy phát không dây và máy thu sử dụng anten mà có thể tác dụng theo
mọi hướng (quảng bá) và có thể định hướng ở mức độ cao (điểm tới điểm).
Trong phạm vi chủ đề của bài đồ án sẽ chỉ tập trung nghiên cứu về mạng
Ad hoc di động (MANET). Vì vậy, thuật ngữ “mạng Ad hoc” ở các phần sau
chính là nói tới mạng MANET.
1.2.2. Đặc điểm chính của mạng Ad hoc
Điểm nổi bật nhất trong mạng Ad hoc là không có các thiết bị cơ bản cố
định ngoại trừ các nút mạng di động tham gia, tất cả các nút mạng đều di động và
có thể được kết nối động một cách ngẫu nhiên.
Kết nối giữa các nút mạng có thể thay đổi theo thời gian do tính chuyển
động của các nút mạng, sự ra đi của nút mạng và sự xuất hiện của những nút
mạng mới làm cho các giao thức mạng trở nên động và không thể dự báo được.
Vì thế, topo của mạng là động nhiều hơn và sự thay đổi thường xuyên không thể
dự báo trước được.
Như đã trình bày ở trên, sự kết nối giữa các máy tính di động tạo thành
một mạng gọi là mạng Ad-hoc khác với các loại mạng đang tồn tại. Thứ nhất là
hình trạng của mạng có thể là khá động. Thứ hai phần lớn người dùng không
muốn thực hiện các hoạt động quản lý để thiết lập một mạng. Các nút mạng
không chắc chắn là đều nằm trong vùng truyền thông của các nút mạng khác.
Một nút di động có thể trao đổi dữ liệu với hai nút di động khác mà hai nút này
không thể trực tiếp trao đổi dữ liệu với nhau. Kết quả là người dùng có thể không
cần đến sự kết hợp dựa trên các kết nối duy trì mạng, đặc biệt khi người dùng di
chuyển từ nơi này đến nơi khác. Hình 1.1 mô tả tính động trong mạng Ad hoc

10



Hình 1.1: Tính động trong mạng Ad hoc
Đầu tiên, nút mạng A và D có một kết nối trực tiếp giữa chúng. Khi D di
chuyển ra ngoài vùng vô tuyến của A thì kết nối bị đứt (Tôpô mạng thay đổi). Tuy
nhiên, mạng vẫn được kết nối vì A có thể liên lạc với D qua C, E và F.
Bên cạnh đó, các nút mạng cũng có thể tự do di chuyển theo các hướng và
tốc độ tùy . trong quá trình truyền thông.
Ngoài ra, các nút mạng hoặc thiết bị Ad hoc có thể phát hiện những thiết
bị khác mới xuất hiện để cho phép việc liên lạc và chia sẻ thông tin. Bên cạnh đó,
nút mạng cũng có thể nhận biết các loại dịch vụ và những thuộc tính tương ứng.
Khi các nút mạng thay đổi trên quãng đường, thông tin định tuyến cũng sẽ thay
đổi để phản ánh kịp thời những thay đổi trong kết nối.
Tóm lại, mạng Ad hoc có những đặc điểm nổi bật sau:
-

Không có cơ sở hạ tầng, không cần người quản lý.
Tự khởi động, tự cấu hình.
Topo mạng thay đổi động.
Định tuyến động.
Các nút mạng vừa là máy chủ vừa là các bộ định tuyến.
Hoạt động phân tán.
Thiết bị có công suất nhỏ.
Tỷ lệ mất gói cao
Với một hệ thống thay đổi động như trong mạng Ad hoc th́ một trong
những vấn đề được quan tâm hàng đầu là vấn đề định tuyến. Đây là vấn đề quan
trọng trong mạng không dây và nó có ảnh hưởng tới những vấn đề liên quan khác

11



(như vấn đề bảo mật, tài nguyên, nguồn năng lượng…). Và cũng vì thế đặt ra
nhiều thách thức đối với mạng Ad hoc.
1.3. Khái niệm hiệu năng mạng
Hiệu năng mạng là một vấn đề phức tạp do các yếu tố có thể tổng hợp đưa
ra nhằm đánh giá vấn đề hiệu năng chưa thực sự rõ ràng. Đã có nhiều khái niệm,
tham số được đưa ra nhằm minh chứng cho bản chất của vấn đề hiệu năng, lý giải
cho việc truyền thông tin hiệu quả hay kém hiệu quả giữa các hệ thống trong
mạng. Tuy nhiên, trong thực tế rất cần có những khái niệm bản chất và sát thực
tiễn với mục tiêu đánh giá được toàn bộ vấn đề hiệu năng bao gồm cả các yếu tố
đo đạc, theo dõi, điều khiển đều được tính đến. Có thể sơ lược khái niệm hiệu năng
mạng như sau: Hiệu năng mạng là hiệu quả và năng lực hoạt động của hệ thống
mạng. Như vậy, việc đánh giá hiệu năng mạng chính là tính toán và xác định hiệu
quả, năng lực thực sự của hệ thống mạng trong các điều kiện khác nhau.
Các điều kiện được sử dụng trong đánh giá hiệu năng là rất quan trọng,
chúng ảnh hưởng trực tiếp tới các kết quả thu được. Trong các điều kiện ảnh
hưởng tới quá trình đánh giá hiệu năng thì kịch bản mô tả là yếu tố then chốt
quyết ðịnh giá trị hiệu nãng tại ðiểm cần ðo. Trong kịch bản cần xác ðịnh các
tham số ðầu vào rõ ràng như các nút tham gia hệ thống, thiết bị kết nối, tác nhân
tham gia, giao thức hoạt động, ứng dụng triển khai, thời gian thực hiện,.. và rất
nhiều yếu tố khác kết hợp tạo ra một kịch bản hoàn thiện.
1.3.1. Các phương pháp đánh giá hiệu năng mạng
1.3.1.1. Phương pháp toán học
Việc sử dụng các phương pháp toán trong tính toán hiệu năng mạng đã
được thực hiện từ lâu, trong đó các công cụ toán học đã được sử dụng rất linh
hoạt và đa dạng như xác suất thống kê, đồ thị, quy hoạch, luồng,... để giải quyết
nhiều vấn đề trong hiệu năng. Ưu điểm chính của phương pháp toán học là có thể
xác định các ngưỡng giá trị của hệ thống qua việc xác định mối tương quan giữa
các yếu tố trước khi tồn tại hệ thống. Nhưng khi áp dụng trong thực tế, việc mô
tả đầy đủ các yếu tố đầu vào cho bài toán là cực kỳ khó khăn do vậy kết quả của
phương pháp này còn nhiều hạn chế.

12


1.3.1.2. Phương pháp đo thực tế
Sau khi hệ thống mạng đã được xây dựng, đây là một hệ thống tổng thể
kết nối của các thiết bị với những công nghệ khác nhau do vậy việc đo đạc để
đưa ra kết quả từ mô hình thật là rất quan trọng. Khi thực hiện đo thực tế, người
đo phải dựng ra được các kịch bản cần đo từ đó tạo ra những điều kiện giống với
kịch bản thực tế và sử dụng các công cụ đo như phần mềm, thiết bị đo để thu
nhận các kết quả thực tế từ hoạt động của hệ thống theo kịch bản. Thông thường
với phương pháp đo thực tế cho chúng ta kết quả với độ chính xác rất cao, tuy
nhiên việc đầu tư quá lớn trước khi biết kết quả hoạt động nhiều khi gây ra sự
lãng phí vì vậy giải pháp đo thực tế chỉ được sử dụng để giám sát hoạt động
mạng. Để đo được giá trị hiệu năng, quan trọng nhất là lấy thông tin chính xác về
hệ thống. Hiện nay phổ biến có 3 phương pháp lấy thông tin sau:
-

Truy vấn trực tiếp các node mạng để lấy trực thiếp thông tin đang lưu trữ.

-

Theo dõi luồng thông tin thực tế trên hệ thống.

-

Xây dựng kịch bản với dữ liệu thử nghiệm để đo hệ thống.
1.3.1.3. Phương pháp mô phỏng
Để giảm sai số của phương pháp toán học, giảm chi phí đầu tư cho hệ
thống trước khi đo trong thực tế, phương pháp mô phỏng đã được sử dụng. Việc
mô phỏng hệ thống đòi hỏi phải mô tả chính xác, chân thực tính năng, kỹ thuật,

yếu tố ràng buộc giữa các nhân tố tham gia và ảnh hưởng tới hệ thống trong thực
tế khi xây dựng. Như vậy, để kết quả chính xác đòi hỏi công tác mô tả kịch bản
phải rất chuẩn xác. Trong khuôn khổ môn học, chúng ta sẽ đi sâu vào tìm hiểu và
áp dụng phương pháp mô phỏng vào đánh giá hiệu năng mạng. Có hai phương
pháp chính được sử dụng trong mô phỏng hệ thống mạng là mô phỏng thời gian
thực và mô phỏng rời rạc. Để mô phỏng theo thời gian thực là rất khó do vậy
phương pháp phổ biến hiện nay là mô phỏng rời rạc tức là các sự kiện được xác
định rõ ràng và có thời điểm mô tả trên trục thời gian.
1.3.2. Các thông số đánh giá hiệu năng mạng
Có nhiều tham số khác nhau để đánh giá hiệu năng của các giao thức định
tuyến. Chúng ta thường sử dụng ba tham số để so sánh hiệu suất mạng tổng thể
khi dùng hai giao thức định tuyến khác nhau. Các thông số này là độ trễ, mất mát
13


gói tin và thông lượng. Những thông số này rất quan trọng trong việc xem xét
đánh giá của các giao thức định tuyến trong một mạng. Các giao thức này cần
được kiểm tra với các thông số nhất định cho hoạt động vủa nó. Để kiểm tra hiệu
quả giao thức trong việc tìm kiếm một tuyến đường đến đích, chúng ta sẽ xem
xét đến nguồn đó để kiểm soát các gói tin gửi đi. Nếu các giao thức định tuyến có
độ trễ cao thì giao thức đó không hiệu quả khi so sánh với các giao thức có độ trễ
thấp hơn. Giao thức nào bị mất gói tin nhiều sẽ không hiệu quả bằng giao thức
mất ít gói tin. Thông lượng là lượng thông tin thực tế truyền qua một liên kết
trong một đơn vị thời gian. Nếu giao thức nào có thông lượng cao thì sẽ hiệu quả
hơn so với giao thức có thông lượng thấp. Những thông số này có ảnh hưởng rất
lớn trong việc lựa chọn giao thức định tuyến cho một mạng cụ thể.
1.3.2.1. Delay
Độ trễ của gói tin là thời gian mà gói tin gửi từ nguồn đến khi tới đích. Vì
vậy đây là thời gian mà gói tin cần để đi trên mạng. Thời gian này có đơn vị giây.
Ví dụ về độ trễ như trong truyền tiếng nói, truyền file FTP. Có rất nhiều độ trễ,

như độ trễ xử lí (PD), độ trễ hàng đợi (QĐ), độ trễ truyền dẫn (TD). Chúng ta tìm
hiểu độ trễ khi truyền gói tin từ nguồn tới đích: giả sử gói tin A được gửi tại thời
điểm tggui[A] và đến đích tại thời điểm tgnhan[A]. Khi đó độ trễ của gói tin
được xác định:
Delay[A] = tgnhan[A] – tggui[A]
1.3.2.2. Throughput
Thông lượng (Throughput) là lượng thông tin hữu ích được truyền đi trên
mạng trong một đơn vị thời gian và nó là tham số để đánh giá mạng nhanh hay
chậm. Đơn vị của thông lượng là byte hoặc bit trên giây (byte/s hoặc bit/s). Một
số thông số ảnh hưởng đến thông lượng là sự thay đổi về liên kết mạng, truyền
thông không tin cậy giữa các node, hạn chế về băng thông. Một thông lượng cao
là sự lựa chọn tuyệt vời cho mạng. Cách tính thông lượng có thể được biểu diễn
một cách toán học như sau:

-

Number of delivered packet: Tổng số gói tin mà bên nhận nhận được từ bên gửi.
14


-

Packet size: Kích thước gói tin (byte)

-

Total duration of simulation: Khoảng thời gian từ lúc bên nhận nhận gói tin đầu
tiên và gói tin cuối cùng.
1.3.2.3. Packet loss
Sự mất mát gói tin nhiều hay ít cũng là tiêu chuẩn quan trọng trong việc

đánh giá giá thức hoạt động tốt hay không, giao thức nào mà số lượng gói tin bị
mất thấp thì sẽ được đánh giá cao hơn. Giả sử tại nguồn A gửi đi x gói tin, đích B
nhận được y gói tin. Khi đó số gói tin bị mất là (x – y). Có rất nhiều lí do khiến
gói tin bị mất như tràn bộ đệm, bị mất trên đường truyền
1.4. Tổng quan về NS2
NS2- Network Simulator Version 2: là phần mền 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. Đượ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 diện rộng WAN và mạng
local LAN.
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ền mã nguồn mở có thể chạy được trong
môi trường Linux và Window.
1.4.1. Kiến trúc của NS2
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à thức gói thường dùng (UDP), các dịch vụ nguồn lưu lượng như giao thức
truyền tập tin (FTP), 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.

15


Hình 1.2: Mô hình đơn giản của NS
Otcl:


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 modun Trợ giúp Thiết lập mạng

Plumbling Modules:


Các modun Plumbling

Simulation Results:

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

Analysis :

Phân tích

NAM:

Minh họa Mạng NAM

NS-2 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.

-

Các modun trợ giúp thiết lập mạng (modun Plumbing).

-

Để sử dụng NS-2, user lập trình bằng ngôn ngữ kịch bản OTcl. User có thể thêm

các mã nguồn Otcl vào NS-2 bằng cách viết các lớp đối tượng mới trong OTcl.
Những lớp này khi đó sẽ được biên dịch cùng với mã nguồn gốc.

-

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


-

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.

-

Bộ lập lịch sự kiện trong NS2 thực hiện những việc sau:

-

Tổ chức bộ định thời mô phỏng.


-

Hủy 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.

-

File name 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.3: Luồng các sự kiện cho file Tcl chạy trong Name

-

Trong mô phỏng mạng dùng NS2 ta sử dụng:

-


NAM Visual Simulation: Mô phỏng ảo NAM.

-

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

17


Network
Components

Tcl
C/C++

Event

OTcl

Scheduler

TclCL

ns-2

Hình 1.4: Kiến trúc của NS2
Hình trên biểu diễn kiến trúc 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à 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.
NS sử dụng hai ngôn ngữ lập trình: Ngôn ngữ kịch bản OTcl và ngôn ngữ
lập trình hệ thống 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 hoàn toàn là
hướng đối tượng.

Hình 1.5: TclCL hoạt động như lien kết giữa A và B
TclCL 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.

18


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.
NS phải sử dụng đến 2 ngôn ngữ vì Bộ mô phỏng cần thực hiện hai việc
khác nhau:
Việc 1: 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 toán 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.
Việc 2: Khi nghiên cứu mạng thì rất cần quan tâm đến các tham số và 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 thay đổ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.
Vì thế mà dùng C++ để:
Mô phỏng giao thức chi tiết theo yê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 toán
- Tốc độ thời gian thực là quan trọng nhất
- 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.
Dùng OTcl để:
-

Mô phỏng những thông số hay cấu hình thay đổi

-

Cấu hình, thiết lập những gì chỉ làm 1 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.

19


1.4.2. Đặc điểm của NS2
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

-

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
Lợi ích của NS-2:
- 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.
1.4.3. Các thành phần cấu hình mạng trong NS-2
Lớp Simulator: Trong bộ công cụ giả lập NS-2, lớp quan trọng nhất là
lớp Simulator. Nó cung cấp các thủ tục, giao tiếp để tạo, quản lý topology và lưu
giữ 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 tạo một thể nghiệm của lớp Simulator
để điều khiển và thực hiện 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 …
Khởi tạo đối tượng Simulator: Cú pháp để khởi tạo một đối tượng
Simulator như sau:
set ten_doi_tuong [new Simulator]
set ns_ [new Simulator]
Sau khi khởi tạo đối tượng thì thủ tục khởi tạo sẽ thực hiện các công việc:

20


+ Khởi tạo định dạng của gói dữ liệu (gọi hàm create_packetformat).

+ Tạo một bộ lập lịch (scheduler) , mặc định là calendar scheduler.
+ Tạo một “null agent” . null agent được tạo bằng cú pháp:
set nullAgent_ [new Agent/Null]
Các bộ lập lịch và các sự kiện: Hiện tại NS-2 cung cấp bốn bộ lập lịch
cho công cụ giả lập:
+ List scheduler.
+ Heap Scheduler.
+ Calendar scheduler.
+ Real time scheduler.
Quy trình làm việc của bộ lập lịch như sau: Bộ lập lịch các sự kiện sẽ chọn
sự kiện kế tiếp gần nhất trong bộ lập lịch để thực thi, sau khi thực thi xong sẽ trở
về để thực thi sự kiện kế tiếp. Đơn vị thời gian dùng trong bộ lập lịch được tính
bằng giây. Hiện tại, bộ công cụ giả lập chỉ sử dụng tiến trình đơn, tức là tại một
thời điểm chỉ có một sự kiện được xử lý. Nếu có nhiều sự kiện trong bộ lập lịch
thì sự kiện nào vào trước sẽ được xử lý trước. Trong mỗi kịch bản giả lập chỉ
được sử dụng một bộ lập lịch.
-

Bộ lập lịch List Scheduler: (lớp Scheduler/List) được cài đăt dựa trên cấu trúc
dữ liệu danh sách liên kết đơn. Bộ lập lịch này dùng thời gian để phân biệt
thứ tự các sự kiện vì vậy khi thêm hoặc xóa một sự kiện cần phải tìm kiếm cả
danh sách để chọn một entry thích hợp. Khi chọn sự kiện kế tiếp để thực thi

-

thì cần phải dời các sự kiện còn lại lên một vị trí.
Bộ lập lịch Heap Scheduler: (lớp Scheduler/Heap) dùng cấu trúc dữ liệu
Heap để cài đặt. Cấu trúc dữ liệu này cao cấp hơn so với danh sách liên kết vì
lưu trữ được nhiều sự kiện hơn.Độ phức tạp của các thao tác thêm, xóa bằng


-

O(log n) tương ứng với n sự kiện.
Bộ lập lịch Calendar Scheduler: (lớp Scheduler/Calendar) sử dụng cấu trúc
dữ liệu tương tự như lịch tính dương lịch, mà các sự kiện cùng ngày, tháng
của các năm khác nhau có thể được lưu trữ trong cùng một ngày.

21


-

Bộ lập lịch thời gian thực Real-Time Scheduler: (lớp Scheduler/ RealTime)
đồng bộ thực thi các sự kiện trong thời gian thực. Bộ lập lịch này vẫn đang
trong giai đoạn phát triển.
Định nghĩa Cấu trúc Heap:Heap là cây nhị phân gần đầy được cài đặt bằng

mảng một chiều với các node trên heap có nội dung nhỏ hơn hoặc bằng nội dung
của node cha. Heap này được gọi là heap giảm (descending heap ). Heap tăng
( ascending heap ) thì ngược lại: các node trên heap có nội dung lớn hơn hoặc
bằng nội dung của node cha.

Hình 1.6 Cấu trúc Heap giảm
Cấu trúc heap giảm được cài đặt bằng cây nhị phân và mảng một chiều
Các phương thức khác:Lớp Simulator còn cung cấp thêm một số
phương thức cho việc cài đặt các thông số cho việc giả lập.
- Các phương thức này bao gồm ba loại:
+ Các phương thức tạo, quản lý các node, topo và các liên kết.
+ Các phương thức thực hiện việc ghi nhận kết quả của quá trình giả lập.
+ Các phương thức trợ giúp tương tác với bộ lập lịch.

- Các phương thức bao gồm:
+ Simulator instproc now: trả về thời gian hiện tại.
+ Simulator instproc at args: thực thi sự kiện ở thời điểm cụ thể.
+ Simulator instproc cancel args: hủy bỏ việc thực thi sự kiện.
+ Simulator instproc run args: bắt đầu khởi động bộ lập lịch.
+ Simulator instproc halt: dừng bộ lập lịch.

22


+ Simulator instproc flush-trace: flush all trace object write buffers.
+ Simulator instproc create-trace type files src dst: tạo đối tượng trace.
+ Simulator instproc create_packetformat: thiết lập định dạng gói dữ liệu.
Tạo Node: Để tạo một node trong Tcl ta dùng cú pháp:
set ns_ [new Simulator]
$ns node
Một node trong NS chứa ít nhất các thành phần sau:
+ Địa chỉ hoặc số ID, giá trị này khởi tạo bằng 0, và tuần tự tăng 1 đơn
vị khi có một node mới được tạo ra.
+ 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.
Cấu hình cho MobileNode: Cấu hình cho node chủ yếu tập trung vào
Wireless. Bao gồm các thông số sau: loại cấu trúc ðịa chỉ sử dụng là ðịa chỉ ðẳng
cấp hay phân cấp, ðịnh nghĩa các thành phần mạng cho mobilenode: ðịa chỉ
MAC, loại Antenna, sóng truyền, lựa chọn giao thức định tuyến, định nghĩa mô
hình năng lượng, …
set topo [new Topography]
$ns_ node-config -addressingType hierarchical \

-adhocRouting AODV \
-llType LL \
-macType MAC/802_11 \
-ifqType Queue/DropTail/PriQueue \
-ifqLen 50 \
-antType Antenna/OmniAntenna \
-propType Propagation/TwoRayGround \
-phyType Phy/WirelessPhy \
-topologyInstance $topo \
-channel Channel/WirelessChannel \

23


-agentTrace ON \
-routerTrace ON \
-macTrace OFF \
-movementTrace OFF
Giá trị mặc định của các tham số trên là NULL, ngoại trừ addressingType
có giá trị mặc định là flat.
Cấu hình cho Base-Station Node: Cấu hình cho Base-Station Node
tương tự như cấu hình của WirelessNode tuy nhiên, Base-Station có khả năng
định tuyến đến mạng có dây trong khi MobileNode thì không có khả năng đó. Do
đó, để cấu hình cho Base-Station Node, ta thêm thuộc tính:
$ns_ node-config –wiredRouting ON
Tạo liên kết cho các Node: Trong NS-2 có hai loại liên kết các node:
+ Liên kết đơn công.
+ Liên kết song công.
Liên kết đơn công là loại liên kết theo kiểu point-to-point giữa hai node
mà chỉ có một node truyền và một node nhận. Lớp tương ứng trong OTcl của liên

kết đơn công là lớp SimpleLink. Cú pháp của liên kết đơn công giữa hai node:
set ns_ [new Simulator]
$ns_ simplex-link <node0> <node1>
<bandwidth><delay>< queue_type>
Câu lệnh trên tạo ra một liên kết từ node0 đến node1 với một giá trị băng
thông bandwidth, thời gian trễ giữa hai lần truyền delay và liên kết sử dụng loại
hàng đợi queue_type. Loại hàng đợi đã được đề cập ở trên.
Liên kết song công cũng là liên kết point-to-point giữa hai node nhưng
mỗi node đều có khả năng vừa truyền và vừa nhận, tức liên kết song công là hai
liên kết đơn công. Cú pháp cũng tương tự như liên kết đơn công:
set ns_ [new Simulator]
$ns_ duplex-link <node0> <node1> <bandwidth>
<delay> < class Application: public TclOject {
public:

24


Application();
virtual void send(int nbytes);
virtual void recv(int nbytes);
virtual void resume();
protected:
int command(int argc, const char* const* argv);
virtual void start();
virtual void stop();
Agent *agent_;
int enableRecv_; // call Otcl recv or not
int enableResume_; // call Otcl resume or not
};

1.4.4. Ứng dụng trong NS-2
1.4.4.1. 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. Các phương thức lớp application:
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.
1.4.4.2. Mạng không dây trong NS-2
Thành phần quan trọng nhất trong mô hình mạng không dây là
MobileNode.Trong C++, lớp MobileNode được kế thừa từ lớp cha là lớp Node.
Do đó,MobileNode có đầy đủ các đặc điểm của đối tượng Node, thêm vào đó là
các đặc tính của Wireless như khả năng di chuyển tự do trong phạm vi của
topology, có khả năng truyền và nhận tín hiệu vô tuyến.
Điểm khác nhau quan trọng giữa Node và MobileNode là MobileNode
không dùng khái niệm Link (liên kết có dây) để liên kết với các Node hay các
MobileNode khác. Thay vào đó, MobileNode sử dụng sóng vô tuyến để liên kết
với các MobileNode khác.

25


×