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:
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
đị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.
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 liên kết
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 xử lý nhiều hơn và có khả năng tạo thành các vòng lặp định tuyến.
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ứ tự
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.
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ố tuần tự của nó cùng với một ID quảng bá. ID quảng bá được tăng lên mỗi khi nút khởi đầu một RREQ, và cùng với địa chỉ IP của nút, xác định duy nhất một RREQ. Cùng với số tuần tự và ID quảng bá, nút nguồn bao gồm trong RREQ hầu hết số tuần tự hiện tại của đích mà nó có. Các nút trung gian có thể trả lời RREQ chỉ khi nào chúng có một tuyến đến đích mà số tuần tự đích tương ứng lớn hơn hoặc bằng số tuần tự chứa trong RREQ.
Trong suốt quá trình chuyển tiếp RREQ, các nút trung gian ghi vào Bảng định tuyến của chúng địa chỉ của các nút lân cận từ khi nhận được bản sao đầu tiên của gói quảng bá, theo đó thiết lập được một đường dẫn theo thời gian. Nếu các bản sao của cùng một RREQ được nhận sau đó, các gói này sẽ bị huỷ bỏ. Một khi RREQ đã đạt đến