Mô tả quá trình tìm đường trong AODV

Một phần của tài liệu (LUẬN văn THẠC sĩ) một số kỹ thuật định tuyến trong mạng cảm biến không dây ứng dụng trong điều khiển và giám sát môi trường nhà kính​ (Trang 46 - 55)

 Thiết lập đường ngược

Gói tin RREQ có 2 số thứ tự đó là: số thứ tự nguồn, số thứ tự đích cuối cùng. Số thứ tự nguồn được sử dụng để duy trì thông tin định tuyến về nút nguồn luôn được cập nhật và số thứ tự đích chỉ ra cách định tuyến mới nhất tới nút đích trước khi nó được chấp nhận bởi nút nguồn.

Gói tin RREQ sẽ phải đi từ nút nguồn tới nhiều nút đích khác nhau, nó sẽ tự động ghi lại con đường để trở lại nút nguồn. Để ghi lại con đường đó, một nút sẽ ghi lại địa chỉ nút lân cận, từ nơi mà nó nhận được bản sao đầu tiên của gói tin RREQ. Định tuyến đường ngược này sẽ được duy trì trong một khoảng thời gian đảm bảo để gói tin RREQ đi qua mạng và thực hiện một trả lời tới nơi gửi đã nó, tức là nút nguồn.

 Thiết lập đường đi

Tiếp theo, gói tin RREQ có thể đến được nút nào đó, nút đó có thể là nút đích của nó hoặc nút trung gian nằm trên con đường tới đích. Đầu tiên nút đó sẽ kiểm tra xem gói tin RREQ nhận được thông qua liên kết hai chiều. Nếu

nút trung gian này có chứa thông tin định tuyến tới nút đích thì nó sẽ tiến hành các bước kiểm tra bằng cách so sánh số thứ tự đích trong bảng định tuyến của nút hiện tại với số thứ tự trong gói tin RREQ. Nếu số thứ tự đích lưu trũ trong gói tin RREQ lớn hơn số thứ tự đích lưu trong bảng định tuyến này của nút hiện thời thì nút này không phải sử dụng thông tin định tuyến của nó để đáp ứng gói tin RREQ. Thay vào đó, nút hiện thời này sẽ tiếp tục quảng bá gói tin RREQ này tới các nút lân cận của mình. Nút trung gian hiện thời này chỉ thực hiện việc phản hồi lại gói tin RREQ chỉ khi nó chứa thông tin tin định tuyến mà ở đó có số thứ tự địch của nó lớn hơn hoặc bằng số thứ tự đích chứa trong gói tin RREQ. Nếu nó chứa thông tin định tuyến tới nút đích và nếu gói tin RREQ chưa được xử lý trước đó, nút hiện thời sẽ thực hiện một gói tin RREP tới lân cận của nó, nơi mà phát gói tin RREQ này cho nó. Một gói tin RREP bao gồm cac thông tin đó là địa chỉ nguồn, địa chỉ đích, số thứ tự đích, số bước nhảy, thời gian sống của gói tin.

Tại thời điểm một gói tin quảng bá tới một nút, nút mà cung cấp thông tin định tuyến tới nút đích, một con đường ngược trở lại nút nguồn, nút đã phát đi gói tin RREQ cũng được thành lập. Khi mà gói tin RREP quay trở lại nguồn, nơi phát ra gói tin RREQ, mỗi nút dọc theo con đường đó sẽ thiết lập con trỏ tới nút nguồn và nút đích, cũng như ghi lại số thứ tự cuối cùng của đích cần đến. Một nút mà không thuộc con đường ngược sẽ bị trễ thời gian trong khoảng 3 giây và sẽ bị xóa con trỏ ngược.

Một nút khi nhận được gói tin RREP lần đầu tiên nó sẽ lan truyền gói tin này tới nút nguồn hay nút mà nó nhận được gói tin RREQ mà cứ vậy cho đến khi tới nút cuối cùng. Nếu nó nhận được nhiều hơn một gói tin RREQ nó sẽ phải cập nhật thông tin định tuyến và chỉ truyền gói tin RREQ nếu gói tin đó có chứa thông tin số thứ tự đích lớn hơn số thứ tự đích của gói tin RREQ trước đó hoặc cùng số thứ tự đích nhưng có số bước nhảy nhỏ hơn. Nó sẽ cấm

tất cả các gói tin RREP khác mà nó nhận được. Điều này đảm bảo số lượng gói tin RREP được truyền tới nguồn trong khi vẫn đảm bảo thông tin định tuyến tốt nhất. Nút nguồn có thể bắt đầu truyền dữ liệu ngay khi nhận dược gói tin RREP đầu tiên và có thể cập nhật thông tin định tuyến nếu tìm được thông tin định tuyến tốt hơn.

 Quản lý bảng định tuyến

