You are on page 1of 79

Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

LỜI NÓI ĐẦU


Cùng với sự gia tăng nhanh chóng về số lượng cũng như công nghệ của các thiết
bị di động kéo theo nhu cầu của người sử dụng công nghệ không dây ngày càng cao và
đa dạng.Vì vậy để đáp ứng được xu thế đó, mạng thông tin không dây ngày nay phải
gánh vác trọng trách lớn hơn là giải quyết vấn đề về lưu lượng đa phương tiện, tốc độ
cao,chất lượng ngày càng phải tốt hơn.
Song song với yêu cầu hỗ trợ đa phương tiện với chất lượng dịch vụ (QoS) đảm
bảo, các công nghệ giao tiếp không dây khác nhau đã xuất hiện,Ad hoc là một kiểu
mạng thông tin không dây linh hoạt.Đó là tập hợp của hai hay nhiều thiết bị được trang
bị khả năng nối mạng và truyền thông không dây.Các thiết bị đó có thể giao tiếp với
các nút mạng khác ngay lập tức trong vùng phủ sóng hay một thiết bị không dây khác
ngoài bên ngoài với điều kiện có các nút trung gian để chuyển tiếp thông tin từ nút
nguồn đến nút đích.Ad hoc có khả năng tự tổ chức và thích nghi, khi đã hình thành có
thể bị giải tán bất cứ lúc nào mà không cần đến bất cứ sự quản trị hệ thống nào.Ad hoc
có nhiều dạng khác nhau và có thể di chuyển,đứng độc lập hay nối mạng.Các nút mạng
có thể phát hiện sự có mặt của các thiết bị khác trong giải vô tuyến và thực hiện sự bắt
tay cần thiết để cho phép truyền thông, chia sẻ thông tin và dịch vụ.Tôpô của mạng
thông tin tùy biến thay đổi động do các thiết bị không bị ràng buộc vào một vị trí cụ thể
nên việc truy nhập phương tiện tập trung. Giao thức định tuyến phải giảm lưu lượng
điều khiển, đơn giản tính toán đường định tuyến. Chính vì thế giao thức định tuyến
đóng vai trò quan trọng trong vận hành mạng Ad hoc.
Đồ án là tổng quan về bốn giao thức định tuyến trong mạng Ad hoc, đánh giá
thông lượng của các giao thức đó dựa trên công mô phỏng OMNET++. Do thời gian
cũng như trình độ còn hạn chế, đồ án không tránh khỏi những thiếu sót, em rất mong
nhận được ý kiến đóng góp.

Để có thể hoàn thành được đồ án tốt nghiệp này, em đã được học hỏi những kiến
thức quí báu từ các thầy, cô giáo của Trường Đại học Bách Khoa Hà Nội trong suốt

Vũ Huy Cường- ĐT3- K49 1


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

năm năm đại học. Em vô cùng biết ơn sự dạy dỗ, chỉ bảo tận tình của các thầy, các cô
trong thời gian học tập này.

Em xin bày tỏ lòng biết ơn của mình tới thầy Nguyễn Trung Dũng – Bộ môn Hệ
thống viễn thông – Khoa Điện tử viễn thông – Trường Đại học Bách Khoa Hà Nội,
người đã định hướng cho những nghiên cứu của em, người trực tiếp hướng dẫn và chỉ
bảo em hoàn thành đồ án này.

Cuối cùng, em xin cảm ơn gia đình, bạn bè đã luôn tạo điều kiện thuận lợi, động
viên và giúp đỡ em trong suốt thời gian học tập và nghiên cứu đồ án. Ngoài ra, kiến
thức thu được từ các thầy cô cũng là nguồn cổ vũ tinh thần lớn nhất giúp em có thể tập
trung và hoàn thành tốt đề tài tốt nghiệp này.

Hà Nội, tháng 5- 2009

Sinh viên

Vũ Huy Cường

Vũ Huy Cường- ĐT3- K49 2


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

TÓM TẮT ĐỒ ÁN
Mạng Ad hoc là một công nghệ hữu dụng trong mạng không dây. Công nghệ này
cho phép các nút mạng giao tiếp trực tiếp với nhau bằng cách sử dụng máy thu phát vô
tuyến mà không cần có cơ sở hạ tầng cố định. Đây là một đặc trưng riêng của mạng Ad
hoc so với các mạng truyền thống trước đây như mạng cellular hay mạng LAN không
dây khi ở đó các nút giao tiếp với nhau thông qua trạm gốc (Base Station). Tuy nhiên,
mang Ad hoc phải đối mặt với một số thách thức như giới hạn phạm vi truyền dẫn, vấn
đề trạm ẩn, mất gói do lỗi đường truyền, sự chuyển động của các nút mạng làm thay
đổi tuyến đường, sự rằng buộc về băng thông và năng lượng. Giao thức định tuyến
được sử dụng để Khám phá tuyến giữa các nút giúp cho việc giao tiếp trong mạng dễ
dàng hơn. Mục đích chính của một giao thức định tuyến trong mạng Ad hoc là thiết lập
tuyến đường chính xác và hiệu quả giữa các cặp nút. Đồ án đưa ra tổng quan về bốn
giao thức định tuyến: DYMO, DSR, AODV, OLSR, sử dụng công cụ mô phỏng
OMNET++ và đánh giá trễ đầu cuối của các giao thức này dựa trên các thông số đặt ra.
Đồ án gồm 5 chương
• Chương 1: Tổng quan về mạng Ad hoc

• Chương 2: Định tuyến trong mạng Ad hoc

• Chương 3: Thông số đánh giá và mô hình chuyển động trong mô phỏng mạng
Ad hoc

• Chương 4: Mô phỏng và đánh giá thông lượng của OLSR, AODV, DSR và
DYMO bằng OMNET++

• Chương 5: Kết luận

Vũ Huy Cường- ĐT3- K49 3


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

ABSTRACT
Ad hoc networks are the ultimate frontier in wireless communication. This
technology allows network nodes to communicate directly to each other using wireless
transceivers without the need for a fixed infrastructure. This is a very distinguishing
feature of ad hoc networks with respect to more traditional wireless networks, such as
cellular networks and wireless LAN, in which nodes communicate with each other
through BS. Some challenges that ad hoc networking faces are limited wireless
transmission range, hidden terminal problems, packet losses due to transmission errors,
mobility- induced route changes, bandwidth and battery constraints. In order to
facilitate communication within the network, a routing protocol is used to discover
routes between nodes. The primary goal of such an Ad hoc network routing protocol is
correct and efficient route establishment between a pair of nodes so that message may
be delivered in a timely manner. This thesis provides an overview of four different
routing protocols: DYMO, DSR, AODV, OLSR, uses OMNET++ simulator and
evaluates throughput of these protocols based on a given set of parameters.
The thesis has a total of 5 chapters:
• Chapter 1: Overview of Ad hoc network

• Chapter 2: Routing in Ad hoc network

• Chapter 3: Protocol Evaluation parameters and Mobility models


for Ad hoc network simulation

• Chapter 4: Simulating and evaluating throughput of AODV,


OLSR, DSR and DYMO in OMNET++

• Chapter 5: Summary

Vũ Huy Cường- ĐT3- K49 4


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

MỤC LỤC

LỜI NÓI ĐẦU..................................................................................................1


TÓM TẮT ĐỒ ÁN............................................................................................3
ABSTRACT......................................................................................................4
MỤC LỤC........................................................................................................5
DANH SÁCH HÌNH VẼ...................................................................................6
DANH SÁCH BẢNG BIỂU..............................................................................7
1 CHƯƠNG 1. TỔNG QUAN VỀ AD HOC NETWORK ......................................7
CHƯƠNG 2. ĐỊNH TUYẾN TRONG MẠNG AD HOC......................................18
3 CHƯƠNG 3 THÔNG SỐ ĐÁNH GIÁ VÀ MÔ HÌNH CHUYỂN ĐỘNG
TRONG MÔ PHỎNG MẠNG AD HOC..................................................................44
4 CHƯƠNG 4. MÔ PHỎNG VÀ ĐÁNH GIÁ THÔNG LƯỢNG CỦA AODV,
OLSR, DSR VÀ DYMO BẰNG OMNET++............................................................51
5 CHƯƠNG 5. KẾT LUẬN.......................................................................................69
TÀI LIỆU THAM KHẢO................................................................................70
BẢNG THUẬT NGỮ VIẾT TẮT.....................................................................72
PHỤ LỤC......................................................................................................73

Vũ Huy Cường- ĐT3- K49 5


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

DANH SÁCH HÌNH VẼ

Hình 1.1 Mô hình mô tả khái niệm mạng Ad hoc.....................................................9


Hình 1.2 Ứng dụng cho các dịch vụ khẩn cấp khi có thiên tai...............................11
Hình 1.3 Ứng dụng trong các hội nghị.....................................................................12
Hình 1.4 Ứng dụng cho home networking...............................................................12
Hình 1.5 Ứng dụng cho mạng cá nhân.....................................................................13
Hình 1.6 Ứng dụng cho mạng xe cộ..........................................................................14
Hình 2.1 Hệ tọa độ cơ bản mô tả môi trường mạng Ad Hoc.................................21
Hình 2.2 Phân loại các giao thức định tuyến trong mạng Ad hoc..........................24
Hình 2.3 Quá trình phát tràn lan bản tin quảng bá................................................28
Hình 2.4 Bầu chọn MPR...........................................................................................29
Hình 2.5 Khám phá tuyến trong DSR.......................................................................32
Hình 2.6 Duy trì tuyến, nút C không thể chuyển tiếp từ A đến E qua .................34
liên kết tới bước nhảy tiếp theo D của nó.................................................................34
Hình 2.7 Thiết lập tuyến đường đi ngược................................................................38
Hình 2. 8 Thiết lập tuyến đường thuận.....................................................................40
Hình 2.9: Sự khác nhau giữa AODV và DYMO......................................................42
Hình 3.1 Mô hình di chuyển Random Waypoint.....................................................49
Hình 3.2 Mô hình di chuyển hướng ngẫu nhiên.......................................................50
Hình 4.1 Các module đơn giản và kết hợp...............................................................53
54
Hình 4.2 Các kết nối..................................................................................................54
Hình 4.4 Quá trình gửi bản tin RREQ của DYMO.................................................62
63
Hình 4.5 Quá trình gửi bản tin RREP của DYMO..................................................63
64
Hình 4.6 Quá trình gửi gói tin dữ liệu của DYMO..................................................64
65

Vũ Huy Cường- ĐT3- K49 6


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Hình 4.7 Quá trình gửi ACK báo nhận của DYMO................................................65
Hình 4.9 Thông lượng đầu cuối - đầu cuối.............................................................67
Qua biểu đồ thông lượng < hình 4.9 > ta nhận thấy thông lượng tỷ lệ thuận với gói
nhận.............................................................................................................................67
Thông lượng của DYMO là cao nhất do DYMO là giao thức định tuyến hoạt động
theo yêu cầu hoặc theo bảng điều khiển,là sự tối ưu của DSR và AODV.Khi các
nút mạng chuyển động liên tục,thông lượng của DYMO vẫn rất cao ...................67
Thông lượng của OLSR cao hơn AODV và DSR vì OLSR có thể đáp ứng khi topo
mạng thay đổi, nó cho phép khám phá tuyến nhanh chóng tới các hàng xóm và
các MPR của chúng để thiết lập kết nối với các nút khác.......................................67
Khi mức độ di chuyển tăng (giảm pausetime) thì thông lượng của 3 giao thức
DSR, AODV, OLSR giảm rõ rệt với mức giảm tương đương nhau.Trong khi đó
thì DYMO thể hiện được sự ổn định của mình khi có thông lượng khá cao.OLSR
có thông lượng cao hơn AODV và DSR....................................................................67

DANH SÁCH BẢNG BIỂU


Bảng 3.1 Bảng các biến trong thông số di chuyển....................................................47
Bảng 4.1 Bảng thông số đánh giá dùng trong mô phỏng........................................66

1 CHƯƠNG 1. TỔNG QUAN VỀ AD HOC


NETWORK

Vũ Huy Cường- ĐT3- K49 7


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Chương này trình bày các khái niệm tổng quan nhất về mạng Ad hoc, các ứng
dụng trong nhiều lĩnh vực cuộc sống của mạng Ad hoc. Đồng thời, đề cập đến các
thách thức mà mạng Ad hoc đang phải đối mặt.

1.1 MỞ ĐẦU

Mạng máy tính từ lâu đã trở thành một phần không thể thiếu đối với nhiều lĩnh
vực đời sống xã hội, từ các hệ thống mạng cục bộ đến hệ thống mạng toàn cầu như
Internet. Mạng máy tính đưa mọi người trên thế giới đến gần nhau hơn, mỗi người
được tiếp cận với một nguồn thông tin, tri thức phong phú.
Xã hội phát triển, con người vận động không ngừng, một người kết nối vào mạng
bằng cáp vật lý thì việc di chuyển của họ bị hạn chế, nhu cầu đặt ra là vừa kết nối vừa
có thể di chuyển và có thể kết nối bất cứ đâu một cách đơn giản. Chính nhu cầu này đã
kích thích ngành công nghiệp mạng không dây tiềm năng phát triển mạnh mẽ.
Mạng Ad hoc là một kiểu mạng không dây rất linh hoạt. Đó là tập hợp của hai
hay nhiều thiết bị được trang bị khả năng nối mạng và truyền thông không dây. Các
thiết bị như vậy có thể giao tiếp với tất cả thiết bị mạng khác ngay lập tức trong dải vô
tuyến (vùng phủ sóng, phạm vi mà thiết bị mạng đó nhận biết được) hay một thiết bị vô
tuyến khác nằm ngoài dải vô tuyến của chúng với điều kiện có các node trung gian để
chuyển tiếp thông tin từ node nguồn đến node đích. Thiết bị hỗ trợ mạng Ad hoc đa
dạng và sử dụng khá phổ biến như laptop, điện thoại di động Internet. Vì có nhiều ưu
thế vượt trội và những thách thức cần giải quyết, ngày nay mạng Ad hoc đã và đang
được nghiên cứu triển khai thành công ở một số nước mà phổ biến là Mỹ. Mạng Ad
hoc đặc biệt hữu ích trong các ứng dụng như khắc phục thảm họa thiên nhiên, quốc
phòng, y tế, hội nghị nên có xu hướng ứng dụng rộng rãi trên thế giới.

1.2 KHÁI NIỆM


Mạng Ad hoc là tổ hợp của các node di động được kết nối với nhau bằng các liên
kết không dây, các node tự do di chuyển nên kiến trúc mạng có thể thay đổi liên tục mà

Vũ Huy Cường- ĐT3- K49 8


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

không dự đoán được. Mỗi node mạng có một giao diện vô tuyến giao tiếp với các node
mạng khác thông qua sóng vô tuyến hoặc hồng ngoại. Các mạng này không dùng bất
cứ sự hỗ trợ cơ sở hạ tầng mạng cố định hay chịu sự quản lí tập trung nào. Đây là một
đặc điểm riêng biệt của mạng Ad hoc so với các mạng không dây truyền thống – mạng
chia ô, mạng WLAN, trong đó các node (các thuê bao di động ) liên lạc với nhau thông
qua trạm vô tuyến cơ sở.

Hình 1.1 Mô hình mô tả khái niệm mạng Ad hoc

Trong Ad hoc không tồn tại khái niệm quản lý tập trung, nó đảm bảo mạng sẽ
không bị sập vì trường hợp nút mạng di chuyển ra ngoài khoảng truyền dẫn của các nút
mạng khác. Nút mạng có thể ra vào bất cứ lúc nào. Do khoảng truyền dẫn của nút
mạng là hạn chế nên chúng trao đổi thông tin bằng phương pháp truyền gói tin qua
nhiều bước (Multihops). Để làm được điều này, thì tất cả các nút mạng phải có khả
năng chuyển tiếp gói tin đến nút mạng khác, do vậy tất cả các nút mạng trong Ad hoc
có thể hoạt động như máy trạm và router. Nên nút mạng có thể bao gồm một router và
một máy trạm liên kết với nhau. Một router thực hiện các giao thức định tuyến, máy
trạm di động có địa chỉ IP.

Vũ Huy Cường- ĐT3- K49 9


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Ad hoc cũng có khả năng thực hiện thay đổi về cấu hình mạng và khắc phục sự cố
của nút mạng thông qua thủ tục cấu hình lại mạng. Ví dụ: Nếu nút mạng rời khỏi mạng
sẽ gây ra sự cố liên kết, nút mạng bị ảnh hưởng có thể yêu cầu đường định tuyến mới
và vấn đề sẽ được giải quyết. Điều này sẽ gây ra trễ trên mạng, tuy nhiên với người sử
dụng Ad hoc vẫn hoạt động bình thường.
Ad hoc có nhiều ưu điểm của mạng truyền thông vô tuyến thông thường, liên kết
giữa các nút mạng được hình thành ngay khi chúng nằm trong khoảng truyền dẫn của
nhau

1.3 ĐẶC ĐIỂM

