用于在無線自組織網絡中使用的無線通信的裝置和方法
【專利摘要】用于在無線自組織網絡中使用的無線通信的裝置和方法。由在無線自組織網絡中使用的無線通信裝置執(zhí)行的方法包括:根據(jù)無線通信裝置的標識信息來指定被添加至接收幀的環(huán)檢測數(shù)組中的位;當環(huán)檢測數(shù)組中所指定的位未被使用的情況下,判定傳輸接收幀的路徑不是環(huán);當環(huán)檢測數(shù)組中所指定的位被使用的情況下,判定該路徑是環(huán);當判定該路徑不是環(huán)的情況下,將環(huán)檢測數(shù)組中所指定的位更新至正在被使用的狀態(tài),并且向目的節(jié)點發(fā)送該接收幀;以及當判定該路徑是環(huán)的情況下,將接收幀返回至作為該接收幀的本地發(fā)送源的鄰近節(jié)點。
【專利說明】
用于在無線自組織網絡中使用的無線通信的裝置和方法
技術領域
[0001]本文中討論的實施方式涉及用于在無線自組織網絡中使用的無線通信的裝置和方法。
【背景技術】
[0002]如下無線自組織網絡已經被實際使用:其中無線通信裝置被布置在多個位置中的每個位置并且從不包括基站的各個位置收集信息。在該類系統(tǒng)中,服務器計算機例如能夠收集和分析在各個位置測量的氣象信息。
[0003]在上述無線自組織網絡中,無線通信裝置向鄰近節(jié)點發(fā)送添加了目的地址(例如,服務器計算機的地址)的幀。已經接收到該幀的無線通信裝置根據(jù)目的地址對該幀進行轉發(fā)。對于該轉發(fā),無線通信裝置根據(jù)目的地址從多個鄰近節(jié)點中選擇合適的鄰近節(jié)點,并且將所接收的幀轉發(fā)至所選擇的鄰近節(jié)點。換言之,每個無線通信裝置自主地確定作為轉發(fā)目的地的鄰近節(jié)點。然后,從源無線通信裝置發(fā)送的幀被經由一個或多個無線通信裝置轉發(fā)至由目的地址指定的節(jié)點(例如服務器計算機)。
[0004]如上所述,在無線自組織網絡系統(tǒng)中,由系統(tǒng)中的一個或多個無線通信裝置自主地確定將幀從源節(jié)點轉發(fā)至目的節(jié)點的路徑。因此,可能發(fā)生下述情況:從節(jié)點發(fā)送的幀在通過一個或多個節(jié)點的傳遞之后返回至該節(jié)點(其在下文中被描述為“環(huán)”)。當建立了環(huán)時,有時可能發(fā)生如下情況:幀不被發(fā)送至目的節(jié)點。
[0005]有鑒于此,提出了檢測無線自組織網絡中的環(huán)的方法。例如,每個無線通信裝置將用于標識由該無線通信裝置自身發(fā)送或轉發(fā)的幀的信息的記錄在存儲器中保持一段時間。然后,對于每個接收幀,無線通信裝置確認用于標識該接收幀的信息是否被記錄在存儲器中。當結果指示用于標識接收幀的信息被記錄在存儲器中,則無線通信裝置判定該幀的傳輸路徑是環(huán)。當檢測到環(huán)時,無線通信裝置通過使用不同路徑來發(fā)送或轉發(fā)幀(例如,TO2011/013165)。除該方法之外,提出了用于檢測環(huán)的技術(例如,國際專利申請的日本國家公開 N0.2009-514265)。
[0006]如上所述,通過使用記錄用于標識發(fā)送幀或轉發(fā)幀的信息的存儲器,無線通信裝置能夠對環(huán)進行檢測。然而,為了使用該方法來高準確性地檢測環(huán),發(fā)送幀和轉發(fā)幀需要被管理相對長的時間段。因而,每個無線通信裝置需要設置有用于做出環(huán)判定的大容量存儲器。
[0007]本發(fā)明的一個方面中的目的在于提供一種在不增大用于無線通信裝置的存儲器的量的情況下檢測無線自組織網絡中的環(huán)的方法。
【發(fā)明內容】
[0008]根據(jù)實施方式的方面,一種非暫態(tài)計算機可讀記錄介質中存儲有用于使無線通信裝置中的處理器執(zhí)行無線通信過程的程序,該無線通信裝置用于無線自組織網絡中,該無線通信過程包括:根據(jù)用于標識無線通信裝置的標識信息來指定被添加至接收幀的環(huán)檢測數(shù)組中的位;當在環(huán)檢測數(shù)組中指定的位未被使用的情況下,判定傳輸接收幀的路徑不是環(huán);當在環(huán)檢測數(shù)組中指定的位被使用的情況下,判定傳輸接收幀的路徑是環(huán);當判定傳輸接收幀的路徑不是環(huán)的情況下,將環(huán)檢測數(shù)組中指定的位更新至正在使用的狀態(tài)并且向目的節(jié)點發(fā)送該接收幀;以及當判定傳輸接收幀的路徑是環(huán)的情況下,將接收幀返回至作為該接收幀的本地發(fā)送源的鄰近節(jié)點。
【附圖說明】
[0009]圖1示出了無線自組織網絡中的幀轉發(fā)的示例;
[0010]圖2示出了幀的格式的示例;
[0011 ]圖3示出了無線通信裝置的功能的示例;
[0012]圖4A和圖4B示出了鄰近節(jié)點管理表和優(yōu)先級表的示例;
[0013]圖5示出了FID管理表的示例;
[0014]圖6示出了無線通信裝置的硬件配置的示例;
[00?5]圖7示出了哈希函數(shù)的特征;
[0016]圖8示出了通過布隆過濾器的過程示例;
[0017]圖9示出了關于數(shù)組長度和跳數(shù)的假陽性發(fā)生概率的示例;
[0018]圖10是示出源節(jié)點的無線通信裝置的過程示例的流程圖;
[0019]圖11是示出對幀進行接收的無線通信裝置的過程示例的流程圖;
[0020]圖12A和圖12B示出了環(huán)判定的示例;
[0021]圖13示出了更新位檢測數(shù)組的方法的示例;
[0022]圖14示出了根據(jù)第一實施方式的幀轉發(fā);以及
[0023]圖15示出了根據(jù)第二實施方式的幀轉發(fā)。
【具體實施方式】
[0024]圖1示出了根據(jù)本發(fā)明的一個實施方式的在無線自組織網絡中的幀轉發(fā)的示例。在該示例中,無線自組織網絡包括節(jié)點NI至N7。每個節(jié)點設置有無線通信裝置。應注意,在以下描述中,分別被提供至節(jié)點NI至N7的無線通信裝置可以被稱為無線通信裝置NI至N7。連接節(jié)點的實線表示無線鏈路。
[0025]無線通信裝置能夠向鄰近節(jié)點發(fā)送幀。而且,已經從鄰近節(jié)點接收到幀的無線通信裝置能夠將所接收的幀轉發(fā)至不同的鄰近節(jié)點。對于該轉發(fā),無線通信裝置根據(jù)幀的目的地來確定要將幀發(fā)送或轉發(fā)至的鄰近節(jié)點。換言之,由無線自組織網絡中的每個無線通信裝置來自主地確定轉發(fā)幀的路徑。
[0026]在圖1中所示的示例中,提供給節(jié)點NI的無線通信裝置(S卩,無線通信裝置NI)生成幀以將該幀發(fā)送至目的地。在該示例中,幀的目的地是節(jié)點N7。注意,在以下描述中,在其中生成了幀的節(jié)點可以被稱為“源節(jié)點(GS:全局源)”。而且,該幀的最終目的地可以被稱為“目的節(jié)點(GD:全局目的地)”。
[0027]在SlOl至S103中,在無線通信裝置NI中生成的幀由節(jié)點N2和N3轉發(fā)至節(jié)點N4。在步驟S104中,無線通信裝置N4試圖將所接收的幀轉發(fā)至節(jié)點N7。然而,節(jié)點N4與節(jié)點N7之間的無線鏈路的質量較差,因此從節(jié)點N4轉發(fā)至節(jié)點N7的幀未到達節(jié)點N7。在這種情況下,無線通信裝置N4未從節(jié)點N7接收到ACK幀,從而檢測到至節(jié)點N7的幀發(fā)送已經失敗。然后,無線通信裝置N4通過使用不同路徑來對幀進行轉發(fā)。
[0028]在S105和S106中,經由節(jié)點N5將幀從節(jié)點N4轉發(fā)至節(jié)點N3。然而,無線通信裝置N3從節(jié)點N5接收的幀是無線通信裝置N3先前發(fā)送至節(jié)點N4的幀。在這種情況下,無線通信裝置N3判定傳輸該接收幀的路徑是環(huán)。然后,無線通信裝置N3將該接收幀返回至作為該接收幀的本地發(fā)送源的鄰近節(jié)點。在該示例中,在S107中,無線通信裝置N3將該接收幀返回至節(jié)點N5。在以下描述中,由無線通信裝置執(zhí)行的響應于對環(huán)的檢測而將接收幀返回至作為該接收幀的發(fā)送源的鄰近節(jié)點的操作可以被稱為“回溯(back track)”。
[0029]在下文中,已經接收到幀的無線通信裝置根據(jù)該幀的目的地來類似地確定要將該幀轉發(fā)至的鄰近節(jié)點。具體地,在S108至S112中,經由節(jié)點N4、N3、N2和N6將幀從節(jié)點N5轉發(fā)至節(jié)點N7。
[0030]圖2示出了在無線自組織網絡中使用的幀的格式的示例。在該示例中使用的幀包括LD字段、LS字段、⑶字段、GS字段、FID字段、類型字段、LH字段、LB字段、長度字段和有效載荷。
[0031]LD(本地目的地)字段存儲用于標識作為發(fā)送目的地的鄰近節(jié)點的信息。LS(本地源)字段存儲作為幀的發(fā)送源的節(jié)點的信息。在例如圖1中所示的在SlOl中從節(jié)點NI發(fā)送至節(jié)點N2的幀中,設置“LD = N2”和“LS = N1”。而且,在S102中從節(jié)點N2發(fā)送至節(jié)點N3的幀中,設置“LD = N3”和“LS = N2”。注意,在對幀進行轉發(fā)的節(jié)點中更新LD字段和LS字段。
[0032]⑶字段存儲用于標識幀的最終目的節(jié)點的⑶信息。GS字段存儲用于標識生成該幀的節(jié)點的GS信息。在圖1中所示的示例中,在從節(jié)點NI發(fā)送的幀中設置“GD = N7”和“GS =NI”。注意,在幀的發(fā)送期間不更新GD字段和GS字段。
[0033]FID(幀標識符)字段存儲用于標識無線自組織網絡中的每個幀的FID AID被添加至GS節(jié)點中的幀并且在該幀的發(fā)送期間不被更新。因此,在無線自組織網絡中發(fā)送的每個幀由GS和FID的組合來唯一地標識。注意,F(xiàn)ID由例如序列號來實現(xiàn)。
[0034]類型字段存儲表示幀的類型的類型信息。例如,類型信息能夠表示存儲用戶數(shù)據(jù)的數(shù)據(jù)幀、確認幀的接收的ACK幀等。
[0035]LH(環(huán)跳)字段存儲用于對幀轉發(fā)中的跳數(shù)進行計數(shù)的跳數(shù)值。注意,在GS節(jié)點中,在LH字段中設置跳數(shù)值的初始值。當由無線通信裝置對幀進行轉發(fā)時跳數(shù)值遞增或遞減。假設例如“跳數(shù)值=10”已經被添加至從圖1中所示的節(jié)點NI發(fā)送的幀。在這種情況下,跳數(shù)值在節(jié)點N2中被更新至“9”并且在節(jié)點N3中被更新至“8”。
[0036]當從源節(jié)點計數(shù)的跳數(shù)已經達到指定值時,跳數(shù)值被復位至初始值。在以上示例中,當跳數(shù)值從“10”減I之后已經達到“O”時,跳數(shù)值被復位為“10”。因此,當在節(jié)點中跳數(shù)值已經被初始化時,跳數(shù)值表示從初始化了跳數(shù)值的節(jié)點進行計數(shù)的跳數(shù)值。
[0037]注意,跳數(shù)值的初始值或更新方法不限于以上示例。例如,跳數(shù)值的初始值可以為零。在這種情況下,每次由無線通信裝置對幀進行轉發(fā)時,跳數(shù)值遞增。當跳數(shù)值在從“O”加I之后已經達到“10”時,跳數(shù)值被復位至“O”。
[0038]LB(環(huán)檢測位)字段存儲具有指定長度的環(huán)檢測數(shù)組。在初始狀態(tài)下,環(huán)檢測數(shù)組中的所有位被設置為零。在被添加至接收幀的環(huán)檢測數(shù)組中,每個無線通信裝置將與無線通信裝置的節(jié)點對應的一個或多個位從“O”更新至“I”。環(huán)檢測數(shù)組用于判定傳輸幀的路徑是否為環(huán)。換言之,無線通信裝置使用被添加至接收幀的環(huán)檢測數(shù)組以判定傳輸幀的路徑是否為環(huán)。隨后將詳細描述使用環(huán)檢測數(shù)組來檢測環(huán)的方法。
[0039]注意,環(huán)檢測數(shù)組是用于做出環(huán)判定的位串的示例。因此,無線通信裝置并非總是有必要使用“數(shù)組”來做出環(huán)判定。換言之,無線通信裝置能夠使用已經被添加至接收幀的用于環(huán)判定的位串來判定傳輸幀的路徑是否為環(huán)。
[0040]長度字段存儲表示有效載荷的長度的信息。有效載荷存儲數(shù)據(jù)。注意,在無線自組織網絡中傳輸?shù)膸梢园ㄆ渌畔⒁亍?br>[0041]圖3示出了在無線自組織網絡中使用的無線通信裝置的功能的示例。如圖3中所示的無線通信裝置I包括接收器11、緩沖器12、幀處理器13、上層處理器14、鄰近節(jié)點管理表15、優(yōu)先級表16、FID管理表17、環(huán)檢查器18和發(fā)送器19。然而,無線通信裝置I還可以設置有未在圖3中示出的功能。
[0042]接收器11從不同的無線通信裝置接收幀。由接收器11接收的幀一度被存儲在緩沖器12中。注意,接收器11連接至無線收發(fā)器模塊中的接收裝置。緩沖器12由例如半導體存儲器實現(xiàn)。
[0043]幀處理器13對所接收的幀進行處理。當該接收幀的目的地是無線通信裝置I時,幀處理器13將該接收幀引導至上層處理器14。當該接收幀的目的地不是無線通信裝置I時,幀處理器13根據(jù)該接收幀的目的地(即,GD)來確定要將該接收幀轉發(fā)至的鄰近節(jié)點(即,LD)。當無線通信裝置I生成并且發(fā)送幀時,幀處理器13能夠生成新的幀。注意,幀處理器13包括隨后將描述的更新單元13a。
[0044]上層處理器14對存儲在接收幀的有效載荷中的數(shù)據(jù)進行處理。而且,上層處理器14能夠生成從無線通信裝置I發(fā)送的數(shù)據(jù)。由上層處理器14生成的數(shù)據(jù)通過幀處理器13存儲在發(fā)送幀的有效載荷中。
[0045]圖4A示出了鄰近節(jié)點管理表15的示例。在鄰近節(jié)點管理表15中,注冊了用于標識與無線通信裝置I鄰近的節(jié)點的節(jié)點ID。在該示例中,假設無線通信裝置I設置有檢測鄰近節(jié)點的功能。例如,無線通信裝置I周期性地確認鄰近節(jié)點的存在。當檢測到新的鄰近節(jié)點時,該新的鄰近節(jié)點被注冊在鄰近節(jié)點管理表15中。注意,圖4A示出了被提供至圖1中所示的無線通信裝置N4的鄰近節(jié)點管理表15。因此,節(jié)點N3、N5和N7被注冊在該鄰近節(jié)點管理表15中。
[0046]圖4B示出了優(yōu)先級表16的示例。在優(yōu)先級表16中,針對每個目的地(S卩,GD)對要將接收幀轉發(fā)至的鄰近節(jié)點(即,LD)進行注冊。具體地,在優(yōu)先級表16中,針對每個GD注冊了指定數(shù)目的具有高優(yōu)先級的LD。幀處理器13參考該優(yōu)先級表16以確定要將接收幀轉發(fā)至的鄰近節(jié)點。
[0047]注意,圖4B示出了被提供至圖1中所示的無線通信裝置N4的優(yōu)先級表16。因此,當接收幀的目的地是節(jié)點N7時,無線通信裝置N4參考優(yōu)先級表16以獲得“LD = N7”。然后,無線通信裝置N4將接收幀轉發(fā)至節(jié)點N7。然而,在圖1中所示的示例中,從節(jié)點N4至節(jié)點N7的幀發(fā)送已經失敗。因此,無線通信裝置N4再次參考優(yōu)先級表16,并且選擇具有第二高的優(yōu)先級的鄰近節(jié)點。因此,無線通信裝置N4將接收幀轉發(fā)至節(jié)點N5。
[0048]圖5示出了FID管理表17的示例。在FID管理表17中,存儲用于管理無線通信裝置I先前發(fā)送或轉發(fā)的幀。而且,針對FID和GS的組合來生成FID管理表17的記錄。當無線通信裝置I發(fā)送或轉發(fā)幀時,在該幀的頭中設置的FID、GS信息、LD信息和跳數(shù)值分別被寫至FID管理表17的FID字段、GS字段、LD字段和HOP字段。在OLS(原始LS)字段中,寫入表示作為該接收幀的發(fā)送源的鄰近節(jié)點的節(jié)點ID。另外,在FID管理表17中,記錄每個記錄最后被更新的時間。
[0049]當在幀的傳輸路徑中建立了環(huán)時,由無線通信裝置I先前發(fā)送或轉發(fā)的幀被返回至無線通信裝置I。在這種情況下,被返回至無線通信裝置I的幀的FID和GS的組合已經被注冊在FID管理表17中。因此,不生成被返回至無線通信裝置I的幀的新記錄,并且在先前已經生成的相應記錄中對LD字段和HOP字段進行更新。然而,當幀已經被返回至無線通信裝置I時,不更新OLS字段。換言之,存儲在OLS字段中的節(jié)點ID表示在無線通信裝置I首次接收到該幀時作為該幀的發(fā)送源的鄰近節(jié)點。
[0050]如上所述,F(xiàn)ID管理表17存儲用于管理由無線通信裝置I先前發(fā)送或轉發(fā)的幀的信息。因此,無線通信裝置I能夠使用FID管理表17來檢測環(huán)。當例如接收幀的FID和GS的組合已經被注冊在FID管理表17中時,無線通信裝置I能夠判定建立了環(huán)。
[0051]然而,為了使用該方法來高準確性地檢測無線自組織網絡中的環(huán),發(fā)送幀和轉發(fā)幀需要被管理相對長的時間段。作為示例,需要將每個幀管理與無線自組織網絡的最大跳數(shù)相對應的時間段。這使得FID管理表17的尺寸較大。因此,無線通信裝置I使用隨后將描述的不同的方法來檢測無線自組織網絡中的環(huán),以減少所使用的存儲器容量。
[0052]為了判定接收幀是否是由于回溯而從鄰近節(jié)點返回的幀(在下文中稱為“回溯幀”),無線通信裝置I可以使用FID管理表17。本文中所使用的“回溯”意指以下操作:其中幀被從無線通信裝置X發(fā)送至無線通信裝置Y并且該幀被直接從無線通信裝置Y返回至無線通信裝置X ο在該示例中,無線通信裝置X和無線通信裝置Y彼此鄰近。因此,在幀從無線通信裝置X發(fā)送至無線通信裝置Y與在無線通信裝置X中接收來自無線通信裝置Y的回溯幀之間經過的時間段等同于通過無線自組織網絡中的兩跳來發(fā)送幀的非常短的時間段。因此,當FID管理表17用于檢測回溯幀這一目的時,要使用FID管理表17來管理由無線通信裝置I發(fā)送或轉發(fā)的幀的時間段可以是相對短的。換言之,與當FID管理表17用于環(huán)判定的情況相比,在用于檢測回溯幀時,F(xiàn)ID管理表17在尺寸上可以是足夠小的。
[0053]當無線通信裝置I已經接收到幀時,環(huán)檢查器18判定傳輸幀的路徑是否是環(huán)。在該示例中,環(huán)檢查器18包括隨后將描述的指定單元18a和判定單元18b。然后,由環(huán)檢查器18所做的判定的結果被報告至幀處理器13。注意,幀處理器13根據(jù)該接收幀的目的地(S卩,GD)來確定要將該接收幀轉發(fā)至的鄰近節(jié)點(即,LD)。然而,當環(huán)檢查器18已經判定傳輸該接收幀的路徑是環(huán)時,幀處理器13將該接收幀返回至作為該接收幀的本地源的鄰近節(jié)點。換言之,執(zhí)行回溯。在圖1中所示的示例中,當在S106中已經檢測到環(huán)時,無線通信裝置N3將接收幀返回至節(jié)點N5。
[0054]發(fā)送器19將由幀處理器13生成或更新的幀發(fā)送至鄰近節(jié)點。對于該發(fā)送,發(fā)送器19將幀發(fā)送至由幀的頭中設置的LD指定的鄰近節(jié)點。注意,將由幀處理器13更新的幀發(fā)送至鄰近節(jié)點的操作包括回溯。
[0055]圖6示出了無線通信裝置I的硬件配置的示例。如圖6中所示,無線通信裝置I包括處理器21、存儲器22和無線收發(fā)器模塊23。處理器21、存儲器22和無線收發(fā)器模塊23經由例如總線24連接。注意,無線通信裝置I還可以設置有未在圖6中示出的電路元件。
[0056]處理器21能夠執(zhí)行給定程序以提供圖3中所示的接收器11、幀處理器13、上層處理器14、環(huán)檢查器18和發(fā)送器19的功能。然而,接收器11、幀處理器13、上層處理器14、環(huán)檢查器18和發(fā)送器19的功能中的一些功能可以使用硬件電路來實現(xiàn)。
[0057]存儲器22能夠存儲由處理器21執(zhí)行的程序。而且,存儲器22能夠提供緩沖器12。另夕卜,通過使用存儲器22來創(chuàng)建鄰近節(jié)點管理表15、優(yōu)先級表16和FID管理表17。存儲器22通過例如半導體存儲器來實現(xiàn)。
[0058]無線收發(fā)器模塊23包括發(fā)送器裝置和接收器裝置。發(fā)送器裝置能夠將表示由幀處理器13生成或更新的幀的無線信號發(fā)送至鄰近節(jié)點。接收器裝置能夠終止從鄰近節(jié)點發(fā)送的無線信號以對幀進行再現(xiàn)。
[0059]如上所述,通過例如使用處理器來執(zhí)行無線通信程序來提供無線通信裝置I的功能。因此,并非總是有必要以單個獨立裝置的形式來提供無線通信裝置I的功能。例如,當無線通信程序被安裝在包括處理器和存儲器的測量裝置中時,該測量裝置能夠提供無線通信裝置I的以上功能。在這種情況下,測量裝置能夠通過執(zhí)行無線通信程序來向目的地發(fā)送測量數(shù)據(jù),并且也能夠向目的地轉發(fā)從不同節(jié)點接收的數(shù)據(jù)。
[0060]接著,將對由環(huán)檢查器18所做的環(huán)判定給出說明。在該示例中,環(huán)檢查器18使用布隆過濾器以檢測無線自組織網絡中的環(huán)。布隆過濾器能夠通過利用哈希函數(shù)來判定給定要素是否屬于某集合。因此,將在描述環(huán)判定之前對哈希函數(shù)和布隆過濾器給出簡要說明。
[0061]哈希函數(shù)是不可逆單向函數(shù),并且生成與給定鍵對應的哈希值。在圖7中所示的示例中,當鍵值A被輸入至哈希函數(shù)時,生成哈希值X。類似地,當鍵B被輸入至哈希函數(shù)時,生成哈希值Y,而響應于將鍵值C輸入至哈希函數(shù)來生成哈希值Z。像這樣,當不同鍵值被輸入至哈希函數(shù)時,生成基本上不同的哈希值。然而,即使當不同鍵值被輸入至哈希函數(shù)時,在一些情況下可能生成相同的哈希值。在圖7中所示的示例中,當鍵值D被輸入至哈希函數(shù)時也生成哈希值X。在以下描述中,響應于不同鍵值輸入至哈希函數(shù)而生成相同哈希值的情況可以被稱為“碰撞”。
[0062]當通過使用哈希函數(shù)來實現(xiàn)布隆過濾器時,由哈希函數(shù)生成的哈希值指定布隆過濾器的數(shù)組中的位置。數(shù)組的長度被預先指定。在數(shù)組的初始狀態(tài)中,所有位被設置為零。
[0063]當數(shù)組的長度是m位時,當對哈希函數(shù)給出某個鍵值時生成的哈希值是“I”至“m”中之一。在圖8中所示的示例中,滿足“m = 8”。注意,在以下描述中,數(shù)組中的位為零的狀態(tài)可以被稱為“未使用”,并且數(shù)組中的位為“I”的狀態(tài)可以被稱為“已使用”。
[0064]假設當對哈希函數(shù)給出鍵值A時,生成“2”作為哈希值。在該示例中,哈希值指定數(shù)組中的位位置。因此,針對鍵值A,數(shù)組的第二位被更新至“1(已使用)”。
[0065]還假設當對哈希函數(shù)給出鍵值B時,生成“5”作為哈希值,并且當對哈希函數(shù)給出鍵值C時,生成“3”作為哈希值。因此,數(shù)組的第五位和第三位被更新至“I (已使用)”。
[0066]在該情況下,布隆過濾器能夠判定值X是否是集合[A,B,C]的元素。當做出該判定時,對哈希函數(shù)給出值X,并且生成相應哈希值X。該哈希值X是“I”至“8”中之一。當哈希值X是“2”、“3”和“5”中之一時,判定值X是集合[A,B,C]的元素。換言之,判定“值X與A、B和C中之一相同”。當哈希值X不是“2”、“3”和“5”中之一時,判定值X不是集合[A,B,C]的元素。換言之,判定“值X與A、B和C中的任一者均不相同”。
[0067]然而,如在圖7中所說明的,哈希函數(shù)在一些情況下可以針對不同鍵值生成相同哈希值。因此,實際上會發(fā)生下述情況:盡管“值X與A、B和C中的任一者均不相同”,而哈希值X是“2”、“3”和“5”中之一。這種情況被稱為“假陽性”。
[0068]當在布隆過濾器中發(fā)生了假陽性時,獲得錯誤的判定結果。然而,在布隆過濾器中不發(fā)生假陰性。因此,當值X屬于集合[A,B,C]時,從不判定“值X不屬于集合[A,B,C]”。因此,當布隆過濾器用于做出環(huán)判定時,可能發(fā)生下述的錯誤檢測即使在實際上未建立環(huán)時判定建立了環(huán)”,而不發(fā)生下述的假陰性(檢測失敗“即使在實際上建立了環(huán)時判定未建立環(huán)”。
[0069]注意,通過下面的表達式(I)來近似地表示由假陽性引起錯誤檢測的概率(假陽性發(fā)生概率P),其中,m表示數(shù)組的長度(位的數(shù)目),并且η表示數(shù)組中被添加“1(已使用)”的位的數(shù)目。
[0070]ρ = 0.6185' (m/n) (I)
[0071]無線通信裝置I使用布隆過濾器來做出環(huán)判定。通過檢查由無線通信裝置先前發(fā)送的幀是否被返回至該無線通信裝置來實現(xiàn)環(huán)判定。因此,可以通過檢查由無線通信裝置接收的幀是否是由該無線通信裝置先前發(fā)送的幀來實現(xiàn)環(huán)判定。因此,使用布隆過濾器在以下操作條件下做出環(huán)判定。
[0072](I)各個無線通信裝置使用相同的哈希函數(shù)。
[0073](2)在每個無線通信裝置中被給至哈希函數(shù)的鍵值是用于標識無線通信裝置的標識信息(例如,無線通信裝置的MAC地址)。
[0074]基于表達式(I)以使得假陽性發(fā)生概率低于指定閾值的方式來設計布隆過濾器。假設例如無線自組織網絡是包括500至1000個節(jié)點的網狀網絡。還假設在每個節(jié)點中執(zhí)行如圖1至圖4B中說明的自主轉發(fā)過程。在這種情況下,從經驗得知,用于將來自源節(jié)點的幀發(fā)送至期望目的節(jié)點的路徑的平均跳數(shù)近似為10。
[0075]在該示例中假設當幀被從源節(jié)點發(fā)送至目的節(jié)點時,將“1(已使用)”添加至每個節(jié)點中的數(shù)組。然后,在離源節(jié)點η跳的節(jié)點中的假陽性發(fā)生概率P如圖9中所示。如上所述,當數(shù)組長時,假陽性發(fā)生概率P低。而且,在距源節(jié)點具有大跳數(shù)的節(jié)點中,假陽性發(fā)生概率P高。另外,以使得該假陽性發(fā)生概率P低于指定閾值的方式來設計布隆過濾器。例如,在離源節(jié)點10跳的節(jié)點中,需要數(shù)組的長度m大于或等于96,以使得這樣的節(jié)點中的假陽性發(fā)生概率P低于百分之一。
[0076]另外,在每個節(jié)點中使用k個哈希函數(shù)來做出環(huán)判定。通過下面的表達式(2)來表示k的合適值(即,使假陽性發(fā)生概率P最小化的值),其中,111表示數(shù)組的長度(位的數(shù)目),并且η表示距源節(jié)點的跳數(shù)。
[0077]k=(m/n)ln2 (2)
[0078]當對表達式(2)給出m = 96和η = 10時,得到k = 6.554。因此,通過在每個節(jié)點中使用七個哈希函數(shù)來做出環(huán)判定。在這種情況下,無線通信裝置I通過例如將無線通信裝置I的節(jié)點的MAC地址給至七個哈希函數(shù)來生成七個哈希值。每個哈希值指定數(shù)組中的位位置。然后,無線通信裝置I檢查存儲在接收幀的LB字段中的位檢測數(shù)組中的由每個哈希值指定的位是否為“1(已使用)”。
[0079]圖10是示出源節(jié)點的無線通信裝置的過程示例的流程圖。注意,當無線通信裝置I生成并且發(fā)送幀時執(zhí)行圖10中所示的流程圖。在以下描述中,用于對跳數(shù)進行計數(shù)的跳數(shù)值可以被稱為“LH”。環(huán)檢測數(shù)組可以被稱為“LB”。
[0080]在SI中,幀處理器13生成圖2中所示的幀。幀的目的節(jié)點的地址被存儲在GD字段中。發(fā)送數(shù)據(jù)被存儲在有效載荷中。
[0081]在S2中,幀處理器13基于目的節(jié)點來確定要將幀發(fā)送至的鄰近節(jié)點(S卩,LD)。對于該確定。通過參考圖4B中所示的優(yōu)先級表16來確定LD。換言之,選擇已經針對幀的目的地(即,GD)而給出最高優(yōu)先級的鄰近節(jié)點。
[0082]在S3中,幀處理器13對要添加至該幀的跳數(shù)值LH和環(huán)檢測數(shù)組LB進行初始化。在該示例中,針對跳數(shù)值LH的初始值為1?!?0”對應于在無線自組織網絡中將幀從源節(jié)點發(fā)送至期望目的節(jié)點的路徑的平均跳數(shù)。而且,在環(huán)檢測數(shù)組LB的初始狀態(tài)中,所有位均被設置為零。
[0083]在S4中,幀處理器13將基于用于標識無線通信裝置I的標識信息而生成的環(huán)檢測位添加至環(huán)檢測數(shù)組。在該示例中,通過將無線通信裝置I的MAC地址給至預先準備的哈希函數(shù),生成指定環(huán)檢測數(shù)組中的位的哈希值。將由哈希值指定的位設置為“1(已使用)”的操作對應于將無線通信裝置I的環(huán)檢測位添加至環(huán)檢測數(shù)組LB的操作。換言之,將無線通信裝置I的環(huán)檢測位添加至環(huán)檢測數(shù)組LB的操作是通過將由與無線通信裝置I的MAC地址對應的哈希值在環(huán)檢測數(shù)組中指定的位設置為“I (已使用)”來實現(xiàn)的。當每個無線通信裝置使用k個哈希函數(shù)以根據(jù)MAC地址來生成k個哈希值時,在環(huán)檢測數(shù)組中指定的k位被設置為“I”。
[0084]在S5中,發(fā)送器19將在SI至S4中生成的幀發(fā)送至鄰近節(jié)點。換言之,經由圖6中所示的無線收發(fā)器模塊23將幀發(fā)送至鄰近節(jié)點。該幀到達無線通信裝置I的通信區(qū)域中的每個鄰近節(jié)點。然而,當由無線通信裝置接收的幀的LD字段中存儲的LD信息表示不同的節(jié)點時,無線通信裝置丟棄該接收幀。因此,實際上,僅由LD信息標識的無線通信裝置接收該幀。
[0085]圖11是示出從鄰近節(jié)點接收幀的無線通信裝置的過程示例的流程圖。當無線通信裝置I接收幀時執(zhí)行圖11中所示的流程圖。
[0086]在SII中,接收器11從鄰近節(jié)點接收幀。然后,接收器11將接收幀存儲在緩沖器12中。注意,如上所述,當存儲在接收幀的LD字段中的LD信息表示不同的節(jié)點時,接收器11丟棄該接收幀。
[0087]在S12中,幀處理器13判定該接收幀是否是回溯幀。在該示例中,幀處理器13可以使用圖5中所示的FID管理表17來判定接收幀是否是回溯幀。當例如存儲在接收幀的頭中的GS和FID的組合已經被注冊在FID管理表17中并且記錄在與該組合相對應的記錄中的LD與存儲在接收幀的頭中的LS相同時,幀處理器13判定該接收幀是回溯幀。然而,幀處理器13也可以使用不同的方法來確定接收幀是否是回溯幀。
[0088]當接收幀不是回溯幀時,無線通信裝置I的過程進行至S13。在S13中,幀處理器13參考存儲在接收幀的頭中的GD以判定該接收幀的最終目的地是否是不同的節(jié)點。當該接收幀的最終目的地是幀處理器13本身的節(jié)點(S卩,無線通信裝置I)時,在S14中幀處理器13將該接收幀饋送至上層處理器14。然后,上層處理器14對該接收幀進行處理。
[0089]當該接收幀的最終目的地是不同的節(jié)點時,在S15中,幀處理器13將存儲在接收幀的頭中的跳數(shù)值LH減I。換言之,執(zhí)行“LH=LH-1”。
[0090]在S16中,環(huán)檢查器18使用存儲在接收幀的頭中的環(huán)檢測數(shù)組LB和無線通信裝置I的環(huán)檢測位(本地節(jié)點的環(huán)檢測位)來判定傳輸該接收幀的路徑是否為環(huán)。隨后將詳細描述環(huán)檢測方法。
[0091]當判定傳輸該接收幀的路徑是環(huán)時,在S17中,幀處理器13生成要返回至作為該接收幀的本地發(fā)送源的鄰近節(jié)點的幀(即,回溯幀)。通過交換存儲在接收幀的頭中的“LS”和“LD”來生成回溯幀。
[0092]當判定了傳輸該接收幀的路徑不是環(huán)時,在S18中,幀處理器13基于該接收幀的最終目的地來確定要將該幀轉發(fā)至的鄰近節(jié)點(即,LD)。對于該確定,通過參考圖4B中所示的優(yōu)先級表16來確定LD。換言之,選擇針對幀的目的地(即,GD)給出最高優(yōu)先級的鄰近節(jié)點。
[0093]在S19中,幀處理器13判定被添加至接收幀的跳數(shù)值LH是否為零。當跳數(shù)值LH為零時,判定從跳數(shù)值LH被初始化的節(jié)點起的跳數(shù)已經達到閾值(在該示例中的10)。在這種情況下,在S20中,幀處理器13對被添加至接收幀的跳數(shù)值LH和環(huán)檢測數(shù)組LB進行初始化。具體地,將跳數(shù)值LH初始化成10。而且,將環(huán)檢測數(shù)組LB中的所有位初始化成零。當被添加至接收幀的跳數(shù)值LH不為零時,跳過S20中的過程。
[0094]在S21中,幀處理器13將環(huán)檢測位添加至接收幀中的環(huán)檢測數(shù)組LB?;跓o線通信裝置I的MAC地址來生成環(huán)檢測位。注意,圖10中的S4和圖11中的S21基本相同,并且將省略其說明。
[0095]在S22中,發(fā)送器19將從Sll至S21或從S31至S33獲得的幀發(fā)送至鄰近節(jié)點。換言之,經由圖6中所示的無線收發(fā)器模塊23將幀發(fā)送至鄰近節(jié)點。
[0096]當接收幀是回溯幀時,無線通信裝置I的過程進行至S31。在S31中,幀處理器13對接收幀中的跳數(shù)值LH和環(huán)檢測數(shù)組LB進行初始化。換言之,跳數(shù)值LH被初始化成10。而且,環(huán)檢測數(shù)組LB中的所有位被初始化成零。
[0097]在S32中,幀處理器13從優(yōu)先級表16中刪除作為回溯幀的本地發(fā)送源的鄰近節(jié)點。無線通信裝置I不將接收幀轉發(fā)至未在優(yōu)先級表16中注冊的鄰近節(jié)點。注意,幀處理器13也可以以使得作為回溯幀的本地源的鄰近節(jié)點的優(yōu)先級低的方式來更新優(yōu)先級表16。
[0098]在S33中,幀處理器13基于該接收幀的最終目的地來確定要將該接收幀轉發(fā)至的鄰近節(jié)點(即,LD)。對于該確定,通過參考圖4B中所示的優(yōu)先級表16來確定LD。也就是說,通過參考在S32中更新的優(yōu)先級表16來確定LD。具體地,選擇具有先前選擇的鄰近節(jié)點的優(yōu)先級后面的最尚優(yōu)先級的鄰近節(jié)點。
[0099]如上所述,當向目的節(jié)點轉發(fā)接收幀時,無線通信裝置I更新跳數(shù)值LH和環(huán)檢測數(shù)組LB。如下設置和更新跳數(shù)值LH。
[0100](I)源節(jié)點的無線通信裝置將跳數(shù)值LH初始化成“10”。
[0101](2)接收到幀的無線通信裝置將接收幀的跳數(shù)值減I。
[0102](3)當接收幀的跳數(shù)值LH為零時,無線通信裝置將跳數(shù)值LH初始化成“10”。
[0103]而且,如下設置和更新環(huán)檢測數(shù)組LB。
[0104](I)每個無線通信裝置對哈希函數(shù)給出自身的MAC地址以生成哈希值。哈希值指定環(huán)檢測數(shù)組LB中的位。在以下描述中,由與自身的MAC地址對應的哈希值指定的位被稱為“本地位” O
[0105](2)源節(jié)點的無線通信裝置將環(huán)檢測數(shù)組LB的每個位初始化成“0(未使用)”。
[0106](3)源節(jié)點的無線通信裝置將環(huán)檢測數(shù)組LB中的本地位更新為“I”(已使用)。
[0107](4)接收到幀的無線通信裝置檢查該接收幀的位檢測數(shù)組LB中的本地位是否正在被使用。
[0108](5)當接收幀中的位檢測數(shù)組LB中的本地位正在被使用時,無線通信裝置判定傳輸該接收幀的路徑是環(huán)。在這種情況下,接收幀被返回至作為該接收幀的本地發(fā)送源的鄰近節(jié)點(回溯)。而且,跳數(shù)值LH和環(huán)檢測數(shù)組LB被初始化。
[0109](6)當接收幀中的位檢測數(shù)組LB中的本地位未被使用時,無線通信裝置判定傳輸該接收幀的路徑不是環(huán)。在這種情況下,無線通信裝置將本地位添加至位檢測數(shù)組LB并且轉發(fā)該接收幀。
[0110]注意,在幀處理器13中設置的更新單元13a能夠更新環(huán)檢測數(shù)組LB和跳數(shù)值LH。換言之,由更新單元13a來執(zhí)行圖11中所示的流程圖中的S15、S20、S21和S31。而且,在環(huán)檢查器18中設置的指定單元18a基于用于標識無線通信裝置I的標識信息來指定接收幀中的環(huán)檢測數(shù)組LB中的位。在該示例中,指定單元18a通過利用哈希函數(shù)生成哈希值來指定環(huán)檢測數(shù)組LB中的位。另外,環(huán)檢查器18中設置的判定單元18b判定傳輸該接收幀的路徑是否為環(huán)。換言之,由判定單元18b來執(zhí)行圖11中所示的流程圖中的S16。
[0111]圖12A和圖12B示出了環(huán)判定的示例。這些過程對應于圖11中的S16的示。在圖12A和圖12B中所示的示例中,環(huán)檢測數(shù)組LB的長度是8位。環(huán)檢測位是兩位的。換言之,在每個無線通信裝置中,使用兩個哈希函數(shù)來生成兩個哈希值。
[0112]無線通信裝置I預先生成本地數(shù)組。本地數(shù)組的長度與發(fā)送幀中的環(huán)檢測數(shù)組LB的長度相同。本地數(shù)組中的每個位為“零”。然而,由哈希值指定的位為“I”。在該示例中,兩個哈希值分別為“I”和“3”。因此,本地數(shù)組是如圖12A中所示的“10100000”。注意,本地數(shù)組由例如環(huán)檢查器18生成并且存儲在環(huán)檢查器18中。
[0113]在圖12A中所示的示例中,由無線通信裝置I接收的幀中的環(huán)檢測數(shù)組LB為“01011100”。當無線通信裝置I接收到幀時,環(huán)檢查器18獲得接收幀中的環(huán)檢測數(shù)組LB。然后,環(huán)檢查器18針對每個位在環(huán)檢測數(shù)組LB與本地數(shù)組之間執(zhí)行與(AND)運算。在該示例中,獲得運算結果數(shù)組“00000000”。
[0114]環(huán)檢查器18基于以上與運算的結果來做出環(huán)判定。具體地,環(huán)檢查器18對與運算結果數(shù)組中的“I”的數(shù)目進行計數(shù)。當與運算結果數(shù)組中的“I”的數(shù)目和哈希函數(shù)的數(shù)目不相同時,環(huán)檢查器18判定傳輸該接收幀的路徑不是環(huán)。
[0115]在圖12B中所示的示例中,由無線通信裝置I接收的幀中的環(huán)檢測數(shù)組LB是“10101100”。在這種情況下,當在環(huán)檢測數(shù)組LB與本地數(shù)組之間執(zhí)行與運算時,獲得與運算結果數(shù)組“10100000”。與運算結果數(shù)組中的“I”的數(shù)目為二,該數(shù)目與哈希函數(shù)的數(shù)目相同。因此,環(huán)檢查器18判定傳輸該接收幀的路徑是環(huán)。
[0116]如上所述,當接收幀中的環(huán)檢測數(shù)組LB中的由k個哈希函數(shù)指定的所有位為“1(已使用)”時,無線通信裝置判定建立了環(huán)。然而,當對接收幀進行轉發(fā)時,每個無線通信裝置將本地位添加至環(huán)檢測數(shù)組LB。這增大了由于哈希值之間的碰撞(或者由于布隆過濾器的假陽性)所產生的錯誤檢測的概率,這是因為在距源節(jié)點較大跳數(shù)的節(jié)點中的環(huán)檢測數(shù)組LB中的許多位在被使用。
[0117]鑒于以上現(xiàn)象,用于對跳數(shù)進行計數(shù)的跳數(shù)值LH被添加至在無線自組織網絡中傳輸?shù)膸?。每個無線通信裝置參考接收幀中的跳數(shù)值LH以針對每個接收幀來檢測距源節(jié)點(或距對跳數(shù)值LH進行初始化的中繼節(jié)點)的跳數(shù)。當跳數(shù)已經達到指定閾值(在以上示例中為10)時,無線通信裝置對環(huán)檢測數(shù)組LB進行初始化。這抑制了基于哈希值之間的碰撞(或基于布隆過濾器的假陽性)的錯誤檢測。
[0118]圖13示出了更新位檢測數(shù)組的方法的示例。該過程與圖11中所示的S21的示例對應。還注意,在圖13中所示的示例中,環(huán)檢測數(shù)組LB的長度是8位。而且,在每個無線通信裝置中,使用兩個哈希函數(shù)來生成兩個哈希值。
[0119]幀處理器13在環(huán)檢測數(shù)組LB與本地數(shù)組之間針對每個位執(zhí)行或(OR)運算。在該示例中,在“01011100”與“10100000”之間執(zhí)行或運算以獲得或運算結果數(shù)組“11111100”。該或運算結果數(shù)組表示本地位被添加至接收幀中的環(huán)檢測數(shù)組LB的狀態(tài)。因此,當對接收幀進行轉發(fā)時,幀處理器13將接收幀中的環(huán)檢測數(shù)組LB更新至或運算結果數(shù)組。從而,無線通信裝置I向目的地發(fā)送包括添加了本地位的環(huán)檢測數(shù)組LB的幀。
[0120]〈第一示例〉
[0121]在第一示例中,無線自組織網絡包括如圖14中所示的節(jié)點A至G。節(jié)點A至G中的每個設置有上述實施方式的無線通信裝置。設置到節(jié)點A至節(jié)點G的無線通信裝置分別可以被稱為無線通信裝置A至無線通信裝置G。
[0122]被添加至幀的環(huán)檢測數(shù)組LB的長度為7位。被添加至幀的跳數(shù)值LH的初始值為5。無線通信裝置A至G分別將自身的MAC地址給至哈希函數(shù),從而生成哈希值。在該示例中,無線通信裝置A至G使用相同哈希函數(shù)以分別生成哈希值。無線通信裝置A至G分別預先生成并且保持本地數(shù)組。本地數(shù)組的長度為7位,該長度與環(huán)檢測數(shù)組LB的長度相同。而且,本地數(shù)組表示基于MAC地址生成的哈希值。例如,在無線通信裝置A中生成的哈希值指定“第五位”。在這種情況下,無線通信裝置A的本地數(shù)組是如圖14中所示的“0000100”。而且,在無線通信裝置B中生成的哈希值指定“第七位”。在這種情況下,無線通信裝置B的本地數(shù)組是如圖14中所示的“0000001”。
[0123]在第一示例中,節(jié)點A中設置的無線通信裝置A將數(shù)據(jù)發(fā)送至節(jié)點G。在下文中,將對在無線自組織網絡中從節(jié)點A發(fā)送的幀被轉發(fā)至節(jié)點G的順序給出說明。
[0124]步驟1:無線通信裝置A根據(jù)圖10中所示的流程圖來生成幀。幀的目的地(GD)是節(jié)點G。作為幀的本地發(fā)送目的地(LD)的鄰近節(jié)點是節(jié)點B。跳數(shù)值LH被初始化成“5”。環(huán)檢測數(shù)組LB被初始化成“0000000”。在下文中,幀處理器13將本地位添加至環(huán)檢測數(shù)組LB。作為示例,在環(huán)檢測數(shù)組LB “0000000”與本地數(shù)組“0000100”之間針對每個位執(zhí)行或運算以生成更新的環(huán)檢測數(shù)組LB“0000100”。然后,無線通信裝置A向節(jié)點B發(fā)送添加了 “LH=5”和“LB =0000100” 的幀。
[0125]步驟2:無線通信裝置B根據(jù)圖11中所示的流程圖來對接收幀進行處理。具體地,幀處理器13將接收幀中的跳數(shù)值LH從“5”減至“4”。環(huán)檢查器18執(zhí)行接收幀中的環(huán)檢測數(shù)組LB“0000100”與無線通信裝置B的本地數(shù)組“0000001”之間的與運算,以獲得與運算結果數(shù)組“0000000”。由于該與運算結果數(shù)組不包括“I”,所以環(huán)檢查器18判定傳輸該接收幀的路徑不是環(huán)?;谠摻邮諑哪康牡?,幀處理器13選擇要將該幀發(fā)送至的鄰近節(jié)點。在該示例中,假設針對“GD =節(jié)點G”獲得“LD =節(jié)點C" ο幀處理器13將本地位添加至環(huán)檢測數(shù)組LB。在該示例中,在環(huán)檢測數(shù)組LB “0000100”與本地數(shù)組“0000001”之間執(zhí)行或運算,從而生成更新的環(huán)檢測數(shù)組LB“0000101”。然后,無線通信裝置B向節(jié)點發(fā)送添加了 “LH = 4”和“LB =0000101” 的幀。
[0126]步驟3:無線通信裝置C根據(jù)圖11中所示的流程圖對接收幀進行處理。具體地,幀處理器13將接收幀中的跳數(shù)值LH從“4”減至“3”。環(huán)檢查器18執(zhí)行接收幀中的環(huán)檢測數(shù)組LB“0000101”與無線通信裝置C的本地數(shù)組“1000000”之間的與運算,以獲得與運算結果數(shù)組“0000000”。由于該與運算結果數(shù)組不包括“I”,所以環(huán)檢查器18判定傳輸該接收幀的路徑不是環(huán)。基于該接收幀的目的地,幀處理器13選擇要將該幀發(fā)送至的鄰近節(jié)點。在該示例中,假設針對“GD =節(jié)點G”獲得“LD =節(jié)點D”。幀處理器13將本地位添加至環(huán)檢測數(shù)組LB。在該示例中,在環(huán)檢測數(shù)組LB “0000101”與本地數(shù)組“1000000”之間執(zhí)行或運算,從而生成更新的環(huán)檢測數(shù)組1^“1000101”。然后,無線通信裝置(:向節(jié)點0發(fā)送添加了“1^ = 3”和“1^ =1000101” 的幀。
[0127]步驟4:無線通信裝置D根據(jù)圖11中所示的流程圖對接收幀進行處理。具體地,幀處理器13將接收幀中的跳數(shù)值從“3”減至“2”。環(huán)檢查器18執(zhí)行接收幀中的環(huán)檢測數(shù)組LB“1000101”與無線通信裝置D的本地數(shù)組“0100000”之間的與運算,以獲得與運算結果數(shù)組“0000000”。由于該與運算結果數(shù)組不包括“I”,所以環(huán)檢查器18判定傳輸該接收幀的路徑不是環(huán)?;谠摻邮諑哪康牡?,幀處理器13選擇要將該幀發(fā)送至的鄰近節(jié)點。在該示例中,假設針對“GD =節(jié)點G”獲得“LD =節(jié)點E”。幀處理器13將本地位添加至環(huán)檢測數(shù)組LB。在該示例中,在環(huán)檢測數(shù)組LB “1000101”與本地數(shù)組“0100000”之間執(zhí)行或運算,從而生成更新的環(huán)檢測數(shù)組LB“1100101”。然后,無線通信裝置D向節(jié)點E發(fā)送添加了 “LH = 2”和“LB =1100101” 的幀。
[0128]步驟5:無線通信裝置E根據(jù)圖11中所示的流程圖對接收幀進行處理。具體地,幀處理器13將接收幀中的跳數(shù)值LH從“2”減至“I”。環(huán)檢查器18執(zhí)行接收幀中的環(huán)檢測數(shù)組LB“1100101”與無線通信裝置E的本地數(shù)組“0010000”之間的與運算,以獲得與運算結果數(shù)組“0000000”。由于該與運算結果數(shù)組不包括“I”,所以環(huán)檢查器18判定傳輸該接收幀的路徑不是環(huán)?;谠摻邮諑哪康牡兀瑤幚砥?3選擇要將該幀發(fā)送至的鄰近節(jié)點。在該示例中,假設針對“GD =節(jié)點G”獲得“LD =節(jié)點A”。幀處理器13將本地位添加至環(huán)檢測數(shù)組LB。在該示例中,在環(huán)檢測數(shù)組LB “1100101”與本地數(shù)組“0010000”之間執(zhí)行或運算,從而生成更新的環(huán)檢測數(shù)組LB“1110101”。然后,無線通信裝置E向節(jié)點A發(fā)送添加了 “LH=1”和“LB =1110101” 的幀。
[0129]步驟6:無線通信裝置A根據(jù)圖11中所示的流程圖對接收幀進行處理。具體地,幀處理器13將接收幀中的跳數(shù)值LH從“I”減至“O”。環(huán)檢查器18執(zhí)行接收幀中的環(huán)檢測數(shù)組LB“1110101”與無線通信裝置A的本地數(shù)組“0000100”之間的與運算,以獲得與運算結果數(shù)組“0000100”。由于該與運算結果數(shù)組包括“I”,所以環(huán)檢查器18判定傳輸該接收幀的路徑是環(huán)。當判定了傳輸該接收幀的路徑是環(huán)時,無線通信裝置A執(zhí)行回溯。具體地,無線通信裝置A向節(jié)點E返回從節(jié)點E接收的幀。在該返回中,無線通信裝置A向節(jié)點E返回添加了 “LH = 0”和 uLB = Il 10101” 的幀。
[0130]步驟7:無線通信裝置E根據(jù)圖11中所示的流程圖對接收幀進行處理。由無線通信裝置E接收的幀是回溯幀。因此,執(zhí)行圖11中所示的流程圖中的S31至S33。具體地,幀處理器13將跳數(shù)值LH初始化成“5”,并且還將環(huán)檢測數(shù)組LB初始化成“0000000”?;谠摻邮諑哪康牡?,幀處理器13選擇要將該幀發(fā)送至的鄰近節(jié)點。對于該發(fā)送,從優(yōu)先級表16中刪除在步驟5中選擇的節(jié)點A,并且選擇下一個優(yōu)先級鄰近節(jié)點。在該示例中,假設針對“GD =節(jié)點G”獲得“LD =節(jié)點F”。幀處理器13將本地位添加至環(huán)檢測數(shù)組LB。在該示例中,在初始化的環(huán)檢測數(shù)組LB “0000000”與無線通信裝置E的本地數(shù)組“0010000”之間執(zhí)行或運算,從而生成更新的環(huán)檢測數(shù)組LB“0010000”。然后,無線通信裝置E向節(jié)點F發(fā)送添加了“LH=5”和“LB= 0010000” 的幀。
[0131]步驟8:無線通信裝置F根據(jù)圖11中所示的流程圖來處理接收幀。具體地,幀處理器13將接收幀中的跳數(shù)值LH從“5”減至“4”。環(huán)檢查器18執(zhí)行接收幀中的環(huán)檢測數(shù)組LB“0010000”與無線通信裝置F的本地數(shù)組“0000010”之間的與運算,以獲得與運算結果數(shù)組“0000000”。由于該與運算結果數(shù)組不包括“I”,所以環(huán)檢查器18判定傳輸該接收幀的路徑不是環(huán)?;谠摻邮諑哪康牡?,幀處理器13選擇要將該幀發(fā)送至的鄰近節(jié)點。在該示例中,假設針對“GD =節(jié)點G”獲得“LD =節(jié)點G”。幀處理器13將本地位添加至環(huán)檢測數(shù)組LB。在該示例中,在環(huán)檢測數(shù)組LB “0010000”與本地數(shù)組“0000010”之間執(zhí)行或運算,從而生成更新的環(huán)檢測數(shù)組LB“0010010”。然后,無線通信裝置E向節(jié)點G發(fā)送添加了 “LH = 4”和“LB =0010010” 的幀。
[0132]步驟9:無線通信裝置G根據(jù)圖11中所示的流程圖來處理接收幀。具體地,在檢測到接收幀的目的地是節(jié)點G時,幀處理器13將存儲在該幀的有效載荷中的數(shù)據(jù)饋送至上層處理器14。
[0133]如上所述,根據(jù)本發(fā)明的實施方式的無線通信裝置I能夠使用被添加至幀的環(huán)檢測數(shù)組LB來判定傳輸幀的路徑是否為環(huán)。這使得無線通信裝置I不必將過去發(fā)送或轉發(fā)的幀管理相對長的時間段以做出環(huán)判定。因此,與常規(guī)技術相比,可以降低用于做出環(huán)判定的存儲器的容量。
[0134]當在網絡中對幀進行轉發(fā)時,甚至能夠使用其中節(jié)點ID被添加至每個節(jié)點中的幀的頭的方法來做出環(huán)判定。然而,該方法引起頭長度的改變,使每個節(jié)點中的幀過程復雜化。而且,較大的跳數(shù)值使頭較長,導致數(shù)據(jù)傳輸效率劣化。
[0135]〈第二示例〉
[0136]第二示例中的無線自組織網絡的配置與第一示例中的無線自組織網絡的配置類似。然而,在第二示例中,如圖15中所示,無線自組織網絡除節(jié)點A至G之外還包括節(jié)點H。
[0137]無線通信裝置G中生成的哈希值與無線通信裝置B中生成的指定“第七位”的哈希值相同。因此,無線通信裝置G的本地數(shù)組是如圖15中所示的“0000001”。換言之,節(jié)點B與節(jié)點G的哈希值彼此碰撞。在這種情況下,存在由于發(fā)生假陽性而導致的錯誤檢測的可能性。
[0138]為了解決該問題,在根據(jù)本發(fā)明的實施方式的無線通信方法中,跳數(shù)值LH被添加至幀。然后,通過基于該跳數(shù)值LH對環(huán)檢測數(shù)組LB進行初始化,抑制了由于假陽性導致的錯誤檢測。在下文中,對在無線自組織網絡中將從節(jié)點A發(fā)送的幀轉發(fā)至節(jié)點H的順序進行說明。
[0139]第二示例中的步驟I至步驟4中的過程與第一示例中的步驟I至步驟4中的過程基本相同。換言之,無線通信裝置E從節(jié)點D接收添加了 “LH=2”和“LB=1100101”的幀。然而,在第二示例中,幀的最終目的地是節(jié)點H。
[0140]步驟5:無線通信裝置E根據(jù)圖11中所示的流程圖來處理接收幀。具體地,幀處理器13將接收幀中的跳數(shù)值LH從“2”減至“I”。環(huán)檢查器18執(zhí)行接收幀中的環(huán)檢測數(shù)組LB“1100101”與無線通信裝置E的本地數(shù)組“0010000”之間的與運算,以獲得與運算結果數(shù)組“0000000”。由于該與運算結果數(shù)組不包括“I”,所以環(huán)檢查器18判定傳輸該接收幀的路徑不是環(huán)?;谠摻邮諑哪康牡兀瑤幚砥?3選擇要將該幀發(fā)送至的鄰近節(jié)點。在該示例中,假設針對“GD =節(jié)點H”獲得“LD =節(jié)點F”。幀處理器13將本地位添加至環(huán)檢測數(shù)組LB。在該示例中,在環(huán)檢測數(shù)組LB “1100101”與本地數(shù)組“0010000”之間執(zhí)行或運算,從而生成更新的環(huán)檢測數(shù)組LB“111010Γ。然后,無線通信裝置E向節(jié)點F發(fā)送添加了“LH=Γ和“LB =1110101” 的幀。
[0141]步驟6:無線通信裝置F根據(jù)圖11中所示的流程圖來處理接收幀。具體地,幀處理器13將接收幀中的跳數(shù)值LH從“I”減至“O”。環(huán)檢查器18執(zhí)行接收幀中的環(huán)檢測數(shù)組LB“1110101”與無線通信裝置F的本地數(shù)組“0000010”之間的與運算,以獲得與運算結果數(shù)組“0000000”。由于該與運算結果數(shù)組不包括“I”,所以環(huán)檢查器18判定傳輸該接收幀的路徑不是環(huán)?;谠摻邮諑哪康牡?,幀處理器13選擇要將該幀發(fā)送至的鄰近節(jié)點。在該示例中,假設針對“GD =節(jié)點H”獲得“LD =節(jié)點G”。然而,跳數(shù)值LH已經被更新為“O”。因此,幀處理器13將跳數(shù)值LH初始化成“5”并且還將環(huán)檢測數(shù)組LB初始化成“0000000”。之后,幀處理器13將本地位添加至初始化的環(huán)檢測數(shù)組LB。在該示例中,在環(huán)檢測數(shù)組LB “0000000”與本地數(shù)組“0000010”之間執(zhí)行或運算,從而生成更新的環(huán)檢測數(shù)組LB “0000010”。然后,無線通信裝置E向節(jié)點G發(fā)送添加了 “LH=5”和“LB = 0000010”的幀。
[0142]步驟7:無線通信裝置G根據(jù)圖11中所示的流程圖來處理接收幀。具體地,幀處理器13將接收幀中的跳數(shù)值LH從“5”減至“4”。環(huán)檢查器18執(zhí)行接收幀中的環(huán)檢測數(shù)組LB“0000010”與無線通信裝置G的本地數(shù)組“0000001”之間的與運算,以獲得與運算結果數(shù)組“0000000”。由于該與運算結果數(shù)組不包括“I”,所以環(huán)檢查器18判定傳輸該接收幀的路徑不是環(huán)?;谠摻邮諑哪康牡兀瑤幚砥?3選擇要將該幀發(fā)送至的鄰近節(jié)點。在該示例中,假設針對“GD =節(jié)點H”獲得“LD =節(jié)點H”。幀處理器13將本地位添加至環(huán)檢測數(shù)組LB。在該示例中,在環(huán)檢測數(shù)組LB “0000010”與本地數(shù)組“0000001”之間執(zhí)行或運算,以生成更新的環(huán)檢測數(shù)組LB“0000011”。然后,無線通信裝置G向節(jié)點H發(fā)送添加了 “LH = 4”和“LB =0000011” 的幀。
[0143]步驟8:無線通信裝置H根據(jù)圖11中所示的流程圖來處理接收幀。具體地,在檢測到接收幀的目的地是節(jié)點H時,幀處理器13將存儲在該幀中的有效載荷中的數(shù)據(jù)饋送至上層處理器14。
[0144]如上所述,當距源節(jié)點的跳數(shù)已經達到指定時,無線通信裝置I對添加至幀的環(huán)檢測數(shù)組LB進行初始化。在圖14中所示的示例中,在與節(jié)點A隔開五跳的節(jié)點F中對環(huán)檢測數(shù)組LB進行初始化。因此,即使當在無線通信裝置B中生成的哈希值與在無線通信裝置G中生成的哈希值彼此相同時,在無線通信裝置G中已經避免了錯誤環(huán)判定。換言之,抑制了由于布隆過濾器的假陽性導致的錯誤判定。
[0145]根據(jù)本發(fā)明的一個方面,能夠在不增大在無線通信裝置中使用的存儲器的量的情況下檢測無線自組織網絡中的環(huán)。
【主權項】
1.一種由在無線自組織網絡中使用的無線通信裝置執(zhí)行的無線通信方法,所述方法包括: 根據(jù)用于標識所述無線通信裝置的標識信息來指定被添加至接收幀的環(huán)檢測數(shù)組中的位; 當所述環(huán)檢測數(shù)組中所指定的位未被使用的情況下,判定傳輸所述接收幀的路徑不是環(huán); 當所述環(huán)檢測數(shù)組中所指定的位被使用的情況下,判定傳輸所述接收幀的路徑是環(huán); 當判定傳輸所述接收幀的所述路徑不是環(huán)的情況下,將所述環(huán)檢測數(shù)組中所指定的位更新至正在被使用的狀態(tài),并且向目的節(jié)點發(fā)送所述接收幀;以及 當判定傳輸所述接收幀的所述路徑是環(huán)的情況下,將所述接收幀返回至作為所述接收幀的本地發(fā)送源的鄰近節(jié)點。2.根據(jù)權利要求1所述的無線通信方法,其中 用于對跳數(shù)進行計數(shù)的跳數(shù)值被添加至在所述無線自組織網絡中傳輸?shù)膸⑶?所述無線通信方法還包括 當判定傳輸所述接收幀的所述路徑不是環(huán)并且被添加至所述接收幀的所述跳數(shù)值是指定數(shù)的情況下,對被添加至所述接收幀的所述環(huán)檢測數(shù)組和所述跳數(shù)值進行初始化,并且向目的節(jié)點發(fā)送所述環(huán)檢測數(shù)組和所述跳數(shù)值被初始化的所述接收幀。3.根據(jù)權利要求1所述的無線通信方法,其中 所述指定過程使用哈希函數(shù)、根據(jù)所述無線通信裝置的標識信息來指定所述環(huán)檢測數(shù)組中的位。4.根據(jù)權利要求3所述的無線通信方法,其中 所述指定過程使用多個哈希函數(shù)、根據(jù)所述無線通信裝置的標識信息來指定所述環(huán)檢測數(shù)組中的多個位,并且 當所述環(huán)檢測數(shù)組中所指定的所述多個位全部被使用的情況下,所述判定過程判定傳輸所述接收幀的所述路徑是環(huán)。5.—種在無線自組織網絡中使用的無線通信裝置,所述裝置包括: 指定單元,被配置成根據(jù)用于標識所述無線通信裝置的標識信息來指定被添加至接收幀的環(huán)檢測數(shù)組中的位; 判定單元,被配置成:當所述環(huán)檢測數(shù)組中所指定的位未被使用的情況下判定傳輸所述接收幀的路徑不是環(huán),以及當所述環(huán)檢測數(shù)組中所指定的位被使用的情況下判定傳輸所述接收幀的路徑是環(huán); 更新單元,被配置成當判定傳輸所述接收幀的所述路徑不是環(huán)的情況下將所述環(huán)檢測數(shù)組中由所述指定單元指定的位更新至正在被使用的狀態(tài);以及 發(fā)送器,被配置成:當判定傳輸所述接收幀的所述路徑不是環(huán)的情況下向目的節(jié)點發(fā)送所述環(huán)檢測數(shù)組被所述更新單元更新的所述接收幀,以及當判定傳輸所述接收幀的所述路徑是環(huán)的情況下將所述接收幀返回至作為所述接收幀的本地發(fā)送源的鄰近節(jié)點。6.根據(jù)權利要求5所述的無線通信裝置,其中 用于對跳數(shù)進行計數(shù)的跳數(shù)值被添加至在所述無線自組織網絡中傳輸?shù)膸?,并?當判定傳輸所述接收幀的所述路徑不是環(huán)并且被添加至所述接收幀的所述跳數(shù)值是指定數(shù)的情況下,所述更新單元對被添加至所述接收幀的所述環(huán)檢測數(shù)組和所述跳數(shù)值進行初始化,并且所述發(fā)送器向目的節(jié)點發(fā)送所述環(huán)檢測數(shù)組和所述跳數(shù)值被初始化的所述接收幀。7.根據(jù)權利要求5所述的無線通信裝置,其中 所述指定單元通過使用哈希函數(shù)、根據(jù)所述無線通信裝置的標識信息來指定所述環(huán)檢測數(shù)組中的位。8.根據(jù)權利要求7所述的無線通信裝置,其中 所述指定單元通過使用多個哈希函數(shù)、根據(jù)所述無線通信裝置的標識信息來指定所述環(huán)檢測數(shù)組中的多個位,并且 當所述環(huán)檢測數(shù)組中被所述指定單元指定的所述多個位全部被使用的情況下,所述判定單元判定傳輸所述接收幀的所述路徑是環(huán)。
【文檔編號】H04L12/705GK105827525SQ201510965122
【公開日】2016年8月3日
【申請日】2015年12月21日
【發(fā)明人】東中川隆志, 櫻井克己, 高橋勇治, 巖尾忠重
【申請人】富士通株式會社