3.2.6.1. Cứu gói dữ liệu
Sau khi gửi một thông báo Route Error, một nút mạng sẽ cố gắng cứu gói dữ liệu gây ra Route Error hơn là loại bỏ nó. Để cố gắng cứu gói, nút mạng sẽ gửi một Route Error tìm kiếm Route Cache của nó cho một tuyến từ nút đấy tới gói đích gây ra Error. Nếu tuyến này được tìm thấy, nút mạng có thể cứu gói trước khi trả lại Route Error bằng việc đặt lại tuyến nguồn bắt đầu trên gói với tuyến từ Route Cache của nó. Sau đó, nút mạng sẽ gửi gói tới nút mạng tiếp theo được chỉ định theo tuyến nguồn. Ví dụ, nếu nút mạng C có một tuyến khác được lưu tới nút E, nó có thể cứu gói bằng cách đặt lại tuyến này hơn là loại bỏ gói đi.
3.2.6.2. Tự động làm ngắn tuyến
Các tuyến nguồn có thể tự động ngắn hơn nếu một hoặc nhiều bước trung gian trong tuyến không cần thiết. Nếu một nút mạng tình cờ nghe được một gói mang một tuyến nguồn thì nút mạng này sẽ kiểm tra phần không sử dụng đến của tuyến nguồn. Nếu nút mạng không có ý định cho bước tiếp theo của gói nhưng được chỉ định trong phần không sử dụng của tuyến nguồn của gói muộn hơn thì nó có thể suy luận rằng các nút trung gian trước nó trong tuyến nguồn không cần cho tuyến đó.
2.2.6.3. Giảm truyền thông báo Route Error
Khi một tuyến nguồn nhận Route Error cho một gói dữ liệu khởi đầu, nút nguồn này truyền Route Error tới các nút lân cận bằng cách mang nó trong Route Request tiếp theo. Theo cách này, thông tin cũ trong cache của các nút mạng quanh nút nguồn sẽ không phát sinh Route Reply chứa cùng một kết nối không có hiệu lực để nút nguồn nhận Route Error.
3.2.7. Hỗ trợ cho các mạng di động và Mobile IP
Trong việc định hình và phát triển một mạng Ad hoc, trong nhiều trường hợp, tất cả các nút mạng sẽ được trang bị với cùng các loại giao diện mạng không dây, cho phép việc định tuyến giữa các nút mạng trở nên đơn giản qua các bước mạng bất kỳ. Tuy nhiên, hình dạng linh hoạt hơn có thể cũng trang bị một tập các nút mạng với một giao diện mạng thứ hai, bao gồm một giao diện mạng không dây cự ly xa hơn (longerZrange) (và vì vậy mà tốc độ chậm hơn). Ví dụ: trong bố trí quân sự, một tốp lính có thể sử dụng các sóng vô tuyến ngắn để truyền thông với nhau, trong khi tiếp âm thông qua sóng vô tuyến cao hơn được lắp trên xe tải để truyền thông với các nhóm khác.
Loại phổ biến của hình dạng mạng này là mạng Ad hoc tương đương với các mạng overlay không dây. Hình dạng mạng sẽ cho phép truyền thông với tốc độ cao giữa các nút mạng cộng tác, trong khi ở cùng một thời điểm cho phép truyền thông với các nút khác xa hơn mà không yêu cầu một số rất lớn các bước mạng. Sóng vô tuyến dài cũng cho phép khe hở giữa các nhóm nút mạng khác nhau đã được quay tròn (spin), giảm khả năng phân mảnh mạng. Một ví dụ đơn giản, một hình dạng mạng Ad hoc trong hình, mỗi nút mạng A, B, C có hai giao diện sóng vô tuyến ngắn và dài, tất cả các nút mạng khác trong mạng Ad hoc chỉ có giao diện mạng sóng vô tuyến ngắn. Nút mạng X sử dụng một tuyến nguồn tới nút mạng Y sử dụng một trình tự cả các bước sóng ngắn và sóng dài.
Báo cáo Đồ án Tốt nghiệp Chương III: Một số giao thức điển hình và khả năng áp dụng…
Hình 3.7: Các nút mạng kết nối thông qua các sóng ngắn
Một mạng Ad hoc đang chứa các nút mạng kết nối thông qua các sóng vô tuyến ngắn, với các nút mạng A, B, C cũng có các sóng vô tuyến dài. Việc kết nối giữa các nút mạng khác nhau như X và Y có thể bao gồm nhiều bước vô tuyến ngắn.
3.2.8. Kết luận
Với cơ chế hoạt động như đã trình bày ở các mục trên, có thể nhận thấy những ưu điểm nổi bật của DSR:
Chỉ những tuyến giữa các nút mạng cần truyền thông mới được duy trì: qua đó giảm overhead duy trì tuyến.
Trong tương lai lưu trữ tuyến có thể làm giảm overhead phát hiện tuyến.
Việc phát hiện tuyến đơn có thể cho ra rất nhiều tuyến tới đích, bởi việc trả lời các nút mạng trung gian xuất phát từ các cache cục bộ.
Bên cạnh những ưu điểm, DSR còn một số nhược điểm cần khắc phục: Kích thước header gói tăng theo độ dài tuyến do việc định tuyến nguồn. Flood yêu cầu tuyến có thể tới tất cả các nút trong mạng.
Những xung đột có thể xảy ra giữa các yêu cầu tuyến được phổ biến bởi những nút mạng lân cận.
Việc trả lời nút mạng sử dụng cache cục bộ sẽ làm tăng tranh chấp nếu có quá nhiều yêu cầu tuyến trở lại.
Những cache cũ làm tăng overhead.
Một nút trung gian có thể gửi trả lời tuyến sử dụng một tuyến đã được lưu trữ cũ, vì vậy có thể gây ảnh hưởng cho các tuyến khác. Vấn đề này có thể giải
quyết một cách dễ dàng nếu thực hiện các cơ chế lọc những tuyến lưu trữ không còn hiệu lực
3.3. Giao thức TORA (thuật toán định tuyến thứ tự tạm thời)
3.3.1. Tổng quan về giao thức
TORA (TemporallyZOrdered Routing Algorithm) là giao thức định tuyến phân phối dựa trên thuật toán “đảo kết nối”, tìm và duy trì các tuyến qua sự phục hồi nội bộ của hướng kết nối [12]. TORA được thiết kế để phát hiện các tuyến theo yêu cầu, cung cấp các tuyến đa phương tiện tới một đích, thiết lập các tuyến nhanh và giảm thiểu overhead của các gói truyền bằng cách thu hẹp các hoạt động mang tính thuật toán để thay đổi về hình dạng khi có thể. Sự tối ưu định tuyến (tuyến ngắn nhất) được đánh giá là quan trọng thứ cấp. Các tuyến dài hơn thường xuyên được sử dụng để tránh phần overhead khi phải tìm kiếm tuyến mới.
Các đặc tính của TORA là:
Định tuyến theo yêu cầu, khởi tạo từ nguồn.
Cung cấp các tuyến đa phương để giảm bớt sự tắc nghẽn có thể xảy ra. Tạo ra các tuyến lặp tự do.
Điều khiển sự phân chia tuyến bằng cách xóa bỏ các tuyến không hiệu quả. 3.3.2. Hoạt động của giao thức TORA
Hoạt động của TORA có thể được miêu tả giống như dòng nước chảy từ trên cao xuống theo hướng nút mạng đích qua một hệ thống các ống để biểu diễn trạng thái định tuyến của mạng thực. Các ống biểu diễn kết nối giữa các nút mạng trong mạng, các mối nối của các ống biểu diễn các nút mạng và nước trong ống biểu diễn các gói hướng đích. Mỗi nút mạng có một độ cao đối với đích được ước lượng bởi giao thức định tuyến. Nếu một ống giữa nút mạng A và B bị chặn thì nước không thể chảy qua đó, độ cao của A sẽ được thiết lập lớn hơn các lân cận còn lại, như vậy nước sẽ chảy trở lại qua A (và hướng tới các nút mạng khác đang định tuyến các gói tới đích thông qua A).
Khi một nút phát hiện ra rằng một tuyến tới đích là không có hiệu lực, nó sẽ điều chỉnh độ cao để nó là lớn nhất trong vùng đối với các nút mạng lân cận và truyền một gói cập nhật. Nếu nút mạng không có lân cận với độ cao vô cùng đối với đích thì nút mạng này sẽ thực hiện việc phát hiện tuyến mới như mô tả ở trên. Khi một tuyến phát hiện một phân mảnh của mạng, nó sẽ phát sinh một gói xóa để thiết lập lại trạng thái tuyến và dời các tuyến không còn hiệu lực khỏi mạng.
TORA xây dựng và duy trì một đồ thị có hướng liên thông (Directed Acyclic Graph Z DAG) gốc bắt đầu từ nút đích. DAG đảm bảo tất cả các đường có hướng là lặp tự do
Báo cáo Đồ án Tốt nghiệp Chương III: Một số giao thức điển hình và khả năng áp dụng…
và hướng tới đích. Những kết nối giữa các nút được hướng dựa trên một giá trị, duy trì bởi các nút. Điều này có thể hình dung qua khái niệm “độ cao” (kết nối hướng từ nút cao hơn tới nút thấp hơn). Mỗi nút mạng có một độ cao được tính toán bằng giao thức định tuyến. Chẳng hạn, nút mạng i trong mạng có một độ cao Hi thể hiện năm giá trị Hi =(ti, oidi, ri, di, i) . Trong đó:
Z t: thời gian lỗi liên kết. Z oid: id khởi tạo
Z r: chỉ định bit phản hồi, 0 là mức khởi tạo, 1 là mức phản hồi Z d: là số nguyên của các nút liên quan đến mức tham chiếu. Z i: là id của nút
Giả sử H[i] là độ cao của nút mạng và độ cao của các nút lân cận là H[j], hướng của các kết nối được thiết kế như sau [23]:
Z Nếu H[j] = = Null thì không được xác định.
Z Nếu H[j] = = Null và H[i] = = Null thì hướng xuống. Z Nếu H[j] = = Null và H[i] > H[j] thì hướng xuống. Z Nếu H[j] = = Null và H[j] < H[j] thì hướng lên.
Hình 3.8: Mô tả khái niệm thiết lập hướng của DAG 3.3.3. Các cơ chế cơ bản
TORA cũng hỗ trợ 3 cơ chế cơ bản [12]: Cơ chế tạo tuyến.
Cơ chế duy trì tuyến. Cơ chế xóa tuyến.
3.3.3.1. Cơ chế tạo tuyến
Cơ chế tạo tuyến bao gồm việc thành lập một số tuần tự của các kết nối có hướng từ nguồn tới đích. Việc này được thực hiện bởi việc định dạng DAG theo hướng tới đích, đích nằm ở cuối cùng của đồ thị. Cơ chế này định nghĩa hai loại gói:
Gói QRY (Query): gói truy vấn tuyến, chứa id đích.
Gói UPD (Update): gói cập nhật, chứa id đích và độ cao của nút mạng i đang quảng bá gói Hi.
Tại mỗi nút mạng duy trì:
Cờ yêu cầu tuyến RRt (Route Request) ban đầu không được thiết lập. Thời gian gói UPD cuối cùng được quảng bá.
Thời gian ở mỗi kết nối (i, j).
Khi một nút di động cần một tuyến tới đích, nó phát đi một gói truy vấn tuyến (QRY) và thiết lập cờ yêu cầu tuyến của nó. Gói này truyền qua mạng tới đích hoặc tới một nút mạng trung gian có chứa tuyến tới đích. Nút mạng nhận gói QRY sau đó phát quảng bá một gói cập nhật (UPD) độ cao của nó theo hướng tới đích. Khi các gói UPD này truyền qua mạng, mỗi nút mạng nhận được thiết lập độ cao với giá trị lớn hơn độ cao của nút mạng lân cận. Điều này có hiệu quả tạo ra một chuỗi các kết nối trực tiếp từ nút mạng gửi QRY tới nút mạng khởi đầu tạo ra gói UPD.
Một nút mạng nhận gói QRY thực hiện một trong các công việc sau:
Z Nếu cờ yêu cầu tuyến của nó được thiết lập, có nghĩa nó không phải gửi QRY bởi vì bản thân nó đưa ra một QRY cho đích, nhưng tốt hơn hết là loại bỏ để giảm mào đầu thông báo.
Z Nếu một nút mạng không có các kết nối xuôi dòng và cờ yêu cầu tuyến không được thiết lập thì nó sẽ thiết lập cờ yêu cầu tuyến và quảng bá lại thông báo QRY.
Z Nếu một nút mạng có ít nhất một lân cận xuôi dòng và độ cao của kết nối là null thì nó sẽ thiết lập độ cao của nút là bé nhất trong các độ cao của các nút mạng lân cận, tăng giá trị d của nó và quảng bá một gói UPD.
Z Nếu một nút mạng có một kết nối xuôi dòng và độ cao của nó là khác null thì nó sẽ loại gói QRY nếu một gói UPD đang được phát đi khi kết nối trở nên hoạt động (cờ rr thiết lập). Ngoài ra, nó gửi một gói UPD.
Một nút mạng nhận gói UPD sẽ cập nhật giá trị độ cao của các lân cận trong bảng và thực hiện các hành động sau:
Báo cáo Đồ án Tốt nghiệp Chương III: Một số giao thức điển hình và khả năng áp dụng…
Z Nếu bit phản hồi của các lân cận độ cao không thiết lập và cờ yêu cầu tuyến được thiết lập thì nó sẽ thiết lập độ cao cho đích tới các lân cận nhưng tăng d lên 1. Sau đó, nó sẽ xóa cờ RR và gửi một thông báo UPD tới các lân cận, vì vậy chúng có thể định tuyến thông qua nó.
Z Nếu một tuyến lân cận không có hiệu lực hoặc cờ RR không được thiết lập thì nút này chỉ cập nhật phần lưu trữ của nút lân cận trong bảng của nó.
Khi một nút mạng phát hiện một tuyến tới đích là không hiệu quả, nó sẽ điều chỉnh độ cao đến mức là giá trị lớn nhất có thể theo hướng tới các nút mạng lân cận và truyền một gói Update. Nếu nút mạng không có các lân cận của độ cao hữu hạn liên quan tới đích này, thì nút mạng sẽ cố gắng phát hiện một tuyến mới như đã mô tả ở trên. Khi một nút mạng phát hiện sự chia cắt mạng, nó tạo ra một gói xóa bỏ (Clear) để thiết lập lại trạng thái tuyến và bỏ đi các tuyến không hiệu quả ra khỏi mạng.
3.3.3.2. Cơ chế duy trì tuyến
Duy trì tuyến là để phản ứng lại với những thay đổi tôpô, mục đích lặp lại các tuyến trong một thời gian giới hạn.
Duy trì tuyến trong TORA có 5 trường hợp khác nhau theo biểu đồ tiến trình như sau:
Z 1. Phát sinh: nút mạng bị mất kết nối xuôi dòng do bị lỗi. Nút mạng này định nghĩa một “mức tham chiếu” mới vì vậy nó sẽ thiết lập oid (id khởi tạo) cho id nút mạng của nó và t cho thời gian lỗi. Điều này chỉ được thực hiện nếu nút mạng có các lân cận ngược dòng. Nếu nó không thiết lập chiều cao là null. Z 2. Truyền: nút mạng không có nhiều kết nối xuôi dòng do thuật toán đảo ngược
kết nối xảy ra việc chấp nhận một gói cập nhật và các mức tham chiếu (t, iod, r) của các lân cận là không bằng nhau. Sau đó nút mạng sẽ truyền mức tham chiếu của lân cận cao nhất và thiết lập một offset có giá trị bé hơn offset của tất cả các lân cận bới mức lớn nhất.
Z 3. Phản hồi: nút mạng mất các kết nối xuôi dòng do thuật toán đảo ngược liên kết cho phép chấp nhận một gói cập nhật và độ cao tham chiếu của các lân cận là bằng nhau với bit phản hồi không được thiết lập. Sau đó, nút mạng sẽ phản hồi trở lại độ cao tham chiếu bằng cách thiết lập bit phản hồi. Giá trị d được thiết lập là 0.
Z 4. Phát hiện: nút mạng mất các kết nối xuôi dòng do thuật toán đảo ngược liên kết cho phép chấp nhận một gói cập nhật và các độ cao tham chiếu của lân cận là bằng nhau với bit phản hồi được thiết lập. Điều này có nghĩa là nút mạng được phát hiện một phần dành riêng và bắt đầu thủ tục xóa tuyến. Các giá trị độ cao được thiết lập là null.
Z 5. Phát sinh: nút mạng mất kết nối xuôi dòng gần nhất do thuật toán đảo ngược kết nối cho phép nhận một gói cập nhật và các độ cao tham chiếu của các nút lân cận là bằng nhau và bit phản hồi được thiết lập, oid của các độ cao lân cận không phải là id của nút. Sau đó, nút thiết lập t cho thời gian lỗi kết nối và oid cho id của nó. Giá trị d được thiết lập là 0. Điều này có nghĩa là lỗi kết nối yêu cầu không phản ứng lại. Nút mạng đã trải qua một lỗi kết nối giữa thời gian nó truyền một tham chiếu cao hơn (từ nút mạng khác) và thời gian mức này nhận phản hồi từ một vị trí xa trong mạng. Bởi vì nút mạng không tự định nghĩa một mức tham chiếu mới. Vì vậy, nút mạng định nghĩa đơn giản mức tham chiếu mới cao hơn với lần lỗi kết nối.
3.3.3.3 Cơ chế xóa tuyến
Xóa tuyến xảy ra khi một phân mảnh được phát hiện trong mạng, tất cả các tuyến không có hiệu lực bị loại bỏ ra khỏi mạng. Điều này được thực hiện bởi việc tạo ra hướng các tuyến không hướng.
Hình 3.9: Hoạt động của TORA 3.3.4. Kết luận
TORA là thuật toán định tuyến có thể tiếp tục phát triển trên cơ sở ban đầu thiết kế cho các mạng Ad hoc di động (MANETs). Nó đánh dấu một bước ngoặt so với các công nghệ định tuyến truyền thống và có khả năng ứng dụng trong các miền Internet có kết hợp giữa di động và cố định.
TORA đã và đang được phát triển tiếp theo định hướng thương mại hóa [23].