無(wú)線(xiàn)傳感器網(wǎng)絡(luò )高效的MAC協(xié)議研究
作為一個(gè)異步MAC協(xié)議,RI-MAC去除了節點(diǎn)間的同步。這在避免節點(diǎn)同步開(kāi)銷(xiāo)的同時(shí),也使得發(fā)送節點(diǎn)無(wú)法知道接收端什么時(shí)候醒來(lái)。從而發(fā)送節點(diǎn)必須一直監聽(tīng),直至數據成功傳輸。在圖2的例子中,S1長(cháng)時(shí)間監聽(tīng)信道而得不到發(fā)送的機會(huì )。此外,接收端在接收完一幀數據后,使用beacon消息作為響應,發(fā)送端有數據可繼續向其發(fā)送。這種策略使得接收端一旦開(kāi)始接收數據后,將一直占用信道,直到發(fā)送結束。
基于以上分析,本文考慮對RI-MAC協(xié)議進(jìn)行改進(jìn)。
2 IL-MAC協(xié)議設計要點(diǎn)
IL-MAC主要在以下幾個(gè)方面對RI-MAC進(jìn)行改進(jìn):
2.1 自適應前導技術(shù)
自適應前導技術(shù)在網(wǎng)絡(luò )負載較輕時(shí),發(fā)送端不使用前導:在數據積累較多時(shí),發(fā)送端發(fā)送前導,主動(dòng)請求數據傳輸,以期盡快進(jìn)行數據傳輸。為此,每個(gè)發(fā)送端設定一個(gè)隊列長(cháng)度門(mén)限Qmax。發(fā)送端有數據要發(fā)送時(shí)檢查隊列長(cháng)度,小于等于Qmax則采用無(wú)前導方式,監聽(tīng)信道等待接收端醒來(lái);若大于Omax,發(fā)送前導主動(dòng)要求與接收端建立連接。
在圖3中,S的隊列長(cháng)度小于等于Qmax,S監聽(tīng)信道等待R醒來(lái);R醒來(lái)后發(fā)送hello消息;S聽(tīng)到后向R發(fā)送數據;R發(fā)送hello消息告知傳輸完畢。在圖4中,S的隊列長(cháng)度大于Qmax,S主動(dòng)發(fā)送一系列包含接收節點(diǎn)(R)地址的前導消息(preamble);R醒來(lái)后聽(tīng)到前導消息,在前導發(fā)送的間隔回復hello消息;S發(fā)送數據;R接收完畢后發(fā)送hello消息,告知接收完畢。本文引用地址:http://dyxdggzs.com/article/162172.htm
進(jìn)一步地,算法還可以在每個(gè)數據包中加入產(chǎn)生時(shí)間或優(yōu)先級等信息,節點(diǎn)可以根據數據包的緊急程度選擇采用何種發(fā)送方式。
2.2 局部同步
RI-MAC的發(fā)送端并不主動(dòng)尋求與接收端同步,而是靜靜地監聽(tīng)信道。IL-MAC通過(guò)引入局部同步來(lái)改善這一點(diǎn)。節點(diǎn)在廣播的hello消息中均包含該節點(diǎn)的休眠調度信息,這樣鄰居節點(diǎn)可以建立起一個(gè)休眠調度表。發(fā)送端有數據要發(fā)送時(shí),先檢查鄰居休眠調度表;若表中有接收節點(diǎn)的休眠調度信息,可休眠并在接收端醒來(lái)前的某個(gè)時(shí)刻醒來(lái);如沒(méi)有接收節點(diǎn)的調度信息,堅持監聽(tīng)信道。
評論