Bên cạnh thông tin về số thứ tự của nguồn và số thứ tự của đích, một số thông tin có ích khác cũng được lưu trữ trong bảng thông tin định tuyến và được gọi là trạng thái mềm – soft state. Môt liên kết tới thông tin định tuyến về con đường ngược được gọi là: thời gian hết hiệu lực của yêu cầu định tuyến – route request expiraton timer. Mục đích của bộ đếm thời gian này chính là làm sạch con đường định tuyến ngược từ node phát gói tin RREP về node nguồn, nó đảm bảo những node không nằm trên con đường đó được loại bỏ. Bộ đếm thời gian này phụ thuộc vào các yếu tố như kích thước của mạng. Một biến số quan trọng trong bảng định tuyến được đề cập tới đây là route-caching-timeout, hoặc là có thể hiểu là thời gian sau khi một định tuyến được cân nhắc để loại bỏ.

Trong bảng định tuyến cũng lưu trữ địa chỉ của các lân cận tích cực, các lân cận được cân nhắc là tích cực nếu nó có thể khởi phát hoặc chuyển tiếp một gói tin tới đích trong một khoảng thời gian cho phép. Thông tin địa chỉ này sẽ được duy trì chính vì vậy tất cả các lân cận tích cực sẽ thông báo nếu đường liên kết dọc theo tới node đích bị gẫy.

Mỗi một phần tử trong bảng định tuyến sẽ chứa các thông tin sau: đích, bước nhảy tiếp theo, số bước nhảy, số thứ tự của node đích, lân cận tích cực cho định tuyến, thời gian hiệu lực cho phần tử bảng định tuyến.

Mỗi khi một phần tử trong bảng định tuyến được sử dụng để truyền dữ liệu từ nguồn tới đích, thời gian trễ cho phần tử này sẽ được tính lại từ thời gian hiện tại cộng thêm thời gian trễ định tuyến tích cực.

 Bảo trì tuyến đường định tuyến

Việc di chuyển của các node không nằm trên đường dẫn tích cực không ảnh hưởng tới việc định tuyến tới đích. Đường dẫn tích cực là đường dẫn từ node nguồn tới node đích. Nếu node nguồn di chuyển trong phiên truyền dữ liệu, nó có thể khởi tạo lại việc tìm đường để tìm ra một định tuyến mới tới đích. Ngay cả khi node đích di chuyển hoặc một vài node trung gian trên đường dẫn tích cực di chuyển thì một gói tin RREP đặc biệt sẽ được gửi tới node nguồn. Theo chu kỳ, một thông điệp hello có thể được sử dụng đảm bảo liên kết đối xứng giữa nguồn và đích một cách tốt nhất, mục đích của thông điệp là phát hiện lỗi trên đường liên kết. Bên cạnh việc kiểm tra đường liên kết bằng phát đi thông điệp hello, còn có một cách khác như là một sự thay thế, đó là việc sử dụng LLACK – Link Layer Ack. Một liên kết lỗi sẽ được thông báo nếu cố gắng chuyển tiếp một gói tin tới bước chuyển lỗi kế tiếp.

Một trong bước nhảy kế tiếp không thể kết nối, node trước đó sẽ phải lan truyền một gói tin RREP không mong muốn với số thứ tự đã được làm mới (số thứ tự phải là số lớn hơn số trước đó) và số bước nhảy sẽ chuyển thành vô cùng với tất cả các node lân cận. Các node phía sau sẽ chuyển tiếp gói tin đó tới các lân cận của nó và cứ thế. Quá trình này sẽ tiếp tục đến khi tất cả các node nguồn tích cực được thông báo. Nó kết thúc bởi vì thuật toán AODV chỉ duy trì các định tuyến lặp miễn phí – loop – free và định tuyến đó chỉ có hữu hạn các node trong mạng. Khi nhận được thông báo của một liên kết hỏng, node nguồn có thể khởi động lại quá trình tìm đường nếu nó vẫn muốn định tuyến tới đích. Để xác định định tuyến đó vẫn còn cần thiết, một node có thể kiểm tra các

định tuyến đươc sử dụng gần đây cũng như kiểm tra khối điều khiển giao thức cấp trên để xem liệu kết nối đó vẫn được mở bằng cách sử dụng một đích được chỉ định. Nếu node nguồn hoặc bất kỳ một node thuộc định tuyến trước đó quyết định sẽ xây dựng lại định tuyến tới node đích, nó sẽ gửi một gói tin RREQ với số thứ tự đích lớn hơn số thứ tự đích trước đó để chắc chắn một định tuyến mới sẽ được xây dựng lại và có thể tồn tại và nếu không có một node nào trả lời gói tin RREQ đó thì mặc định định tuyến cũ sẽ được sử dụng như một định tuyến chắc chắn.

 Quản lý kết nối cục bộ