Ad hoc thường được mô tả có cấu trúc mạng thay đổi do sự thay đổi vị trí của các
nút mạng. Các giao thức định tuyến có cơ chế tự phát hiện các thay đổi về định tuyến
thông qua các thuật toán định tuyến thông thường như vector khoảng cách và trạng thái
các liên kết. Một đăc điểm khác của các nút mạng trong mạng Ad hoc: bị giới hạn về
khả năng của CPU, bộ nhớ, dung lượng pin và băng thông. Khi năng lượng sử dụng bị
giới hạn kéo theo giới hạn về khả năng truyền dẫn. Thiết bị truy nhập, môi trường vô
tuyến cũng có các đặc điểm đặc biệt mà người thiết kế cần lưu tâm khi đưa ra các giao
thức định tuyến cho Ad hoc. Ví dụ: các liên kết một chiều, nó xuất hiện trong trường
hợp 2 nút mạng có công suất phát khác nhau nên có khoảng truyền dẫn khác nhau, chỉ
cho phép một nút mạng nghe nút mạng kia. Liên kết một chiều chỉ có trong Ad hoc,
không tồn tại trong mạng tế bào. Sử dụng phương pháp định tuyến nhiều bước thì các
nút mạng có thể tiết kiệm được năng lượng phát ra.

1.4 ỨNG DỤNG


Ad hoc được ứng dụng cho hội thảo, ứng dụng trong quân sự. Nó cũng được sử
dụng cho trường hợp triển khai cơ sở hạ tầng mạng là khó khăn. Ví dụ: khách hàng có
thể chia sẻ tệp tin dữ liệu ở sân bay, sinh viên trao đổi thông tin với nhau trong tiết

Vũ Huy Cường- ĐT3- K49 10


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

học… Khi máy tính di động giao tiếp thông qua giao diện mạng LAN vô tuyến, thì
nhóm các máy tính đó hình thành mạng Ad hoc, khi đó máy tính có thể truy nhập
Internet, tài nguyên trên mạng như máy in, máy scan...

1.4.1 Dịch vụ khẩn cấp


Bất kỳ đâu khi có trường hợp khẩn cẩp xảy ra đều cần có sự kết hợp của các nhân
viên cứu hộ. Giải pháp thông thường là dùng thiết bị vô tuyến. Tuy nhiên, khi cơ sở hạ
tầng bị hỏng hoặc không còn hoạt động thì giải pháp là gì? Ad hoc chính là câu trả lời
nhanh nhất và phù hợp nhất. Điều này có thể không có ý nghĩa với khu vực tổn thất
nhỏ, tuy nhiên với thảm họa thiên nhiên có khu vực ảnh hưởng tàn phá rộng lớn, việc
liên lạc rất quan trọng nên Ad hoc trở thành giải pháp hữu ích.

Hình 1.2 Ứng dụng cho các dịch vụ khẩn cấp khi có thiên tai

1.2.2 Hội nghị


Trong hội nghị, hội thảo cần trao đổi thông tin giữa các đại biểu hoặc với hội nghị
khác. Đây là một nhu cầu lớn trong thời đại phát triển nhanh về thông tin như hiện nay,
khi mà giải pháp homenetwork chưa thật sự sẵn sàng. Giải pháp hiện tại là sử dụng các

Vũ Huy Cường- ĐT3- K49 11


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

mạng có sẵn cho các đại biểu tham dự tuy nhiên nó có độ trễ lớn, ví dụ giải pháp
Mobile IP .Và Ad hoc là giải pháp chiếm ưu thế.

Hình 1.3 Ứng dụng trong các hội nghị

1.2.3 Home Networking


Rõ ràng sự hiện diện của máy tính xách tay và ứng dụng không dây làm nhu cầu
về home network tăng cao.Việc sử dụng kỹ thuật của Ad hoc cho phép chúng tự cấu
hình và hình thành mạng, điều này tiện lợi cho cả người không thật sự am hiểu về
mạng cũng như giảm được chi phí cho xây dựng thiết kế mạng. Hơn nữa, nếu ta có
nhu cầu sử dụng máy tính ở công sở, trường học thì khối lượng thông tin quản lý mạng
giảm xuống rõ rệt.

Hình 1.4 Ứng dụng cho home networking

1.2.4 Mạng cá nhân (PAN)

Vũ Huy Cường- ĐT3- K49 12


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Ở thời đại thông tin thì 1 người cần mang theo nhiều công cụ hỗ trợ cho công việc
(điện thoại,Palm...) khi chúng được liên kết với nhau hình thành mạng cá nhân PAN thì
rõ ràng mang lại nhiều tiện ích hơn cho người sử dụng. PAN là mạng di động do con
người không thể ngồi yên một chỗ, tuy nhiên khi kết nối với mạng PAN khác cần trợ
giúp của Ad hoc.

Hình 1.5 Ứng dụng cho mạng cá nhân

1.2.5 Hệ thống nhúng (embeded system)


Ngày càng có nhiều máy móc cần kết nối với những vật xung quanh kéo theo nhu
cầu của Ad hoc. Nó có thể là đồ chơi có khả năng kết nối mạng, tương tác được với
home network để tìm kiếm dữ liệu trên internet hoặc có thể kết nối với điện thoại, có
thể điều chỉnh volume của TV khi có cuộc gọi đến....đáp ứng nhiều nhu cầu của người
sử dụng.

1.2.6 Mạng xe cộ (vehicular network)


VANET (Vehicular Ad Hoc Network) gọi là mạng xe cộ Ad hoc, là hệ thống
mạng không cần cơ sở hạ tầng, được tạo thành từ các phương tiện xe cộ lưu thông trên
đường. Chúng được trang bị thiết bị thu phát để có thể liên lạc, chia sẻ và trao đổi

Vũ Huy Cường- ĐT3- K49 13


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

thông tin với nhau giống như một nút trong mạng Ad hoc. Thông tin trao đổi trong
mạng VANET bao gồm thông tin về lưu lượng xe cộ, tình trạng kẹt xe, tai nạn giao
thông, nguy hiểm cần tránh và cả những dịch vụ thông thường như dịch vụ đa phương
tiện, Internet....

Hình 1.6 Ứng dụng cho mạng xe cộ

1.2.7 Mạng cảm biến (sensor network)


Mạng cảm biến không dây là một ứng dụng điển hình của Ad hoc. Hiện nay đã có
những quan tâm đáng kể cho sự phát triển kiểu mạng này,chủ yếu là trong quân sự,
công an, tình báo, khảo cổ học, nghiên cứu địa lý....Các bộ cảm biến có thể có kích
thước nhỏ nhưng khả năng truyền thông và lưu trữ tương đối tốt. Trong quân sự đã
dùng những máy móc hiện đại nhưng kích cỡ gần như hạt bụi nên đối phương rất khó
phát hiện và phá hủy chúng.

Trong lĩnh vực y tế, các bộ cảm biến cho phép giám sát liên tục thông tin tiêu
chuẩn về sự sống. Trong công nghệ thực phẩm, kỹ thuật nhịp cảm biến được áp dụng
để giám sát chất lượng có thể giúp ngăn ngừa các sản phẩm không đạt yêu cầu nên tăng
mức thỏa mãn cho khách hàng. Trong nông nghiệp, các bộ cảm biến có thể giúp xác
định chất lượng đất trồng và độ ẩm, chúng cũng có thể phát hiện các hợp chất khác.

Vũ Huy Cường- ĐT3- K49 14


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Ngoài ra, các bộ cảm biến cũng được sử dụng rộng rãi trong thông tin thời tiết và môi
trường.

1.3 NHỮNG THÁCH THỨC ĐỐI VỚI MẠNG AD HOC

1.3.2 Chi phí cho việc sử dụng tần số


Hầu hết các mạng Ad hoc thử nghiệm hiện nay đều dựa trên băng tần ISM. Để
ngăn ngừa nhiễu, mạng Ad ho phải hoạt động qua một số dải phổ cụ thể nào đó, được
cấp phát. Phổ tần không chỉ được cấp phát và giám sát chặt chẽ mà còn cần phải được
trả phí.

1.3.3 Cơ chế truy nhập


Không giống như mạng tế bào, trong mạng Ad hoc không có sự điều khiển tập
trung và đồng bộ toàn cục. Do đó các phương pháp đa truy nhập truyền thông như
TDMA và FDMA không còn thích hợp nữa. Ngoài ra, nhiều giao thức điều khiển truy
nhập phương tiện MAC (Media Access Control) cũng không giải quyết được sự di
động của nút mạng. Do vậy, các kỹ thuật lập lịch trình và định thời để hỗ trợ QoS gặp
nhiều khó khăn.

Trong mạng Ad hoc, do cùng một phương tiện truyền thông được chia sẻ bởi
nhiều bên tham gia nên thủ tục truy nhập đến kênh chung phải được thực hiện theo
kiểu phân bố nhờ sự hỗ trợ của giao thức MAC. Giao thức MAC phải tính đến truy
nhập kênh trong khi đồng thời phải tránh được sự xung đột với các nút lân cận. Do vậy,
khi tính toán thiết kế các giao thức MAC cho mạng Ad hoc phải tính đến khả năng di
chuyển, vấn đề đầu cuối ẩn và các vấn đề liên quan khác.

1.3.4 Định tuyến và chuyển tiếp gói tin trong MANET

Vũ Huy Cường- ĐT3- K49 15


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Đặc tính động của mạng Ad hoc gây ra sự thay đổi thường xuyên và khó đoán
trước của topo mạng, làm tăng độ khó và độ phức tạp để định tuyến giữa các nút di
động. Nhiều giao thức và thuật toán định tuyến đã được đề xuất cho mạng Ad hoc, tuy
nhiên mỗi giao thức lại có một hạn chế riêng. Do vậy, nghiên cứu về các giao thức định
tuyến trong Ad hoc là một vấn đề rất quan trọng.

1.3.5 Hiệu quả sử dụng nguồn nuôi


Hầu hết các giao thức trong mạng hiện nay không quan tâm đến tiêu tốn năng
lượng nguồn nuôi vì các máy chủ và các bộ tính tuyến thường được giả định là tĩnh và
được cấp nguồn từ nguồn điện chính. Tuy nhiên, các thiết bị dị động hầu hết được cấp
nguồn từ nguồn nuôi độc lập.Kỹ thuật nguồn nuôi vẫn thường đi chậm hơn so với kỹ
thuật vi xử lý. Thời gian cấp nguồn của pin loại tốt như Li-ionh hiện nay cũng chỉ tối
đa từ 2 đến 3 giờ (hiện nay đã có một số laptop có thời gian sử dụng lên đến 8h, tuy
nhiên giá thành vẫn còn khá cao). Sự giới hạn thời gian hoạt động như thế nói lên tính
cần thiết phải bảo tồn tốt nguồn nuôi. Đặc biệt, đối với mạng Ad hoc, do các thiết bị di
động phải thực hiện vai trò của cả hệ thống đầu cuối (tương tác người dùng khi thực
hiện các ứng dụng người dùng) lẫn vai trò của một hệ thống trung gian (chuyển tiếp
gói tin) nên sẽ tiêu tốn năng lượng nguồn nuôi một cách đáng kể, đặc biệt là các nút
trung gian.

1.3.6 Đặc tính TCP


TCP (Transmission Control Protocol) là một giao thức cuối-cuối được thiết kế
phục vụ việc điều khiển nghẽn và điều khiển luồng trong mạng. TCP là một giao thức
hướng liên kết nên cần có một giai đoạn thiết lập kết nối ưu tiên cho việc truyền dữ
liệu. Kết nối bị loại bỏ khi việc truyền dữ liệu hoàn thành. Với internet hiện nay, giao
thức mạng IP là phi kết nối nên cần có một giao thức truyền dẫn hướng kết nối đáng tin
cậy qua một giao thức mạng không tin cậy. Tuy nhiên, TCP giả sử rằng các nút trong
tuyến là tĩnh nên việc điều khiển nghẽn và điều khiển luồng chỉ được thực hiện ở các
nút nguồn và đích.

Vũ Huy Cường- ĐT3- K49 16


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

TCP dựa vào việc đo đạc thời gian toàn trình-RTT (Round Trip Time) và mức tổn
thất gói để kết luận là có nghẽn mạch xảy ra trong mạng hay không. TCP không thể
phân biệt được sự có mặt của tính di động và sự nghẽn mạng. Các nút chuyển động
trong một kết nối có thể gây tổn thất gói và làm cho RTT dài hơn. Do vậy, cần có một
số cải tiến để bảo đảm rằng giao thức truyền dẫn thực hiện tốt mà không ảnh hưởng
đến thông lượng truyền thông cuối-cuối.

1.4.2 Chất lượng dịch vụ (QoS)


Khả năng cung cấp QoS của một mạng phụ thuộc vào các đặc tính bên trong của
toàn bộ các thành phần mạng, từ các liên kết truyền phát đến tầng MAC và tầng mạng.
Các kết nối không dây có năng lực thấp và hay thay đổi, tỉ lệ lỗi cao. Các topo mạng là
động và có tỷ lệ mất gói cao. Các giao thức MAC dựa trên truy nhập ngẫu nhiên không
hỗ trợ QoS.

Các giao thức MAC QoS giải quyết vấn đề về xung đột phương tiện, hỗ trợ truyền
thông unicast tin cậy, và cung cấp việc dự trữ tài nguyên cho các lưu lượng thời gian
thực trong môi trường không dây phân tán. Rất nhiều các giao thức MAC và các cải
tiến đã được đề xuất để cung cấp việc đảm bảo QoS cho lưu lượng thời gian thực trong
môi trường không dây phân tán bao gồm giao thức GAMA/PR và cơ chế xung đột BB.

1.4.3 Tính an toàn và bảo mật


Môi trường vô tuyến trong mạng Ad hoc là “mồi ngon béo bở” cho các cuộc tấn
công mạo danh do đặc tính quảng bá của nó. Các giao thức định tuyến trong mạng Ad
hoc cần có hỗ trợ tính năng xác thực, mã hóa để nâng cao tính an toàn, hiệu năng của
mạng.

TỔNG KẾT
Chương này đã trình bày những lý thuyết tổng quan mạng Ad hoc. Trong mạng
Ad hoc, topo mạng thường xuyên thay đổi. Do vậy, các giao thức định tuyến trong
mạng Ad hoc cần giải quyết sự di chuyển của nút, ràng buộc năng lượng,băng thông

Vũ Huy Cường- ĐT3- K49 17


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

CHƯƠNG 2. ĐỊNH TUYẾN TRONG MẠNG AD HOC


Đặc tính động của Ad hoc gây ra sự thay đổi thường xuyên và khó đoán trước của
topo mạng, làm tăng độ khó và độ phức tạp để định tuyến giữa các nút di động. Nhiều
giao thức định tuyến được đưa ra, tuy nhiên, chúng vẫn gặp phải một số hạn chế nhất
định. Chương này trình bày 4 loại giao thức trong mạng Ad hoc: OLSR, AODV, DSR
và DYMO.

2.1 GIAO THỨC ĐỊNH TUYẾN CỔ ĐIỂN

Vũ Huy Cường- ĐT3- K49 18


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Hiện nay, các giao thức định tuyến đưa ra với Ad hoc đều dựa trên một giao thức
định tuyến cổ điển làm thuật toán cơ bản; do đó, việc tìm hiểu nghiên cứu các hoạt
động cơ bản của các giao thức này là hết sức cần thiết.

Giao thức cổ điển như: định tuyến theo vector khoảng cách, định tuyến theo trạng
thái liên kết đã được sử dụng từ rất lâu và đã trở nên rất quen thuộc. Tuy nhiên, các
giao thức này chỉ thích hợp cho cấu trúc mạng tĩnh, hoạt động hiệu quả ở mạng Ad hoc
có tốc độ di chuyển thấp, cấu trúc mạng ít thay đổi. Ngoài ra, giao thức này hoạt động
phụ thuộc vào bản tin điều khiển định tuyến, nên với số lượng nút mạng tăng, yêu cầu
trao đổi giữa các nút mạng tăng lên, thông tin cập nhật định tuyến lớn, chúng sẽ tiêu
tốn băng thông, năng lượng và CPU. Bởi vì hai loại giao thức định tuyến trên duy trì
định tuyến đến tất cả các nút mạng, nó không quan tâm nút mạng có tham giao truyền
thông tin trong mạng tại mọi thời điểm hay không. Hơn nữa, giao thức định tuyến cổ
điển rằng buộc liên kết phải là hai chiều, nên cần có những cải thiện nhất định cho
thông tin vô tuyến nói chung và mạng Ad hoc nói riêng.

2.1.Định tuyến dựa trên trạng thái liên kết


Phương pháp định tuyến dựa trên trạng thái liên kết dựa trên giá của mỗi liên kết
(cost) và nút mạng phải duy trì cấu trúc mạng hoàn chỉnh với tham số này. Tham số
“giá” sẽ được cập nhật bằng cách mỗi nút mạng sẽ gửi thông tin quảng bá một cách
liên tục “giá” của các liên kết xuất phát từ nó tới tất cả các nút mạng khác sử dụng
thuật toán flooding. Mỗi nút mạng khi nhận được các thông tin này sẽ cập nhật cấu trúc
mạng và sử dụng thuật toán tìn đường đi ngắn nhất để chọn nút mạng tiếp theo cho
đường định tuyến đến nút mạng khác. Liên kết có thể có giá không chính xác do nhiều
nguyên nhân như trễ đường truyền, sự phân tách của mạng... Các cấu hình mạng thay
đổi có thể hình thành định tuyến khép kín (loop), tuy nhiên, đường định tuyến kiểu này
có thời gian tồn tại ngắn vì chúng sẽ bị xóa ngay khi bản tin đã đi qua toàn bộ mạng.

2.1.1. Định tuyến dựa trên vector khoảng cách

