Chương 1 TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY
2.3. Thực thi một số giao thức tiết kiệm năng lượng ở lớp MAC trên hệ điều
2.3.3. Thực thi giao thức XMAC
2.3.3.1. Mục tiêu thiết kế giao thức XMAC
Mục tiêu thiết kế của giao thức X-MAC cho mạng cảm biến không dây là:
Hiệu quả năng lượng.
Đơn giản, chi phí thấp, thực hiện phân tán. Độ trễ thấp.
Thông lượng cao.
Có khả năng ứng dụng trên tất cả các loại gói tin.
Đối với nhiều ứng dụng, các kỹ thuật chu kỳ làm việc không đồng bộ thích hợp hơn so với kỹ thuật đồng bộ về mặt tiêu thụ năng lượng, độ trễ và thông lượng do chúng không phát sinh chi phí cho việc đồng bộ hóa. Ngoài ra, các kỹ thuật không đồng bộ không phải chia sẻ thông tin lập lịch và chỉ thức giấc trong khoảng thời gian đủ để lấy mẫu kênh truyền trừ khi chúng đang nhận hoặc truyền dữ liệu. Do đó, thời gian thức giấc có thể ngắn hơn đáng kể so với phương pháp đồng bộ. Với thời gian thức giấc ngắn hơn, các giao thức không đồng bộ có thể bật bộ thu phát vô tuyến thường xuyên hơn trong khi vẫn duy trì chu kỳ làm việc thấp. Điều này cũng có thể cho phép giảm độ trễ và tăng thông lượng.
Hình 2.20: XMAC sử dụng một chuỗi báo hiệu để thông báo một truyền dẫn. XMAC sử dụng một số cơ chế khác nhau để truyền unicast và broadcast một bản tin. Khi phía thu nhận được một bản tin báo hiệu thì nó trả lời lại một bản tin xác nhận ACK. Sau đó, phía gửi dừng việc gửi bản tin báo hiệu và tiến hành gửi một bản tin dữ liệu. Cơ chế này được thể hiện ở hình 2.20.
Việc truyền dẫn sẽ thất bại nếu xảy ra một trong các điều kiện sau đây: Không có bản tin xác nhận báo hiệu (strobe-ACK) nào nhận được sau
một khoảng thời gian tương đương với khoảng thời gian thức giấc. Không có bản tin xác nhận dữ liệu (data-ACK) nào nhận được sau khi
truyền dẫn khung dữ liệu.
Trong cả hai trường hợp, việc thực hiện truyền lại sẽ được thực hiện ở lớp cao hơn. Như vậy, giao thức XMAC giúp giảm thời gian lắng nghe, giảm được độ trễ và năng lượng tiêu thụ.
Trong giao thức XMAC, mỗi nút phải định kỳ thức giấc và bật bộ vô tuyến trong suốt một khoảng ngắn thời gian. Trong suốt khoảng thời gian này, nút mạng lắng nghe các gói tin đến tiềm năng. Nếu không có gói tin nào được truyền dẫn thì nút mạng sẽ chuyển sang trạng thái ngủ. Độ dài khoảng thời gian bật bộ vô tuyến thông thường chiếm 5% - 10% khoảng thời gian đánh thức. Khoảng thời gian đánh thức thông thường là 125ms. Thời gian bật bộ vô tuyến có thể được kéo dài nếu nút mạng vẫn tham gia vào việc truyền dẫn ở cuối chu kỳ.
2.3.3.2. Thực thi giao thức XMAC trong hệ điều hành Contiki
Việc thực thi giao thức XMAC trong hệ điều hành Contiki có một số đặc điểm khác biệt so với giao thức XMAC ban đầu. Một số điểm khác biệt chính có thể kể đến như sau:
Tối ưu hóa về thời gian truyền nhận: Việc thực thi giao thức XMAC trong hệ điều hành Contiki sử dụng một cơ chế tương tự như cơ chế xác định pha truyền dẫn trong giao thức ContikiMAC. Cơ chế này sẽ cho phép phía gửi tìm hiểu được thời điểm bật bộ vô tuyến của phía nhận. Điều này cho phép việc truyền dẫn có thể thực hiện được với việc chỉ cần trung bình hai bản tin thăm dò.
Truyền dẫn dữ liệu tin cậy: Việc thực thi giao thức XMAC trong Contiki sử dụng một cờ. Cờ này được thiết lập để thông báo sự cần thiết phải xác nhận cho bản tin dữ liệu. Đây là một tùy chọn đối với giao thức XMAC ban đầu. Điều này giúp việc truyền dữ liệu tin cậy hơn. Phía gửi sẽ bật bộ vô tuyến để đợi bản tin xác nhận ACK. Bản tin xác nhận ACK này có thể được gửi mà không cần bất kỳ bản tin báo hiệu nào bởi vì phía gửi luôn bật bộ vô tuyến.
Cơ chế streaming: Cơ chế này cho phép một nút mạng không cần phải gửi bản tin thăm dò trước khi truyền dẫn mỗi bản tin dữ liệu trong cùng một luồng dữ liệu.
Cơ chế tránh xung đột: Việc thực thi giao thức XMAC trong hệ điều hành Contiki không xây dựng một cơ chế tránh xung đột hiệu quả nào. Đối lập với giao thức ContikiMAC, không có một cơ chế CCA nào được thực hiện trước khi thực hiện việc truyền dẫn. Tuy nhiên, giao thức XMAC sẽ trì hoãn việc truyền dẫn gói tin đang chờ xử lý nếu như có bất kỳ sự truyền dẫn bản tin báo hiệu nào được phát hiện trong suốt khoảng thời gian bật bộ vô tuyến.