亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種適用于無線傳感器網(wǎng)絡(luò)的動(dòng)態(tài)自組織分層次路由方法

文檔序號(hào):7852722閱讀:229來源:國(guó)知局
專利名稱:一種適用于無線傳感器網(wǎng)絡(luò)的動(dòng)態(tài)自組織分層次路由方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種適用于無線傳感器網(wǎng)絡(luò)的動(dòng)態(tài)自組織分層次路由方法。該方法能克服無線傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)失效對(duì)數(shù)據(jù)傳輸造成的影響,實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的動(dòng)態(tài)調(diào)整。本發(fā)明屬于無線傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域。
背景技術(shù)
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network)是一種無中心節(jié)點(diǎn)的全分布系統(tǒng)。大量傳感器節(jié)點(diǎn)被密集部署于監(jiān)控區(qū)域。這些傳感器節(jié)點(diǎn)集成有傳感器、數(shù)據(jù)處理單元和通信模塊,它們通過無線信道相連,自組織地構(gòu)成網(wǎng)絡(luò)系統(tǒng)。微型傳感器技術(shù)和節(jié)點(diǎn)間的無線通信能力為無線傳感器網(wǎng)絡(luò)賦予了廣闊的應(yīng)用前景。作為一種無處不在的感知技術(shù),無線傳感器網(wǎng)絡(luò)廣泛應(yīng)用于軍事、環(huán)境、醫(yī)療、家庭和其他商用、工業(yè)領(lǐng)域;在空間探索和反恐、救災(zāi)等特殊的領(lǐng)域,它也有著得天獨(dú)厚的技術(shù)優(yōu)勢(shì)。無線傳感器網(wǎng)絡(luò)工作在一定的物理環(huán)境中,受到無線信道間的互相干擾、無線通信鏈路時(shí)斷時(shí)續(xù)、突發(fā)事件導(dǎo)致的網(wǎng)絡(luò)任務(wù)負(fù)載變化、設(shè)備故障、地形和天氣等綜合因素的影響,傳感器節(jié)點(diǎn)間通過無線信道形成的網(wǎng)絡(luò)拓?fù)潆S時(shí)可能發(fā)生變化,而且變化的方式和速度都難以預(yù)測(cè)。這些變化往往會(huì)嚴(yán)重影響系統(tǒng)的功能,這就要求傳感器節(jié)點(diǎn)能夠隨著環(huán)境的變化而適時(shí)地調(diào)整自身的通信工作狀態(tài)。無線傳感器網(wǎng)絡(luò)所廣泛采用的樹形拓?fù)鋮f(xié)議在遇到節(jié)點(diǎn)移動(dòng)或失效時(shí)無法有效解決上述變化問題,直接導(dǎo)致路徑失效,數(shù)據(jù)無法傳送的情況,而且會(huì)造成部分節(jié)點(diǎn)能耗過大,影響系統(tǒng)的使用壽命等問題。對(duì)網(wǎng)絡(luò)整體而言,網(wǎng)絡(luò)監(jiān)測(cè)信息的準(zhǔn)確性、完整性和時(shí)效性都將受到很大影響。以數(shù)據(jù)為中心的無線傳感器網(wǎng)絡(luò),將能源的高效使用作為首要設(shè)計(jì)目標(biāo),專注于從外界獲取有效信息。本發(fā)明的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的動(dòng)態(tài)調(diào)整功能,能有效降低無線傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)失效對(duì)數(shù)據(jù)傳輸造成的影響。申請(qǐng)?zhí)枮?00710172037. 2,申請(qǐng)日為2007年12月6日的國(guó)內(nèi)發(fā)明專利公開了一
種用于監(jiān)控系統(tǒng)的無線自組網(wǎng)形成樹形路由方法。該路由方法可以在無線多跳網(wǎng)絡(luò)環(huán)境中為移動(dòng)節(jié)點(diǎn)通信提供快速的路由建立和動(dòng)態(tài)維護(hù)的路由協(xié)議。該專利采用集中式路由表管理及存儲(chǔ),不適用于單節(jié)點(diǎn)能力受限的傳感網(wǎng),而本發(fā)明采用分布式路由表維護(hù)機(jī)制使本路由在大規(guī)模傳感網(wǎng)上的應(yīng)用成為可能。相比該專利,本發(fā)明在父節(jié)點(diǎn)選擇時(shí),摒棄簡(jiǎn)單的路數(shù)最小優(yōu)先算法,而選用基于QoS網(wǎng)絡(luò)多指標(biāo)組合優(yōu)先算法,可以提高網(wǎng)絡(luò)通信質(zhì)量。另外,我們采用了不同于傳統(tǒng)主動(dòng)式路由方法根據(jù)設(shè)定間隔采用查詢方式更新路由表,也不同于傳統(tǒng)被動(dòng)式路由經(jīng)常需要進(jìn)行路由發(fā)現(xiàn)的方法,即只在某一傳輸鏈路中出現(xiàn)錯(cuò)誤時(shí)才重新建立路徑,而且為了盡量減小開銷,只是在出現(xiàn)數(shù)據(jù)無法傳輸?shù)沫h(huán)節(jié),才重新建立鏈路,使得數(shù)據(jù)能夠繼續(xù)得以正常的傳輸。并且上述專利只闡述路由建立的算法,并未闡述數(shù)據(jù)在路由傳輸時(shí)的解決方案。
申請(qǐng)?zhí)枮?01010265626. 7,申請(qǐng)日為2010年8月27日的國(guó)內(nèi)發(fā)明專利申請(qǐng)公開了一種適用于無線傳感網(wǎng)路的多路徑路由協(xié)議。該路由協(xié)議是采用基于樹狀的多路徑路由協(xié)議緩解傳感器網(wǎng)絡(luò)協(xié)議時(shí)延大、網(wǎng)絡(luò)可靠性差等問題,采用網(wǎng)狀樹形拓?fù)浣Y(jié)構(gòu),提高了網(wǎng)絡(luò)的魯棒性。該方法所描述的過程通過備用多路徑來修復(fù)路由表,不適用于單節(jié)點(diǎn)能力受限的傳感網(wǎng),本發(fā)明選用基于QoS網(wǎng)絡(luò)多指標(biāo)組合優(yōu)先算法,可進(jìn)一步提高網(wǎng)絡(luò)通信質(zhì)量。申請(qǐng)?zhí)枮?01110033643. 2,申請(qǐng)日為2011年I月31日的國(guó)內(nèi)發(fā)明專利申請(qǐng)公開了一種基于樹形無線傳感器網(wǎng)絡(luò)的路由方法和裝置及傳感器設(shè)備。該路由方法是預(yù)先根據(jù)各個(gè)傳感器節(jié)點(diǎn)在樹形網(wǎng)絡(luò)中所處的層次以及層內(nèi)位置,為傳感器節(jié)點(diǎn)分配短地址,以此提高傳感器節(jié)點(diǎn)進(jìn)行報(bào)文轉(zhuǎn)發(fā)過程中的路由傳輸效率。不同于本發(fā)明,該方法所描述的過程需要通過預(yù)設(shè)的樹形路由表進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),并未涉及路由表的修復(fù)功能。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是,在無線傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)移動(dòng)或失效而導(dǎo)致路徑失效數(shù)據(jù)無法傳送的情況時(shí),為網(wǎng)絡(luò)提供一套重新組織拓?fù)浣Y(jié)構(gòu)的方法,有效降低上述在無線傳感器網(wǎng)絡(luò)中常見的,使系統(tǒng)數(shù)據(jù)傳輸受到影響的問題,實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的動(dòng)態(tài)調(diào)整。 為了解決上述問題,本發(fā)明所采取的技術(shù)方案如下
本發(fā)明所建立的網(wǎng)絡(luò)是一種基于多叉樹狀的拓?fù)浣Y(jié)構(gòu)。在網(wǎng)絡(luò)建立之初,整個(gè)區(qū)域內(nèi)的所有節(jié)點(diǎn)都沒有任何鄰近節(jié)點(diǎn)的信息。此時(shí)某一個(gè)指定節(jié)點(diǎn),在傳感器網(wǎng)絡(luò)中可認(rèn)為是匯聚節(jié)點(diǎn),將發(fā)起建立網(wǎng)絡(luò)的廣播。接收到此廣播的鄰近節(jié)點(diǎn)將發(fā)出此廣播的節(jié)點(diǎn)作為潛在的父節(jié)點(diǎn),并向父節(jié)點(diǎn)發(fā)送成為其子節(jié)點(diǎn)的請(qǐng)求,在接收到父節(jié)點(diǎn)表示加入成功的反饋后,將繼續(xù)向下一層發(fā)出建網(wǎng)廣播,搜尋下一層節(jié)點(diǎn),以此類推,直到區(qū)域中的所有節(jié)點(diǎn)均被覆蓋。整個(gè)網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)i都維護(hù)一個(gè)路由表,路由表記錄著以節(jié)點(diǎn)i為根的子樹的拓?fù)浣Y(jié)構(gòu),并將樹形結(jié)構(gòu)的拓?fù)浒凑斩嗖鏄涞南刃虮闅v映射為一維線性列表,以便于在計(jì)算和存儲(chǔ)能力有限的節(jié)點(diǎn)中進(jìn)行管理和維護(hù)。每個(gè)新加入網(wǎng)絡(luò)的節(jié)點(diǎn)在收到父節(jié)點(diǎn)確認(rèn)其接入網(wǎng)絡(luò)后,將通過單播一層層向上匯報(bào)新接入節(jié)點(diǎn)的信息,收到此消息的節(jié)點(diǎn)將根據(jù)此節(jié)點(diǎn)接入點(diǎn)的位置更新以其為根的整個(gè)樹形子網(wǎng)。從而建立層次路由表。在實(shí)際的網(wǎng)絡(luò)中,存在節(jié)點(diǎn)間通訊距離不對(duì)等和外界干擾等因素,可能導(dǎo)致網(wǎng)絡(luò)中出現(xiàn)一些問題,比如,父節(jié)點(diǎn)能夠收到新的子節(jié)點(diǎn)的接入網(wǎng)絡(luò)申請(qǐng),但子節(jié)點(diǎn)無法收到父節(jié)點(diǎn)發(fā)出的接入成功信號(hào)。在這種情況下,為了保證數(shù)據(jù)的雙向有效傳輸,子節(jié)點(diǎn)將通過接受其他節(jié)點(diǎn)的廣播或是主動(dòng)發(fā)出尋求接入網(wǎng)絡(luò)的信息來與其他的節(jié)點(diǎn)建立父子關(guān)系。這種情況下,會(huì)產(chǎn)生兩種可能,如子節(jié)點(diǎn)向父節(jié)點(diǎn)發(fā)送申請(qǐng)卻沒有收到接收確認(rèn)ACK,轉(zhuǎn)而向其他的節(jié)點(diǎn)發(fā)送請(qǐng)求接入網(wǎng)絡(luò)的申請(qǐng),而事實(shí)上父節(jié)點(diǎn)接收到了申請(qǐng)請(qǐng)求;再如子節(jié)點(diǎn)向父節(jié)點(diǎn)遞交接入網(wǎng)絡(luò)申請(qǐng)后,父節(jié)點(diǎn)回饋確認(rèn)信息Response并認(rèn)為子節(jié)點(diǎn)已經(jīng)收到,而實(shí)際上子節(jié)點(diǎn)并未接收到確認(rèn)消息Response,而認(rèn)為申請(qǐng)不成功,轉(zhuǎn)而尋求其他接入點(diǎn)。在以上兩種情況中,父節(jié)點(diǎn)都會(huì)將此子節(jié)點(diǎn)作為申請(qǐng)成功處理,而向上層節(jié)點(diǎn)匯報(bào)更新上層的路由表。而事實(shí)上此節(jié)點(diǎn)通過了其他節(jié)點(diǎn)來接入網(wǎng)絡(luò),這樣就造成了上層節(jié)點(diǎn)的路由表中出現(xiàn)節(jié)點(diǎn)編號(hào)重復(fù)的問題,而導(dǎo)致無法正確的選擇合適的路徑來傳遞數(shù)據(jù)。我們通過在節(jié)點(diǎn)的接入申請(qǐng)中插入序號(hào)來對(duì)路由表進(jìn)行有效的更新。每個(gè)節(jié)點(diǎn)只要發(fā)出一次接入的申請(qǐng),其內(nèi)部的序號(hào)就會(huì)累加。當(dāng)接上層節(jié)點(diǎn)接收到更新路由表的信息后,將判斷需要更新的節(jié)點(diǎn)的序號(hào)是否比原路由表中的更新。如果是新的路徑則刪除原路由表中以該節(jié)點(diǎn)為首的子樹,按照更新的信息來刷新路由表。同時(shí),本發(fā)明建立拓?fù)浣Y(jié)構(gòu)動(dòng)態(tài)組織機(jī)制解決,在實(shí)際的無線網(wǎng)絡(luò)運(yùn)行過程中,因?yàn)楦鞣N原因?qū)е聰?shù)據(jù)傳輸失敗的問題,比如下一跳的節(jié)點(diǎn)移動(dòng)后超出傳輸范圍,節(jié)點(diǎn)異常而導(dǎo)致重啟或是因?yàn)槟芰亢谋M而導(dǎo)致失效。為了保證數(shù)據(jù)的可靠傳輸,拓?fù)浣Y(jié)構(gòu)需要重新組織。為了兼顧能量和計(jì)算開銷以及數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,本發(fā)明采用不同于傳統(tǒng)主動(dòng)式路由方法根據(jù)設(shè)定間隔采用查詢方式更新路由表,也不同于傳統(tǒng)被動(dòng)式路由經(jīng)常需要進(jìn)行路由發(fā)現(xiàn)的方法,本發(fā)明只在某一傳輸鏈路中出現(xiàn)錯(cuò)誤時(shí)才重新建立路徑,而且為了盡量減小開銷,只是在出現(xiàn)數(shù)據(jù)無法傳輸?shù)沫h(huán)節(jié),才重新建立鏈路,使得數(shù)據(jù)能夠繼續(xù)得以正常的傳輸。當(dāng)數(shù)據(jù)無法傳輸時(shí),拓?fù)渲亟M分為兩種情況,一種是上行傳輸,一種是下行傳輸。上行數(shù)據(jù)傳輸?shù)那闆r包括采集的數(shù)據(jù)向匯聚節(jié)點(diǎn)(一般認(rèn)為為整棵樹的根節(jié)點(diǎn))傳輸,以及在網(wǎng)絡(luò)中兩點(diǎn)間傳遞數(shù)據(jù)時(shí),目的節(jié)點(diǎn)不在以此節(jié)點(diǎn)為根的子樹中,而將信息發(fā) 送給其父節(jié)點(diǎn)等。在上行數(shù)據(jù)傳輸中,出現(xiàn)的傳輸失敗有兩種。第一種是下一跳節(jié)點(diǎn)(也就是父節(jié)點(diǎn))移出傳輸范圍或是失效,從而導(dǎo)致數(shù)據(jù)無法傳輸。此時(shí),如果傳輸失敗次數(shù)超過了設(shè)定的閾值,則通過廣播尋找新的父節(jié)點(diǎn),重新接入網(wǎng)絡(luò)。第二種是下一跳節(jié)點(diǎn)由于重啟或其他原因丟失了路由信息,而無法進(jìn)行數(shù)據(jù)傳遞。在接收到數(shù)據(jù)需要進(jìn)行轉(zhuǎn)發(fā)時(shí)則會(huì)向上一跳節(jié)點(diǎn)反饋Error信息。此時(shí),接收到Error信息的上一跳節(jié)點(diǎn)也將會(huì)通過廣播找尋新的父節(jié)點(diǎn)。如果上行傳輸線路中的各個(gè)節(jié)點(diǎn)都未在其維護(hù)的路由表中發(fā)現(xiàn)到達(dá)目的節(jié)點(diǎn)的路徑,則最終轉(zhuǎn)發(fā)的數(shù)據(jù)包將會(huì)抵達(dá)匯聚節(jié)點(diǎn),并產(chǎn)生異常信息。下行數(shù)據(jù)傳輸?shù)那闆r包括匯聚節(jié)點(diǎn)向網(wǎng)絡(luò)中的其他節(jié)點(diǎn)發(fā)送控制信息,以及在網(wǎng)絡(luò)中兩點(diǎn)間傳輸數(shù)據(jù)時(shí),目的節(jié)點(diǎn)位于以此節(jié)點(diǎn)為根的子樹中,信息將發(fā)送給對(duì)應(yīng)的子節(jié)點(diǎn)。在下行數(shù)據(jù)傳輸中同樣會(huì)出現(xiàn)兩種傳輸失敗的情況。第一種是數(shù)據(jù)無法讓下一跳節(jié)點(diǎn)(此節(jié)點(diǎn)的某一子節(jié)點(diǎn))接收。此時(shí),只要傳輸失敗的次數(shù)超過設(shè)定的閾值,則此節(jié)點(diǎn)將發(fā)起廣播進(jìn)行尋找,只要儲(chǔ)存有到達(dá)目的節(jié)點(diǎn)路徑的節(jié)點(diǎn)將進(jìn)行回應(yīng),此節(jié)點(diǎn)將選擇層次相距最近的節(jié)點(diǎn)作為子節(jié)點(diǎn),從而修復(fù)起已經(jīng)失效的路徑。如果下一跳節(jié)點(diǎn)就是目的節(jié)點(diǎn),而此時(shí)目的節(jié)點(diǎn)丟失,無法傳輸數(shù)據(jù),則將異常信息發(fā)回匯聚節(jié)點(diǎn)。第二種同樣是下一跳節(jié)點(diǎn)(非目的節(jié)點(diǎn))出現(xiàn)異常而丟失了路徑信息。則此時(shí)將反饋Error信息,則此節(jié)點(diǎn)接收到Error信息以后將通過廣播來尋找下一跳節(jié)點(diǎn),修復(fù)下行路徑。新節(jié)點(diǎn)接入網(wǎng)絡(luò)。在一個(gè)動(dòng)態(tài)組織的網(wǎng)絡(luò)中,不僅出現(xiàn)原本網(wǎng)絡(luò)中的節(jié)點(diǎn)失效退出的情況也會(huì)有新節(jié)點(diǎn)補(bǔ)充進(jìn)來的情況。對(duì)于一個(gè)欲向匯聚節(jié)點(diǎn)發(fā)送傳感數(shù)據(jù)而又尚未加入網(wǎng)絡(luò),不存在任何路由信息的節(jié)點(diǎn)。首先,該節(jié)點(diǎn)將通過廣播來搜尋鄰近節(jié)點(diǎn)作為網(wǎng)絡(luò)的接入點(diǎn)。在得到鄰近節(jié)點(diǎn)的回復(fù)后,選擇某一節(jié)點(diǎn)作為接入點(diǎn),并建立父子關(guān)系。有新子節(jié)點(diǎn)接入的父節(jié)點(diǎn)將向上層匯報(bào)新的子節(jié)點(diǎn)的信息并且依次向上更新。本發(fā)明利用無線傳感器網(wǎng)絡(luò)的動(dòng)態(tài)自組織分層次路由方法,能達(dá)到的有益效果如下
本路由方法主要針對(duì)目前無線傳感器網(wǎng)絡(luò)的路由協(xié)議所廣泛采用的樹形拓?fù)渲谐霈F(xiàn)的,節(jié)點(diǎn)移動(dòng)或失效而導(dǎo)致路徑失效數(shù)據(jù)無法傳送的情況提供了一套重新組織拓?fù)浣Y(jié)構(gòu)的方法。此路由方法不僅保證了數(shù)據(jù)能夠更加可靠地從傳感器節(jié)點(diǎn)發(fā)回匯聚節(jié)點(diǎn),還實(shí)現(xiàn)了類似無線自組織網(wǎng)絡(luò)(Ad-Hoc Networks)中任意節(jié)點(diǎn)間的相互通訊,而不需要都經(jīng)過匯聚節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā),從而緩解了匯聚節(jié)點(diǎn)附近的能量熱點(diǎn)消耗過快的問題。同時(shí),由于對(duì)網(wǎng)絡(luò)中路由表的有效維護(hù),使得此路由方法能夠充分發(fā)揮主動(dòng)路由協(xié)議(Proactive ProtocoI)傳輸延遲短,突發(fā)數(shù)據(jù)傳輸率高的優(yōu)勢(shì),并能夠通過對(duì)拓?fù)浣Y(jié)構(gòu)進(jìn)行動(dòng)態(tài)組織在一定程度上發(fā)揮被動(dòng)路由協(xié)議(Reactive ProtocoI)動(dòng)態(tài)性強(qiáng),不易受路由節(jié)點(diǎn)失效影響的優(yōu)勢(shì)。