Vũ Huy Cường- ĐT3- K49 19


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Phương pháp này định tuyến dựa trên vector khoảng cách, có cải tiến hơn so với
phương pháp định tuyến dựa trên trạng thái liên kết: mỗi nút mạng chỉ giám sát giá của
liên kết xuất phát từ nó, và không quảng bá thông tin đến tất cả nút mạng; nó gửi quảng
bá đều đặn đến nút liền cạnh thông tin về khoảng cách ngắn nhất tới nút khác trong
mạng. Nút mạng khác khi nhận được thông tin này sẽ tính toán lại bảng định tuyến
thông qua thuật toán tìm đường đi ngắn nhất.

Giao thức này hoạt động hiệu quả hơn, đơn giản hơn và yêu cầu ít bộ nhớ lưu trữ
hơn. Song, nó có thể sinh ra đường định tuyến khép kín có thời gian tồn tại thay đổi dài
ngắn khác nhau, vì bảng định tuyến có thể xây dựng từ thông tin đã tồn tại lâu quá trên
mạng (không được cập nhật).

2.2 GIAO THỨC ĐỊNH TUYẾN CHO MẠNG AD HOC


2.2.1 Các yêu cầu chung

Do các nút trong mạng Ad Hoc luôn di động và có nhiều đặc tính khác biệt nên
không thể áp dụng các giao thức định tuyến thông thường. Các mạng Ad Hoc thường
được đặc trưng bởi một topo động do các nút di chuyển làm thay đổi vị trí vật lý của
chúng. Đối với mạng Ad Hoc, giao thức định tuyến động tỏ ra hiệu quả và phù hợp
hơn các phương pháp định tuyến dựa trên vectơ khoảng cách và trạng thái liên kết.
Thách thức trong việc thiết kế các giao thức định tuyến là khả năng cập nhật được mức
di động của nút mạng. Chích mức di động này là nguyên nhân làm thay đổi toàn bộ
cấu trúc topo của mạng. Một nút di động thường bị giới hạn bởi khả năng xử lý của
CPU, dung lượng lưu trữ, công suất nguồn và dải thông.
Môi trường truy cập, môi trường vô tuyến cũng có những thuộc tính đặc biệt cần
phải chú ý khi thiết kế các giao thức cho mạng Ad Hoc. Ví dụ các đường truyền vô
hướng. Những đường truyền này xuất hiện khi hai nút có cường độ khác nhau và cho
phép chỉ một nút nghe được nút kia. Nhưng chúng cũng có thể xuất hiện do nhiễu từ
môi trường xung quanh. Đa chặng trong môi trường vô tuyến có thể gây ra tăng ích
công suất truyền và tăng ích công suất do mối quan hệ căn bậc hai giữa vùng phủ sóng

Vũ Huy Cường- ĐT3- K49 20


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

và công suất phát ra. Bằng cách sử dụng đa chặng, các nút có thể truyền các gói tin đi
sử dụng công suất ra thấp.
Hình 2.1 Mô tả các trục cơ bản có thể sử dụng để đặc tả môi trường mạng Ad
Hoc. Trục đầu tiên là số các nút trong mạng. Trục thứ hai là tốc độ mà tại đó topo
mạng thay đổi. Trục thứ ba là tải lưu lượng trong mạng. Khi môi trường di chuyển từ
gốc của 3 trục, vấn đề định tuyến trở nên khó khăn hơn. Tăng số nút, tăng tốc độ thay
đổi topo (nghĩa là tăng tính di động của nút), hoặc tăng tải lưu lượng mong muốn trên
mạng là thách thức đói với các giao thức trong mạng Ad Hoc.

Hình 2.1 Hệ tọa độ cơ bản mô tả môi trường mạng Ad Hoc

Yêu cầu đối với một giao thức định tuyến cho mạng Ad hoc là gì? Sau đây là một
số yêu cầu quan trọng:

• Hoạt động phân tán: Giao thức định tuyến trong mạng Ad Hoc phải là giao thức
phân tán yêu cầu độ tin cậy cao. Do các nút là di động nên giao thức định tuyến
tập trung là không phù hợp. Mỗi nút mạng phải đủ thông minh để tạo các quyết
định định tuyến sử dụng các nút lân cận.

Vũ Huy Cường- ĐT3- K49 21


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

• Không lặp vòng: Để nâng cao chất lượng hoạt động, giao thức định tuyến cần
đảm bảo đường định được cung cấp không bị lặp vòng, điều này sẽ làm giảm
lãng phí băng thông và công suất tiêu hao của CPU.

• Sử dụng các siêu nút: Tất cả các giao thức hiện có đều giả định rằng các nút di
động là có cùng các đặc tính dựa trên bản chất của mạng tự tổ chức là tập hợp
của các nút ngang hàng. Mặc dù điều này có thể đúng trong một số trường hợp,
tuy nhiên, có trường hợp mà ở đó mạng có các nút có băng thông cao, nguồn
nuôi ổn định, liên kết không dây tốc độ cao hơn so với các nút khác. Các nút
như vậy được gọi là các siêu nút. Các mạng tự tổ chức trong trường hợp này
thường có cấu trúc 2 mức: vùng backbone và vùng phụ. Vùng backbone bao
gồm các siêu nút. Thêm vào đó các siêu nút thường được giả định là có độ di
chuyển thấp hơn các nút thường để duy trì sự ổn định của backbone. Các nút
thường không cần có quyết định định tuyến.

• Hoạt động dựa trên yêu cầu: Tối thiểu hóa phần thông tin điều khiển trong
mạng, giao thức định tuyến thuộc nhóm định tuyến theo yêu cầu có thể đáp ứng
được điều này. Nó chỉ tìm đường khi cần thiết và không quảng bá thông tin điều
khiển liên tục.

• Tính tiên phong (proactive): Trong một số trường hợp, trễ lớn do hoạt động dựa
trên yêu cầu là không chấp nhận được. Do đó phải sử dụng đặc tính tiên phong
nếu tài nguyên của mạng (về mặt giải thông) nằm trong khoảng cho phép.

• Hỗ trợ các liên kết một chiều: Môi trường vô tuyến có thể là nguyên nhân hình
thành các liên kết theo một hướng. Sử dụng kiểu liên kết này và kiểu liên kết hai
chiều sẽ nâng cao hiệu năng của giao thức định tuyến.

Vũ Huy Cường- ĐT3- K49 22


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

• Bảo mật: Môi trường vô tuyến rất dễ bị tấn công, khai thác thông tin, do đó mã
hóa và chứng thực là cách bảo mật thông thường nhất được áp dụng hiện
nay.Vấn đề là việc phân bổ các khóa và các nút trong mạng Ad hoc.

• Bảo toàn năng lượng: Nút mạng trong mạng Ad hoc có thể là máy tính xách tay
hay loại client nhỏ gọn khác như PDA thường có giới hạn về thời gian sử dụng
của pin, nên cần có chế độ chờ (standby mode) để tiết kiệm năng lượng. Do đó,
giao thức định tuyến sử dụng cần hỗ trợ chế độ chờ của nút mạng.

• Nhiều đường định tuyến: Nhằm giảm số lần tác động do sự thay đổi về cấu trúc
mạng và khi nhiều đường định tuyến bị nghẽn. Nếu như một đường định tuyến
không sử dụng được nữa thì một đường định tuyến khác có thể thay thế. Như
vậy, giao thức không cần khởi tạo lại thủ tục tìm đường.

• Hỗ trợ QoS: Có nhiều loại QoS cần được sự hỗ trợ của các giao thức định tuyến,
nó phụ thuộc vào mục đích của mạng; chẳng hạn, hỗ trợ lưu lượng thời gian
thực...

2.2.2 Phân loại


Để so sách và phân tích các giao thức định tuyến cho mạng Ad hoc, các phương

thức phân loại hợp lý là rất quan trọng. Các phương thức phân loại giúp cho các nhà
nghiên cứu và các nhà thiết kế hiểu được những đặc trưng khác nhau và mối quan hệ
giữa các giao thức. Các đặc trưng này chủ yếu liên quan đến việc tập hợp thông tin
định tuyến, đến vai trò mà một nút có thể đảm nhận trong quá trình định tuyến.

2.2.2.1 Định tuyến theo bảng, định tuyến theo yêu cầu và định tuyến lai

Một trong những phương thức phổ biến nhất để phân loại các giao thức định
tuyến cho mang Ad hoc là dựa trên việc thông tin định tuyến được tập hợp và được duy
trì như thế nào bới các nút di động. Sử dụng phương thức này, các giao thức định tuyến
cho mạnh Ad hoc được phân chia như bảng 2.2.

Vũ Huy Cường- ĐT3- K49 23


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Hình 2.2 Phân loại các giao thức định tuyến trong mạng Ad hoc

• Các giao thức định tuyến proactive: còn được gọi là các giao thức định tuyến
theo bảng (table-driven). Sử dụng các giao thức này, các nút di động cố gắng
đánh giá liên tục các tuyến trong mạng để khi một gói cần phải chuyển tiếp
thì tuyến đó đã sẵn sàng để sử dụng. Mỗi nút duy trì một hay nhiều bảng
chứa thông tin định tuyến tới các nút trong mạng. Tất cả các nút trong mạng
sẽ cập nhật các bảng này để duy trì một cách phù hợp thông tin và tình trạng
của mạng, do đó tiêu đề định tuyến trong các giao thức này là khá lớn. Khi
topo mạng thay đổi, các nút truyền các bản tin thông báo cho nhau để cập
nhật thông tin về tuyến của toàn bộ mạng. Giao thức định tuyến trạng thái
liên kết tối ưu OLSR (Optimized Link State Routing) và giao thức định
tuyến vector khoảng cách tuần tự đích DSDV (Dynamic Destination-
Sequenced Distance-Vector Routing) là hai ví dụ của giao thức định tuyến
proactive
• Các giao thức định tuyến reactive: còn được gọi là các giao thức định tuyến
theo yêu cầu (on-demand). Sử dụng các giao thức này, thủ tục xác định
tuyến chỉ được gọi theo yêu cầu. Việc này được thực hiện thông qua hoạt

Vũ Huy Cường- ĐT3- K49 24


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

động khám phá tuyến đường (route discovery). Quá trình khám phá tuyến
kết thúc sau khi hoặc có một tuyến được tìm ra hoặc không có tuyến nào sẵn
có sau khi đã kiểm tra toàn bộ các tuyến đường. Trong mạng Ad hoc, các
tuyến đang hoạt động có thể bị đứt do tính di động của nút. Do đó, duy trì
tuyến là một hoạt động quan trọng của định tuyến theo yêu cầu. So sánh với
định tuyến theo bảng, ít tiêu đề định tuyến là 1 ưu điểm của định tuyến theo
yêu cầu. Tuy nhiên, sử dụng định tuyến theo yêu cầu thì việc gửi gói tin sẽ
có trễ lớn do nút nguồn phải tìm đường trước khi gửi dữ liệu. Hai giao thức
reactive điển hình là giao thức định tuyến vector khoảng cách theo yêu cầu
AODV (Ad hoc On-demand Distance Vector Routing) và giao thức định
tuyến định tuyến nguồn động DSR (Dynamic Source Routing).
• Các giao thức định tuyến lai (hybrid) được đề xuất để kết hợp ưu điểm của 2
loại giao thức trên và khắc phục các nhược điểm của chúng. Thông thường,
các giao thức lai được triển khai trong mạng có cấu trúc phân cấp. Khi đó,
các đặc tính định tuyến theo bảng và định tuyến theo yêu cầu sẽ được khai
thác độc lập ở các mức phân cấp khác nhau. Zone Routing Protocol (ZRP)
và Hybrid Ad Hoc Routing Protocol là những ví dụ của giao thức lai.

2.2.2.2 Cấu trúc và phân bổ tiến trình định tuyến

Một phương thức phân loại khác là dựa trên vai trò có thế có của nút trong cơ chế
định tuyến. Trong giao thức định tuyến đồng bộ, tất cả các nút di động có cùng vai trò
và chức năng. WRP, DSR, AODV và DSDV là những ví dụ về định tuyến đồng bộ.
Các giao thức này thường giả định rằng cấu trúc mạng là phẳng. Trong một giao thức
định tuyến bất đồng bộ, một số nút đảm nhận vai trò quản lý và chức năng khác nhau.
Thuật toán phân tán được sử dụng để lựa chọn các nút đặc biệt này. Trong một số
trường hợp, các phương pháp định tuyến bất đồng bộ gắn liền với cấu trúc mạng phân
cấp để dể dàng tổ chức và quản lý các nút. Các giao thức định tuyến bất đồng bộ có thể
được phân chia dựa trên việc tổ chức các nút di động, chức năng định tuyến và quản lý
được thực hiện như thế nào. Theo đó, các giao thức định tuyến bất đồng bộ trong mạng

Vũ Huy Cường- ĐT3- K49 25


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Ad hoc được chia thành định tuyến phân cấp theo vùng, định tuyến phân cấp theo
nhóm và định tuyến theo nút lõi.
Trong các giao thức định tuyến theo vùng, các thuật toán xây dựng vùng khác
nhau được triển khai cho việc tổ chức nút; ví dụ, một số thuật toán xây dựng vùng sử
dụng thông tin vị trí địa lý. Khai thác hiệu quả việc phân chia vùng sẽ giảm được đáng
kể tiêu đề để duy trì thông tin định tuyến. Các nút di động trong cùng một vùng biết
đường đến các nút khác sẽ có chi phí nhỏ hơn so với việc duy trì thông tin định tuyến
tới tất cả các nút trong toàn mạng. Một số nút hoạt động như là gateway và đảm nhận
truyền thông liên vùng. ZRP và ZHLS là hai giao thức định tuyến theo vùng cho mạng
Ad hoc.
Các giao thức định tuyến theo nhóm sử dụng thuật toán xây dựng nhóm cho việc
bầu chọn trưởng nhóm (cluster-head). Các nút di động được nhóm thành các nhóm,
trưởng nhóm đóng vai trò quản lý thành viên và đảm nhận chức năng định tuyến.
Clusterhead Gateway Switch Routing (CGSR) là một ví dụ của định tuyến theo nhóm.
Trong các giao thức định tuyến theo nút lõi, các nút đặc biệt được tự động lựa
chọn để gộp thành 1 backbone trong mạng. Các nút “backbone” đảm nhận các vai trò
đặc biệt, như là xây dựng và theo dõi đường định tuyến, quảng bá gói tin dữ liệu. Core-
Extraction Distributed Ad Hoc Routing (CEDAR) là một ví dụ điển hình của loại định
tuyến này.

2.2.2.3 Khai thác các metric mạng cho định tuyến

Các metric sử dụng cho việc xây dựng tuyến đường có thể được sử dụng để phân
loại các giao thức định tuyến trong mạng Ad hoc. Gần như mọi giao thức định tuyến
cho mạng Ad hoc sử dụng “số chặng” làm metric. Nếu có nhiều tuyến đường có sẵn,
tuyến nào có số chặng nhỏ nhất sẽ được lựa chọn. Nếu tất cả các liên kết không dây có
cùng xác suất lỗi thì đường định tuyến ngắn sẽ ổn định hơn đường định tuyến dài và có
thể giảm tiêu đề lưu lượng, giảm xung đột gói tin. Tuy nhiên, giả định có cùng xác suất
lỗi có thể không tồn tại trong mạng Ad hoc. Theo đó, sự ổn định liên kết phải được cân
nhắc trong pha xây dựng tuyến đường. Vi dụ, Associatively Based Routing (ARB) và

Vũ Huy Cường- ĐT3- K49 26


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Signal-Based Routing (SSR) được đề xuất để sử dụng sự ổn định liên kết và độ mạnh
tín hiệu như là một metric cho định tuyến.
Với sự phổ biến của điện toán di động, một số ứng dụng di động có thể có các yêu
cầu QoS khác nhau. Để đáp ứng các yêu cầu này, các metric QoS tương ứng lên được
sử dụng cho việc định tuyến và chuyển tiếp gói tin trong mạng Ad hoc. Giống như
mạng có dây, các giao thức định tuyến QoS cho mạng Ad hoc có thể sử dụng các
metric, như là băng thông, trễ, trễ jitter, tỉ lệ lỗi gói tin và chi phí. Ví dụ, băng thông và
độ ổn định liên kết được sử dụng trong CEDAR làm metric cho việc xây dựng tuyến
đường.

2.2.2.4 Ước lượng topo, đích, vị trí cho định tuyến

Trong một giao thức định tuyến theo topo cho mạng Ad hoc, các nút tập hợp
thông tin topo mạng cho việc định tuyến. Ngoài các giao thức định tuyến theo topo,
một số giao thức định tuyến theo đích được đề xuất cho mạng Ad hoc. Trong các giao
thức này, một nút chỉ cần biết next-hop trên đường định tuyến khi chuyển tiếp gói tin
tới đích. Ví dụ, DSR là giao thức định tuyến theo topo và AODV, DSDV là giao thức
định tuyến theo đích. Việc sẵn có của hệ thống định vị toàn cầu (GPS) hoặc các hệ
thống định vị tương đương cho phép các nút di động truy nhập thông tin vị trí địa lý
một cách dễ dàng. Trong các giao thức định tuyến theo vị trí, mối quan hệ về vị trí giữa
các nút chuyển tiếp gói tin và nút đích, cùng với sự di chuyển của nút, có thể được sử
dụng trong cả quá trình khám phá tuyến và chuyển tiếp gói tin. Location Aided
Routing (LAR) và Distance Routing Effect Algorithm for Mobility (DREAM) là các
giao thức định tuyến theo vị trí cho mạng Ad hoc.
Sau đây là một số giao thức định tuyến được đề xuất cho mạng Ad hoc.

2.3 OPTIMIZED LINK STATE ROUTING(OLSR)

