2.5.1 Khái quát thuật toán
Thuật toán DE là thuật toán ước lượng dựa trên phần mềm, nhưng không giống cách ước lượng dựa trên gói tin beacon như thuật toán ETX, một số thuật toán khác lại ước lượng dựa trên gói tin dữ liệu. Thực tế là ước lượng dựa vào sự trao đổi gói tin quảng bá beacon không còn chính xác khi áp dụng cho truyền thông unicast. Chất lượng tuyến ước lượng dựa trên beacon rất khác so với ước lượng dựa trên gói dữ liệu bởi quá trinh truyền thông dữ liệu unicast là tin cậy, gói tin dữ liệu và beacon có kích thước khác nhau, hai loại gói tin được phương thức điều phối của lớp MAC xử lý khác nhau. Đặc biệt truyền thông unicast tin cậy yêu cầu ACK phản hồi và cơ chế truyền lại, điều mà không được áp dụng trong truyền thông broadcast. Thêm nữa, ước lượng dựa trên beacon không chỉ bị hạn chế trong việc phản ánh chính xác thực tế mà còn không đạt hiệu quả trong sử dụng năng lượng.
Trong truyền thông unicast tin cậy, phía gửi truyền lại nhiều lần gói tin dữ liệu cho tới khi nó nhận được phản hồi thông báo (ACK) rằng gói tin đã được gửi thành công tới nút nhận hoặc số lần truyền lại đã tới giới hạn. Thuật toán Dữect Estimate (DE) là thuật toán thiết lập mặc định trong Contiki os, thuật toán sử dụng trực tiếp số lần truyền đi truyền lại của gói tin dữ liệu để ước lượng tuyến tại phía gửi.Cửa sổ trung bình trượt đơn giản được áp dụng cho số lần truyền đi truyền lại của các lần truyền gói tin gần nhất để tính giá trị ETX. Thuật toán DE yêu cầu bộ nhớ cài đặt nhỏ và sử dụng năng lượng hiệu quả, bởi không cần phải truyền thêm gói tin beacon.Tuy thế, cách tính ETX của thuật toán lại phụ thuộc nhiều vào lưu lượng dữ liệu của mạng.Trong trường hợp lưu lượng mạng thấp, thuật toán cập nhật không phù họp và dẫn tới không chính xác.
2.5.2 Cài đăt thuât
toán DE • •
Thuật toán DE đã được thiết lập mặc định trên Contiki os. Cùng với quá trình cập nhật ETX của module ước lượng tuyến, chương 2 đã trình bày module quản lý hàng xóm: module quan trọng trong quá trình định tuyến.
Hình 2.9 Lim đồ cập nhật ETX (DE).
Giá trị ETX của 1 tuyến được tính bằng trung bình theo thời gian số lèn truyền lại để truyền 1 gói tin thành công giữa 2 nút.
Giá trị ETX cho mỗi nút hàng xóm được chứa trong bảng hàng xóm và được tính toán mỗi khi một gói tin dữ liệu được gửi tới hàng xóm. Khi bên gửi đóng gói ACK, số lần truyền đi cần thiết để truyền gói tin đi cũng được gửi tới bộ ước lượng tuyến.
Giá trị ETX tức thời của mỗi thời điểm được tính toán dựa trên số lần truyền lại các gói dữ liệu và được lưu vào trong các stack, lần lượt từ ngăn nhớ đầu tiên cho đến ngăn nhớ cuối củng (ngăn nhớ thứ 8), lấy trung bình 8 giá trị đó sẽ được giá trị ETX của liên kết cần tìm trong một khoảng thời gian nhất định (có thể hiểu đơn giản là ETX được tính bằng trung bình số lần truyền của 8 gối tin truyền thảnh công gần nhất thời điểm đó) .
Các giá trị ETX này được cập nhật lần lượt khi có sự kiện nút gửi thành công một gói tin hoặc khi một gói tin timed out: Nêu nút gửi được 1 gói tin, giá trị ETX được thay thế bởi số lần truyền lại gói tin đó; nếu khi gói tin timed out( vượt quá số lần truyền lại), ETX được nhân lên gấp đôi.
Hình 2J0 Lim đồ quả trình thêm hàng xóm (DE).
Tại một nút, nút hàng xóm được quản lỷ theo danh sách bảng hàng xóm, do đó, khi muốn cập nhật thêm một nút làm hảng xóm thì cần thêm nút đố vào trong bảng hàng xóm của nút. Nếu bảng hàng xóm còn trống, thêm ngay nút mới vào làm hàng xóm được. Nếu bảng hàng xóm đã đầy, phải tim hàng xóm kém nhất trong bảng (là nủt có rtmetric cao nhất trong số các hàng xóm) và so sánh, nếu rtmetrỉc của hàng xóm kém nhất cao hơn rtmetrỉc của nút mới cập nhật thì thêm nút mới đó vào thay thế hảng xóm kém nhất ưong bảng hàng xóm.
Khỉ một nút nhận được bản tin thông báo (annoucenment) của một nút khác tới, phải kiểm ứa xem nút mới có trong bảng hàng xóm của mình không, nếu có thì cập nhật rtmetric của nút hàng xóm này vào thay thế rtmetric cũ luôn, nhưng nếu không có trong bảng hàng xóm, thì phải kiểm tra xem có cập nhật thêm được nút mới vào bảng hàng xóm không:
Theo module thêm hàng xóm ở trên, khỉ thêm thành công hàng xóm vào bảng hàng xóm, giá trị rtmetric của nút mới được cập nhật vào bảng hàng xóm và khôi phục thời gian đếm về 0. Vì trong quản lý hàng xóm, nút sẽ quét bảng hảng xóm sau 1 phút và nút sẽ khôi phục các giá trị ước lượng tuyến về ban đầu nếu sau khoảng MAX LE AGE =10 phút mà chất lượng tuyến đó không được cập nhật, cũng như loại bỏ hàng xóm khỏi bảng hàng xóm sau khoảng MAX AGE = 60 phút nếu nút hàng xóm đó không được cập nhật thông tin gì.
Incommg ANN