Một node có thể biết thông tin về lân cận của nó bằng một trong hai cách. Bất cứ khi nào một node nhận được thông tin quảng bá từ lân cận, nó sẽ cập nhập thông tin của lân cận đó đảm bảo nó luôn lưu trữ thông tin của lân cận. Trong trường hợp một node không gửi bất kỳ một gói tin nào tới các lân cận tích cực dưới nó – downstream bên trong phạm vi hello_interval, nó sẽ quảng bá tới lân cận của nó một thông điệp hello (một gói tin RREP đặc biệt) nó chứa thông tin định danh và số thứ tự của node. Số thứ tự của node không thay đối với thông điệp hello trong quá trình truyền tin này. Thông điệp hello này bị ngăn ngừa không được quảng bá lại bên ngoài các lân cận của node bởi vì nó chỉ được phép sống trong một khoảng thời gian. Lân cận nhận được gói tin cập nhật thông tin cục bộ của node. Việc nhận một quảng bá hoặc là nhận một thông điệp hello từ một lân cận mới hoặc là lỗi khi nhận allowed_hello_loss liên tiếp thông điệp hello từ node trước đó trong lân cận là dấu hiệu chỉ ra rằng liên kết cục bộ đã bị thay đổi. Lỗi khi nhận thông điệp hello từ lân cận không tích cực sẽ không kích hoạt bất kỳ hành động của giao thức. Nếu những thông điệp hello không được nhận từ những bước nhảy kế tiếp dọc theo đường dẫn tích cực, lân cận tích cực sử dụng bước nhảy kế tiếp sẽ được gửi thông báo rằng đường liên kết bị lỗi.

Quản lý thông tin kết nối cục bộ với thông điệp hello có thể được sử dụng để chắc chắn rằng chỉ những node với đường liên kết hai chiều được cân nhắc là những lân cận. Với mục đích này thì mỗi thông điệp hello gửi bởi một node sẽ liệt kê tất cả những node lân cận. Mỗi node sẽ kiểm tra để chắc chắn rằng nó chỉ sử dụng định tuyến tới lân cận của nó khi mà nó có thể nghe được thông điệp hello từ node đó. Để tiết kiệm băng thông cục bộ, việc kiểm tra như vậy chỉ khi mà các node đã được cấu hình rõ ràng.

Thuật toán AODV được thực hiện thông qua các bước sau [2]: Bước 1: Xem các gói RREQ đã được xử lý chưa? Nếu đã được xử lý thì nó sẽ loại bỏ gói tin đó và không xử lý thêm. Ngược lại chuyển qua bước 2.

Bước 2: Nếu trong bảng định tuyến của nó chứa đường đi đến đích, thì sẽ kiểm tra giá trị Destination sequence number trong entry chứa thông tin về đường đi với số Destination sequence number trong gói RREQ, nếu số Destination sequence number trong RREQ lớn hơn số Destination squence number trong entry thì nó sẽ không sử dụng thông tin trong entry của bảng định tuyến để trả lời cho nút nguồn mà nó sẽ tiếp tục phát Broadcast gói RREQ đó đến cho các nút láng giềng của nó. Ngược lại nó sẽ phát Unicast cho gói RREP ngược trở lại cho nút láng giềng của nó để báo đã nhận gói RREQ. Gói RREP ngoài các thông tin như: địa chỉ nguồn, địa chỉ đích,…còn chứa các thông tin: destination sequence number, hop-count, TTL. Ngược lại thì qua bước 3.

Bước 3: Nếu trong bảng định tuyến của nó không có đường đi đến đích thì nó sẽ tăng số Hop-count lên 1, đồng thời nó sẽ tự động thiết lập một đường đi ngược (Reverse path) từ nó đến nút nguồn bằng cách ghi nhận lại địa chỉ của nút láng giềng mà nó nhận gói RREQ lần đầu tiên. Entry chứa đường đi ngược này sẽ được tồn tại trong một khoảng thời gian đủ để gói RREQ tìm

đường đi đến đích và gói RREP phản hồi cho nút nguồn, sau đó entry này sẽ được xóa đi.