OLSR là giao thức định tuyến theo bảng và là một sự tối ưu của giao thức trạng
thái liên kết cổ điển, hoàn toàn thích hợp cho mạng di động Ad hoc. OLSR tối thiểu
hóa tiêu đề định tuyến bằng cách chỉ sử dụng các nút được chọn để phát tràn lan lưu

Vũ Huy Cường- ĐT3- K49 27


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

lượng điều khiển, được gọi là Chuyển tiếp đa điểm MPR (Multipoint Relay). Kỹ thuật
này giảm đáng kể số lượng yêu cầu truyền lại để phát tràn lan một bản tin tới tất cả các
nút trong mạng.

2.3.1 Bầu chọn Multipoint relay

Hình 2.3 Quá trình phát tràn lan bản tin quảng bá

MPR là để tối thiểu hóa overhead khi phát tràn lan bản tin trong mạng bằng cách
giảm số lần truyền lại trong cùng một vùng. Mỗi nút trong mạng lựa chọn một tập hợp
các nút hàng xóm trực tiếp của nó để làm MPR. Hàng xóm của nút A mà không nằm
trong tập hợp MPR của A có thể nhận và xử lý các bản tin quảng bá nhưng không thể
truyền các bản tin quảng bá nhận được từ A.
Mỗi nút lựa chọn tập hợp MPR từ những hàng xóm trực tiếp (one-hop) của nó.
Tập hợp MPR của nút A, kí hiệu là MPR(A), là tập con của tập hợp các hàng xóm trực
tiếp của A, phải thỏa mãn những điều kiện sau: mỗi nút trong hàng xóm hai bước (two-
hop) của A phải có một liên kết trực tiếp đến MPR(A). Tập hợp MPR càng nhỏ thì tiêu
đề lưu lượng điều khiển của giao thức định tuyến càng nhỏ. Mỗi nút phải duy trì thông
tin về tập hợp hàng xóm mà chúng chọn làm MPR. Tập hợp này gọi là “MPR selector
set” của một nút.

Vũ Huy Cường- ĐT3- K49 28


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Hình 2.4 Bầu chọn MPR

Trong OLSR, mỗi nút truyền bản tin Hello định kỳ (ví dụ một giây một bản tin)
trên mỗi giao diện của nút. Mục đích chính của bản tin Hello cho phép mỗi nút có thể
khám phá tuyến trực tiếp tới hàng xóm của nó. Bản tin Hello được quảng bá từng
chặng một (hop-by-hop) và phải không được truyền trước đó. Bản tin Hello bao gồm
tên của nút khởi tạo, hàng xóm trực tiếp mà nút khởi tạo truyền bản tin khám phá, và
các nút mà nút khởi tạo chọn làm MPRs. Khi một nút nghe thấy bản tin Hello, nó kiểm
tra liệu bản tin đó có phải được phát sinh từ hàng xóm mới hay không, và nếu đúng,
nút sẽ cập nhật vào danh sách hàng xóm trực tiếp của nút. Bản tin Hello rất quan trọng
trong việc hỗ trợ khái niệm MPR. Mỗi nút kiểm tra bản tin Hello nhận được từ hàng
xóm của nó để xem nó liệu có được lựa chọn làm MPR của bất kỳ hàng xóm nào
không. Nếu vậy, nút sẽ phát tràn lan các cập nhật định tuyến được phát sinh từ các
hàng xóm mà đã chọn nó là MPR. Mỗi nút cũng có thể khám phá liệu các nút có là
hàng xóm hai bước từ bản tin Hello, bởi vì danh sách các hàng xóm hai bước đã được
liệt kê trong bản tin Hello của nút hàng xóm trực tiếp của nó. Mỗi nút lựa chọn MPR
trên cơ sở hàng xóm hai bước, do vậy mỗi hàng xóm hai bước phải nhận được bản tin
MPR.

Vũ Huy Cường- ĐT3- K49 29


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

2.3.2 Truyền bá bản tin điều khiển topo (Topology control)


Bản tin điều khiển topo được truyền đi với mục đích cung cấp cho mỗi nút trong
mạng các thông tin liên kết trạng thái đầy đủ để cho phép tính toán được tuyến đường.

2.3.3 Tính toán tuyến

Thông tin trạng thái liên kết đưa ra được thực hiện thông qua trao đổi định kỳ các
bản tin, cũng giống như cấu hình giao diện của các nút, bảng định tuyến của mỗi nút có
thể được tính toán.

2.4 DYNAMIC SOURCE ROUTING (DSR)

Giao thức định tuyến nguồn động DSR là giao thức định tuyến đơn giản và hiệu quả.
Giao thức này được thiết kế để sử dụng trong các mạng Ad hoc vô tuyến đa chặng có
tốc độ di chuyển cao của các nút. Các nút này phối hợp với nhau để chuyển tiếp các gói
tin. Do vậy gói tin có thể được chuyển đến các nút không nằm trong vùng phủ sóng của
chính nút đó. Khi các nút trong mạng di chuyển, tham gia hoặc rời khỏi mạng thì toàn
bộ các thủ tục định tuyến được xác định và duy trì một cách tự động bởi giao thức định
tuyến DSR.
DSR bao gồm 2 cơ chế cơ bản: Khám phá tuyến (Route Discovery) và Duy trì tuyến
(Route Maintenance). Khám phá tuyến và Duy trì tuyến hoạt động hoàn toàn theo yêu
cầu.

2.4.1 Định tuyến nguồn


DSR phát hiện và sử dụng các tuyến nguồn. Nút gửi tin sẽ phải nắm đươc toàn bộ
thông tin về trình tự sắp xếp của các chặng (vị trí các nút) của mạng tới một nút đích.
Mỗi gói tin được định tuyến sẽ mang thông tin về danh sách các chặng này trong tiêu
đề. Ưu điểm quan trọng của thủ tục định tuyến nguồn là các nút trung gian không cần
phải duy trì việc cập nhật thông tin định tuyến khi chuyển tiếp các gói tin bởi vì bản
thân các gói đã mang thông tin quyết định việc định tuyến (danh sách đầy đủ các nút
theo trình tự mà gói phải đi qua).

Vũ Huy Cường- ĐT3- K49 30


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Việc tập hợp thông tin về topo mạng tại nút nguồn của mỗi gói cho phép nút
nguồn phân phát các gói tin một cách hiệu quả trong mạng. Điều này rất thích hợp với
việc quản lý tài nguyên trong mạng Ad hoc.
Giao thức định tuyến dựa trên các tuyến nguồn còn có thêm 2 lợi ích. Thứ nhất,
giao thức có thể chứng minh được một cách đơn giản tính không lặp vòng bởi vì tuyến
nguồn được sử dụng để điều khiển định tuyến các gói. Thứ hai, mỗi tuyến nguồn là
một bản kê sẵn về một đường truyền cụ thể, tin cậy để truyền các thông tin qua mạng.
DSR sử dụng các tuyến nguồn và mỗi gói được định tuyến dựa trên một tuyến
nguồn khám phá được, tuy nhiên những cải thiện gần đây đối với DSR đã cho phép
hầu hết các gói tin không phải mang theo phần tiêu đề chứa thông tin đầy đủ về tuyến
nguồn.

2.4.2 Khám phá tuyến

Khám phá tuyến được thực hiện bằng cách phát tràn lan yêu cầu qua mạng để tìm
kiếm một tuyến tới đích nào đó. Trong dạng đơn giản nhất, nút nguồn A muốn khám
phá một tuyến tới nút đích D thì A sẽ phát quảng bá gói tin Yêu cầu tuyến RREQ và
gói này tiếp tục được quảng bá bởi các nút trung gian cho đến khi nó đến được nút đích
D. Trong cơ chế này, nhiều tối ưu hóa được sử dụng để giới hạn tần số và phạm vi của
các Khám phá tuyến.
Khi một nút S muốn gửi một gói tin đến D, đầu tiên nó sẽ đặt vào phần tiêu đề
của gói tin đó một tuyến nguồn trong đó chỉ ra thứ tự của các chặng mà gói tin sẽ phải
đi qua. Thông thường, nút S sẽ đạt được một tuyến nguồn thích hợp thông qua việc tìm
kiếm trong Bộ nhớ tuyến của nó các tuyến đã biết trước đây. Tuy nhiên nếu không tìm
thấy tuyến nào trong Bộ nhớ tuyến, nó sẽ khởi tạo thủ tục Tìm kiếm tuyến động để tìm
ra một tuyến nguồn tới D. Trong trường hợp này ta gọi nút S là nút nguồn còn nút D là
nút đích trong thủ tục Khám phá tuyến.
Trước khi khởi tạo một gói tin RREQ, nút nguồn chọn một nhận dạng yêu cầu
(Request_id) đặt trong gói tin RREQ. Cặp <địa chỉ nút nguồn, nhận dạng yêu cầu> là
duy nhất.

Vũ Huy Cường- ĐT3- K49 31


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

^ "A" ^ "A,B" ^ "A,B,C" ^ "A,B,C,D"


| id=2 | id=2 | id=2 | id=2
+-----+ +-----+ +-----+ +-----+ +-----+
| A |---->| B |---->| C |---->| D |---->| E |
+-----+ +-----+ +-----+ +-----+ +-----+
| | | |
v v v v

Hình 2.5 Khám phá tuyến trong DSR

Hình 2.5 minh họa quá trình Khám phá tuyến đơn giản, nút A cố gắng khám phá
tuyến tới nút E. Để khởi đầu Khám phá tuyến, A truyền một tin báo RREQ. Mỗi tin
báo RREQ nhận dạng nút nguồn và đích của Khám phá tuyến. Nhận dạng yêu cầu
được xác định bởi nút nguồn của Yêu cầu. Một RREQ bao gồm một bản ghi danh sách
địa chỉ của từng nút trung gian mà tin báo RREQ đã đi qua. Giá trị ban đầu của bản ghi
tuyến là một danh sách trống.
Khi một nút nhận được bản tin RREQ này (ví dụ như nút B trong ví dụ), nếu nó là
đích của Khám phá tuyến, nó sẽ gửi lại bản tin Trả lời tuyến RREP tới khởi tạo của
Khám phá tuyến, chuyển bản copy của bản ghi tuyến được cộng dồn từ RREQ; khi nút
nguồn nhận được RREP, nó cất giữ tuyến này trong Bộ nhớ tuyến để sử dụng khi gửi
các gói tin tiếp theo tới đích này.
Mặt khác, nếu một nút nhận RREQ mà đã nhận được một bản tin RREQ khác từ
nút nguồn, mang theo những nhận dạng yêu cầu và địa chỉ đích giống nhau hoặc nếu
địa chỉ riêng của nút này đã nằm trong báo cáo tuyến của RREQ, nó sẽ từ chối Yêu
cầu. Nếu không, nút này sẽ gắn địa chỉ riêng của nó vào bản ghi tuyến trong bản tin
RREQ và tiếp tục quảng bá nó. Trong ví dụ, nút B sẽ quảng bá bản tin RREQ, nó sẽ
được nhận ở nút C, nút C và nút D cũng vậy, nó sẽ broadcast Yêu cầu, kết quả là copy
của Yêu cầu sẽ được nhận bởi nút E.
Trong việc bản tin RREP trở lại nút nguồn trong thủ tục Khám phá tuyến, chẳng
hạn nút E trả lời nút A trong hình 2.5, nút E sẽ kiểm tra Bộ nhớ tuyến của nó xem liệu
có một tuyến ngược về nút A, và nếu tìm được nó sẽ sử dụng tuyến này làm tuyến
nguồn để phân phát các gói tin bao gồm cả gói RREP. Nếu không tìm được một tuyến
ngược trở lại A, E có thể thực hiện thủ tục Khám phá tuyến từ nó tới A. Để tránh khả

Vũ Huy Cường- ĐT3- K49 32


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

năng quay lại vô hạn có thể của các Khám phá tuyến, nó sẽ chèn bản tin RREP vào
chính bản tin RREQ của nó đối với nút A. Sử dụng cơ chế này nó cũng có khả năng
cõng theo các gói dữ liệu nhỏ khác ví dụ như gói TCP SYN trên một bản tin RREQ.
Nút E còn có thể đảo vị trí sắp xếp của các chặng trong bản ghi tuyến và sử dụng tuyến
đã đảo vị trí này như một tuyến nguồn đối với các gói tin mang bản tin RREP của
chính nó.
Khi khởi tạo một Khám phá tuyến, nút đang gửi sẽ giữ lại bản sao của gói tin ban
đầu trong bộ nhớ đệm nội bộ (Send Buffer) gọi là bộ đệm gửi. Ngoài ra Send Buffer
còn chứa các bản sao của các gói tin không truyền đi được do chưa tìm ra một tuyến
nguồn tới đích. Mỗi gói trong Send Buffer được gán cho một nhãn thời gian chỉ ra thời
gian chúng tồn tại trong Buffer và gói tin sẽ bị loại bỏ sau khi thời gian lưu lại trong
Send Buffer quá hạn; để Send Buffer không bị tràn, kĩ thuật FIFO hoặc kĩ thuật tương
đương khác có thể được sử dụng để truyền các gói tin đó đi trược khi chúng hết hạn.
Trong trường hợp gói tin còn lưu lại trong Send Buffer mà chưa truyền đi được
thì thỉnh thoảng nút mạng lại thiết lập mới thủ tục Khám phá tuyến tùy theo địa chỉ
đích của các gói. Tuy nhiên, tần suất khởi tạo các Khám phá tuyến mới cần phải được
giới hạn do có thể xảy ra trường hợp đích của thủ tục khởi tạo tuyến đã thay đổi và
không thể tới được. Trên thực tế, do giới hạn về phạm vi truyền dẫn vô tuyến và sự di
chuyển của các nút trong mạng nên nhiều khi cấu trúc mạng bị phân mảnh, nghĩa là
không có thứ tự sắp xếp của các chặng mà qua đó gói tin được chuyển tiếp tới đích.
Kiều phân mảnh như vậy có thể hiếm gặp hoặc phổ biến tùy thuộc vào kiểu di chuyển
và mật độ của các nút trong mạng.
Trong trường hợp với mỗi gói tin, một thủ tục Khám phá tuyến được khởi tạo thì
một số lớn các gói RREQ không hữu ích được truyền từ nút này tới tất cả các nút khác
trong mạng. Để giảm phần phụ trội tiêu đề do các Khám phá tuyến trên người ta phải
giới hạn tần suất khởi tạo các Khám phá tuyến từ một nút bất kì đến cùng một đích.
Nút chỉ được phép khởi tạo Khám phá tuyến mới sau khi đợi hết khoảng thời gian tối
thiểu cần thiết để có thể thiết lập thủ tục Khám phá tuyến mới.

Vũ Huy Cường- ĐT3- K49 33


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Từ kết quả của việc kiểm tra bản sao các tuyến nguồn ghi được, thuật toán Khám
phá tuyến đã ngăn chặn được việc lặp các RREQ trong mạng. Đó là một thuộc tính
hiệu chỉnh quan trọng và là nguyên nhân tạo ra thuộc tính không lặp vòng của DSR. Sử
dụng các nhận dạng yêu cầu là một tối ưu đơn giản khi đó các RREQ ban đầu trải rộng
hướng ra phía ngoài so với nút nguồn và rút bớt số các gói RREQ bao quanh bộ khởi
tạo.

2.4.3 Duy trì tuyến


Khi gửi hoặc chuyển tiếp một gói tin tới đích D nào đó sử dụng tuyến nguồn, mỗi
nút sẽ có nhiệm vụ giám sát và khẳng định rằng gói tin đó đã đến được chặng tiếp theo
trên tuyến nguồn hay chưa; gói tin sẽ được truyền lại (sau một số lần cho phép) cho tới
khi nút này nhận được khẳng định rằng nó đã đến được nút tiếp theo.Ví dụ trường hợp
được minh họa trong hình 2.6 dưới đây: nút A gửi một gói tin tới E sử dụng một tuyến
nguồn thông qua các nút trung gian B, C và D. Trong trường hợp này nút A chịu trách
nhiệm về việc nhận gói tin ở nút B, nút B chịu trách nhiệm việc nhận gói tin ở nút C,
nút C lại chịu trách nhiệm về việc nhận gói tin ở nút D,… và cứ như thế đến nút cuối
cùng nút D phải chịu trách nhiệm về việc nhận gói tin ở nút E. Trong nhiều trường hợp
khẳng định việc nhận gói tin không ảnh hưởng gì đối với giao thức DSR do thực tế đây
là một phần của các thủ tục lớp MAC.

Hình 2.6 Duy trì tuyến, nút C không thể chuyển tiếp từ A đến E qua
liên kết tới bước nhảy tiếp theo D của nó

Vũ Huy Cường- ĐT3- K49 34


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Nếu cơ chế này không tồn tại và sẵn có ở các nút thì khi đó nút gửi tin sẽ dùng
một bít thông tin trong phần tiêu đề của gói tin để yêu cầu một phúc đáp từ nút tiếp
theo thông qua phần mềm đặc biệt trong DSR. Thông thường phúc đáp qua phần mềm
này được truyền trực tiếp tới nút gửi tin. Tuy nhiên nếu đường liên kết giữa hai nút là
liên kết đơn hướng thì phúc đáp này có thể phải đi qua rất nhiều chặng khác nhau để
quay lại nút gửi tin