下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說明。圖I為建網(wǎng)廣播示意圖; 圖2為建網(wǎng)時(shí)節(jié)點(diǎn)接入網(wǎng)絡(luò)示意 圖3為節(jié)點(diǎn)成功接入網(wǎng)絡(luò)示意 圖4為子樹內(nèi)成員間的相互通信示意 圖5為路由選擇混亂不意 圖6為路由表維護(hù)意 圖7為上行傳輸失敗之情況一示意 圖8為上行傳輸失敗之情況二示意 圖9為下行傳輸失敗之情況一示意 圖10為下行傳輸失敗之情況二示意 圖11為新節(jié)點(diǎn)接入網(wǎng)絡(luò)時(shí)路由表的更新示意圖。
具體實(shí)施例方式以下結(jié)合附圖,利用具體實(shí)施的例子做進(jìn)一步說明。建立分層次的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)并建立起路由表的具體流程如下
步驟I:首先由設(shè)定的根節(jié)點(diǎn)Node I (通常認(rèn)為是匯聚節(jié)點(diǎn))發(fā)起建網(wǎng)廣播BroadForNet,見圖I。廣播包中主要包括根節(jié)點(diǎn)的ID,以及層數(shù)level。步驟2 :接收到BroadForNet消息的并且尚未加入網(wǎng)絡(luò)的節(jié)點(diǎn)將把發(fā)送此信息的節(jié)點(diǎn)ID作為潛在的父節(jié)點(diǎn),并向其發(fā)送JoinIn消息,請(qǐng)求成為其子節(jié)點(diǎn)以加入網(wǎng)絡(luò)。若此方法應(yīng)用于無線傳感器網(wǎng)絡(luò),考慮到傳感器節(jié)點(diǎn)受能量制約,處理能力相當(dāng)有限,在較短的一段時(shí)隙中處理多個(gè)子節(jié)點(diǎn)的加入申請(qǐng)比較困難,尤其是在節(jié)點(diǎn)密度較大的情況下。在此,每個(gè)節(jié)點(diǎn)在接收到BroadForNet后將在設(shè)定的一段時(shí)間范圍內(nèi)隨機(jī)延時(shí)一段時(shí)間,再發(fā)送JoinIn請(qǐng)求,以避免多個(gè)節(jié)點(diǎn)密集接入的情況。步驟3 :接收到子節(jié)點(diǎn)申請(qǐng)JoinIn消息的父節(jié)點(diǎn)將發(fā)回ReJoinIn的反饋消息,告知提出申請(qǐng)的子節(jié)點(diǎn)申請(qǐng)是否成功。在此可以加入一些判斷,比如是否已經(jīng)超過父節(jié)點(diǎn)能夠支持的子節(jié)點(diǎn)的數(shù)目,為保證QoS,建議此子節(jié)點(diǎn)接入其他的父節(jié)點(diǎn);或是接收到的Iqi質(zhì)量太差,低于某一閾值等,這些都可以作為是否建立鏈路的選擇條件。通過這種父子節(jié)點(diǎn)雙方之間的信息發(fā)送可以避免實(shí)際情況下的雙方通訊距離不對(duì)等的情況,保證了只要父子關(guān)系能夠建立,雙方就能相互收發(fā)信息。如果子節(jié)點(diǎn)申請(qǐng)成功,則此父節(jié)點(diǎn)將向上層節(jié)點(diǎn)發(fā)送NodeReport的節(jié)點(diǎn)匯報(bào)消息,接收到此信息的上層節(jié)點(diǎn)將根據(jù)NodeReport消息中所包含的新加入節(jié)點(diǎn)的ID,對(duì)應(yīng)的層數(shù)level,以及其父節(jié)點(diǎn)的ID (parentID)來更新自身所維護(hù)的路由子表,直到最上層的根節(jié)點(diǎn)完成路由表的更新。如圖2中所示,節(jié)點(diǎn)5就接收到了節(jié)點(diǎn)3發(fā)回的申 請(qǐng)成功的消息,接入了網(wǎng)絡(luò)。節(jié)點(diǎn)3在發(fā)送ReJoinIn消息后,將更新自身的路由表,并向其父節(jié)點(diǎn)(節(jié)點(diǎn)I)發(fā)送NodeReport消息。隨后節(jié)點(diǎn)I根據(jù)此消息在路由表中的節(jié)點(diǎn)3那條后面插入了新接入的節(jié)點(diǎn)5的信息。步驟4 :子節(jié)點(diǎn)發(fā)出JoinIn消息后便進(jìn)入等待父節(jié)點(diǎn)回應(yīng)的階段。如果接收到父節(jié)點(diǎn)的申請(qǐng)成功的反饋信息,同時(shí)說明了連接是雙向可靠的,并且加入成功,那么節(jié)點(diǎn)將此潛在父節(jié)點(diǎn)作為上行路徑中的父節(jié)點(diǎn)并將轉(zhuǎn)發(fā)BroadForNet廣播以搜索附近的其他節(jié)點(diǎn)。如果接收不到潛在父節(jié)點(diǎn)的反饋(或是收到了加入失敗的信息),則節(jié)點(diǎn)返回步驟2,繼續(xù)進(jìn)入等待接入網(wǎng)絡(luò)的狀態(tài)。從圖2中可以看到節(jié)點(diǎn)6發(fā)送的JoinIn消息無法讓節(jié)點(diǎn)3收至IJ,因此節(jié)點(diǎn)6將回到等待接入的狀態(tài),并在接收到節(jié)點(diǎn)4的BroadForNet廣播后成功地接入了網(wǎng)絡(luò),見圖3。從圖4中可以看到,每個(gè)節(jié)點(diǎn)中記錄了以其為根節(jié)點(diǎn)的子樹的所有成員和拓?fù)湫畔?,可以?shí)現(xiàn)子樹內(nèi)所有成員間的相互通信。下層節(jié)點(diǎn)維護(hù)的路由表是上層節(jié)點(diǎn)維護(hù)的表的子集。例如,節(jié)點(diǎn)5要實(shí)現(xiàn)與節(jié)點(diǎn)7之間的通訊,則節(jié)點(diǎn)5首先將搜索自身所維護(hù)的路由子樹,并未發(fā)現(xiàn)節(jié)點(diǎn)7,則向其父節(jié)點(diǎn)發(fā)送包含有目的節(jié)點(diǎn)ID的數(shù)據(jù)包,此時(shí)即進(jìn)行上行傳輸,直到到達(dá)節(jié)點(diǎn)1,目的節(jié)點(diǎn)7出現(xiàn)在了節(jié)點(diǎn)I維護(hù)的路由樹中,則開始進(jìn)行下行傳輸,向距離下一 level中的子樹中包含目的節(jié)點(diǎn)的節(jié)點(diǎn)4轉(zhuǎn)發(fā)數(shù)據(jù),最終數(shù)據(jù)包通過節(jié)點(diǎn)4發(fā)送到目的節(jié)點(diǎn)7。節(jié)點(diǎn)重新接入的情況下路由表的維護(hù)
在實(shí)際建網(wǎng)過程中,可能出現(xiàn)圖5所示情況,即由于一些不確定因素,如外部環(huán)境或是有多個(gè)節(jié)點(diǎn)同時(shí)在發(fā)送數(shù)據(jù),導(dǎo)致數(shù)據(jù)包碰撞,降低了傳輸范圍等的影響,導(dǎo)致節(jié)點(diǎn)3收到了節(jié)點(diǎn)6加入網(wǎng)絡(luò)的消息,而節(jié)點(diǎn)6卻無法收到節(jié)點(diǎn)3的返回消息Rejoinln。此時(shí)節(jié)點(diǎn)6將繼續(xù)等待其他節(jié)點(diǎn)的廣播以接入網(wǎng)絡(luò),而節(jié)點(diǎn)3卻認(rèn)為節(jié)點(diǎn)6已經(jīng)收到并成功加入了網(wǎng)絡(luò),這說明TinyOs中提供的Ack并不可靠。隨后節(jié)點(diǎn)3將向上層網(wǎng)絡(luò)發(fā)送NodeReport消息匯報(bào)新節(jié)點(diǎn)的加入情況。而事實(shí)上,當(dāng)節(jié)點(diǎn)4發(fā)出BroadForNet廣播后,正在等待中的節(jié)點(diǎn)6又成功地通過節(jié)點(diǎn)4接入了網(wǎng)絡(luò),并且節(jié)點(diǎn)4向上層節(jié)點(diǎn)匯報(bào)子節(jié)點(diǎn)的情況。此時(shí)節(jié)點(diǎn)I中將出現(xiàn)重復(fù)的節(jié)點(diǎn)6,這樣會(huì)導(dǎo)致路由選擇時(shí)出現(xiàn)混亂。通過引入Seq機(jī)制可以很好地避免實(shí)際情況中這種問題的發(fā)生。如圖6所示,節(jié)點(diǎn)6在嘗試將節(jié)點(diǎn)3作為其父節(jié)點(diǎn)失敗后,內(nèi)部的Seq將增加,并在與節(jié)點(diǎn)4建立父子關(guān)系時(shí)匯報(bào)了其Seq,并且節(jié)點(diǎn)4將新加入的節(jié)點(diǎn)6的Seq也同時(shí)匯報(bào)。這樣在節(jié)點(diǎn)I的路由表中出現(xiàn)了重復(fù)節(jié)點(diǎn)ID的情況時(shí),節(jié)點(diǎn)將根據(jù)Seq的大小來更新路由表,在表中刪除以原來的節(jié)點(diǎn)6為根節(jié)點(diǎn)的整棵路由子樹,在新的位置插入節(jié)點(diǎn)6。此例中只有節(jié)點(diǎn)6 —條記錄需要?jiǎng)h除。接著向舊節(jié)點(diǎn)6上行路徑上的所有上層節(jié)點(diǎn)(此例中只有節(jié)點(diǎn)3)發(fā)出NodeDelete的消息(為了避免多個(gè)上層節(jié)點(diǎn)重復(fù)發(fā)送NodeDelete消息,只有子樹中同時(shí)包括重復(fù)節(jié)點(diǎn)6的節(jié)點(diǎn)中的最下層的那個(gè)節(jié)點(diǎn)才向下發(fā)送此消息。在本例中即為節(jié)點(diǎn)I。若節(jié)點(diǎn)I上層還有其他節(jié)點(diǎn),雖然這些節(jié)點(diǎn)中也將同時(shí)包含重復(fù)的節(jié)點(diǎn)6,但它們將只更新自身的路由表,而不會(huì)向下發(fā)送NodeDelete消息。NodeDelete消息將一直向下發(fā)送,每個(gè)接收到此消息的節(jié)點(diǎn)刪除對(duì)應(yīng)的節(jié)點(diǎn)的路由記錄,并向下轉(zhuǎn)發(fā)直至送達(dá)節(jié)點(diǎn)6的父節(jié)點(diǎn)),更新刪除其路由表中節(jié)點(diǎn)6的記錄。因?yàn)榫W(wǎng)絡(luò)中的傳輸延遲和人為延時(shí)以避免消息碰撞等情況,上層節(jié)點(diǎn)按照接收到NodeR印ort的時(shí)間先后順序來判斷路徑的新舊程度并不可靠,即節(jié)點(diǎn)6通過節(jié)點(diǎn)3向節(jié)點(diǎn)I發(fā)送的NodeReport消息可能比通過節(jié)點(diǎn)4向節(jié)點(diǎn)I發(fā)送的NodeReport消息達(dá)到時(shí)間更遲,因此,引入Seq機(jī)制保證了在節(jié)點(diǎn)重新接入的情況下路由表的有效維護(hù)。傳輸失敗的情況下拓?fù)浣Y(jié)構(gòu)的動(dòng)態(tài)組織以及路由表的更新
上行傳輸
如圖7 (a)所示,節(jié)點(diǎn)8要傳輸數(shù)據(jù)到節(jié)點(diǎn)1,在數(shù)據(jù)的上行傳輸中出現(xiàn)了傳輸失敗的情況(重傳次數(shù)超過設(shè)定閾值),則節(jié)點(diǎn)6認(rèn)為節(jié)點(diǎn)4可能已經(jīng)超出了傳輸范圍或是已經(jīng)失效。此時(shí)節(jié)點(diǎn)6將發(fā)起B(yǎng)roadForParent的廣播,查找新的接入點(diǎn)。從圖中可以看到此廣播范圍覆蓋了 3,4,5,7,8五個(gè)節(jié)點(diǎn),其中節(jié)點(diǎn)4可能已經(jīng)失效而無法通訊,不做考慮。BroadForParent廣播包中將帶有節(jié)點(diǎn)的ID,其父節(jié)點(diǎn)的ID以及節(jié)點(diǎn)的Level等信息。節(jié) 點(diǎn)7由于發(fā)現(xiàn)節(jié)點(diǎn)6與其有共同的圖節(jié)點(diǎn),因此不發(fā)出ReBroadForPa的回應(yīng)。而節(jié)點(diǎn)8發(fā)現(xiàn)節(jié)點(diǎn)6為其父節(jié)點(diǎn),因此也不作出回應(yīng)。可以看到節(jié)點(diǎn)4之外的另一顆子樹上的節(jié)點(diǎn)滿足要求,并作出了反饋。對(duì)于節(jié)點(diǎn)6來說,它將在一段時(shí)隙內(nèi)接收來自各節(jié)點(diǎn)的反饋,優(yōu)先選擇Level數(shù)較小的節(jié)點(diǎn),以減小到達(dá)匯聚節(jié)點(diǎn)的跳數(shù)。同時(shí)節(jié)點(diǎn)6還將判斷此申請(qǐng)接入節(jié)點(diǎn)是否處于自己的子樹中,以免出現(xiàn)數(shù)據(jù)循環(huán)發(fā)送的錯(cuò)誤。在此例中可以看到節(jié)點(diǎn)6收到了節(jié)點(diǎn)3和節(jié)點(diǎn)5的反饋,并率先嘗試從節(jié)點(diǎn)3處重新接入網(wǎng)絡(luò),但是節(jié)點(diǎn)3無法收到其發(fā)出的申請(qǐng)消息。接著節(jié)點(diǎn)6再嘗試接入節(jié)點(diǎn)5,并申請(qǐng)成功。此時(shí)對(duì)于節(jié)點(diǎn)5來說,它需要判斷自身是否還有足夠的存儲(chǔ)空間來容納節(jié)點(diǎn)6的子樹,如果條件允許,則反饋申請(qǐng)成功的消息,并向上層發(fā)送NodeReport的消息更新上層節(jié)點(diǎn)的路由表,加入到節(jié)點(diǎn)6的路徑。而與此同時(shí),節(jié)點(diǎn)6將向一起為根的子樹內(nèi)發(fā)送NodeUpdate的消息,以更新節(jié)點(diǎn)8的Level信息。可以看到此時(shí)節(jié)點(diǎn)8的Level從原來的Level 3變?yōu)榱?Level 4。此外,節(jié)點(diǎn)6還將向其父節(jié)點(diǎn)(節(jié)點(diǎn)5)發(fā)送NodeReport的消息,以告之其維護(hù)的子樹的拓?fù)湫畔?,并通過節(jié)點(diǎn)5向更上層節(jié)點(diǎn)依次更新。當(dāng)節(jié)點(diǎn)I收到節(jié)點(diǎn)6重新接入的NodeReport消息后,此時(shí)將對(duì)原來路由表中的以節(jié)點(diǎn)6為首的子樹的信息進(jìn)行刪除和更新,最后通過NodeDelete消息告之節(jié)點(diǎn)6原來的父節(jié)點(diǎn)(節(jié)點(diǎn)4)刪除已經(jīng)過期的路由信息。由此,完成了上行路徑傳輸中節(jié)點(diǎn)拓?fù)渲亟M的過程。重組后的拓?fù)浣Y(jié)構(gòu)如圖7 (b)所示。如圖8 Ca)所示,若節(jié)點(diǎn)8同樣想實(shí)現(xiàn)到節(jié)點(diǎn)I的上行數(shù)據(jù)傳輸,但由于節(jié)點(diǎn)4的出現(xiàn)意外,丟失了所有的路由信息(此時(shí)節(jié)點(diǎn)4根本未加入網(wǎng)絡(luò),不知道其父節(jié)點(diǎn)和所有的子節(jié)點(diǎn)的信息),而無法傳遞數(shù)據(jù)。這時(shí)節(jié)點(diǎn)4將向發(fā)送數(shù)據(jù)過來的節(jié)點(diǎn)6返回RouteTableError的錯(cuò)誤信息。此時(shí)節(jié)點(diǎn)6將與圖7中的例子中所描述的發(fā)出BroadForParent廣播,以便重新連入網(wǎng)絡(luò)。同樣節(jié)點(diǎn)6收到了來自節(jié)點(diǎn)3和節(jié)點(diǎn)5的反饋信息,并成功接入了節(jié)點(diǎn)3(因?yàn)橄啾绕鸸?jié)點(diǎn)5 Level更小)。由于節(jié)點(diǎn)6重新接入以后Level不變,所以也不需要發(fā)送NodeUpdate的信息,對(duì)其Level信息進(jìn)行更新。重組后的拓?fù)浣Y(jié)構(gòu)如圖8 (b)所示??梢灶A(yù)見,由于節(jié)點(diǎn)4丟失了路徑信息,所以當(dāng)其剩余的子節(jié)點(diǎn),如節(jié)點(diǎn)7需要傳輸數(shù)據(jù)時(shí),將也會(huì)收到節(jié)點(diǎn)4的RouteTableError的反饋信息,從而通過其他節(jié)點(diǎn)重新接入網(wǎng)絡(luò)。下行傳輸如圖9 (a)所示,節(jié)點(diǎn)5要向節(jié)點(diǎn)8傳輸數(shù)據(jù),但在節(jié)點(diǎn)I向節(jié)點(diǎn)4的傳輸過程中出現(xiàn)了傳輸失敗。此時(shí),節(jié)點(diǎn)I認(rèn)為節(jié)點(diǎn)4已經(jīng)無法進(jìn)行通訊,并刪除以節(jié)點(diǎn)4為根的子樹,并發(fā)出BroadForChild的廣播,尋找其他可能知道到達(dá)節(jié)點(diǎn)8路徑的節(jié)點(diǎn),此例中即節(jié)點(diǎn)6(節(jié)點(diǎn)6可能會(huì)因?yàn)槲恢米儎?dòng)而進(jìn)入了節(jié)點(diǎn)I的Radio傳輸范圍內(nèi))。此時(shí),每個(gè)節(jié)點(diǎn)收到該廣播的節(jié)點(diǎn)都將搜索其維護(hù)的路由表,其路由表中包含節(jié)點(diǎn)6的信息才會(huì)發(fā)送SubtreeJoinIn的消息進(jìn)行回復(fù)。并且由于此時(shí)是下行傳播,只有Level大于節(jié)點(diǎn)I的節(jié)點(diǎn)才有可能相應(yīng),若節(jié)點(diǎn)I還存在父節(jié)點(diǎn),這個(gè)父節(jié)點(diǎn)將不會(huì)做出SubtreeJoinIn的回應(yīng)。節(jié)點(diǎn)I在接收到節(jié)點(diǎn)6的請(qǐng)求將以其為首的整棵子樹加入的消息后將發(fā)出一個(gè)ReSubJoinIn的確認(rèn)消息。節(jié)點(diǎn)6在收到這個(gè)確認(rèn)消息以后才改變其父節(jié)點(diǎn)的ID (即將節(jié)點(diǎn)I作為其父節(jié)點(diǎn))并向其發(fā)送NodeReport消息,更新上層節(jié)點(diǎn)的路由表。隨后將向其子節(jié)點(diǎn)發(fā)送NodeUpdate的消息,更新其Level信息。這樣,隨著節(jié)點(diǎn)6的重新接入,修復(fù)了原本因節(jié)點(diǎn)4出現(xiàn)問題而斷開的從節(jié)點(diǎn)5到節(jié)點(diǎn)8的數(shù)據(jù)傳遞路徑,新的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu) 如圖9 (b)所示。如果出現(xiàn)節(jié)點(diǎn)4因意外情況而丟失了路有信息的情況。節(jié)點(diǎn)4將在接收到Data傳輸請(qǐng)求后返回一個(gè)RouteTableError信息。此時(shí)節(jié)點(diǎn)I將如前面提到的情況一樣,發(fā)出BroadForChild廣播,修復(fù)下行路徑。見圖10。新節(jié)點(diǎn)接入網(wǎng)絡(luò)時(shí)路由表的更新
新節(jié)點(diǎn)加入網(wǎng)絡(luò)的情況與上行傳輸中出現(xiàn)問題后的處理機(jī)制類似。如圖11所示,新節(jié)點(diǎn)9有需要傳輸?shù)臄?shù)據(jù)觸發(fā)下需要接入網(wǎng)絡(luò)。此時(shí)節(jié)點(diǎn)9將發(fā)起B(yǎng)roadForParent的廣播以尋找附近的接入點(diǎn)。若有多個(gè)節(jié)點(diǎn)響應(yīng),則選取Level較低的節(jié)點(diǎn)進(jìn)行接入,此例中選擇了 Level為2的節(jié)點(diǎn)7,并發(fā)出JoinIn消息,請(qǐng)求接入。在收到節(jié)點(diǎn)7的ReJoinIn消息后,正式加入網(wǎng)絡(luò),并開始傳輸數(shù)據(jù)。上層節(jié)點(diǎn)在接收到NodeR印ort消息后,在其路由表中添加了新節(jié)點(diǎn)9的路由信息。
權(quán)利要求
1.一種適用于無線傳感器網(wǎng)絡(luò)的動(dòng)態(tài)自組織分層次路由方法,其特征是基于無線傳感器網(wǎng)絡(luò),采用多叉樹狀的分層次網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)進(jìn)行組網(wǎng),整個(gè)網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都維護(hù)一個(gè)路由表,用以記錄著以該節(jié)點(diǎn)為根的子樹的拓?fù)浣Y(jié)構(gòu),在節(jié)點(diǎn)的接入申請(qǐng)中通過插入序號(hào)來對(duì)路由表進(jìn)行有效的更新;只有在出現(xiàn)數(shù)據(jù)無法傳輸?shù)沫h(huán)節(jié)時(shí),才通過重新建立鏈路進(jìn)行拓?fù)渲亟M,包括在上行數(shù)據(jù)傳輸失敗時(shí),通過失敗次數(shù)閾值設(shè)定,判斷是否重新尋找父節(jié)點(diǎn),或反饋Error信息到匯聚節(jié)點(diǎn)提示異常信息;包括在下行數(shù)據(jù)傳輸失敗時(shí),通過失敗次數(shù)閾值設(shè)定,判斷是否廣播尋找,并修復(fù)失效路徑,或反饋Error信息修復(fù)下行路徑;新節(jié)點(diǎn)補(bǔ)充接入網(wǎng)絡(luò)時(shí),通過廣播來搜尋鄰近節(jié)點(diǎn),選擇父節(jié)點(diǎn)作為網(wǎng)絡(luò)的接入點(diǎn)后建立父子關(guān)系,并將更新信息向上層匯報(bào)。
2.根據(jù)權(quán)利要求I所述的一種適用于無線傳感器網(wǎng)絡(luò)的動(dòng)態(tài)自組織分層次路由方法,其特征是基于無線傳感器網(wǎng)絡(luò),采用多叉樹狀分層次網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),在網(wǎng)絡(luò)中節(jié)點(diǎn)移動(dòng)或失效而導(dǎo)致路徑失效數(shù)據(jù)無法傳送的情況時(shí),為網(wǎng)絡(luò)提供一套重新組織拓?fù)浣Y(jié)構(gòu)的方法,實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的動(dòng)態(tài)調(diào)整。
3.根據(jù)權(quán)利要求2所述的一種適用于無線傳感器網(wǎng)絡(luò)的動(dòng)態(tài)自組織分層次路由方法,其特征是在網(wǎng)絡(luò)建立之初,由某一個(gè)指定節(jié)點(diǎn)發(fā)起建立網(wǎng)絡(luò)的廣播,接收到此廣播的鄰近節(jié)點(diǎn)將發(fā)出次廣播的節(jié)點(diǎn)作為潛在的父節(jié)點(diǎn),并向父節(jié)點(diǎn)發(fā)送成為其子節(jié)點(diǎn)的請(qǐng)求,在接受到父節(jié)點(diǎn)表示加入成功的反饋后,將繼續(xù)向下層發(fā)出建網(wǎng)廣播,搜尋下一層節(jié)點(diǎn),以此類推,直到區(qū)域中的所有節(jié)點(diǎn)均被覆蓋,完成建網(wǎng)。
4.根據(jù)權(quán)利要求I所述的一種適用于無線傳感器網(wǎng)絡(luò)的動(dòng)態(tài)自組織分層次路由方法,其特征是整個(gè)網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都維護(hù)一個(gè)路由表,路由表記錄著以該節(jié)點(diǎn)為根的子樹的拓?fù)浣Y(jié)構(gòu),并將樹形結(jié)構(gòu)的拓?fù)浒凑斩嗖鏄涞南刃虮闅v映射為一維線性列表,以便于在計(jì)算和存儲(chǔ)能力有限的節(jié)點(diǎn)中進(jìn)行管理和維護(hù)。
5.根據(jù)權(quán)利要求4所述的一種適用于無線傳感器網(wǎng)絡(luò)的動(dòng)態(tài)自組織分層次路由方法,其特征是每個(gè)新加入網(wǎng)絡(luò)的節(jié)點(diǎn)在收到父節(jié)點(diǎn)確認(rèn)其接入網(wǎng)絡(luò)后,將通過單播一層層向上匯報(bào)新接入節(jié)點(diǎn)的信息,收到此消息的節(jié)點(diǎn)將根據(jù)此節(jié)點(diǎn)接入點(diǎn)的位置更新以其為根的整個(gè)樹形子網(wǎng)。
6.根據(jù)權(quán)利要求4所述的一種適用于無線傳感器網(wǎng)絡(luò)的動(dòng)態(tài)自組織分層次路由方法,其特征是在節(jié)點(diǎn)的接入申請(qǐng)中插入序號(hào)來對(duì)路由表進(jìn)行有效的更新,即利用序號(hào)來維護(hù)路由表,每個(gè)節(jié)點(diǎn)只要發(fā)出一次接入的申請(qǐng),其內(nèi)部的序號(hào)就會(huì)累加;當(dāng)接上層節(jié)點(diǎn)接收到更新路由表的信息后,將判斷需要更新的節(jié)點(diǎn)的序號(hào)是否比原路由表中的更新;如果是新的路徑則刪除原路由表中以該節(jié)點(diǎn)為首的子樹,按照更新的信息來刷新路由表。
7.根據(jù)權(quán)利要求I所述的一種適用于無線傳感器網(wǎng)絡(luò)的動(dòng)態(tài)自組織分層次路由方法,其特征是上行數(shù)據(jù)傳輸失敗拓?fù)渲亟M時(shí),如失敗原因是下一跳節(jié)點(diǎn)即父節(jié)點(diǎn),移出傳輸范圍或是失效,從而導(dǎo)致數(shù)據(jù)無法傳輸,則如果傳輸失敗次數(shù)超過了設(shè)定的閾值,則通過廣播尋找新的父節(jié)點(diǎn),重新接入網(wǎng)絡(luò);如失敗原因是是下一跳節(jié)點(diǎn)由于重啟或其他原因丟失了路由信息,而無法進(jìn)行數(shù)據(jù)傳遞,在接收到數(shù)據(jù)需要進(jìn)行轉(zhuǎn)發(fā)時(shí)則會(huì)向上一跳節(jié)點(diǎn)反饋Error信息,此時(shí),接收到Error信息的上一跳節(jié)點(diǎn)也將會(huì)通過廣播找尋新的父節(jié)點(diǎn),如果上行傳輸線路中的各個(gè)節(jié)點(diǎn)都未在其維護(hù)的路由表中發(fā)現(xiàn)到達(dá)目的節(jié)點(diǎn)的路徑,則最終轉(zhuǎn)發(fā)的數(shù)據(jù)包將會(huì)抵達(dá)匯聚節(jié)點(diǎn),并產(chǎn)生異常信息。
8.根據(jù)權(quán)利要求I所述的一種適用于無線傳感器網(wǎng)絡(luò)的動(dòng)態(tài)自組織分層次路由方法,其特征是下行數(shù)據(jù)傳輸失敗拓?fù)渲亟M時(shí),如失敗原因是數(shù)據(jù)無法讓下一跳節(jié)點(diǎn)即此節(jié)點(diǎn)的某一子節(jié)點(diǎn)接收,此時(shí),只要傳輸失敗的次數(shù)超過設(shè)定的閾值,則此節(jié)點(diǎn)將發(fā)起廣播進(jìn)行尋找,只要儲(chǔ)存有到達(dá)目的節(jié)點(diǎn)路徑的節(jié)點(diǎn)將進(jìn)行回應(yīng),此節(jié)點(diǎn)將選擇層次相距最近的節(jié)點(diǎn)作為子節(jié)點(diǎn),從而修復(fù)起已經(jīng)失效的路徑,如果下一跳節(jié)點(diǎn)就是目的節(jié)點(diǎn),而此時(shí)目的節(jié)點(diǎn)丟失,無法傳輸數(shù)據(jù),則將異常信息發(fā)回匯聚節(jié)點(diǎn);如失敗原因是下一跳節(jié)點(diǎn)即非目的節(jié)點(diǎn)出現(xiàn)異常而丟失了路徑信息,則此時(shí)將反饋Error信息,則此節(jié)點(diǎn)接收到Error信息以后將通過廣播來尋找下一跳節(jié)點(diǎn),修復(fù)下行路徑。
9.根據(jù)權(quán)利要求I所述的一種適用于無線傳感器網(wǎng)絡(luò)的動(dòng)態(tài)自組織分層次路由方法,其特征是欲向匯聚節(jié)點(diǎn)發(fā)送傳感數(shù)據(jù)而又尚未加入網(wǎng)絡(luò),不存在任何路由信息的新節(jié)點(diǎn)通過廣播來搜尋鄰近節(jié)點(diǎn)作為網(wǎng)絡(luò)的接入點(diǎn),在得到鄰近節(jié)點(diǎn)的回復(fù)后,選擇某一節(jié)點(diǎn)作為接入點(diǎn),并建立父子關(guān)系,有新子節(jié)點(diǎn)接入的父節(jié)點(diǎn)將向上層匯報(bào)新的子節(jié)點(diǎn)的信息并且依次向上更新,完成新節(jié)點(diǎn)補(bǔ)充接入網(wǎng)絡(luò)過程。
全文摘要
本發(fā)明涉及一種動(dòng)態(tài)自組織分層次路由方法。該方法適用于無線傳感器網(wǎng)絡(luò)樹形拓?fù)浣Y(jié)構(gòu)中,節(jié)點(diǎn)移動(dòng)或失效導(dǎo)致路徑失效數(shù)據(jù)無法傳送的問題,能實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的動(dòng)態(tài)調(diào)整。本發(fā)明采用基于多叉樹狀的拓?fù)浣Y(jié)構(gòu)建立網(wǎng)絡(luò),每個(gè)節(jié)點(diǎn)都維護(hù)一個(gè)層次路由表,并記錄著以該節(jié)點(diǎn)為根的子樹拓?fù)浣Y(jié)構(gòu)。路由表通過在節(jié)點(diǎn)接入申請(qǐng)時(shí)插入序號(hào)來對(duì)路由表進(jìn)行有效的更新,解決了上層節(jié)點(diǎn)的路由表中出現(xiàn)節(jié)點(diǎn)編號(hào)重復(fù)的問題。為了兼顧能量和計(jì)算開銷以及數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,路由表只在數(shù)據(jù)出現(xiàn)無法傳輸?shù)臅r(shí)候,才重新組織拓?fù)浣Y(jié)構(gòu),及時(shí)維護(hù)網(wǎng)絡(luò)中的拓?fù)浣Y(jié)構(gòu),在保證數(shù)據(jù)的可靠傳輸?shù)耐瑫r(shí),減少開銷,發(fā)揮主被動(dòng)路由協(xié)議的優(yōu)勢(shì)。
文檔編號(hào)H04W84/18GK102711209SQ201210178328
公開日2012年10月3日 申請(qǐng)日期2012年6月1日 優(yōu)先權(quán)日2012年6月1日
發(fā)明者倪明選, 朱浩慎, 李洋, 趙云, 高民, 黃才炎 申請(qǐng)人:廣州市香港科大霍英東研究院
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1