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 Đồ án xây dựng mô hình lựa chọn thuật toán định tuyến giảm thiểu tỷ lệ mất gói trong mạng AD HOC (Trang 40)

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

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.

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…

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ự [23].

Hình 3.10: Hình ảnh trực quan của một mạng chiến lược 3.4 Giao thức AODV (giao thức Vector khoảng cách theo yêu cầu)

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

AODV (Ad hoc OnZDemand Distance Vector) về cơ bản là sự kết hợp của DSR và DSDV. AODV sử dụng cơ chế phát hiện tuyến quảng bá như sử dụng trong thuật toán định tuyến nguồn động DSR. Tuy nhiên, thay vì định tuyến nguồn, AODV dựa vào bảng định tuyến tạo lập động lưu trữ ở các nút mạng trung gian. Sự khác biệt này tạo thành công trong các mạng có nhiều nút mạng, khi overhead lớn hơn được mang trong mỗi gói dữ liệu. Để duy trì phần lớn thông tin định tuyến mới giữa các nút mạng, AODV sử dụng số tuần tự đích như trong thuật toán DSDV [23]. Tuy nhiên, không giống DSDV, mỗi nút mạng Ad hoc duy trì một bộ đếm số tuần tự ra tăng đều đặn được sử dụng để thay thế các tuyến đệm cũ. Việc kết hợp các kĩ thuật này tạo ra thuật toán AODV những hiệu quả nhất định trong việc sử dụng độ rộng băng. Điều này đáp ứng cho sự thay đổi tôpô mạng và đảm bảo định tuyến lặp tự do.

Thuật toán AODV có thể biến đổi động, tự khởi động, định tuyến đa bước giữa các nút di động đang muốn thiết lập và duy trì mạng Ad hoc. AODV cho phép các nút di động có những tuyến một cách nhanh chóng để tới đích và không yêu cầu các nút mạng duy trì các tuyến tới các đích mà không ở trong hoạt động truyền thông. AODV cho phép các nút mạng di động trả lời các gói kết nối và thay đổi tôpô mạng. Hoạt động của AODV là lặp tự do và bằng cách ngăn ngừa vấn đề “tăng đến vô cùng” BellmanZFord để cung cấp sự hội tụ nhanh khi tôpô mạng Ad hoc thay đổi [3, 2].

3.4.2. Hoạt động của AODV

AODV định nghĩa các loại thông báo sau: Route Requests (RREQs), Route Replies (RREPs), Route Errors (RERRs).

Một nút mạng gửi một yêu cầu RREQ khi nó cần một tuyến tới đích và bản thân nó không có sẵn tuyến. Điều này có thể xảy ra nếu nút mạng đích đã được biết trước hoặc nếu tuyến có hiệu lực tới đích trước đấy hết hiệu lực hoặc bị đánh dấu là vô hiệu lực.

Một nút mạng tạo một RREP nếu bản thân nó là nút đích hoặc nếu nó là một tuyến hoạt động tới đích, số tuần tự đích trong phần lưu trữ bảng định tuyến đang tồn tại của nút cho nút đích là có hiệu lực và lớn hơn hoặc bằng số tuần tự đích của RREQ và cờ “chỉ đích” không được thiết lập. Khi tạo thông báo RREP, nút mạng sẽ sao chép địa chỉ IP đích và số tuần tự đích gốc từ thông báo RREQ trong trường tương ứng trong thông báo RREP. Việc xử lý là khác nhau phụ thuộc vào nút mạng đích được yêu cầu chính là nó hay không hoặc thay thế nếu nó là một nút trung gian với một tuyến mới tới đích.

Khi một kết nối bị gián đoạn trong tuyến hoạt động được phát hiện thì thông báo RERR được sử dụng để thông báo cho những nút mạng khác biết việc mất kết nối này đã xảy ra. Thông báo RERR chỉ thị những đích khác mà không tìm thấy kết nối bị gián đoạn nữa.

3.4.2.1. Duy trì các số tuần tự

Mọi phần lưu trữ bảng định tuyến ở mỗi nút mạng phải bao gồm thông tin sẵn có mới nhất về số tuần tự để địa chỉ IP của nút đích cho phần lưu trữ bảng định tuyến được duy trì. Số tuần tự này được gọi là số tuần tự đích. Nó được cập nhật bất cứ khi nào một nút mạng nhận được thông tin mới về số tuần tự từ thông báo RREQ, RREP, RERR mà có thể được nhận liên quan tới đích. AODV phụ thuộc vào mỗi nút mạng để có và duy trì số tuần tự đích của nó, bảo đảm việc lặp tự do tất cả các nút mạng hướng tới đích này. Một nút mạng đích tăng số tuần tự của nó trong hai trường hợp sau:

Z Ngay lập tức trước khi một nút khởi tạo một phát hiện tuyến, nó phải tăng

số tuần tự của mình. Điều này ngăn những xung đột khi thành lập các tuyến ngược hướng tới nút phát sinh ra RREQ trước đấy.

Z Ngay lập tức trước khi nút mạng đích khởi tạo RREP để trả lời RREQ, nó

phải cập nhật số tuần tự của nó là số lớn nhất của số tuần tự hiện tại và số

Một phần của tài liệu Đồ án xây dựng mô hình lựa chọn thuật toán định tuyến giảm thiểu tỷ lệ mất gói trong mạng AD HOC (Trang 40)