Nhu cầu duy trì năng lượng là vấn đề quan trọng nhất trong thiết kế giao thức MAC cho mạng WSNs. Nhiều nhân tố gây ra lãng phí năng lượng, như overhead quá dài, lắng nghe trong trạng thái nghỉ, đụng độ các gói, và nghe lén (overhearing).Điều tiết truy cập đòi hỏi trao đổi thông tin điều khiển và đồng bộ giữa các node tranh chấp. Sự trao đổi lượng lớn thông tin này cũng làm tăng công suất tiêu thụ. Chu kỳ lắng nghe dài làm tăng tiêu thụ năng lượng và giảm lưu lượng qua mạng. Việc phát lại các gói bị đụng độ tiêu tốn lượng lớn năng lượng của node.Số đụng độ xảy ra nhiều làm giảm chất lượng của giao thức MAC. Tương tự, việc nghe gói mà địa chỉ đến không phải là của node (gọi là nghe lén) cũng làm tiêu tốn năng lượng không cần thiết.
Đối tượng chính của giao thức MAC là giảm năng lượng hao phí do đụng độ, lắng nghe, nghe lén, và overhead quá dài. Các giao thức này được phân ra làm 2 nhóm: giao thức mớp MAC dựa trên cở sở có kế hoạch (schedule-based)và dựa trên tranh chấp (contention-based).
Schedule-based là lớp giao thức MAC truy cập kênh truyền dựa trên lịch trình sắp xếp sẵn. Kênh truyền được giới hạn cho một node tại một thời điểm bằng cách phân trước tài nguyên hệ thống cho riêng node đó.
Contention-based tránh phân trước tài nguyên cho node. Thay vào đó, kênh truyền radio được chia sẻ cho tất cả các node và theo nhu cầu. Nhưng nhiều node cùng có nhu cầu sử dụng kênh truyền, kết quả là đụng độ xảy ra.
Chức năng chính của giao thức lớp MAC dựa trên tranh chấp là tối thiểu hoặc tránh hoàn toàn đụng độ.
Việc giải quyết đụng độ thường đạt được bằng cách dùng giải thuật phân tán, ngẫu nhiên để sắp xếp lại truy cập kênh truyền đối với các node đang tranh chấp. Ý tưởng căn bản để giảm đi overhead là buộc các node phải vào trạng thái ngủ khi nó không hoạt động. Tuy nhiên, trạng thái ngủ của các node mà không có sự phối hợp có thể làm việc thông tin giữa các node lân cận trở nên khó khăn.
Phần tiếp theo sẽ phân tích về schedule-based protocols và contention- based protocols thông qua giao thức S-MAC và IEEE MAC-layer protocol.
Bluetooth
Bluetooth là kỹ thuật mới phát triển với giao thức điều khiển truy cập chủ yếu dựa trên TDMA. Bluetooth được thiết kế nhằm thay thế cho đường truyền qua cáp hoặc tia hồng ngoại, dùng để kết nối các thiết bị khác nhau như điện thoại di động tế bào, PDAs, camera số, máy tính, và các thiết bị ngoại vi ở khoảng cách ngắn. Bluetooth hoạt động ở dãy tần 2.45 GHz ISM. Lớp vật lý dựa trên giải thuật tần số nhảy ngẫu nhiên với bước nhảy 1.6KHz và giải thuật phân chia tần số nhảy. Một chuỗi 79 bước nhảy định nghĩa một khoảng 1 MHz. Mỗi chuỗi nhảy tạo một kênh truyền Bluetooh, tốc độ bit đến 1Mbps.
Một nhóm thiết bị chia sẻ kênh truyền được gọi là 1 piconet. Mỗi piconet có 1 master điều khiển truy cập kênh truyền, 7 thiết bị tạo một nhóm. Mỗi kênh chia thành các khe 625 ms. Mỗi piconet được chia một mẫu tần số nhảy duy nhất xác định bởi địa chỉ thiết bị master (48 bits) và clock. Các slave trong piconet hoạt động theo nhóm tần số được phân trước cho piconet đó.Các piconet khac nhau chuỗi nhảy, do đó đảm bảo sự hoạt động đồng thời
của chúng. Các piconet có thể kết nối với nhau thông qua các node cầu nối (bridge node), gọi là scatternet tạo thành mô hình mạng lớn hơn. Trong piconet mỗi thiết bị có một địa chỉ duy nhất gồm 3 bit. Truy cập kênh truyền được điều tiết bằng giao thức song công phân chia thời gian (slotted time- division duplex), master dùng giải thuật hỏi vòng để phân chia khe thời gian cho các node slave.Master lần lượt giao tiếp với các slave để trao đổi các gói tin. Slave chỉ có thể giao tiếp với master khi được phân khe thời gian cho nó. Một gói có thể chiếm 1, 2, 3 hay 5 khe thời gian và được phát theo các khe liên tiếp nhau.
Để giảm năng lượng tiêu thụ, Bluetooth phân biệt 4 chế độ hoạt động khác nhau: active, sniff, hold, và park. Ở chế độ active, slave lắng nghe thông điệp từ master. Nếu gói nhận được không chứa địa chỉ đích đến là của mình, slave sẽ ngủ cho đến hết thời gian của gói đó. Nếu đúng là gói của mình, slave sẽ xử lý payload trong khe thời gian được phân trước. Chế độ sniff hướng đến giảm chu kỳ nhiệm vụ trạng thái lắng nghe của slave (lắng nghe được xem là chế độ tích cực). Ở chế độ này master phát cho slave chỉ trong một khoảng thời gian định trước. Slave chỉ lắng nghe thông điệp từ master trong suốt khoảng thời gian này. Chế độ hold, slave đi vào trạng thái ngủ trong một khoảng thời gian định trước, gọi là thời gian nghỉ. Khi hết khoảng thời gian này, slave trở lại chế độ tích cực. Trong chế độ park, slave ở trạng thái ngủ trong khoảng thời gian không xác định trước. Master phải đánh thức slave và đưa nó trở về chế độ tích cực.
Bluetooth phân biệt bốn dạng thông tin giữa các node trong và ngoài piconet: intra piconet unicast, intra piconet broadcast, inter piconet unicast và inter piconet broadcast.
Intra piconet unicast thông tin giữa slave-slave trong một piconet. Slave nguồn viết địa chỉ MAC của nó vào gói dữ liệu, đồng thời đặt trường forward lên 1, và địa chỉ đích đến. Master nhận được và kiểm tra trường forward. Nếu trường forward có giá trị là 1, master thay trường địa chỉ MAC của nó vào gói
dữ liệu và chuyển đến slave theo như địa chỉ đích đã có.
Intra piconet broadcast thông tin giữa các slave với tất cả các slave khác trong một piconet. Slave nguồn viết địa chỉ MAC của nó và đặt trường forward lên 1, địa chỉ đích đến là 000. master nhận ra trường forward được đưa lên 1, master thay địa chỉ MAC bằng địa chỉ MAC của mình và gởi gói đến tất cả các node còn lại trong piconet.
Inter piconet unicast thông tin giữa 2 piconet với nhau. Thiết bị nguồn gởi gói dữ liệu với địa chỉ MAC của nó và đặt trường forward lên 1, trường broadcast lên 1 và địa chỉ piconet đích đến. Thiết bị nguồn đặt trường vector định tuyến (routing vector field_RVF) của gói chứa đường dẫn logic đến thiết bị đích trong piconet đích. RVF gồm địa chỉ master nguồn (LocId), địa chỉ MAC piconet tương ứng (MAC-Addr). Khi nhận được gói, master chuyển đến node tiếp theo dựa vào thông tin định tuyến cho đến khi đến slave đích.
Inter piconet broadcast thông tin giữa piconet và tất cả các node trong scatternet. Thiết bị nguồn tạo một gói gồm địa chỉ MAC, đặt trường forward và broadcast lên 1, địa chỉ đích là 000. Sau đó gói được gởi đến master. Master nhận ra trường broadcast là 1, nó gởi gói đến tất cả các slave trong piconet của mỉnh, bao gồm các node đã đi qua. Khi node trung gian nhận được gói nó chuyển cho tất cả các master kết nối với nó, trừ master đã gởi đến.