3.2.1 Các thuật toán định tuyến truyền thống
Các giao thức định tuyến truyền thống thường sử dụng hai giải thuật:
Distance Vector: RIP , IGRP,...
Nguyên tắc hoạt động: mỗi router sẻ gửi bảng định tuyến của mình cho tất cả
các router được nối trực tiếp với nó . Các routerđó so sánh với bảng bảng định tuyến
mà mình hiện có và kiểm tra lại các tuyến đường của mình với các tuyến đường mới
nhận được, tuyến đường nào tối ưu hơn sẽ được đưa vào bảng định tuyến. Các gói tin
cập nhật sẽ được gửi theo định kỳ (30 giây với RIP ,90 giây đối với IGRP) [9].
Ưu điểm:
Dễ cấu hình, router không phải xử lý nhiều nên không tốn nhiều dung lượng bộ
nhớ và CPU có tốc độ xử lý nhanh hơn.
Nhược điểm:
- Hệ thống metric quá đơn giản (như Rip chỉ là hop-count ) dẫn đến việc các
tuyến đường được chọn vào bảng định tuyến chưa phải tuyến đường tốt nhất.
- Vì các gói tin cập nhật được gửi theo định kỳ nên một lượng băng thông đáng
kể sẽ bị chiếm.
- Do Router hội tụ chậm, dẫn đến việc sai lệch trong bảng địn tuyến gây nên hiện tượng vòng lặp (loop).
Link state: OSPF, IS-IS
Nguyên tắc hoạt động: Các router không gửi bảng định tuyến của mình, mà chỉ
gửi tình trạng của các đường liên kết trong cơ sở dữ liệu trạng thái liên kết (linkstate- database) của mình đi cho các router khác, các router sẽ áp dụng giải thuật SPF (shortest path first ), để tự xây dựng bảng định tuyến riêng cho mình. Khi mạng đã hội
tụ, các giao thức Link state sẽ không gửi cập nhật định kỳ mà chỉ gửi khi nào có sự thay đổi trong mạng (1 đường bị down , cần sử dụng đường dự phòng).
Ưu điểm:
Có thể thích nghi được với đa số hệ thống, cho phép người thiết kế có thể thiết kế
mạng linh hoạt, phản ứng nhanh với tình huống xảy ra.Do không gởi cập nhật định kỳ như Distance Vector, nên Link State bảo đảm được băng thông cho các đường mạng.
Nhược điểm:
- Do router phải xử lý nhiều, nên chiếm nhiều bộ nhớ, tốc độ CPU chậm hơn nên tăng độ trễ
Việc sử dụng các giao thức định tuyến truyền thống trong mạng MANET sẽ dẫn đến rất nhiều vấn đề trở ngại cần giải quyết:
Tiêu tốn năng lượng nguồn nuôi cho các cập nhập định kỳ như trong giao thức định tuyến Distance Vector.
Tiêu tốn băng thông mạng cho các cập nhập định kỳ.
Làm quá tải bộ vi xử lý của thiết bị: khi các thông tin cập nhật, số nút mạng tăng lên.
Tạo ra nhiều đường đi dư thừa
3.2.2. Các yêu cầu chính đối với việc định tuyến trong mạng MANET
Các giao thức định tuyến trong mạng MANET cần đảm bảo:
Thích ứng nhanh khi tô-pô mạng thay đổi: khi các nút mạng di chuyển nhanh,
yêu cầu kết nối tăng lên thì các giao thức hoạt động theo cơ chế tiếp cận tập
trung sẽ giảm hiệu quả rõ rệt do phải tốn nhiều thời gian để thu thập thông tin về trạng thái hiện tại và phát tán lại nó. Trong khi đó cấu hình mạng có thể đã
thay đổi khác đi rồi.
Đảm bảo hiệu quả trong môi trường truyền khi các nút đứng yên. Lúc này tô-pô mạng là cố định không thay đổi nên các giao thức định tuyến chỉ cần gửi các
cập nhật khi có yêu cầu hoặc mạng thay đổi như việc một nút nào đó tắt kết nối.
Không có lặp định tuyến: Cần ngăn chặn hiện tượng này, bởi vì khi đó các gói tin bị định tuyến sai, dẫnđến việc bị truyền quay vòng liên tục trong một số kết
nối mạng, khiến cho băng thông mạng và các tài nguyên khác như năng lượng
nguồn nuôi bị tiêu tốn vô ích.
thức định tuyến cần phải có phương pháp để phát hiện được và ngăn chặn các loại tấn công.
3.2.3. Phân loại các kỹ thuật định tuyến
3.2.3.1. Link state và Distance Vector
Thuật toán định tuyến vector khoảng cách (distance-vector routing protocols)
Thuật toán này dùng thuật toán Bellman-Ford, trong đó chỉ định một con số, gọi
là chi phí (hay trọng số), cho mỗi một liên kết giữa các nút trong mạng. Các nút sẽ gửi
thông tin về đường đi từ điểm A đến điểm B qua các đường truyền (kết nối) mang lại
tổng chi phí thấp nhất (là tổng các chi phí của các kết nối giữa các nút được dùng). Thuật toán hoạt động với những hành động rất đơn giản. Khi một nút khởi động
lần đầu, nó chỉ biết các nút kề trực tiếp với nó, và chi phí trực tiếp để đi đến đó (thông
tin này, danh sách của các đích, tổng chi phí đến từng đích và bước kế tiếp để gửi dữ
liệu đến đó tạo nên bảng định tuyến, hay bảng khoảng cách). Mỗi nút, trong một tiến
trình, gửi đến từng “hàng xóm” tổng chi phí của nó để đi đến các đích mà nó biết. Các
nút “hàng xóm” phân tích thông tin này, và so sánh với những thông tin mà chúng
đang “biết”; bất kỳ điều gì cải thiện được những thông tin chúng đang có sẽ được đưa
vào các bảng định tuyến của những “hàng xóm” này. Đến khi kết thúc, tất cả nút trên mạng sẽ tìm ra bước truyền kế tiếp tối ưu đến tất cả mọi đích, và tổng chi phí tốt nhất.
Khi một trong các nút gặp vấn đề, những nút khác có sử dụng nút hỏng này trong lộ trình của mình sẽ loại bỏ những lộ trình đó, và tạo nên thông tin mới của bảng định
tuyến. Sau đó chúng chuyển thông tin này đến tất cả nút gần kề và lặp lại quá trình trên. Cuối cùng, tất cả nút trên mạng nhận được thông tin cập nhật, và sau đó sẽ tìm
đường đi mới đến tất cả các đích mà chúng còn tới được.
Thuật toán định tuyến trạng thái kết nối (Link-state routing protocols)
Khi áp dụng các thuật toán trạng thái kết nối, mỗi nút sử dụng dữ liệu cơ sở của nó như là một bản đồ của mạng với dạng một đồ thị. Để làm điều này, mỗi nút phát đi
tới toàn mạng những thông tin về các nút khác mà nó có thể kết nối được, và từng nút
góp thông tin một cách độc lập vào bản đồ. Sử dụng bản đồ này, mỗi nút sau đó sẽ xác định được tuyến đường tốt nhất từ nó đến mọi nút khác.
Thuật toán đã làm theo cách này là Dijkstra, bằng cách xây dựng cấu trúc dữ liệu
với một cây ban đầu chỉ chứa chính nó. Sau đó lần lượt từ tập các nút chưa được thêm vào cây, nó sẽ thêm nút có chi phí thấp nhất để đến một nút đã có trên cây. Tiếp tục
quá trình đến khi mọi nút đều được thêm vào cây.
Cây này sau đó phục vụ để xây dựng bảng định tuyến, đưa ra bước truyền kế tiếp
tốt ưu, … để từ một nút đến bất kỳ nút khác trên mạng.
So sánh các thuật toán định tuyến
Các giao thức định tuyến theo thuật toán vector khoảng cách đơn giản và hiệu
quả hơn trong các mạng nhỏ, đòi hỏi ít (nếu có) sự giám sát. Tuy nhiên nhược điểm
của nó là khả năng hội tụ chậm khi mạng lớn và thay đổi, điều này dẫn đến sự phát
triển của các thuật toán trạng thái kết nối tuy phức tạp hơn nhưng tốt hơn để dùng trong các mạng lớn.
Ưu điểm chính của định tuyến bằng trạng thái kết nối là phản ứng nhanh nhạy hơn, và trong một khoảng thời gian có hạn, đối với sự thay đổi kết nối. Ngoài ra, những gói được gửi qua mạng trong định tuyến bằng trạng thái kết nối thì nhỏ hơn
những gói dùng trong định tuyến bằng vector. Định tuyến bằng vector đòi hỏi bảng định tuyến đầy đủ phải được truyền đi, trong khi định tuyến bằng trạng thái kết nối thì chỉ có thông tin về “hàng xóm” của nút được truyền đi. Vì vậy, các gói này dùng tài nguyên mạng ở mức không đáng kể. Khuyết điểm chính của định tuyến bằng trạng
thái kết nối là nó đòi hỏi nhiều sự lưu trữ và tính toán để chạy hơn định tuyến bằng
vector.
3.2.3.2. Định tuyến chủ ứng và phản ứng
Các giao thức định tuyến trong mạng MANET được người ta phân chia thành các loại: định tuyến chủ ứng (proactive), định tuyến phản ứng (reactive) và định tuyến lai
ghép giữa hai loại trên. Các giao thức định tuyến chủ ứng sử dụng phương pháp phát
tràn (Floading) để quảng bá thông tin tới các thiết bị. Phương pháp này cho phép thời
gian thiết lập đường nhanh dựa trên các tham số gửi tới thiết bị sẵn sàng cho kết nối. Tuy nhiên, phương pháp này cũng làm lưu lượng các gói tin tìm đường tăng lên rất
lớn, đây chính là nhược điểm của phương pháp này. Giao thức định tuyến trạng thái
Các giao thức định tuyến phản ứng thiết lập tuyến dựa theo từng yêu cầu kết nối. Phương pháp này hạn chế được chi phí tìm đường, nhưng nhược điểm cơ bản là gây trễ lớn cho các khung truyền dẫn đầu tiên cũng như thời gian chọn đường dẫn chậm.
Hai giao thức phản ứng điển hình là giao thức định tuyến vector khoảng cách theo yêu cầu AODV (On-demand Distance Vector Routing) và giao thức định tuyến định tuyến
nguồn động DSR (Dynamic Source Routing).
Một khi xảy ra lỗi tại nút, các giao thức định tuyến thường khôi phục đường dẫn
bằng phương pháp thiết lập tuyến mới. Hầu hết các tiếp cận hiện nay đều sử dụng
thông tin phản hồi tới thiết bị nguồn nhằm khởi tạo tuyến mới, vì vậy lưu lượng bản tin trao đổi là rất lớn và tăng lên rất nhanh khi kích thước mạng lớn, nhất là đối với các
giao thức định tuyến chủ ứng. Khi kích thước mạng tăng cũng đồng nghĩa với sự suy
giảm hiệu năng mạng do hiện tượng trễ của thủ tục định tuyến và truyền khung đầu tiên tăng lên rất lớn nếu sử dụng giao thức định tuyến phản ứng.
3.2.3.3. Định tuyến nguồn và định tuyến theo chặng
Với định tuyến nguồn, toàn bộ thông tin về đường đi tới đích được đặt trong trường tiêu đề của gói tin dữ liệu, các nút trung gian chỉ việc chuyển tiếp gói tin theo đường trong tiêu đề. Lợi điểm của giao thức này là loại bỏ được nhu cầu quảng bá đường định kỳ và các gói tin khám phá (discovery) hàng xóm.
Trong định tuyến theo chặng, khi một nút nhận được gói tin cần chuyển tới đích, nút đó chuyển tiếp gói tin theo chặng tiếp theo hướng tới đích mà nó biết. Nút
tiếp theo lại chuyển tiếp gói tin đến đích theo những chặng mà nó biết dựa vào bảng định tuyến của nó. Quá trình trên sẽ dừng lại khi gói tin được chuyển tới đích. Nhược điểm của phương pháp này là tất cả các nút cần duy trì thông tin định tuyến nên phải
3.3. Các giao thức định tuyến chính trong mạng MANET
Hình 7: Phân loại các giao thức định tuyến trong mạng MANET
3.3.1. DSDV
DSDV (Destination-Sequenced Distance-Vector Routing) là giao thức chủ ứng
dựa trên dựa trên thuật toán Distance vector được xây dựng bởi C.Perkins và P.Bhagwat năm 1994 [13]. Giao thức này được xây dựng dựa trên tiêu chí giữ nguyên sự đơn giản của giải thuật Bellman-Ford và loại bỏ vấn đề vòng lặp.
Truyền thông tin định tuyến: Thông tin định tuyến được gửi quảng bá (broadcast)
tới tất cả các nút hàng xóm liền kề nó. Thông tin cập nhật được phát định kỳ hoặc ngay khi có các thay đổi xảy ra trong mạng. Để tránh lặp định tuyến DSDV gắn số thứ tự
chẵn cho mỗi đường. Số thứ tự được gắn bởi nút đích, được gửi đi trong gói tin cập
nhập. Số thứ tự này cho thấy độ mới của mỗi đường, đường nào có số thứ tự cao hơn được xem là tốt hơn. [10]
Hình 8: Tô-pô mạng thay đổi
Số thứ tự này sẽ tăng lên một đơn vị khi một nút phát hiện đường đi tới đích có
liên kết bị hỏng khi nó không nhận được cập nhật định kỳ. Khi ấy trong gói tin cập
nhật kế tiếp nó gửi đi sẽ quảng bá đường tới đích này có số chặng bằng vô hạn (metric
~ ∞) và tăng thứ tự đường.
Khi một nút nhận được thông tin mới về một tuyến đường, tuyến này sẽ được
chọn nếu nó có số thứ tự lớn hơn các số thứ tự khác của cùng tuyến đó trong bảng định
tuyến. Nếu nó có cùng số thứ tự thì nó sẽ được chọn nếu có số metric tốt hơn.
Để làm giảm kích thước gói tin cập nhập, DSDV sử dụng hai loại thông điệp cập
nhật là:
Full dump: Cập nhật đầy đủ. Thông điệp này bao gồm toàn bộ thông tin định
tuyến mà nút đó biết đến thời điểm đó.
Incremental dump: cập nhật bổ sung. Gói thông điệp này chỉ bao gồm các thông
tin về những thay đổi từ lần cập nhật đầy đủ gần nhất.
Hai loại thông điệp cật nhật này được lưu vào hai bảng khác nhau, một bảng để
chuyển tiếp các gói tin đầy đủ, một để phát các gói tin cập nhật. Gói tin cập nhật đầy đủ chỉ được phát thường xuyên khi các nút thường xuyên di chuyển, khi mạng ít thay đổi, chủ yếu chỉ có gói tin cập nhật bổ sung được gửi đi.
3.3.2 OLSR [8]
OLSR (Optimized Link State Routing Protocol) là giao thức chủ ứng dựa trên thuật toán trạng thái kết nối (Link state). Các nút gửi định kỳ ra toàn mạng thông điệp “Hello” để trao đổi thông tin về hàng xóm. Thông tin này bao gồm IP của nút, số thứ
những thông tin này nút sẽ xây dựng lên bảng định tuyến của nó và có cái nhìn tổng
thể về toàn mạng. Dựa vào bảng định tuyến này nó có thể tự tính được đường đi tới
các nút khác dựa vào thuật toán tìm đường đi ngắn nhất. Khi một nút nhận được một
gói tin trùng lặp với cùng số thứ tự nó sẽ loại bỏ gói tin này. Trong bảng định tuyến nút lưu trữ thông tin định tuyến tới tất cả các nút khác trong mạng. Những thông tin
này chỉ được cập nhật khi:
Khi nút nhận thấy sự thay đổi trong quan hệ hàng xóm (vd: mất liên kết đến nút
hàng xóm,…)
Tuyến đường tới các nút đích khác hết hạn (quá lâu không được cập nhập)
Phát hiện ra đường đi mới ngắn hơn để tới đích.
Điểm khác biệt giữa OLSR và LSR (Link State Protocol) là việc giao thức OLSR
hoạt động dựa trên việc một nhóm nút mạng cộng tác với nhau tạo nên một kíp phát
chuyển tiếp đa điểm (Multi-Point Relays - MPR). Mỗi nút N trong mạng sẽ lựa chọn ra
một tập các nút hàng xóm của nó vào kíp đa điểm MPR(N), các nút thuộc kíp đa điểm
này sẽ chuyển tiếp các gói tin điều khiển được gửi từ N. Nút không thuộc kíp đa điểm
của N vẫn xử lý gói tin này nhưng sẽ không chuyển tiếp đến các nút khác.
kể. Lợi điểm thứ hai là việc giảm được kích thước của gói tin “Hello” vì nó chỉ lưu trữ
các thông tin liên quan tới các nút trong kíp đa điểm của nó.
Hình 10: OLSR ngăn chặn vòng lặp bằng việc sử dụng MPR để chuyển phát gói tin.
3.3.3. AODV [12]
AODV (Ad Hoc On-Demand Distance Vector) là giao thức dựa trên thuật toán
vector khoảng cách. AODV tối thiểu hoá số bản tin quảng bá cần thiết bằng cách tạo ra
các tuyến trên cơ sở theo yêu cầu, ngược với việc duy trì một danh sách hoàn chỉnh
các tuyến như thuật toán DSDV.
Hình 11: quá trình khám phá tuyến trong AODV
Khi một nút nguồn muốn gởi một bản tin đến một nút đích nào đó và không biết
rằng đã có một tuyến đúng đến đích đó, nó phải khởi đầu một quá trình khám phá
Các nút lân cận này sau đó sẽ chuyển tiếp gói yêu cầu đến nút lân cận khác của chúng.
Quá trình cứ tiếp tục như vậy cho đến khi có một nút trung gian nào đó xác định được
một tuyến “đủ tươi” để đạt đến đích. AODV sử dụng số thứ tự đích để đảm bảo rằng
tất cả các tuyến không lặp và chứa hầu hết thông tin tuyến hiện tại. Mỗi nút duy trì số