Nếu gói tin được truyền lại qua một số chặng và vượt quá số lần cực đại cho phép
mà vẫn chưa nhận được khẳng định từ nút tiếp theo, nút này sẽ gửi bản tin báo lỗi
tuyến RERR quay trở lại nút đã gửi bản tin ban đầu để xác minh tuyến bị lỗi từ nút
nào. Ví dụ trong hình 2.6 trên : nếu nút C không thể truyền tin đến nút D tiếp theo, C sẽ
gửi bản tin RERR về nút A và tường trình rằng tuyến từ C đến D bị đứt. Khi đó A sẽ
xóa đường liên kết bị lỗi này khỏi bộ nhớ tuyến của nó. Việc truyền lại bản tin ban đầu
bây giờ là nhiệm vụ và chức năng của các thủ tục lớp cao hơn như TCP. Trong trường
hợp phải gửi lại gói tin tới chính đích E và nếu trong bộ nhớ tuyến của nút A có một
tuyến khác tới E (ví dụ từ các bản tin trả lời tuyến từ các thủ tục khám phá tuyến trước
đó hoặc là từ việc nghe lỏm được các thông tin định tuyến từ các gói tin khác) thì nó sẽ
gửi ngay gói tin sử dụng tuyến mới đó. Nếu không nó sẽ thực hiện một thủ tục khám
phá tuyến mới tới đích E nói trên

2.5 AD HOC ON- DEMAND DISTANCE VECTOR ROUTING


(AODV)
AODV cho phép định tuyến nhiều bước giữa các nút mạng để thiết lập và duy trì
mạng Ad hoc. AODV dựa trên thuật toán vector khoảng cách nhưng thuộc loại định
tuyến theo yêu cầu, nó chỉ yêu cầu đường định tuyến khi cần thiết. Thuật toán định
tuyến AODV khá phù hợp cho cấu hình mạng động. AODV đưa ra các tuyến không bị
lặp ngay cả khi nó đang sửa các liên kết lỗi. Bởi vì giao thức này không yêu cầu quảng
bá tuyến định kỳ trên toàn mạng, nên yêu cầu toàn bộ băng thông có sẵn cho một nút

Vũ Huy Cường- ĐT3- K49 35


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

di động thực chất là thấp hơn so với các giao thức khác, những giao thức yêu cầu
quảng bá.
AODV sử dụng liên kết đối xứng giữa các hàng xóm. Gói tin không đi theo tuyến
đường giữa các nút khi một trong những nút đó không nghe được từ các nút khác.
Những nút không nằm trên các tuyến đường hoạt động; chúng sẽ không duy trì bất cứ
thông tin định tuyến nào cũng như không tham gia vào bất kỳ sự trao đổi bảng định
tuyến định kỳ nào. Hơn nữa, một nút không phải khám phá và duy trì một tuyến tới nút
khác cho tới khi hai nút cần giao tiếp với nhau, trừ khi nút đó đóng vai trò như một
trạm chuyển tiếp trung gian để duy trì kết nối giữa hai nút khác . Khi một kết nối cục
bộ của nút di động được thiết lập, mỗi nút có thể nhận thấy các nút khác trong vùng lân
cận của nó bằng một vài kĩ thuật, bao gồm quảng bá cục bộ các bản tin Hello. Bảng
định tuyến của các nút trong vùng lân cận được tạo ra để tối ưu thời gian đáp ứng tới
với sự di chuyển cục bộ và cung cấp thời gian đáp ứng nhanh cho các yêu cầu thiết lập
tuyến mới.
Mục tiêu chính của thuật toán AODV:
• Gửi broadcast các gói tin khám phá tuyến khi cần thiết.

• Phân biệt giữa phát hiện-quản lý kết nối cục bộ trong vùng lân cận với duy trì
topo mạng chung.

• Quảng bá thông tin về sự thay đổi kết nối cục bộ tới các nút hàng xóm mà thực
sự cần thông tin.

AODV sử dụng một cơ chế Khám phá tuyến với sự cải biến của thuật toán DSR.
Thay vì định tuyến nguồn, AODV tin tưởng vào sự thiết lập động các entry trong Bảng
định tuyến ở các nút trung gian.
AODV sử dụng số thứ tự ở nút mạng đích để giúp cho tuyến đường luôn cập nhật
và không hình thành đường định tuyến khép kín. Hơn nữa, AODV cũng hỗ trợ định
tuyến multicast và giải quyết được vấn đề đếm vô hạn trong thuật toán Bellman Ford.

Vũ Huy Cường- ĐT3- K49 36


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

2.5.1 Khám phá tuyến


Quá trình Khám phá tuyến được khởi tạo bất cứ khi nào một nút nguồn muốn giao
tiếp với các nút mạng khác nhưng nó lại không có thông tin định tuyến trong Bảng
định tuyến của nó. Mỗi nút duy trì hai bộ đếm: số thứ tự nút và broadcast ID. Nút
nguồn khởi tạo Khám phá tuyến bằng cách quảng bá gói tin RREQ tới hàng xóm của
nó.
RREQ chứa các trường sau:
<source_addr source sequence# broadcast_id dest_addr dest sequence # hop_cnt>
Trong đó:
- source _addr: địa chỉ nguồn
- source sequence: số thứ tự nguồn
- broadcast_id: định danh của RREQ
- dest_addr: địa chỉ đích
- dest sequence: số thứ tự đích
- hop_cnt : số chặng
Cặp <source_addr, broadcast_id> được xác định duy nhất với mỗi bản tin RREQ.
broadcast_id được tăng lên khi nút nguồn khởi tạo một RREQ mới. Mỗi nút hàng xóm
khi nhận được bản tin RREQ sẽ gửi lại một bản tin RREP tới nút nguồn nếu nó biết
một tuyến tới đích, hoặc tiếp tục quảng bá bản tin RREQ tới nút hàng xóm sau khi tăng
hop_cnt. Chú ý rằng mỗi nút có thể nhận được nhiều bản sao của cùng một RREQ từ
các hàng xóm. Khi một nút trung gian nhận được một RREQ, nếu nó đã nhận RREQ
với cùng broadcast_id và địa chỉ đích, nó sẽ loại bỏ RREQ đó và không chuyển tiếp
gói tin đó nữa. Nếu một nút không thể đáp ứng được RREQ, nó sẽ theo dõi các thông
tin sau để thiết lập tuyến đường ngược cũng như thiết lập tuyến đường thuận để dành
cho việc truyền gói tin RREP.
• Địa chỉ IP đích

• Địa chỉ IP nguồn

Vũ Huy Cường- ĐT3- K49 37


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

• Broadcast ID

• Thời gian hết hạn của entry tuyến đường ngược

• Số thứ tự của nút nguồn

2.5.2 Thiết lập tuyến đường ngược


Có hai số thứ tự được chứa trong một bản tin RREQ: số thứ tự nguồn và số thứ tự
đích cuối cùng được biết bởi nguồn. Số thứ tự nguồn được sử dụng để duy trì thông tin
mới về tuyến đường ngược tới nguồn, và số thứ tự đích chỉ ra rằng tuyến đường tới
đích phải mới như thế nào để nó có thể được chấp nhận bởi nguồn. Khi bản tin RREQ
được gửi từ nút nguồn tới các nút đích khác nhau, nó sẽ tự động thiết lập các tuyến
đường ngược từ tất cả các nút đó tới nút nguồn. Để thiết lập tuyến đường ngược, mỗi
nút phải ghi lại địa chỉ của hàng xóm mà từ đó nó nhận được bản sao đầu tiên của
RREQ. Các entry tuyến đường ngược được duy trì trong khoảng thời gian vừa đủ để
bản tin RREQ có thể truyền trên mạng và trả lời lại tới nút gửi.

Hình 2.7 Thiết lập tuyến đường đi ngược

Vũ Huy Cường- ĐT3- K49 38


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

2.5.3 Thiết lập tuyến đường thuận


Cuối cùng, bản tin RREQ sẽ đến được một nút biết được tuyến tới nút đích. Đầu
tiên, nút nhận được bản tin RREQ sẽ kiểm tra để chắc chắn rằng bản tin RREQ đã
được nhận trên một liên kết hai chiều. Nếu một nút trung gian có một entry tuyến tới
đích yêu cầu, nó so sánh số thứ tự đích trong entry tuyến của chính nó với số thứ tự
đích trong bản tin RREQ để xác định xem tuyến đó có dùng được hay không. Nếu số
thứ tự đích trong bản tin RREQ lớn hơn, nút trung gian sẽ không sử dụng tuyến trong
bảng entry tuyến của nó để đáp ứng RREQ. Khi đó, nút trung gian sẽ tiếp tục quảng bá
RREQ. Các nút trung gian chỉ trả lời khi số thứ tự đích trong bảng entry của nó lớn hơn
so với trong bản tin RREQ. Nếu nút trung gian có một tuyến hiện hành tới nút đích và
nếu bản tin RREQ này chưa được nhận trước đó, nút sẽ gửi unicast một bản tin RREP
tới hàng xóm mà từ đó nó nhận được RREQ.
Một bản tin RREP chứa các thông tin sau:
<địa chỉ nguồn, địa chỉ đích, thứ tự đích# số chặng, thời gian sống>
Trong khi một gói tin quảng bá tới một nút có tuyến tới đích, một tuyến đường
ngược được thiết lập tới nút nguồn của gói tin RREQ. Khi RREP trở lại nút nguồn, mỗi
nút dọc theo tuyến đường thiết lập một con trỏ thuận tới nút mà từ đó RREP đến, cập
nhật thông tin timeout cho các entry tới nút nguồn và nút đích, ghi lại số thứ tự đích
mới nhất cho tuyến được yêu cầu. Thiết lập tuyến đường thuận khi RREP từ nút đích D
tới nút nguồn S. Nút không nằm trên tuyến được xác định bởi RREP sẽ hết hạn sau
ACTIVE_ROUTE_TIMEOUT (3000ms) và sẽ xóa con trỏ ngược.
Một nút nhận RREP sẽ truyền RREP đầu tiên về nút nguồn. Nếu một nút nhận
nhiều hơn một RREP, nó sẽ cập nhật thông tin định tuyến của nó và truyền RREP chỉ
khi RREP có số thứ tự đích lớn hơn hoặc bằng RREP trước đó với một số chặng nhỏ
hơn. Nó sẽ loại bỏ hết các RREP khác mà nó nhận được. Điều này giảm số lượng bản
tin RREP truyền tới nút nguồn đồng thời đảm bảo rằng thông tin định tuyến là nhanh
và mới nhất. Nút nguồn có thể truyền dữ liệu ngay sau khi nhận được RREP đầu tiên
và sau đó có thể cập nhật thông tin định tuyến nếu nó học được một tuyến mới tốt hơn.

Vũ Huy Cường- ĐT3- K49 39


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Hình 2. 8 Thiết lập tuyến đường thuận

2.5.4 Quản lý bảng định tuyến


Gắn liền với các entry tuyến đường ngược là một bộ đếm thời gian, được gọi là
“bộ đếm thời gian hết hạn RREQ”. Mục đích của bộ đếm thời gian này là để thanh lọc
những entry tuyến đường ngược từ những nút không nằm trên tuyến đường từ nguồn
tới đích.
Thời gian hết hạn phụ thuộc vào kích thước của mạng Ad hoc. Một thông số quan
trọng khác gắn với entry định tuyến là thời gian timeout của các tuyến đang được lưu
giữ, hay thời gian mà sau đó tuyến đường này coi như hết hiệu lực. Trong mỗi entry
Bảng định tuyến, địa chỉ của nút hàng xóm mà gói tin đi qua để đến đích cũng được
duy trì. Một nút được coi là hoạt động đối với đích đó khi nó tạo ra hay chuyển tiếp ít
nhất một gói tin tới đích đó trong khoảng thời gian timeout . Thông tin này được duy
trì để tất cả các nút nguồn có thể được thông báo khi có một liên kết bị đứt. Mỗi nút
duy trì một entry cho mỗi đích cần đến. Mỗi entry chứa các thông tin sau:
- Đích

Vũ Huy Cường- ĐT3- K49 40


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

- Next hop
- Số chặng
- Số thứ tự đích
- Các hàng xóm còn hoạt động cho đích đó
- Thời gian hết hạn cho entry bảng định tuyến
Mỗi khi một entry tuyến được dùng để truyền gói tin dữ liệu từ nguồn tới đích,
timeout cho entry đó sẽ được reset tới thời gian hiện tại cộng thêm timeout. Nếu một
tuyến mới được yêu cầu cho một nút di động, các nút di động so sánh số thứ tự đích
của tuyến mới với tuyến hiện tại. Nếu số thứ tự tuyến mới cao hơn, nó sẽ được chọn,
nếu bằng nhau thì tuyến mới sẽ được chọn khi có metric nhỏ hơn (số chặng ít hơn) tới
đích.
2.5.5 Cập nhật đường định tuyến

Khi một nút mạng phát hiện đường định tuyến đến nút bên cạnh không hoạt động,
nó sẽ xóa trong bảng định tuyến và gửi một bản tin Liên kết hỏng RERR. AODV sử
dụng danh sách nút mạng bên cạnh còn hoạt động để ghi nhớ nút mạng đang sử dụng
đường định tuyến trong bảng định tuyến. Nút mạng nhận được bản tin này cũng sẽ lặp
lại quá trình gửi bản tin. Cuối cùng bản tin cũng đến được gửi đến tất cả nút mạng có
liên quan, từ đó chúng có thể dừng việc gửi thông tin hoặc yêu cầu đường định tuyến
mới thông qua bản tin RREQ.

2.6 DYNAMIC MANET ON- DEMAND (DYMO)


DYMO là giao thức định tuyến theo bảng mới nhất, hiện vẫn đang được phát triển
bới MANET trong IETF. DYMO có thể coi là sự kết hợp của AODV và DSR. Mục
tiêu của nó là thiết kế đơn giản, giảm thiểu yêu cầu hệ thống , đơn giản hóa việc thực
thi giao thức. Một mặt, DYMO cũng sử dụng số thứ tự để đàm bảo tránh lặp tuyến, mặt
khác, DYMO đưa ra các đặc tính mới như là thực hiện tính toán tuyến đường. Bên
cạnh thông tin tuyến đường về một mục tiêu được yêu cầu, một nút cũng nhận được
thông tin về tất cả các nút trung gian nằm trên một tuyến đường mới khám phá được.

Vũ Huy Cường- ĐT3- K49 41


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Đây là một khác biệt cơ bản giữa DYMO và AODV, trong đó thì AODV chỉ tạo ra
entry bảng định tuyến cho nút đích và nút next-hop, còn DYMO thì lưu trữ tuyến
đường cho mỗi nút trung gian. Điều này được thể hiên qua hình 2.9.

Hình 2.9: Sự khác nhau giữa AODV và DYMO

Khi sử dụng AODV, một nút A chỉ biết đường tới B và D sau khi Yêu cầu tuyến
được đáp ứng. Trong DYMO, nút A cũng biết cả đường tới C. DYMO có thể thiết lập
và duy trì các tuyến đường unicast trong các kịch bản mạng IPv4 và IPv6 bằng cách sử
dụng cơ chế sau:
• Nhằm phát hiện một tuyến mới đến một nút đích, một nút gửi một bản tin Yêu
cầu tuyến RREQ tới tất cả hàng xóm trong phạm vị truyền sóng của nó. Điều
này cũng nhận được bằng cách gửi bản tin tới 1 địa chỉ multicast cục bộ riêng.
Khi một nút trung gian nhận được một RREQ nó thiết lập tuyến đường tới tất cả
các nút mà gói tin đã đi qua. Sau đó nút sẽ gắn địa chỉ của chính nó vào bản tin
và truyền bản tin tới tất cả các nút lân cận. Bằng cách này thì RREQ được quảng
bả một cách hiệu quả trên mạng và cuối cùng là đến đích của nó.

• Đich đáp ứng RREQ bằng cách gửi unicast một bản tin Trả lời RREP trở về nút
mà nó mà từ đó nó nhận được RREQ. Cũng như trong quá trình quảng bá
RREQ, nút này lại gắn địa chỉ của nó và ghi chú tất cả các thông tin định tuyến
có trong RREP. Cùng với thông tin định tuyến đã có được trước đó khi chuyển

Vũ Huy Cường- ĐT3- K49 42


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

tiếp RREQ tương ứng, nút trung gian có khả năng gửi RREP trở về nút nguồn
của RREQ. Nút này cũng sẽ biết được tuyến đường tới nút đích được yêu cầu,
cũng như là đường tới mọi nút trung gian, và ngược lại.

Một nút trung gian cũng có thể tạo ra RREP nếu như nó biết tuyến đường tới đích.
Để phản ứng tốt với mạng có mức độ di chuyển cao, các liên kết trên tuyến đường đã
biết được có thể được theo dõi, bằng cách sử dụng giao thức nhận biết hàng xóm
(Neighboehood Discovery Protocol) hoặc kiểm tra phản hồi nhận được ở tầng data
link. Một hệ thống cũng có thể lựa chọn không bật tính năng theo dõi, đơn giản chỉ xóa
các tuyến không còn hoạt động. Khi một nút phát hiện liên kết lỗi, nó sẽ gửi một bản
tin RERR để thông báo có tất cả các nút lân cận, thông báo cho chúng biết về tất cả các
tuyến đị đứt.

TỔNG KẾT
Qua việc nghiên cứu một số giao thức trong mạng Ad hoc ta có thể thấy rằng
chưa có giao thức nào có đầy đủ các tính năng và không thể khẳng định giao thức nào
là tối ưu cho mạng Ad hoc. Tuy nhiên, chức năng chính của các giao thức là tìm được
đường đi tới đích, không phải đường ngắn nhất hay đường tối ưu nhất được đáp ứng.

Vũ Huy Cường- ĐT3- K49 43


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

