Hình 13. Việc tạo tuyến và đảm bảo tuyến trong 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 khái niệm về đảo ngược liên kết. TORA được đề xuất để vận hành trong môi
trường mạng di động thay đổi nhanh. Nó được khởi tạo phía nguồn và cung cấp nhiều tuyến cho bất kỳ cặp nguồn/đích mong muốn nào. Khái niệm thiết kế chính của TORA là định vị các thông điệp điều khiển tới 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 bảo đảm thông tin định tuyến về các nút kề cận (một chặng). Giao thức TORA thi hành ba chức năng cơ bản:
ü Tạo tuyến
ü Bảo đảm tuyến
ü Xóa tuyến
Trong suốt giai đoạn tạo và bảo đảm tuyến, 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 hàng xóm như trong hình 13a. Trong hình vẽ, trục đứng thể hiện cho độ cao, các thông điệp trong mạng đi theo chiều từ nút có độ cao lớn hơn đến nút có độ cao nhỏ hơn giống kiểu thác nước chảy từ trên xuống. Thời gian là yếu tố quan trọng trong giao thức TORA bởi vì đơn vị đo “độ cao” phụ thuộc vào thời điểm logic của lỗi liên kết. TORA giả thuyết rằng tất cả các nút mạng đều có đồng hồ đồng bộ (có thể đạt được thông qua nguồn thời gian ngoài như GPS). Độ đo của TORA là sự tổng hợp của 5 yếu tố bao gồm thời điểm lôgic của lỗi liên kết, định danh duy nhất của nút xác định giá trị độ cao mới, bit chỉ số phản xạ, tham số của đường truyền và định danh duy nhất của nút [8].
Đườ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 tới đí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 tới đích hoặc nút trung gian có đường đi tới đí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 tới nút đích theo đường có độ cao giảm dần.
Do tính di động của các nút, tuyến DAG bị phá vỡ và việc bảo đảm tuyến là cần thiết để thiết lập lại đồ thị DAG có gốc ở cùng nút đích. Như đã chỉ ra trong hình 13b, khi mà lỗi của liên kết luồng 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 hàng xóm của nó và truyền quảng bá gói tin UPDATE với độ cao mới tới các nút hàng xóm 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 tuyến 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 tuyến 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 hàng xóm 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 hàng xóm đối với đích giá trị null.