2.1.2.1 Giao thức định tuyến theo bản ghi
Giao thức định tuyến theo bản ghi còn được gọi là giao thức định tuyến chủ động (proactive). Theo giao thức định tuyến này, bất kỳ một nút trong mạng luôn duy trì trong bảng định tuyến của nó thông tin định tuyến đến tất cả các nút khác trong mạng. Thông tin định tuyến được phát quảng bá trên mạng theo một khoảng thời gian quy định để giúp cho bảng định tuyến luôn cập nhật những thông tin mới nhất. Chính vì vậy, một nút nguồn có thể lấy thông tin định tuyến ngay lập tức khi cần thiết.
Tuy nhiên, với những mạng mà các nút di chuyển nhiều hoặc các kết nối giữa các nút bị mất liên kết thì cần phải có cơ chế tìm kiếm hoặc sửa đổi thông tin của nút bị mất liên kết trong bảng định tuyến, nhưng nếu các kết nối đó không sử dụng thì sẽ trở nên lãng phí
31
tài nguyên, ảnh hưởng đến băng thông của mạng. Chính vì thế giao thức định tuyến theo bản ghi chỉ áp dụng trong các mô hình mạng MANET mà các nút ít di chuyển.
Một số giao thức định tuyến hoạt động theo kiểu giao thức định tuyến theo bản ghi như: Giao thức định tuyến DSDV (Destination Sequenced Distance Vector), Giao thức định tuyến WRP (Wireless Routing Protocol), Giao thức định tuyến GSR (Global State Routing).
Giao thức định tuyến DSDV
Giao thức định tuyến DSDV là giao thức định tuyến chủ động dựa trên thuật toán véc tơ khoảng cách theo chặng, được sửa đổi từ giao thức véc tơ khoảng cách để hoạt động của nó phù hợp với mạng MANET. Cơ sở của giao thức DSDV là thuật toán Bellman-Ford truyền thống. Vì DSDV là một giao thức chủ động nên mỗi nút trong mạng duy trì một bảng định tuyến có chứa chặng tiếp theo và số chặng đến từng đích trong mạng. Bảng định tuyến chứa các thông tin sau đây: địa chỉ đích, số thứ tự đích, địa chỉ chặng tiếp theo, số chặng và thời gian cài đặt. Để giữ cho các bảng định tuyến được cập nhật, DSDV yêu cầu mỗi nút phát quảng bá định kỳ các cập nhật định tuyến đến các láng giềng và phát ngay các gói tin cập nhật khi có các thay đổi quan trọng xảy ra trong mạng. DSDV sử dụng cả cập nhật bảng định tuyến định kỳ và điều khiển theo sự kiện. Trong cập nhật định kỳ, ứng với một khoảng thời gian cố định, mỗi nút phát quảng bá đến các nút láng giềng thông tin của nó, cùng với bản cập nhật bảng định tuyến.
Sau khi nhận dữ liệu cập nhật, các nút láng giềng sẽ sử dụng thông tin này để tính toán các đường đi rồi cập nhật vào bảng định tuyến của nó nhờ các phương pháp lặp véc tơ khoảng cách. Ngoài việc cập nhật định kỳ, DSDV cũng sử dụng bản cập nhật sự kiện thường xuyên được dùng để thông báo thay đổi kết nối quan trọng, chẳng hạn như các kết nối bị hỏng, một nút nào đó di chuyển. Cập nhật sự kiện thường xuyên được kích hoạt sẽ đảm bảo phát hiện kịp thời các thay đổi đường đi định tuyến. Để tránh lặp định tuyến, DSDV sử dụng số thứ tự gắn với mỗi đường đi. Số thứ tự cho thấy độ mới của đường, đường có số thứ tự cao hơn được xem là tốt hơn. Tuy nhiên, hai đường có cùng số thứ tự nhưng đường nào có độ đo tốt hơn thì sẽ được coi là tốt hơn. Số thứ tự này được khởi tạo ban đầu bởi nút đích, và mỗi nút trong mạng quảng bá bằng việc tăng đều đặn số thứ tự của mình. Số thứ tự được tăng lên một khi một nút phát hiện đường đi đến đích có kết nối hỏng khi không nhận được các cập nhật định kỳ. Trong lần quảng bá đường đi sau cùng, nút phát hiện kết nối hỏng sẽ quảng bá đường đi đến đích có số chặng vô hạn và tăng thứ tự đường đi.
DSDV thực hiện hai cách để cập nhật bảng thông tin định tuyến, một là sử dụng cập nhật đầy đủ (full dump), hai là cập nhật bổ sung (incremental dump). Cập nhật đầy đủ mang tất cả thông tin định tuyến có trong nút và cập nhật bổ sung chỉ mang các thông tin về những thay đổi từ lần cập nhật đầy đủ gần nhất. Để làm được điều này, DSDV lưu trữ hai bảng thông tin khác nhau, một dùng để chuyển tiếp các gói tin, một để phát các gói tin
32
cập nhật bổ sung. Cập nhật đầy đủ được truyền tương đối ít khi các nút ít di chuyển. Còn khi các nút di chuyển thường xuyên, cập nhật đầy đủ được phát trong khi các cập nhật bổ sung sẽ ít đi. Tuy nhiên, khi chỉ có các thay đổi thông thường trong mạng thì các nút chỉ phát cập nhật bổ sung. Điều này làm giảm chi phí xử lý và tiêu thụ băng thông ít hơn. Bên cạnh đó, để tránh sự bùng nổ các cập nhật định tuyến tại các thời điểm cấu hình mạng thay đổi nhanh, DSDV cũng áp dụng cơ chế hãm các cập nhật tức thời khi có các thay đổi xảy ra trong mạng, bằng việc ghi nhận các quãng thời gian xảy ra những thay đổi về đường đi, DSDV làm trễ các cập nhật tức thời theo thời gian đó. Thời gian làm trễ thường là thời gian trung bình để có được tất cả các quảng bá cập nhật cho một đường đi. Bằng cách này, các nút chắc chắn nhận được tất cả những thay đổi đường dẫn định tuyến đến một đích trước khi lan truyền bất cứ thay đổi nào. Điều này làm giảm việc sử dụng băng thông và tiêu thụ năng lượng của các nút láng giềng [81](pp.91-115).
Giao thức định tuyến OLSR
OLSR là giao thức định tuyến chủ động dựa trên trạng thái liên kết. Sự khác nhau giữa OLSR và định tuyến trạng thái liên kết trong mạng có dây là OLSR dựa trên các chuyển tiếp đa điểm (MultiPoint Relays - MPRs) để giảm chi phí phát tràn (flooding) mạng và kích thước của các gói tin cập nhật trạng thái liên kết. Các điểm chuyển tiếp MPR là số tối thiểu các nút trong số các láng giềng trực tiếp có thể chuyển tiếp các gói tin của nút đến các nút xa hơn. Ý tưởng của chuyển tiếp đa điểm là tối thiểu hóa việc phát tràn các thông báo quảng bá trong mạng. Mỗi nút tính MPR từ tập các láng giềng của nó, tập MPR được chọn như vậy khi một nút phát quảng bá một thông báo, các chuyển tiếp của thông báo đó bằng tập MPR sẽ đảm bảo rằng thông báo được nhận bởi mỗi nút có số chặng bằng 2. Do đó, bất cứ khi nào một nút quảng bá một thông báo, chỉ có những người láng giềng trong tập MPR của nó phát quảng bá lại thông báo đó. Các láng giềng không nằm trong tập MPR thì chỉ xử l thông báo nhưng không phát quảng bá lại nó. Hơn nữa, khi truyền thông tin định tuyến trạng thái liên kết, một nút chỉ liệt kê các kết nối của nó cho những láng giềng rằng đã chọn chúng như là một MPR. Tập các láng giềng được gọi là MPR Selectors.
OLSR sử dụng hai loại thông báo điều khiển HELLO và TC (Topology Control). Thông báo HELLO được phát định kỳ để cảm nhận trạng thái liên kết với các láng giềng, và xây dựng nên tập MPR. Thông báo HELLO chỉ được gửi đi một chặng nhưng thông báo TC được quảng bá trong toàn mạng. Các thông báo TC được dùng để quảng bá thông tin về danh sách các MPR của mỗi nút và được phát định kỳ. Tuy nhiên, chỉ các nút trong tập MPR mới chuyển tiếp các thông báo TC. Mỗi nút duy trì một bảng định tuyến được xây dựng từ thông tin cấu hình trong các thông báo TC và thông tin kết nối cục bộ trong các thông báo HELLO. Khi có bất cứ thay đổi nào trong các thông tin này, bảng định tuyến được tính toán lại. Do OLSR là giao thức chủ động, bảng định tuyến có chứa đường đi đến tất cả các nút trong mạng. Các đường đi trong bảng định tuyến được tính dựa trên thuật toán đường đi ngắn nhất, như là một biến thể của thuật toán Dijkstra [68](pp.63-90).
33
2.1.2.2 Giao thức định tuyến điều khiển theo yêu cầu
Một phương pháp khác với giao thức định tuyến theo bản ghi đó là định tuyến điều khiển theo yêu cầu còn được gọi là giao thức phản ứng lại (reactive). Theo phương pháp này, các đường đi sẽ được khám phá nếu như có nhu cầu. Khi một nút yêu cầu một đường đi đến đích, nó phải khởi đầu một quá trình khám phá lộ trình để tìm đường đi đến đích. Quá trình này chỉ hoàn tất khi đã tìm ra một đường đi sẵn sàng hoặc tất cả các đường đi khả thi đã được kiểm tra. Khi một đường đi đã được khám phá và thiết lập, nó được duy trì định tuyến (route maintenance) bởi một số dạng thủ tục cho đến khi hoặc là đường đi đó không thể truy nhập được từ nút nguồn hoặc là không cần thiết đến nó nữa.
Với các cơ chế đó, các giao thức định tuyến điều khiển theo yêu cầu không phát quảng bá (broadcast) đến các nút láng giềng về các thay đổi của bảng định tuyến theo thời gian, nên tiết kiệm được tài nguyên mạng. Vì vậy, loại giao thức này có thể sử dụng trong các mạng MANET phức tạp, các nút di chuyển nhiều.
Một số giao thức định tuyến điều khiển theo yêu cầu tiêu biểu như: Giao thức định tuyến CBRP (Cluster Based Routing Protocol), Giao thức định tuyến AODV (Ad hoc On Demand Distance Vector), Giao thức định tuyến DSR (Dynamic Source Routing), Giao thức định tuyến TORA (Temporally Ordered Routing Algorihm).
Giao thức TORA
TORA là giao thức định tuyến phân tán không có lặp tuyến thích nghi cao dựa trên thuật toán đảo ngược liên kết (link-reversal). TORA được đề xuất để điều khiển định tuyến trong môi trường mạng di động thay đổi nhanh. Nó được khởi tạo tại nút nguồn và cung cấp nhiều đường đi cho bất kỳ cặp nút nguồn/đích theo yêu cầu nào đó. Ý tưởng thiết kế chính của TORA là định vị các thông báo điều khiển đến một tập các nút rất nhỏ gần nơi xảy ra việc thay đổi cấu trúc. Để làm được điều này, các nút cần đảm bảo thông tin định tuyến về các nút láng giềng. Giao thức TORA thực hiện ba chức năng cơ bản: khám phá lộ trình; duy trì lộ trình; xóa lộ trình.
Trong suốt giai đoạn khám phá và duy trì lộ trình, các nút sử dụng đơn vị đo “độ cao” để thiết lập đồ thị không chu trình có hướng DAG (Directed Acyclic Graph) có gốc tại đích đến. Sau đó, các liên kết được gán hướng (luồng lên hoặc xuống) dựa trên đơn vị đo độ cao tương đối của các nút láng giềng. Đường đi trong mạng được phát hiện bằng hai gói tin là QUERY và UPDATE. Khi nút có nhu cầu gửi gói tin đến đích bất kỳ, nó sẽ gửi quảng bá gói tin truy vấn QUERY. Gói tin này được các nút trung gian truyền trong mạng cho tới khi đến đích hoặc nút trung gian có đường đi đến đích. Nút trả lời sẽ gửi trả lại gói tin UPDATE chứa độ cao của nút đó. Các nút nhận được gói tin UPDATE sẽ thiết lập độ cao lớn hơn độ cao trong gói tin UPDATE và quảng bá gói tin UPDATE của nó. Kết quả nút nguồn sẽ có đường đi đến nút đích theo đường có độ cao giảm dần.
Do tính di động của các nút, lộ trình DAG bị phá vỡ và việc đảm bảo lộ trình là cần thiết để thiết lập lại đồ thị DAG có gốc ở cùng nút đích. Khi mà lỗi của liên kết luồng
34
xuống cuối cùng xảy ra, nút hiệu chỉnh độ cao của nó là cao nhất so với các láng giềng của nó và truyền quảng bá gói tin UPDATE với độ cao mới đến các nút láng giềng nhằm phản ứng với lỗi. Các liên kết được đảo ngược phản hồi với thay đổi để thích nghi với độ cao mới. Điều này có cùng tác động do hướng đảo ngược của một hay nhiều liên kết khi nút không có các liên kết luồng xuống.
Giai đoạn xóa lộ trình của TORA bao gồm chủ yếu việc quảng bá gói tin xóa CLR (Clear Packet) thông qua mạng để xóa các lộ trình không hợp lệ. Gói tin CLR bao gồm độ cao và định danh đích. Khi một nút nhận được gói tin CLR và độ cao của nó khớp với độ cao trong CLR, nó thiết lập tất cả độ cao cho các láng giềng và bản thân nó đối với đích giá trị null và quảng bá tiếp gói tin CLR. Ngược lại, nếu không khớp, nó chỉ thiết lập độ cao cho các láng giềng đối với đích giá trị null [81](pp.91-115).
Giao thức định tuyến AODV
Giao thức định tuyến AODV được xây dựng trên cơ sở giao thức định tuyến DSDV được mô tả ở mục 2.1.2.1. Khác với DSDV luôn lưu trữ một danh sách các đường đi hoàn chỉnh, AODV chỉ khám phá các đường đi khi có yêu cầu.
Khi mà nút nguồn cần gửi thông tin đến nút đích nhưng chưa có sẵn lộ trình hợp lệ đến đích, nó khởi tạo tiến trình khám phá lộ trình để định vị đường đi đến nút đích. Nút nguồn quảng bá gói tin yêu cầu lộ trình RREQ (Route Request) đến các láng giềng của nó và sau đó các láng giềng sẽ chuyển tiếp yêu cầu đến các láng giềng khác và cứ như thế cho đến khi gặp đích hoặc gặp nút trung gian có đường đi đến đích. AODV sử dụng số thứ tự của đích đến để bảo đảm tất cả các lộ trình là không có vòng lặp và chứa các thông tin lộ trình cập nhật nhất. Mỗi nút bảo đảm số thứ tự của nó cũng như định danh của các gói tin phát quảng bá, định danh quảng bá được tăng cho mỗi gói RREQ khi nút khởi tạo. Cùng với địa chỉ của nút, định danh gói RREQ là duy nhất. Ngoài số thứ tự và định danh quảng bá, nút nguồn còn bao gồm trong gói RREQ thông tin về số thứ tự gần đây nhất mà nó có đối với đích. Các nút trung gian có thể trả lời RREQ chỉ khi chúng có lộ trình đến đích tương ứng với số thứ tự địa chỉ đích lớn hơn hoặc bằng số thứ tự trong gói RREQ, nghĩa là chúng có thông tin mới hơn về lộ trình đến đích.
Trong suốt quá trình chuyển tiếp gói RREQ, nút trung gian khởi tạo đường quay trở về nguồn tạm thời. Ngoài ra, nút trung gian cũng lưu lại định danh của các gói RREQ đã nhận để loại bỏ các RREQ trùng lặp. Một khi gói RREQ đến được đích hoặc đến được nút trung gian với lộ trình đủ mới, nút đích/nút trung gian phản hồi bằng cách truyền gói tin phản hồi lộ trình RREP ngược trở lại cho nút láng giềng mà nó nhận được RREQ lần đầu tiên. Vì RREP được định tuyến quay trở lại theo đường mà gói RREQ đã đi nhưng theo chiều ngược lại, các nút theo đường dẫn thiết lập các đầu vào lộ trình chuyển tiếp trong bảng định tuyến của chúng trỏ đến nút có gói RREP đến. Các đầu vào lộ trình chuyển tiếp này cho biết lộ trình chuyển tiếp có còn hoạt động hay không. Mỗi đầu vào lộ trình có một trường định thời gian, nút mạng dựa vào trường định thời gian để quyết định xóa đầu vào
35
nếu nó thấy lộ trình tương ứng không còn được sử dụng trong một chu kỳ thời gian xác định [81](pp.101-106).
Giao thức định tuyến DSR
Giao thức định tuyến DSR là giao thức định tuyến điều khiển theo yêu cầu dựa trên khái niệm về định tuyến nguồn. Các nút được yêu cầu bảo đảm bộ đệm lộ trình chứa các lộ trình từ nút nguồn mà nút biết đến. Các đầu vào trong bộ đệm lộ trình được cập nhật liên tục khi có các lộ trình mới được biết.
Giao thức định tuyến bao gồm hai giai đoạn chính: khám phá và duy trì lộ trình. Khi nút có gói tin cần gửi đến nút đích, đầu tiên nó thăm dò bộ đệm định tuyến của nó để xác định xem đã có sẵn lộ trình đến đích chưa. Nếu có lộ trình để gửi đến đích và chưa hết hạn, nó sẽ sử dụng lộ trình này để gửi gói tin. Ngược lại, nếu nút không có lộ trình, nó sẽ khởi tạo khám phá lộ trình bằng cách gửi quảng bá gói yêu cầu lộ trình RREQ. Yêu cầu lộ trình này chứa địa chỉ của nút đích, cùng với địa chỉ của nút nguồn và số định danh duy nhất.