3 CHƯƠNG 3 THÔNG SỐ ĐÁNH GIÁ VÀ MÔ HÌNH


CHUYỂN ĐỘNG TRONG MÔ PHỎNG MẠNG AD
HOC

Như đã trình bày ở chương 2, giao thức định tuyến trong mạng Ad hoc đều tập
trung giải quyết vấn đề và khái niệm đặc trưng của môi trường vô tuyến. Nhưng giao
thức nào là tốt nhất, phù hợp nhất? Nó phụ thuộc vào cấu trúc và thuộc tính của mạng,
mật độ nút mạng, mức độ di chuyển của nút mạng, kích cỡ môi trường, kiểu di chuyển
của các nút mạng...

3.1 THÔNG SỐ ĐÁNH GIÁ GIAO THỨC MẠNG AD HOC

Có hai thông số để đánh giá: thông số đánh giá chất lượng và thông số kịch bản.

3.1.1 Thông số đánh giá chất lượng

Vũ Huy Cường- ĐT3- K49 44


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Các thông số này được sử dụng để đưa ra chính xác những gì xảy ra trong quá
trình mô phỏng và cung cấp các thông tin có giá trị về các giao thức định tuyến. Do đó,
nó dành được nhiều sự quan tâm khi nghiên cứu giao thức định tuyến mô phỏng.

3.1.1.1 Tỷ lệ gói nhận được

Định nghĩa: Tỷ lệ gói nhận được RD là tỷ lệ giữa số gói nhận được bởi nút đích
(PR) và số gói được gửi đi từ lớp ứng dụng của nút nguồn (PS).
RD = PR / PS (CT 3.1)
Ý nghĩa: giao thức định tuyến hoạt động tốt phải có giá trị RD cao do khả năng tận
dụng băng thông vô tuyến là rất quan trọng. Thông số này phản ánh tỷ lệ gói tin bị mất,
mức độ hoàn chỉnh và đúng đắn của giao thức định tuyến.

3.1.1.2 Trễ từ đầu cuối đến đầu cuối

Định nghĩa: Trễ từ đầu cuối đến đầu cuối là thời gian mà gói tin truyền trên mạng
từ nút nguồn đến nút đích. Nó bao gồm nhiều giá trị nhỏ trên mạng: trễ bộ đệm, trễ
chuyển tiếp gói tin ở nút trung gian, trễ truyền dẫn và thời gian để truyền lại gói tin
(trong trường hợp gói tin bị mất). Có thể tính thời gian trễ theo hai cách:
Tdelay = Trev – T send (CT 3.2)
Hoặc: Tdelay = T buffer + Trelay + Tprop + Tresend (CT 3.3)
Ý nghĩa: Trong mạng gói vô tuyến không có QoS thì giá trị trễ phụ thuộc vào giao
thức định tuyến. Một thông số quan trọng là thời gian trễ trong bộ đệm, tức là gói tin
được lưu giữ trong bộ đệm khi chưa có đường định tuyến đến đích trước khi bị hủy.
Nếu như nút mạng đặt thời gian lớn thì ít gói tin trên mạng bị hủy, nhưng cũng có
nghĩa trễ trung bình trong mạng cũng tăng lên. Và người thiết kế hệ thống sẽ quyết
định: tỷ lệ gói hủy bỏ thấp hay thời gian trễ, điều này liên quan đến giá trị trễ đầu cuối
đến đầu cuối.

Vũ Huy Cường- ĐT3- K49 45


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

3.1.1.3 Thông lượng từ đầu cuối đến đầu cuối

Định nghĩa: thông lượng là tỉ lệ giữa số gói tin dữ liệu được truyền trên một đơn
vị thời gian.
Ý nghĩa: Khi băng thông sẵn có trên mạng đã biết, thì trong mô phỏng băng thông
thực sự có được là bao nhiêu? Thông số thông lượng T sẽ cho biết băng thông thực sự
khi mô phỏng và có thể cho tháy sự hiệu quả của giao thức định tuyến ở mức độ nào.
Khi thông lượng trung bình cao nghĩa là băng thông dành cho định tuyến là ít, khi đó
giao thức định tuyến hoạt động tốt.

3.1.1.4 Phần tải thông tin định tuyến

Định nghĩa: là tỉ lệ giữa gói tin định tuyến được gửi đi với số gói dữ liệu được gửi
tới đích.
Ý nghĩa: Tải thông tin định tuyến là một thông số quan trọng với mạng Ad hoc,
nó cũng cho biết hiệu năng sử dụng băng thông của giao thức định tuyến: bao nhiêu
băng thông được sử dụng cho bản tin định tuyến, bao nhiêu băng thông được sử dụng
cho các gói tin dữ liệu. Phần tải định tuyến trong giao thức định tuyến theo yêu cầu
thông thường là lớn do nó phải gửi bản tin cập nhật định kỳ trên toàn mạng. Trường
hợp lý tưởng là không có bản tin định tuyến, chỉ có gói tin dữ liệu được truyền trên
mạng; tuy nhiên, nếu không có giao thức định tuyến thì không thể triển khai thực tế.

3.1.2 Thông số kịch bản


Các thông số kịch bản được tính toán từ dữ liệu đầu vào của mô phỏng, hoặc có
thể là biến đầu vào (ví dụ như thời gian tạm dừng). Nó không phụ thuộc vào giao thức
định tuyến hoặc quá trình mô phỏng cũng như các thông số đánh giá chất lượng mà ta
nghiên cứu ở trên. Nó cung cấp sự so sánh thật nhất giữa các giao thức.

3.1.2.1 Thông số di chuyển

Vũ Huy Cường- ĐT3- K49 46


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Nó đánh giá sự chuyển động trong mạng bằng cách tính toán di chuyển của nút mạng
liên quan giữa các cặp nút trên mạng. Thông số này tương ứng với số thay đổi liên kết
trong mô hình khi mà nút mạng di chuyển theo mô hình định trước.

Bảng 3.1 Bảng các biến trong thông số di chuyển

Tên Mô tả
biến
Dist(nx, ny)t Khoảng cách giữa nút X và nút Y ở thời điểm t
n Số nút mạng
i Chỉ số
Ax(t) Khoảng cách trung bình giữa các nút x với các nút khác ở thời điểm t
Mx Di chuyển trung bình của nút x với các nút trong thời gian mô phỏng
T Thời gian mô phỏng
Δt Bước thời gian mô phỏng
Mod Di chuyển trong toàn bộ kịch bản [m/s]

Bước 1: tính khoảng cách trung bình của các nút x với các nút khác trong mạng được
thực hiện ở các thời điểm t=0, t= 0 + X, t=0 + 2X, ... t = T, theo công thức:

(CT 3.4)

Bước 2: Tính di chuyển của nút x theo công thức:

(CT 3.5)

Bước 3: Tính thông số di chuyển cho cả kịch bản:

(CT 3.6)

2.4.3.1 Thời gian tạm dừng

Thời gian tạm dừng là một biến đầu vào của mô phỏng. Khi sử dụng như một
thông số đánh giá, thời gian tạm dừng của tất cả các nút trong mô phỏng được sử dụng

Vũ Huy Cường- ĐT3- K49 47


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

để đo kiểm thông số chuyển động. Khi giá trị trung bình càng lớn thì nút mạng càng ít
di chuyển trong mạng.

3.2 MÔ HÌNH DI CHUYỂN MÔ PHỎNG MẠNG AD HOC


Trong mạng Ad hoc, nút mạng di chuyển từ vị trí này đến vị trí khác, nên khó
khăn khi tìm ra mô hình di chuyển có thể cho mô phỏng. Để có thể mô phỏng giao thức
định tuyến thì cần phải có sự phát triển và sử dụng “mô hình di chuyển” cho nút mạng,
do đó việc xác định mô hình di chuyển là rất quan trọng.
Mô hình di chuyển yêu cầu phải mô tả di chuyển của nút mạng giống như trong
thực tế, cần có sự thay đổi về hướng và tốc độ di chuyển trong những khoảng thời gian
hợp lý. Chắc chắn nút mạng thực không thể di chuyển theo đường thẳng với tốc độ
không đổi trong suốt quá trình mô phỏng. Vận tốc có thể thay đổi và giảm đến 0, tương
tự hướng di chuyển cũng sẽ thay đổi.
Có rất nhiều mô hình áp dụng cho mạng Ad hoc, có thể tương ứng với từng ngữ
cảnh kịch bản mô phỏng, trong giới hạn đồ án đề cập một số mô hình tiêu biểu.

3.2.1 Mô hình di chuyển ngẫu nhiên


Mô hình di chuyển ngẫu nhiên là mô hình di chuyển đơn giản dựa trên hướng và
vận tốc ngẫu nhiên, trong đó vận tốc và hướng hiện tại của hai hay nhiều nút mạng
hoàn toàn độc lập với giá trị cũ của chúng. Do đó, mô hình sẽ phải đối mặt với hiện
tượng không giống thực tế: dừng đột ngột, có vòng quay nhọn, đường di chuyển quanh
co hoàn toàn ngẫu nhiên. Để khắc phục vấn đề này, người ta có thể thay đổi mô hình
bằng cách tính toán vận tốc hay hướng di chuyển hoặc cả hai.

3.2.2 Mô hình di chuyển hướng ngẫu nhiên với vận tốc không đổi
Đây là mô hình sửa đổi của mô hình di chuyễn ngẫu nhiên nhưng đảm bảo tất cả
nút mạng được gán cho một vận tốc như nhau trong suốt quá trình mô phỏng. Sau khi
hướng chọn một cách ngẫu nhiên trong khoảng (0, 2π), các nút bắt đầu di chuyển. Khi

Vũ Huy Cường- ĐT3- K49 48


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

gặp biên của khu vực mô phỏng, nó nảy khỏi biên với một góc xác định bởi hướng đến,
các nút di chuyển thao đường mới.

3.2.3 Mô hình di chuyển Random Waypoint


Mô hình này có sử dụng thời gian tạm dừng khi thay đổi hướng và vận tốc. Hai
hay nhiều nút mạng ở một vị trí trong một khoảng thời gian (thời gian tạm dừng). Khi
hết thời gian tạm dừng, nút mạng chọn ngẫu nhiên vận tốc trong khoảng (0, maxspeed)

Hình 3.1 Mô hình di chuyển Random Waypoint

3.2.4 Mô hình di chuyển hướng ngẫu nhiên


Mô hình này khắc phục nhược điểm của mô hình Random Waypoint, do các nút
trong mô hình Random Waypoint thường chọn các đích mới và xác suất chọn thường
là trung tâm khu vực mô phỏng hoặc đường đi qua trung tâm khu vực mô phỏng. Khi
các nút mạng có xu hướng hội tụ, phân tán... trong mô hình di chuyển hướng ngẫu

Vũ Huy Cường- ĐT3- K49 49


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

nhiên, các nút chọn hướng thay vì chọn đích, sau đó nó di chuyển theo hướng đó đến
biên của khu vực mô phỏng, ngay khi đến biên nó dừng lại trong một khoảng thời gian
và chọn hướng khác (0, 180o) và tiếp tục quá trình .

Hình 3.2 Mô hình di chuyển hướng ngẫu nhiên

TỔNG KẾT
Việc lựa chọn các thông số đánh giá giao thức và mô hình di chuyển là rất quan
trọng. Thông qua các thông số đó, ta có thể đánh giá được điểm mạnh cũng như điểm
yếu của một giao thức mạng. Qua đó, ta có thể lựa chọn được giao thức phù hợp cho
những giả thiết và yêu cầu đặt ra.

Vũ Huy Cường- ĐT3- K49 50


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

4 CHƯƠNG 4. MÔ PHỎNG VÀ ĐÁNH GIÁ THÔNG


LƯỢNG CỦA AODV, OLSR, DSR VÀ DYMO BẰNG
OMNET++
Chương này sẽ giới thiệu về công cụ để mô phỏng giao thức định tuyến mang Ad
học, mô phỏng các giao thức định tuyến, giả thiết đầu vào cho quá trình mô phỏng. Kết
quả mô phỏng và đánh giá, kết luận.

4.1 GIỚI THIỆU CHUNG VỀ OMNET++

4.1.1 Tổng quan về Omnet++


4.1.1.1 Omnet ++ là gì ?

OMNeT++ là viết tắt của cụm từ Objective Modular Network Testbed in C++.
OMNeT++ là một ứng dụng cung cấp cho người sử dụng môi trường để tiến hành
mô phỏng hoạt động của mạng. Mục đích chính của ứng dụng là mô phỏng hoạt động
của mạng thông tin, tuy nhiên do tính phổ cập và linh hoạt của nó, OMNeT++ còn
được sử dụng trong nhiều lĩnh vực khác như mô phỏng các hệ thống thông tin phức
tạp, các mạng kiểu hàng đợi (queing networks) hay các kiến trúc phần cứng…
OMNeT++ cung cấp sẵn các thành phần tương ứng với các mô hình thực tế. Các
thành phần này (còn được gọi là các module) được lập trình theo ngôn ngữ C++, sau
đó được tập hợp lại thành những thành phần hay những mô hình lớn hơn bằng một
ngôn ngữ bậc cao (NED). OMNeT++ hỗ trợ giao diện đồ họa, tương ứng với các mô
hình cấu trúc của nó đồng thời phần nhân mô phỏng (simulation kernel) và các module
của OMNeT++ cũng rất dễ dàng nhúng vào trong các ứng dụng khác.

4.1.1.2 Các thành phần chính của OMNeT++

Trong OMNeT++ có các thành phần chính sau:

Vũ Huy Cường- ĐT3- K49 51


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

 Thư viện phần nhân mô phỏng (simulation kernel)

 Trình biên dịch cho ngôn ngữ mô tả tình trạng (topology description
language) – NED (nedc)

 Trình biên tập đồ họa (graphical network editor) cho các file NED
(GNED)

 Giao diện đồ họa thực hiện mô phỏng, các liên kết bên trong các file thực
hiện mô phỏng (Tkenv)

 Giao diện dòng thực hiện mô phỏng (Cmdenv)

 Công cụ (giao diện đồ họa) vẽ đồ thị kết quả vector ở đầu ra (Plove)

 Công cụ (giao diện đồ họa) mô tả kết quả vô hướng ở đầu ra


(Scalars)Công cụ tài liệu hóa các mô hình

 Các tiện ích khác

 Các tài liệu hướng dẫn, các ví dụ mô phỏng…

4.1.1.3 Ứng dụng

OMNeT++ là một công cụ mô phỏng các hoạt động mạng bằng các
module được thiết kế hướng đối tượng. OMNeT++ thường được sử dụng trong các
ứng dụng chủ yếu như:

 Mô hình hoạt động của các mạng thông tin

 Mô hình giao thức

 Mô hình hóa các mạng kiểu hàng đợi

 Mô hình hóa các hệ thống đa bộ vi xử lý (multiprocessor) hoặc các hệ thống


phần cứng theo các mô hình phân tán khác (distributed hardware systems)

 Đánh giá kiến trúc phần cứng

 Đánh giá hiệu quả hoạt động của các hệ thống phức tạp…

Vũ Huy Cường- ĐT3- K49 52


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

4.1.1.4 Mô hình trong OMNeT++


Một mô hình trong OMNeT++ bao gồm các module lồng nhau có cấu trúc phân
cấp. Độ sâu của các module lồng nhau là không giới hạn, điều này cho phép người sử
dụng có thể biểu diễn các cấu trúc logic của các hệ thống trong thực tế bằng các cấu
trúc mô hình. Các module trao đổi thông tin với nhau thông qua việc gửi các message.
Các message này có thể có cấu trúc phức tạp tùy ý. Các module có thể gửi các message
này theo hai cách, một là gửi trực tiếp tới địa chỉ nhận, hai là gửi đi theo một đường
dẫn được định sẵn, thông qua các cổng và các kết nối.
Các module có thể có các tham số của riêng nó. Các tham số này có thể được sử
dụng để chỉnh sửa các thuộc tính của module và để biểu diễn cho topology của mô
hình.
Các module ở mức thấp nhất trong cấu trúc phân cấp đóng gói các thuộc tính. Các
module này được coi là các module đơn giản, và chúng được lập trình trong ngôn ngữ
C++ bằng cách sử dụng các thư viện mô phỏng.
Một mô hình trong OMNeT++ chứa các module lồng nhau có cấu trúc phân cấp,
trao đổi thông tin với nhau bằng cách gửi các message. Mỗi mô hình này thường biểu
diễn cho một hệ thống mạng. Module mức cao nhất trong cấu trúc phân cấp được gọi là
module hệ thống. Module này có thể chứa các module con, các module con cũng có thể
chứa các module con của riêng nó. Độ sâu phân cấp đối với các module là không giới
hạn, điều này cho phép người sử dụng có thể dễ dàng biểu diễn một cấu trúc logic của
một hệ thống trong thực tế bằng cấu trúc phân cấp của OMNeT++.
Cấu trúc của mô hình có thể được mô tả bằng ngôn ngữ NED của OMNeT++

Hình 4.1 Các module đơn giản và kết hợp

Vũ Huy Cường- ĐT3- K49 53


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Các module có thể chứa nhiều module con và được gọi là module kết hợp. Các
module đơn giản là các module có cấp thấp nhất trong cấu trúc phân cấp. Các module
đơn giản chứa các thuật toán của mô hình. Người sử dụng triển khai các module đơn
giản bằng ngôn ngữ C++, sử dụng các thư viện mô phỏng của OMNeT++.
Các module trao đổi thông tin bằng việc gửi các message. Trong thực tế, message
có dạng khung (frame) hoặc là các gói tin (packet) được truyền đi trong mạng. Các
message có thể có cấu trúc phức tạp tùy ý. Các module đơn giản có thể gửi các
message đi một cách trực tiếp đến vị trí nhận hoặc gửi đi theo một đường dẫn định sẵn
thông qua các cổng (gates) và các liên kết (links).

