Giao thức TORA (thuật toán định tuyến thứ tự tạM thời)

Một phần của tài liệu Định tuyến trong mạng vô tuyến AD Hoc (Trang 58)

2.6.1. Tổng quan về giao thức

TORA (Temporally-Ordered 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ả.

2.6.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 - 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 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 đó:

- t: thời gian lỗi liên kết. - oid: id khởi tạo

- r: chỉ định bit phản hồi, 0 là mức khởi tạo, 1 là mức phản hồi - d: là số nguyên của các nút liên quan đến mức tham chiếu. - 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:

- Nếu H[j] = = Null thì không được xác định.

- Nếu H[j] = = Null và H[i] = = Null thì hướng xuống. - Nếu H[j] = = Null và H[i] > H[j] thì hướng xuống. - Nếu H[j] = = Null và H[j] < H[j] thì hướng lên.

2.6.3. Các cơ chế cơ bản

TORA cũng hỗ trợ 3 cơ chế cơ bản: Cơ chế tạo tuyến.

Cơ chế duy trì tuyến. Cơ chế xóa tuyến.

2.6.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:

- 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.

- 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.

- 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.

- 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:

- 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ó.

- 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.

2.6.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:

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.

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.

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.

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.

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.

2.6.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 2.11. Hoạt động của TORA

2.6.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. Tổ chức NOVA Engineering of Cincinnati, Ohio đã phát triển TORA thành một giao thức định tuyến MANET.

Telcordia cũng đang phát triển nhân MANET thương mại riêng biệt, tận dụng TORA như một giao thức định tuyến unicast. Công ty Boeing hiện nay đang đầu tư nghiên cứu để mở rộng TORA để có thể phát triển các mạng Ad hoc có phạm vi lớn. Ngành viễn thông Anh quốc, PLC đang đầu tư những mở rộng và tiêu chuẩn của TORA dựa trên IETF để phát triển các mạng dựa trên nền tảng IP hội tụ di động và cố định có phạm vi lớn.

Tổ chức khoa học quốc gia đã đầu tư nghiên cứu thám hiểm việc sử dụng TORA để có thể phát triển hai mức, các mạng Ad hoc. Đặc biệt, TORA tỏ ra rất phù hợp với các mạng chiến lược trong quân sự.

Một phần của tài liệu Định tuyến trong mạng vô tuyến AD Hoc (Trang 58)