Để giảm thiểu tác động không mong muốn này giữa các cụm, mỗi cụm trong LEACH sử dụng phương pháp đa truy nhập phân chia theo mã CDMA (Code Division Multiple Access). Một cụm có một mã trải phổ duy nhất, tất cả nút trong cụm truyền dữ liệu tới nút chủ phải dùng mã trải phổ này và nút chủ sẽ lọc dữ liệu được gửi từ những nút có cùng mã trải phổ với nó. Nút chủ gửi dữ liệu tới BS cũng sử dụng một mã trải phổ cố định, và dùng cơ chế CSMA để tránh xảy ra xung đột với nút chủ khác. Tuy là kênh truyền vô tuyến, nhưng khi một nút chủ có dữ liệu để gửi tới BS, nó phải lắng nghe xem có nút chủ nào phát dữ liệu không. Nếu không có nút nào phát thì mới tiến hành truyền dữ liệu tới BS, còn nếu có nút đang phát dữ liệu thì nút sẽ phải đợi.
LEACH có thể được mở rộng thông qua thiết lập các nhóm phân cấp. Trong trường hợp mạng lớn, số lượng nút cảm biến nhiều, nút chủ có thể không truyền thông trực tiếp với trạm gốc, mà phải thông qua nút chủ có mức phân cấp cao hơn (super-cluster-head), quá trình này tiếp tục cho đến lớp cao nhất của sơ đồ phân cấp, tại đây, dữ liệu mới được truyền đến trạm gốc.
Trong mạng lớn, sự phân cấp này rõ ràng mang lại hiệu quả cao hơn trong việc tiết kiệm năng lượng tiêu thụ của nút chủ.
Nhận xét thuật toán định tuyến LEACH
Những phần trên đã đề cập đến LEACH, một giao thức định tuyến dựa trên cơ chế phân cụm nhằm tối thiểu hóa năng lượng tiêu hao bằng cách phân bổ đều khả năng được lựa chọn làm nút chủ cho tất cả nút mạng. Tại những thời điểm khác nhau, mỗi nút có vai trò khác nhau, và do đó, sử dụng năng lượng khác nhau. Nhưng số lần đóng vai trò nút chủ của tất cả nút mạng trong một chu kỳ là bằng nhau, nhờ đặc điểm này mà LEACH có thể phân bổ đều năng lượng tiêu thụ trong mạng, vì năng lượng tiêu thụ chủ yếu tập trung tại các nút chủ. Từ đó, có thể rút ra một số ưu điểm của LEACH như sau:
- Đơn giản: Trong giao thức định tuyến LEACH, nút cảm biến tự tiến hành quyết định nút chủ và phân bổ cụm, không đòi hỏi thông tin điều khiển từ trạm gốc và nút không yêu cầu hiểu biết về toàn bộ cấu hình mạng. Ưu điểm này giảm gánh nặng cho trạm gốc và lượng bản tin mào đầu truyền trong mạng.
- Phân bố đều năng lượng tiêu thụ cho nút mạng: Với việc sử dụng ngưỡng quyết định T(n) và giá trị ngẫu nhiên có phân bố đều S, xét về mặt lý thuyết, nếu thời gian càng dài thì thuật toán LEACH phân bố đều vai trò làm nút chủ cho tất cả nút và thông qua đó, gián tiếp làm cho năng lượng tiêu thụ trên các nút gần tương đương nhau.
Bên cạnh những ưu điểm trên, giao thức định tuyến LEACH vẫn còn những nhược điểm sau:
- Số cụm trong một vòng không cố định: Nút mạng sử dụng giá trị ngẫu nhiên S và ngưỡng T(n) để tự quyết định có trở thành nút chủ trong vòng hiện tại hay không, do đó, thuật toán LEACH không có cơ chế nào để đảm bảo được số lượng cụm trong một vòng. Nhược điểm này dẫn đến hậu quả là có
những vòng không có cụm nào được hình thành, trong khi ở những vòng khác lại có quá nhiều cụm, từ đó, dữ liệu gửi tới trạm gốc bị gián đoạn.
- Xác định nút chủ không căn cứ vào năng lượng còn lại: Một trong những ưu điểm của LEACH là phân bố đều vai trò làm nút chủ trong một chu kỳ cho tất cả nút mạng, tuy nhiên, trong trường hợp mạng lớn, khoảng cách từ nút đến trạm gốc chênh lệch nhau nhiều, do đó, lượng năng lượng tiêu hao khi trở thành nút chủ cũng khác xa nhau, nhưng LEACH lại không căn cứ vào năng lượng còn lại để lựa chọn nút chủ, mà căn cứ vào số lần đã trở thành nút chủ trong các vòng trước đó. Nhược điểm này làm cho nút ở xa trạm gốc mất năng lượng sớm hơn.
- Phân bổ cụm không hiệu quả: Quá trình chọn nút chủ và do đó là phân bổ cụm hoàn toàn không quan tâm tới vị trí của nút mạng nên có rất nhiều trường hợp hai nút chủ nằm cạnh nhau, tạo nên hai cụm chồng lấn lên nhau, ảnh hưởng đến hiệu quả của mạng.
2.4. Thuật toán định tuyến CTP [6]
Thuật toán CTP (Collection Tree Protocol) là một kỹ thuật định tuyến hiệu quả hiện nay. Thuật toán này được xây dựng dựa trên phương pháp tiếp cận định tuyến phẳng, tự tổ chức. Thuật toán CTP cho phép truyền thông hiệu quả từ các nút mạng trong mạng cảm biến đến một trong các nút gốc.
Trong quá trình xây dựng và duy trì cấu trúc cây định tuyến, các nút cần phải xác định thước đo định tuyến để lựa chọn nút lân cận tốt nhất (nút cha). Hiện tại, kỹ thuật CTP sử dụng thước đo định tuyến chất lượng liên kết ETX để xây dựng cấu trúc cây định tuyến. Các nút cần phải thu thập thông tin về chất lượng liên kết của các nút lân cận và dựa vào thông tin đó để tính toán và lựa chọn nút cha. Để thực hiện điều này, các nút định kỳ trao đổi các bản tin điều khiển. Bản tin điều khiển mang thông tin về chất lượng tuyến đường
từ nút đó đến nút gốc. Kỹ thuật định tuyến CTP sử dụng thước đo định tuyến được sử dụng là số lần truyền kỳ vọng ETX (Expected Transmision). ETX của một liên kết là số lần truyền cần thiết để gửi thành công một bản tin từ nguồn đến đích qua liên kết đó bao gồm cả việc truyền lại. Hình dưới đây minh họa cách tính thước đo ETXlink của một liên kết.
Hình 2.7: Minh họa ETXlink của một liên kết.
Thước đo ETXlink của một liên kết được xác định theo công thức sau: 1 . link f b ETX D D (2.2) Trong đó:
- Df : Tỉ lệ chuyển phát bản tin theo chiều từ nút A đến nút B.
- Db : Tỉ lệ chuyển phát bản tin theo chiều ngược lại từ nút B đến A. Thước đo ETX của một tuyến đường rtmetric (route metric) được xác
định bằng tổng ETXlink của tất cả các liên kết trên toàn tuyến đường đó.
Thước đo rtmetric của mỗi nút được gửi quảng bá cho các nút lân cận thông qua việc trao đổi các bản tin điều khiển. Dưới đây là lưu đồ thuật toán cập nhật bảng định tuyến.
Hình 2.8: Minh họa ETXlink của một liên kết [6].
Trong kỹ thuật CTP thì công việc chính trong quá trình định tuyến đó là gửi bản tin beacon, xây dựng bảng định tuyến, duy trì và cập nhật bảng định tuyến, lựa chọn được nút cha trong hướng định tuyến của mình.
Các thành phần của kỹ thuật CTP gồm. Chuyển tiếp Định tuyến Ước lượng liên kết Các giao diện
- Phần định tuyến: Có nhiệm vụ gửi và nhận các bản tin điều khiển
cũng như tạo và cập nhật bảng định tuyến. Bảng định tuyến của mỗi nút lưu các nút lân cận có thể được lựa chọn làm nút cha của nó. Bảng này được xây dựng dựa vào các thông tin lấy từ các bản tin điều khiển. Bảng này lưu thông tin về địa chỉ của các nút lân cận cũng như các thông tin khác như thước đo định tuyến của mỗi nút.
- Phần chuyển tiếp: Có nhiệm vụ chuyển tiếp các bản tin dữ liệu đến
từ lớp ứng dụng cũng như các bản tin dữ liệu đến từ các nút lân cận. Phần chuyển tiếp cũng có nhiệm vụ phát hiện và sửa chữa các vòng lặp định tuyến cũng như ngăn chặn sự xung đột của các bản tin.
- Phần ước lượng liên kết: Có nhiệm vụ xác định chất lượng liên kết
(ETXlink). Phần ước lượng liên kết tính toán ETXlink dựa vào sự thống kê các bản tin điều khiển nhận được và các bản tin dữ liệu được truyền thành công. Dựa vào sự thống kê này, phần ước lượng liên kết sẽ tính toán ETXlink theo chiều đến được xác định bằng tổng số bản tin điều khiển được gửi bởi nút lân cận chia cho tổng số bản tin điều khiển nhận được. Tương tự như vậy, giá trị
ETXlink theo chiều đi được xác định bằng tổng số bản tin dữ liệu được gửi đi (bao gồm cả việc truyền lại) chia cho tổng số bản tin dữ liệu được xác nhận bởi bản tin xác nhận ACK.
Cấu trúc các bản tin của kỹ thuật CTP
CTP sử dụng 3 loại bản tin để xây dựng và duy trì hoạt động của cấu trúc liên kết mạng đó là: Bản tin điều khiển, bản tin dữ liệu và bản tin xác nhận.
- Bản tin dữ liệu: chứa các thông tin về thông báo tắc nghẽn. Nếu một nút loại bỏ một bản tin dữ liệu thì nó cần phải thiết lập trường C trong cấu trúc khung của bản tin dữ liệu kế tiếp mà nó gửi đi. Trường TTL chứa bước nhảy tối đa, trường thước đo định tuyến rtmetric của nút gửi đơn chặng.
Trường số thứ tự bản tin dữ liệu. Nút khởi nguồn sẽ thiết lập trường này và nút thực hiện chuyển tiếp bản tin dữ liệu không được phép thay đổi trường này. Sự kết hợp hai trường (origin, seqno) sẽ xác định một bản tin dữ liệu duy nhất trong mạng và trường dữ liệu.
- Bản tin điều khiển: Chứa các thông tin về địa trỉ của nút cha hiện tại, giá trị thước đo định tuyến của nút hiện tại và các thông tin tắc nghẽn.
- Bản tin xác nhận: được sử dụng để thông báo sự tiếp nhận thành công một bản tin dữ liệu.
Điểm yếu của kỹ thuật CTP
Kỹ thuật CTP đã được chứng minh là một giao thức thu thập dữ liệu đạt hiệu quả cao về mặt năng lượng tiêu thụ cũng như tỷ lệ chuyển phát thành công bản tin dữ liệu trong mạng ở mức cao. Các kết quả đánh giá cho thấy giao thức 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.
Tuy nhiên, kỹ thuật CTP hiện tại 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. Giao thức CTP chỉ dựa vào thước đo định tuyến ETX để lựa chọn tuyến đường tối ưu. Thước đo định tuyến ETX không giải quyết được vấn đề cân bằng năng lượng giữa các nút mạng. Bởi vậy, kỹ thuật CTP dễ bị mất cân bằng năng lượng. Các nút mạng thuộc tuyến đường tối ưu phải thực hiện nhiều việc truyền dẫn hơn các nút khác. Chúng sẽ hết năng lượng nhanh hơn các nút khác và tạo thành các lỗ hổng trong mạng, làm giảm hiệu năng của toàn bộ hệ thống mạng. Đây là một trong những thách thức quan trọng trong các mạng cảm biến không dây hoạt động bằng pin.
2.5. Thuật toán định tuyến AODV
Thuật toán AODV (Ad hoc On Demand Distance Vector) là thuật toán định tuyến theo yêu cầu [2]. Đây là thuật toán quan trọng trong tầng mạng của chuẩn Zigbee. Thuật toán AODV được sử dụng trong cấu trúc mắt lưới của mạng cảm biến để thực hiện việc tìm đường – định tuyến dữ liệu. Các quá trình định tuyến của AODV như sau:
Tìm đường
Quá trình phát hiện đường được khởi tạo khi một nút nguồn cần kết nối tới một nút khác mà nó chưa có thông tin định tuyến tới nút đó trong bảng định tuyến. Mỗi nút luôn chứa thông tin riêng biệt như thứ tự nút, định danh quảng bá,… Nút nguồn sẽ khởi tạo việc tìm đường bằng cánh quảng bá gói tin yêu cầu định tuyến tới các hàng xóm của mình. Gói tin yêu cầu định tuyến – RREQ đó bao gồm các thông tin như địa chỉ nguồn, địa chỉ đích,… Các thông tin này là duy nhất và tạo thành khóa cho bản tin RREQ nhằm phân biệt gói tin này với gói tin khác. Thông tin về broadcast_id sẽ được tăng khi nút nguồn yêu cầu thêm một bản tin RREQ mới. Mỗi nút lân cận xử lý gói tin RREQ bằng cách gửi lại một gói tin RREP tới nút nguồn hoặc quảng bá tiếp gói tin RREQ tới lân cận của nó sau khi đã tăng chỉ số hop_cnt trong gói tin.
Cần lưu ý rằng một nút trong mạng có thể nhận dược nhiều gói tin quảng bá yêu cầu định tuyến giống nhau từ những lân cận khác nhau của nó. Nếu một nút trung gian nhận được một gói tin RREQ, nếu gói tin đó nó đã nhận được bằng cách so sánh trường địa chỉ nguồn và broadcast_id, nó sẽ loại bỏ gói tin dư thừa đó và sẽ không quảng bá tiếp gói tin đó.
Nếu nút lân cận đó không thể đáp ứng gói tin RREQ, nó sẽ theo dõi thông tin của gói tin đó bằng cách lần ngược lại đường đi của gói tin, các
thông tin sau được lưu ở trong RREP đó là địa chỉ đích, địa chỉ nguồn, định danh quảng bá, thời gian cho phép của gói tin, số thứ tự của nút nguồn.
Hình 2.10: Mô tả quá trình tìm đường trong AODV
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.