Các cổng (gates) là các cổng vào, ra của các module. Message được gửi đi qua
các cổng ra và được nhận vào thông qua các cổng vào.

Mỗi kết nối (connection) hay còn gọi là liên kết (link) được tạo bên trong một
mức đơn trong cấu trúc phân cấp của các module: bên trong một module kết hợp, một
kết nối có thể được tạo ra giữa các cổng tương ứng của hai module con, hoặc giữa cổng
của module con với cổng của module kết hợp.

Hình 4.2 Các kết nối

Tương ứng với cấu trúc phân cấp của một mô hình, các message thường di
chuyển qua một loạt các kết nối với điểm bắt đầu và kết thúc là các module đơn giản.
Tập các kết nối đi từ một module đơn giản và đến một module đơn giản được gọi là
route.

Vũ Huy Cường- ĐT3- K49 54


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

4.1.2 Sử dụng OMNeT++

4.1.2.1 Xây dựng và chạy thử các mô hình mô phỏng

a. Một mô hình OMNeT++ bao gồm những phần sau

 Ngôn ngữ mô tả topology – NED (file có phần mở rộng .ned): mô tả cấu


trúc của module với các tham số, các cổng… Các file.ned có thể được viết bằng bất kỳ
bộ soạn thảo hoặc bất kỳ bộ soạn thảo hoặc sử dụng chương trình GNED có trong
OMNeT++

 Định nghĩa cấu trúc của các message (các file có phần mở rộng .msg):
Người sử dụng có thể định nghĩa rất nhiều kiểu message và thêm các trường dữ liệu
cho chúng. OMNeT++ sẽ dịch những định nghĩa này sang các lớp C++ đầy đủ.

 Mã nguồn của các module đơn giản. Đây là các file C++ với phần mở
rộng là .h hoặc .cc.
b. Hệ thống mô phỏng cung cấp cho ta các thành phần sau

 Phần nhân mô phỏng. Phần này chứa code để quản lý quá trình mô phỏng
và các thư viện lớp mô phỏng. Nó được viết bằng C++, được biên dịch và được đặt
cùng dạng với các file thư viện (các file có phần mở rộng là .a hoặc .lib).

 Giao diện người sử dụng. Giao diện này được sử dụng khi thực hiện quá
trình mô phỏng, tạo sự dễ dàng cho quá trình sửa lỗi, biểu diễn (demonstration) hoặc
khi thực hiện mô phỏng theo từng khối (batch execution of simulations). Có một vài
kiểu giao diện trong OMNeT++, tất cả đều được viết bằng C++, được biên dịch và đặt
cùng nhau trong các thư viện (các file có phần mở rộng là .a hoặc .lib)
c. Thực hiện mô phỏng và phân tích kết quả
Các chương trình thực hiện mô phỏng (the simulation executable) là các
chương trình độc lập, tức là nó có thể chạy trên các máy khác không cài đặt
OMNeT++ hay các file mô hình tương ứng. Khi chương trình khởi động, nó bắt
đầu đọc file cấu hình (thông thường là file omnetpp.ini). File này chứa các thiết lập

Vũ Huy Cường- ĐT3- K49 55


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

để điều khiển nhiều quá trình mô phỏng, trong trường hợp đơn giản nhất là các quá
trình mô phỏng này sẽ được thực hiện lần lượt bởi một chương trình mô phỏng
(simulation program).
Đầu ra của quá trình mô phỏng là các file dữ liệu. Các file này có thể là
các file vector, các file vô hướng hoặc các file của người sử dụng. OMNeT++ cung
cấp một công cụ đồ họa Plove để xem và vẽ ra nội dung của các file vector. Tuy
nhiên chúng ta cũng nên hiểu rằng khó mà có thể xử lý đầy đủ các file kết quả mà
chỉ dùng riêng OMNeT++; các file này đều là các file có định dạng để có thể đọc
được bởi các gói xử lý toán học của các chương trình như Matlab hay Octave, hoặc
có thể được đưa vào tính của các chương trình như OpenOffice Calc, Gnumeric hay
Microsoft Excel. Tất cả các chương trình này đều có chức năng chuyên dụng trong
việc phân tích số hóa, vẽ biểu diễn (visualization) vượt qua khả năng của OMNeT+
+.
Các file vô hướng cũng có thể được biểu diễn bằng các công cụ Scalar. Nó có
thể vẽ được các biểu đồ, các đồ thị dựa vào tập hợp các tọa độ (x,y) và có thể xuất
dữ liệu vào clipboard để có thể sử dụng trong các chương trình khác nhằm đưa
những phân tích chi tiết hơn.
d. Giao diện người sử dụng
Mục đích chính của giao diện người sử dụng là che những phần phức tạp bên
trong cấu trúc của các mô hình đối với người sử dụng, dễ dàng điều khiển quá trình
mô phỏng, và cho phép người sử dụng có khả năng thay đổi các biến hay các đối
tượng bên trong của mô hình. Điều này là rất quan trọng đối với pha phát triển và
sửa lỗi trong dự án. Giao diện đồ họa cũng có thể được sử dụng để trình diễn hoạt
động của mô hình.
Cùng một mô hình người sử dụng có thể trên nhiều giao diện khác nhau
mà không cần phải thay đổi gì trong các file mô hình. Người sử dụng có thể kiểm
thử và sửa lỗi rất dễ dàng qua giao diện đồ họa, cuối cùng có thể chạy nó dựa trên
một giao diện đơn giản và nhanh chóng có hỗ trợ thực hiện theo khối (batch
execution)

Vũ Huy Cường- ĐT3- K49 56


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

e. Các thư viện thành phần


Các kiểu module có thể được lưu tại những vị trí độc lập với chỗ mà chúng
thực sự được sử dụng. Đặc điểm này cung cấp cho người sử dụng khả nhóm các
kiểu module lại với nhau và tạo ta các thư viện thành phần.
f. Các chương trình mô phỏng độc lập
Các chương trình thực hiện quá trình mô phỏng có thể được lưu lại nhiều lần,
không phụ thuộc vào các mô hình, sử dụng cùng một thiết lập cho các module đơn
giản. Người sử dụng có thể chỉ ra trong file cấu hình mô hình nào sẽ được chạy.
Điều này tạo khả năng cho người sử dụng có thể xây dựng những chương trình thực
hiện lớn bao gồm nhiều quá trình mô phỏng, và phân phối nó như một công cụ mô
phỏng độc lập. Khả năng linh hoạt của ngôn ngữ mô tả topology cũng hỗ trợ cho
hướng tiếp cận này.

4.1.2.2 Chạy các ứng dụng trong OMNeT++

Như đã trình bày ở phần mở đầu, một hệ thống mạng mô phỏng trong OMNeT++
gồm các thành phần sau:

 Các file.ned mô tả topo mạng.

 Các file có phần mở rộng .msg chứa khai báo các message.

 Các file C++ (có phần mở rộng là .cc trong UNIX hoặc .cpp trong
Windows)
Quá trình xây dựng một chương trình mô phỏng

 Đầu tiên, dịch các file NED và các file message thành C++, sử dụng
NED compiler (nedc) và message compiler (opp_msgc).

 Quá trình tiếp theo giống như biên dịch mã nguồn C/C++

 Trong Linux: các file .cc → file.o.

 Trong Windows: các file .cpp → file .obj.

Vũ Huy Cường- ĐT3- K49 57


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

 Sau đó tất cả các file trên sẽ được liên kết (link) với các thư viện cần thiết
để tạo thành file .exe.
Cụ thể ta cần phải liên kết với các thư viện sau:

 Phần nhân mô phỏng được gọi là sim_std (như các file libsim_std.a,
sim_std.lib, etc)

 Giao diện người dùng: cung cấp thư viện môi trường (file libenvir.a, etc)
và các tiện ích tkenv và cmdenv (libtkenv.a, libcmdenv.a, etc). Các file .o (hoặc .obj)
phải được liên kết tới thư viện môi trường cùng với hoặc tkenv hoặc cmdenv.

Hình dưới đây cho chúng ta hình ảnh quá trình xử lý khi mô hình được xây dựng
và hoạt động

Vũ Huy Cường- ĐT3- K49 58


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

File mô tả Thư viện lõi của Thư viện giao diện


File xử lý của chương trình mô người dùng
cấu trúc
simple modules phỏng *.lib / *.a *.lib / *.a
mạng
*.cc
*.ned

NEDC compling

File mô tả cấu trúc


mạng sau khi dịch
*_n.cc

C++ compiling

Linking

Chương trình mô File cấu hình


phỏng Omnetpp.ini

Chạy chương
trình

File kết quả


*.vec, *.sna, *.sca

Hình 4.3 Lược đồ xây dựng và chạy một chương trình mô phỏng
OMNeT++

*.ned là các file mô tả topo mạng cũng như cấu trúc của các modul, nó sự dụng
ngôn ngữ NED (Nework Description ), là ngôn ngữ chuyên biệt dùng riêng cho
OmNet++. Sự phát triển tiếp theo của NED là GNED (Graphic NED) làm cho việc mô
tả topo mạng được trực quan hơn bằng cách dùng các công cụ đồ hoạ để mô tả. Các
file ned sau đó được NEDC (NED compiler) dich sang code C++ để mô tả cấu trúc
mạng sang ngôn ngữ C++ dưới dạng file *_.cc.

Vũ Huy Cường- ĐT3- K49 59


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Các file xử lý của các simple moduls là phần cốt lõi khi viết chương trình mô
phỏng và được viết bằng ngôn ngữ C++ bằng cách kế thừa các lớp có sẵn của OmNet+
+, người viết triển khai các hoạt động của mạng như định tuyến, xử lí gói tin đến và đi,
xác định hành vi của các simple modul được mô tả trong *.ned khi có sự kiện xảy ra
với nó….
Thư viện lõi của chương trình mô phỏng được cung cấp bởi OmNet++, nó bao
gồm rất nhiều các lớp và các hàm có sẵn phục vụ cho chương trình mô phỏng như các
lớp cSimplemodul, cMessage..., các hàm ngẫu nhiên… Thư viện giao diện người dùng
cung cấp giao diện cho chương trình mô phỏng. OmNet++ với các phiên bản gần đây
sử dụng hai kiểu giao diện là giao diện dòng lệnh cmd (command) và giao diện đồ hoạ
dựa trên tcl/tk. Giao diện đồ hoạ rất trực quan nên được ưa dùng hơn. Sau khi dịch và
liên kết ta được một chương trình mô phỏng dựa trên nền OmNet++.
File omnetpp.ini để khởi động các giá trị cần thiết. omnetpp.ini do người lập trình
viết, nó rất quan trọng để chạy một chương trình mô phỏng với các tham số được thay
đổi để có được kết quả thống kê mong muốn.

Cuối cùng là các file kết quả bao gồm file *.vec là các file vector, nó là các biến
thay đổi theo thời gian trong quá trình mô phỏng, giá trị của biến và thời gian tương
ứng được lưu vào file này. Trong quá trình viết code sẽ xác định biến nào được lưu.
File *.sna phục vụ cho quá trình sửa lỗi. File *.sca (scalar file) lưu các giá trị thống kê
có được sau khi kết thúc mô phỏng, ví dụ như số cuộc gọi đã thực hiện số cuộc gọi bị từ
chối… Để xử lí kết quả thống kê đạt được, ta có thể viết một chương trình nhỏ hoặc sử
dụng các công cụ có sẵn. OmNet++ cung cấp chương trình Plove để vẽ các file *.vec,
còn đối với các file *.sca ta có thể dùng một chương trình tính toán bất kì.

4.2 MÔ PHỎNG
4.2.1 Khởi tạo mô phỏng
Trong tất cả các kịch bản mô phỏng, đồ án sử dụng mô hình di chuyển Random
Waypoint với các thông số sau:

Vũ Huy Cường- ĐT3- K49 60


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

• Vận tốc tối đa speedmax: ở bất kỳ thời điểm nào vận tốc có giá trị ngẫu nhiên
trong khoảng [0, speedmax].

• Số nút mạng: giá trị này không thay đổi trong toàn bộ quá trình mô phỏng, đồ án
sử dụng 25 nút mạng trong kịch bản mô phỏng.

• Kích cỡ môi trường mô phỏng: đồ án sử dung khu vực mô phỏng 500x500m


cho toàn bộ kịch bản mô phỏng.

• Thời gian mô phỏng : 300s cho tất cả kịch bản mô phỏng.

• Thời gian tạm dừng: thay đổi với các giá trị 0, 100, 200, 300.

4.2.2 Một số hình ảnh mô phỏng


Sau đây là tuần tự các quá trình của DYMO: Khám phá tuyến bằng cách gửi
RREQ, gửi bản tin RREP, gửi gói tin dữ liệu, và gửi ACK báo nhận.

Vũ Huy Cường- ĐT3- K49 61


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Trước khi gửi gói tin tới một đích, môt nút sẽ kiểm tra trong Bộ nhớ tuyến của nó
có tuyến tới đích đó hay không. Nếu không có, nó sẽ gửi bản tin RREQ để Khám phá
tuyến (hình 4.4).

Hình 4.4 Quá trình gửi bản tin RREQ của DYMO

Vũ Huy Cường- ĐT3- K49 62


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Các nút nhận được bản tin RREQ, nếu nút đó là đích hoặc biết môt tuyến đường
tới đích, nó sẽ gửi lại bản tin RREP về nguồn (hình 4.5)

Hình 4.5 Quá trình gửi bản tin RREP của DYMO

Vũ Huy Cường- ĐT3- K49 63


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Như vậy, nút nguồn đã có một tuyến tới đích và nó thực hiện quá trình gửi gói tin
dữ liệu hình (hình 4.6).

Hình 4.6 Quá trình gửi gói tin dữ liệu của DYMO

Vũ Huy Cường- ĐT3- K49 64


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Nút đích nhận được gói tin dữ liệu, nó sẽ gửi ACK tới nút nguồn để xác nhận nó
đã nhận được gói từ nút nguồn (hình 4.7).

Hình 4.7 Quá trình gửi ACK báo nhận của DYMO

Vũ Huy Cường- ĐT3- K49 65


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

4.2.3 Kết quả mô phỏng các giao thức định tuyến mạng Ad hoc

Bảng 4.1 Bảng thông số đánh giá dùng trong mô phỏng

Thông số Giá trị


Phạm vi truyền dẫn 250m
Băng thông 54Mbps (802.11g)
Thời gian mô phỏng 300s
Kích thước môi trường mô phỏng 500m x 500m
Loại lưu lượng CBR
Tốc độ gửi gói tin 4 packet/s
Kích thước gói tin 512 bytes
Số nút 25
Số nguồn gửi gói tin 5
Tốc độ tối đa 20m/s

Kịch bản là một phần rất quan trọng trong mô phỏng, ở đây đồ án đưa ra 4 giá trị
cần đo cho thời gian tạm dừng của nút mạng: 0, 100, 200, 300. Thời gian tạm dừng
bằng 0, nút mạng chuyển động liên tục; thời gian tạm dừng bằng 300, nút mạng coi
như đứng yên (không chuyển động). Các nút bắt đầu gửi gói tin dữ liệu sau 60s (mạng
hội tụ).

4.2.3.1 Thông lượng đầu cuối - đầu cuối

Vũ Huy Cường- ĐT3- K49 66


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

Hình 4.9 Thông lượng đầu cuối - đầu cuối

Qua biểu đồ thông lượng < hình 4.9 > ta nhận thấy thông lượng tỷ lệ thuận với
gói nhận.

 Thông lượng của DYMO là cao nhất do DYMO là giao thức định tuyến hoạt
động theo yêu cầu hoặc theo bảng điều khiển,là sự tối ưu của DSR và
AODV.Khi các nút mạng chuyển động liên tục,thông lượng của DYMO vẫn rất
cao

 Thông lượng của OLSR cao hơn AODV và DSR vì OLSR có thể đáp ứng khi
topo mạng thay đổi, nó cho phép khám phá tuyến nhanh chóng tới các hàng
xóm và các MPR của chúng để thiết lập kết nối với các nút khác

 Khi mức độ di chuyển tăng (giảm pausetime) thì thông lượng của 3 giao thức
DSR, AODV, OLSR giảm rõ rệt với mức giảm tương đương nhau.Trong khi đó
thì DYMO thể hiện được sự ổn định của mình khi có thông lượng khá
cao.OLSR có thông lượng cao hơn AODV và DSR

Vũ Huy Cường- ĐT3- K49 67


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

4.2.4 Đánh giá và kết luận


Trong môi trường kích cỡ trung bình và số lượng nút nhỏ, khi mật độ di chuyển,
hay tốc độ phát gói tăng dần thì DYMO là giao thức hoạt động khá ổn định khi có tỉ lệ
gói nhận cao hơn so với các giao thức khác. Tuy nhiên, theo một số kết quả nghiên cứu
cho thấy DYMO lại tạo ra khá nhiều bản tin định tuyến so với AODV và DSR. Do vậy,
không thể khẳng định DYMO là một giao thức tối ưu.

Hiện nay chưa có một giao thức nào có thể đáp ứng đầy đủ yêu cầu với một giao
thức định tuyến trong mạng Ad hoc. Các giao thức cần được cải tiến hơn nữa để có thể
đáp ứng được cho mạng Ad hoc đồng thời hỗ trợ multicast, QoS, bảo mật…

