ðểñiều tiết truy cập kênh truyền cho nhiều node cảm biến ñang tranh chấp, S-MAC dùng thủ
tục dựa trên CSMA/CA, gồm cảm biến sóng mang vật lý và cảm biến sóng mang ảo kết hợp dùng nghi thức bắt tay RTS/CTS ñể giảm vấn ñề node ẩn-node hiện (ñã nêu ra ở phần giao thức chung mục 5.2.2). Cảm biến sóng mang ảo dùng vector phân phối mạng NAV (Network Allocation Vector), là một biến có giá trị là thời gian còn lại cho ñến khi kết thúc truyền gói dữ liệu hiện tại.
ðầu tiên, giá trị NAV ñược ñặt bằng giá trị trong trường thời gian của gói ñược phát. Sau ñó giá trị này giảm dần và ñến zero. Cảm biến sóng mang vật lý lắng nghe kênh truyền ñể phát hiện quá trình truyền dữ. Cảm biến sóng mang ngẫu nhiên trong cửa sổ tranh chấp ñể tránh xung ñột. Một node ñược phép phát dữ liệu nếu cả cảm biến sóng mang ảo và vật lý ñều cho thấy kênh truyền rảnh.
ðể thực thi cảm biến sóng mang ảo hiệu quả, các node cần phải lắng nghe tất cả các quá trình truyền dữ liệu từ các node xung quanh, kể cả gói dữ liệu ñó không gởi cho nó. Việc nghe lén và nhận các gói không phải gởi cho mình dẫn ñến tiêu hao năng lượng ñáng kể. ðể tránh tình trạng này, S-MAC cho phép các node chuyển sang chếñộ ngủ sau khi chúng nghe thấy các gói RTS hay CTS giữa hai node khác. Trong gói RTS/CTS có chứa thời gian qui ñịnh tối ña cho truyền gói dữ liệu cần truyền ngay sau ñó tùy theo ñộ dài gói dữ liệu. Node khởi tạo biến NAV bằng giá trị
trong trường thời gian của các gói RTS/CTS và sang chếñộ ngủ cho ñến khi giá trị NAV giảm
ñến 0. Vì thời gian gói dữ liệu thường dài hơn gói RTS/CTS nên thủ tục tránh nghe lén có thể tiết kiệm ñáng kể năng lượng tiêu tốn cho hoạt ñộng này.
Hình 5.11: Mô hình tránh ñụng ñộ trong S-MAC
Một node muốn phát một gói dữ liệu trước tiên phải cảm nhận kênh truyền. Nếu kênh truyền bận, node sang trạnh thái ngủ và thức dậy khi kênh truyền trở nên rảnh. Nếu kênh truyền rảnh, node phát ñi gói RTS và chờ nhận gói CTS từ máy thu. Khi nhận ñược gói CTS, node gởi gói dữ
liệu của nó. Quá trình truyền gói hoàn tất khi node nhận ñược gói xác nhận ñúng ACK từ phía thu. Sau ñó node sang trạng thái ngủ cho ñến khi có nhu cầu trao ñổi các gói dữ liệu kế tiếp.