Quá trình kiểm tra này sẽ lặp tuần tự cho đến khi gặp nút đích hoặc một nút trung gian mà có các đều kiện thỏa bước 2. Trong quá trình trả về gói RREP, một nút có thể nhận cùng lúc nhiều gói RREP, khi đó nó sẽ chỉ xử lý gói RREP có số Destination Sequence number lớn nhất, hoặc nếu cùng số Destination sequence number thì nó sẽ chọn gói RREP có số Hop-count nhỏ nhất. Sau đó nó sẽ cập nhật các thông tin cần thiết vào trong bảng định tuyến của nó và chuyển gói RREP đi.

Nhận xét thuật toán AODV

Thuật toán AODV là thuật toán cốt lõi trong mạng cảm biến không dây sử dụng chuẩn Zigbee. Thuật toán ADOV được thiết kế để tối ưu năng lượng cho tất cả các trường hợp trong cấu hình của mạng không dây. AODV là thuật toán nâng cao của thuật toán định tuyến DSDV (Destination Sequenced Distance Vector). AODV tối thiểu hóa số bản tin quảng bá cần thiết bằng cách tạo ra các tuyến trên cơ sở theo yêu cầu.

AODV có ưu điểm là giảm chi phí so với các giao thức khác, hỗ trợ truyền gói tin multicast và unicast ngay cả với các nút chuyển động liên tục. AODV có phản ứng nhanh chóng với những thay đổi về hình trạng của mạng và cập nhật chỉ có các nút mà có thể bị ảnh hưởng bởi sự thay đổi, bằng cách sử dụng thông tin RRER.

Tuy nhiên, AODV có những hạn chế đó là tất cả các nút trong quá trình quảng bá có thể phát hiện ra nhau. Nên sẽ xảy xa trường hợp một tuyến hợp lệ nhưng đã hết thời hạn truyền. Bởi vậy gây ra kém hiệu quả trong truyền thông. Ngoài ra, khi kích cỡ của mạng tăng lên thì AODV chịu sức ép trong

việc đánh giá tuyến đường đi, gửi nhiều thông tin thăm dò. Do đó cũng gây ra hiện tượng tắc nghẽn đường truyền thông mạng cảm biến không dây.

Dưới đây là bảng kết quả phân tích, đánh giá so sánh giữa các giao thức định tuyến có sự nhận thức về năng lượng:

Giao thức

Đặc điểm

Ưu điểm Nhược điểm

SPIN- EC

Tối ưu được năng lượng so với Gossiping tới 70% năng lượng

+ Có độ trễ lớn dẫn đến độ trễ trong quá trình định tuyến của thuật toán.

+ Nếu nút trung gian không quan tâm đến dữ liệu sau bản tin ADV thì dữ liệu đó không thể truyền tới được nút đích

LEACH

+ Đơn giản, giảm gánh nặng cho trạm gốc và lượng bản tin truyền trong mạng

+ Phân bố đều năng lượng tiêu thụ cho nút mạng

+ Số cụm trong một vòng không cố định

+ Xác định nút chủ không căn cứ vào năng lượng còn lại.

+ Phân bổ cụm không hiệu quả.

CTP

Đạt được bốn mục tiêu chính đó là: Độ tin cậy cao, khả năng chống lỗi tốt, hiệu quả về năng lượng và độc lập với nhiều kiến trúc phần cứng khác nhau

Không có sự nhận thức về mức năng lượng còn lại trên các nút mạng nên dễ bị mất cân bằng năng lượng

Giao thức

Đặc điểm

Ưu điểm Nhược điểm

AODV

+ Giảm chi phí so với các giao thức khác

+ Có phản ứng nhanh chóng với những thay đổi về hình trạng của mạng

+ Tất cả các nút trong quá trình quảng bá có thể phát hiện ra nhau sẽ xảy xa trường hợp một tuyến hợp lệ nhưng đã hết thời hạn truyền

+ Khi kích cỡ của mạng tăng lên thì AODV chịu sức ép trong việc đánh giá tuyến đường đi, gửi nhiều thông tin thăm dò gây tắc nghẽn đường truyền thông

Dựa trên kết quả đánh giá, so sánh và phân tích các giao thức cho thấy giao thức AODV có sự ổn định về mặt hiệu năng với sự biến đổi của cấu hình mạng, chuyển tiếp gói tin tốt, lựa chọn đường đi tối ưu hơn...

CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN ĐỊNH TUYẾN AODV TRONG HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT MÔI TRƯỜNG

NHÀ KÍNH 3.1. Đặt vấn đề

Hiện nay, có nhiều thuật toán định tuyến được đề xuất sử dụng trong

Một phần của tài liệu (LUẬN văn THẠC sĩ) một số kỹ thuật định tuyến trong mạng cảm biến không dây ứng dụng trong điều khiển và giám sát môi trường nhà kính​ (Trang 46 - 55)

Tải bản đầy đủ (PDF)

(72 trang)