Vũ Huy Cường- ĐT3- K49 68


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

5 CHƯƠNG 5. KẾT LUẬN


Mạng Ad hoc hiện đang tham gia vào mọi mặt của cuộc sống và hứa hẹn sẽ phát
triển mạnh mẽ trong tương lai. Do là một phần công nghệ của mạng không dây nên
mạng Ad hoc được thừa hưởng nhiều ưu điểm của mạng không dây hiện nay và đồng
thời cũng có những ưu thế đặc biệt mà các mạng khác không có. Đồ án là sự nhìn nhận
tổng quan về mạng Ad hoc. Ngoài ra, đồ án cũng tập trung vào nghiên cứu các giao
thức định tuyến mạng Ad hoc hiện nay, cụ thể là bốn giao thức DYMO, DSR, AODV,
OLSR. Đồng thời sử dụng công cụ mô phỏng OMNET++ để phân tích đánh giá chất
lượng giao thức định tuyến mạng Ad hoc (DYMO, DSR, AODV, OLSR). Qua đó,
chúng ta thấy được thế mạnh và hạn chế của từng loại giao thức; không có giao thức
nào đáp ứng đủ tiêu chuẩn mạng Ad hoc về mặt QoS, bảo mật.
Mạng Ad hoc vẫn còn là một công nghệ mới trong vài năm gần đây ở Việt Nam
và chưa có nhiều kết quả thử nghiệm, đánh giá về nó. Do đó, việc tham gia rất hạn chế,
với người nghiên cứu chỉ có cách dùng mô phỏng. Chính vì vậy, định hướng phát triển
của em là ngoài việc nghiên cứu lí thuyết, sẽ tìm hiểu sâu hơn về công cụ mô phỏng
OMNET++ để có kết quả mô phỏng chính xác và đầy đủ. Đồng thời em sẽ đi sâu tìm
hiểu về khả năng triển khai mạng Ad hoc vào thực tiễn tại Việt Nam. Trong tương lai,
em mong muốn sẽ tiếp tục nghiên cứu về vấn đề này cũng như phát triển mở rộng nó.

Cũng do thời gian nghiên cứu nên không tránh khỏi thiếu sót, em rất mong nhận
được sự nhận xét, đóng góp ý kiến của các thầy cô trong bộ môn cũng như trong khoa
để đồ án của em và những nghiên cứu sau này sẽ còn thành công hơn nữa.

Một lần nữa em xin chân thành cảm ơn thầy Nguyễn Trung Dũng – Bộ môn Hệ
thống viễn thông – Khoa Điện tử viễn thông – Trường Đại học Bách Khoa Hà Nội đã
nhiệt tình hướng dẫn, chỉ bảo và định hướng cho chúng em thực hiện thành công đồ án.

Hà Nội, tháng 5 năm 2009.

Sinh viên

Vũ Huy Cường

Vũ Huy Cường- ĐT3- K49 69


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

TÀI LIỆU THAM KHẢO

[1] Subir Kumar Sarkar, T G Basavaraju, C Puttamadappa, “Ad hoc Mobile Wireless
Network Principles, protocols, and Applications”, Auerbach Publications, 2007.
[2] Amitabh Mishra, “Security and quality of service in Ad hoc wireless networks”,
Cambridge University Press, 2008.
[3] Prasant Mohapatra and Srikanth Krishnamurthy, “Ad hoc network Technologies
and Protocols”, Spinger Science and Business Media, 2005.
[4] Michel Barbeau and Evangelos Kranakis, “Principles of Ad hoc networking”,
Wiley, 2007.
[5] Krishna Gorantala, “Routing Protocols in Mobile Ad hoc network”, June 15, 2006.
[6] Jabson Andres, “ Metric in Ad hoc networks”, Master thesis, 2000.
[7] Narendra Singh Yadav and R.P.Yadav, “The Effects of Speed on the Performance
of Routing Protocols in Mobile Ad-hoc Network”.
[8] Azzedine Boukerche, “Algorithms and protocols for wireless and mobile Ad hoc
network”, Wiley, 2009.
[9] A. Boukerche, “Performance Evaluation of Routing Protocols for Ad Hoc
Wireless Networks”, Mobile Networks and Applications, 9, pp. 333-342, 2004.
[10] Samir R. Das, “Performance Comparison of Two On-demand Routing Protocols
for Ad Hoc Networks”, Division of Computer Science The University of Texas at San
Antonio San Antonio, TX 78249-066 U.S.A.
[11] Sehrish Abrejo, Asadullah Shah, Kamran Khowaja, Asma Ansari Pakistan
“Analysis of MANET Routing Protocols using Scenario Based Mobility Models ”,
Department of Computer Science Isra University, Hyderabad.
[12] Ashwini Kumar Pandey,“Study of MANET Routing Protocols by Simulation
Experiments”,Department of Computer Science Southern Illinois University Edwardsville
MAY 2004
[13] Farooq Anjum and Petros Mouchtaris, “Security for wireless Ad hoc networks” ,
Wiley, 2007

Vũ Huy Cường- ĐT3- K49 70


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

[14] Georgios Koltsidas and Fotini-Niovi Pavlidou, “Single-path and Multipath

Routing Algorithms for Mobile Ad Hoc Networks”, Dept. of Electrical and Computer
Engineering,
Aristotle University of Thessaloniki, Thessaloniki, Greece
[15] S. Gowrishankar, T.G. Basavaraju, M. Singh, Subir Kumar Sarkar , “Scenario
based Performance Analysis of AODV and OLSR in Mobile Ad hoc Networks”,
Jadavpur University, Acharya Institute of Technology India
[16] http://tools.ietf.org/html/draft-ietf-manet-aodv-09
[17] http://tools.ietf.org/html/draft-ietf-manet-dymo-17
[18] http://hipercom.inria.fr/olsr/draft-ietf-manet-olsr-11.txt
[19] http://www.ietf.org/proceedings/04mar/I-D/draft-ietf-manet-dsr-09.txt

Vũ Huy Cường- ĐT3- K49 71


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

BẢNG THUẬT NGỮ VIẾT TẮT

Chữ viết tắt Chữ đầy đủ Chữ tiếng Việt


ABR Associativity-Based Routing Định tuyến theo liên kết
ACK Acknowledgement Báo nhận
AODV Ad Hoc On-Demand Distance giao thức định tuyến vector
Vector khoảng cách theo yêu cầu Ad
hoc
AP Access point Điểm truy cập
BS Base station Trạm gốc
CBR Constant Bit Rate Tốc độ bit cố định
DEST Destination Đích
DHCP Dynamic host configuration protocol Giao thức cấu hình host động
DSDV Destination sequenced distance Định tuyến vector khoảng cách
vector tuần tự đến đich
DSR Dynamic source routing Định tuyến nguồn động
DYMO Dynamic MANET On-demand
FDMA Frequency division multiple access Đa truy cập phân chia theo sóng
Id Identifcation Nhận dạng
IEEE Institute of electrical and electronics Học viện kĩ sư điện và điện tử
engineers
IN Intermediate Trung gian
IP Internet protocol
LAN Local area network Mạng cục bộ
MAC Media access control Điều khiển truy cập đường
truyền
MANET Mobile ad hoc network Mạng di động không dây tùy
biến
MIP Mobile IP
OLSR Optimized Link State Routing Định tuyến trạng thái liên kết
tối ưu
PDA Personal digital assistant Máy trợ lý cá nhân dùng kĩ
thuật số
QoS Quality of service Chất lượng dịch vụ
RPC Remote Procedure Call
SRC Source Nguồn
TCP Transmission power control Điều khiển công suất truyền
TTL Time to Live Thời gian sống
VANET Vehicular Ad Hoc Network Mạng xe cộ ad hoc
WLAN Wireless local area network Mạng không dây cục bộ

Vũ Huy Cường- ĐT3- K49 72


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

PHỤ LỤC

Mã nguồn chương trình


• File omnetpp.ini

[General]
#debug-on-errors = true
sim-time-limit = 300s
seed-0-mt = 5
num-rngs = 2
network = inet.examples.adhoc.grid_aodv.Grid_movilidad

cmdenv-express-mode = true
tkenv-plugin-path = ../../../Etc/plugins
#tkenv-default-run=1

description = "Aodv Simple test"

**.vector-recording = false
cmdenv-express-mode = true

*.numHosts =25
*.nodeSeparation = 150
*.playgroundSizeX = 500
*.playgroundSizeY = 500

**.channelNumber = 0
**.numberOfChannels = 1
**.debug = true
**.coreDebug = false
**.channelNumber = 0

**.wlan.mgmt.frameCapacity = 10

# channel physical parameters

Vũ Huy Cường- ĐT3- K49 73


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

*.channelcontrol.carrierFrequency = 2.4GHz
*.channelcontrol.pMax = 2.0mW
*.channelcontrol.sat = -110dBm
*.channelcontrol.alpha = 2
*.channelcontrol.numChannels = 1

# udp apps (on)


**.host[*].udpAppType="UDPBasicBurst"
**.host[*].numUdpApps=1

**.host[0].udpApp[0].destAddresses ="random_name(host)"
**.host[1].udpApp[0].destAddresses="random_name(host)"
**.host[2].udpApp[0].destAddresses="random_name(host)"
**.host[3].udpApp[0].destAddresses="random_name(host)"
**.host[4].udpApp[0].destAddresses="random_name(host)"

**.host[*].udpApp[0].destAddresses=""

**.udpApp[0].localPort=1234
**.udpApp[0].destPort=1234
**.udpApp[0].messageLength=512B # Bytes
**.udpApp[0].messageFreq = 0.25s
**.udpApp[0].message_freq_jitter=uniform(-0.001s,0.001s,1)
**.udpApp[0].burstDuration = 0s #uniform(1,4,1)
**.udpApp[0].activeBurst=true # if false all packet to the same address, if true select
new destination per burts
**.udpApp[0].time_off = 0s # uniform(10,20,1))
**. udpApp[0].time_begin = 60s
**.udpApp[0].limitDelay =20s
**.udpApp[0].rand_generator=1
**.udpApp[0].time_end=0s

**.host*.mobilityType = "inet.mobility.NullMobility"
**.host*.mobility.speed = 20mps #uniform(0mps,20mps)
**.host*.mobility.updateInterval = 0.1s

Vũ Huy Cường- ĐT3- K49 74


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

**.host*.mobility.scrollX = 50
**.host*.mobility.scrollY = 50
**.host*.mobility.nodeId = -1

# tcp apps (off)


**.numTcpApps=0
**.tcpAppType="TelnetApp"

# ip settings
**.routingFile=""
**.ip.procDelay=10us
# **.IPForward=false

# ARP configuration
**.networkLayer.proxyARP = true # Host's is hardwired "false"
**.arp.retryTimeout = 1s
**.arp.retryCount = 3
**.arp.cacheTimeout = 100s

# manet routing
**.manetrouting.manetmanager.routingProtocol = "DYMO"# DSR/AODV/OLSR

# nic settings
**.wlan.mgmt.frameCapacity = 10
**.wlan.mac.address = "auto"
**.wlan.mac.maxQueueSize = 14
**.wlan.mac.rtsThresholdBytes = 3000B
**.wlan.mac.bitrate = 54Mbps
**.wlan.mac.basicBitrate = 24Mbps # 24Mbps
**.wlan.mac.retryLimit = 7
**.wlan.mac.cwMinData = 31
**.wlan.mac.cwMinBroadcast = 31
**.wlan.mac.opMode = 2 # 802.11g
**.wlan.mac.slotTime = 9us #
**.wlan.mac.AIFSN = 2 #DIFS

Vũ Huy Cường- ĐT3- K49 75


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

# channel physical parameters


*.channelcontrol.carrierFrequency = 2.4GHz
*.channelcontrol.pMax = 2.0mW
*.channelcontrol.sat = -110dBm
*.channelcontrol.alpha = 2
*.channelcontrol.numChannels = 1

**.wlan.radio.transmitterPower = 2.0mW
**.wlan.radio.pathLossAlpha = 2
**.wlan.radio.snirThreshold = 4dB # in dB
**.wlan.radio.bitrate = 54Mbps
**.wlan.radio.thermalNoise = -110dBm
**.wlan.radio.sensitivity = -85dBm
**.wlan.radio.phyOpMode = 2 #1/2 802.11b/802.11g-only
**.wlan.radio.channelModel = 1 #1/2 rayleigh/awgn
**.wlan.radio.berTableFile = "per_table_80211g_Trivellato.dat"

**.broadCastDelay=uniform(0s,0.005s)

#/ parameters : DYMOUM
**.no_path_acc_ = false
**.reissue_rreq_ = false
**.s_bit_ = false
**.hello_ival_ = 0
**.MaxPktSec = 20 #// 10
**.promiscuous = false
**.NetDiameter = 10
**.RouteTimeOut = 3000
**.RouteDeleteTimeOut = 3000*5 #//5*RouteTimeOut
**.RREQWaitTime = 1000
**.RREQTries = 3
**.noRouteBehaviour = 1

# // parameters: AODVUU;
**.log_to_file = false
**.hello_jittering = true
**.optimized_hellos = true

Vũ Huy Cường- ĐT3- K49 76


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

**.expanding_ring_search = true
**.local_repair = true
**.rreq_gratuitous = true
#**.debug = false
**.rt_log_interval = 0
**.unidir_hack = 0
**.internet_gw_mode = 0
**.receive_n_hellos = 1
**.ratelimit = 1000
**.llfeedback = false# //1000
**.wait_on_reboot = 0
**.active_timeout = 6000 # // time in ms
**.internet_gw_address = "0.0.0.0"

# // parameters: DSRUU;
**.PrintDebug = true
**.FlushLinkCache = true
**.PromiscOperation = false
**.UseNetworkLayerAck = false
**.BroadCastJitter = 20 # 20 ms
**.RouteCacheTimeout = 300 #300 seconds
**.SendBufferTimeout = 300# //30 s
**.SendBufferSize = -1
**.RequestTableSize = -1
**.RequestTableIds = -1
**.MaxRequestRexmt = -1 #// 16,
**.MaxRequestPeriod = 10 #//10 SECONDS
**.RequestPeriod = 500 #//500 MILLISECONDS
**.NonpropRequestTimeout = 30# //30 MILLISECONDS
**.RexmtBufferSize = -1 #//MAINT_BUF_MAX_LEN
**.MaintHoldoffTime = 250# //250 MILLISECONDS
**.MaxMaintRexmt = 2 # //2
**.TryPassiveAcks = true #//1
**.PassiveAckTimeout = 100# //100 MILLISECONDS
**.GratReplyHoldOff = 1 #, //1 SECONDS
**.MAX_SALVAGE_COUNT = 15 # //15
**.LifoSize = 20

Vũ Huy Cường- ĐT3- K49 77


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

**.PathCache = true
**.ETX_Active = false
**.ETXHelloInterval = 1 #, // Second
**.ETXWindowNumHello = 10
**.ETXRetryBeforeFail = -1
**.RREPDestinationOnly = false
**.RREQMaxVisit = 5 # // Max Number that a RREQ can be processes by a node

#// Olsr
**.Willingness = 3
**.Hello_ival = 2
**.Tc_ival = 5
**.Mid_ival = 5
**.use_mac = 0 #1
**.Mpr_algorithm = 1
**.routing_algorithm = 1
**.Link_quality = 2
**.Fish_eye = false
**.Tc_redundancy = 3
**.Link_delay = true #//default false
**.C_alpha = 0.2

#// DSDV
**.manetroutingprotocol.hellomsgperiod_DSDV = 1 # //Period of DSDV hello
message generation [seconds]
**.manetroutingprotocol.manetroutingprotocol.timetolive_routing_entry = 5 # // ;
[seconds]
**.netmask = "255.255.0.0" # //
**.MaxVariance_DSDV = 1
**.RNGseed_DSDV = 0

seed-0-mt = 1209575029
seed-1-mt = 449294716
**.host*.mobility.traceFile = "esce_10_no_pausa.1"

• File .awk

Vũ Huy Cường- ĐT3- K49 78


Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc

BEGIN {
sends = 0;
receives = 0;
sum_delay = 0;
simulation = 0;
numSent = 0;
numReceived = 0;
numReceivedOther = 0;
routing =0;
t = 0;
}

{
# CALCULATE PACKET DELIVERY FRACTION
if ($3 == "Total_send") { sends += $4; t++;}
if ($3 == "Total_received") { receives += $4; }
if ($3 == "sum_delay") { sum_delay += $4; }
if ($3 == "simtime") { simulation += $4; }
if ($3 == "numSent") { numSent += $4; }
if ($3 == "numReceived") { numReceived += $4; }
if ($3 == "Routing-overhead") { routing += $4; }
if ($3 == "numReceivedOther") { numReceivedOther += $4; }
}

END {
printf("Totalsends(pkts) = %.8f\n",sends);
printf("Totalreceives(pkts) = %.8f\n",receives);
printf("mean_delay = %.8f\n",sum_delay/receives);

printf("packet delivery ratio = %.8f\n",(receives)/(sends));


printf("simulation_time(s) = %.8f\n",simulation/t);
printf("throughput(pkts/s) = %.8f\n",(receives/simulation));
printf("numSent= %.8f\n", numSent);
printf("numReceived= %.8f\n", numReceived);
printf("numReceivedOther=%.8f\n", numReceivedOther);
printf("normalized-routing-overhead=%.8f\n", routing/sends);
}

Vũ Huy Cường- ĐT3- K49 79

You might also like