換指令路徑是通信路徑02或03時(shí),該過程進(jìn)行到步驟S8。
[0071]在步驟S8中,交換機(jī)3確定交換指令路徑是否是其路徑信息存儲在存儲器2中的通信路徑。交換機(jī)3將交換指令路徑的路徑標(biāo)識符與存儲器2中所存儲的路徑信息的路徑標(biāo)識符進(jìn)行比較,并且當(dāng)這兩個(gè)標(biāo)識符相互一致時(shí),交換機(jī)3確定交換指令路徑的路徑信息存儲在存儲器2中。
[0072]當(dāng)交換指令路徑的路徑信息沒有存儲在存儲器2中時(shí)(步驟S8中“否”),也就是說,交換指令路徑是通信路徑02時(shí),該過程結(jié)束。此后,控制器4通過使用通信路徑01來傳送通信數(shù)據(jù)。
[0073]另一方面,當(dāng)交換指令路徑的路徑信息存儲在存儲器2中時(shí)(步驟S8中“是”),也就是說,交換指令路徑是通信路徑03時(shí),該過程進(jìn)行到步驟S9。
[0074]在步驟S9中,交換機(jī)3選擇交換指令路徑03作為用于傳送通信數(shù)據(jù)的通信路徑。
[0075]在步驟S10中,交換機(jī)3將交換指令路徑03的優(yōu)先級改變成1。進(jìn)一步地,交換機(jī)3將通信路徑01的優(yōu)先級改變成0。由此,要使用的通信路徑被交換成通信路徑03。
[0076]此后,控制器4通過使用通信路徑03來傳送通信數(shù)據(jù)。換句話說,控制器4將通信數(shù)據(jù)傳送到作為通信路徑03中的下一跳的通信設(shè)備12。在通信路徑被交換之后,控制器4可以將交換指令信息傳送到另一通信設(shè)備。
[0077]如上所述,根據(jù)當(dāng)前實(shí)施例,通信設(shè)備10能夠根據(jù)從另一通信設(shè)備接收到的交換指令信息來交換要使用的通信路徑。要被交換的通信路徑的路徑信息預(yù)先存儲在存儲器2中,從而使得不需要時(shí)間來在存儲器2中存儲所述通信路徑的路徑信息。因此,有可能在短時(shí)間內(nèi)交換通信路徑。
[0078](第三實(shí)施例)
[0079]將參照圖9和圖10描述根據(jù)第三實(shí)施例的通信設(shè)備10。根據(jù)當(dāng)前實(shí)施例的通信設(shè)備10根據(jù)通信路徑的連通性來交換通信路徑。
[0080]首先,將參照圖9描述根據(jù)第三實(shí)施例的通信設(shè)備10的功能性配置。圖9是示出了根據(jù)當(dāng)前實(shí)施例的通信設(shè)備10的功能性配置的框圖。如圖9所示,通信設(shè)備10包括連接信息收集器6。其他組件與第一實(shí)施例中的那些相同。
[0081]連接信息收集器6(以下稱為“連接器6”)收集連接信息。連接信息是指示通信路徑的連通性的信息。連接信息可以是指示連通性存在或不存在的信息,或者可以是指示連通性強(qiáng)度的信息。作為連接信息,例如,通信數(shù)據(jù)的傳輸發(fā)生失敗的次數(shù)以及ICMP的錯(cuò)誤通知能夠被使用。然而,連接信息不限于此。
[0082]根據(jù)當(dāng)前實(shí)施例的通信設(shè)備10的硬件配置與第一實(shí)施例中的相同。當(dāng)計(jì)算機(jī)執(zhí)行通信程序時(shí),實(shí)現(xiàn)收集器6的功能性配置。
[0083]接下來,將參照圖10描述根據(jù)當(dāng)前實(shí)施例的通信設(shè)備10的操作。圖10是示出了根據(jù)當(dāng)前實(shí)施例的通信設(shè)備10的操作的流程圖。在以下的描述中,假設(shè)通信設(shè)備10被包括在圖5所示的多跳網(wǎng)絡(luò)中,并且當(dāng)操作開始時(shí),通信設(shè)備10存儲通信路徑01、02和03的路徑信息,并使用通信路徑01。進(jìn)一步地,假設(shè)通信路徑01和02是不可連接的,而通信路徑03是可連接的。
[0084]在步驟S11中,收集器6收集指示了當(dāng)前在使用的通信路徑01的連通性的連接信息。收集器6可以從另一通信設(shè)備收集連接信息,或者可以根據(jù)通信數(shù)據(jù)的傳輸結(jié)果的歷史信息等來生成連接信息。所述另一通信設(shè)備可以是作為通信設(shè)備10的下一跳的通信設(shè)備11,或者可以是本身作為服務(wù)器的通信設(shè)備13。
[0085]在步驟S12中,交換機(jī)3基于收集器6所收集的連接信息,確定當(dāng)前在使用的通信路徑01是否是可連接的。換句話說,交換機(jī)3確定通信數(shù)據(jù)是否能夠通過當(dāng)前在使用的通信路徑01而被傳送到通信設(shè)備13。
[0086]例如,交換機(jī)3通過將連接信息所指示的連通性與預(yù)定的門限值進(jìn)行比較來實(shí)施所述確定。例如,當(dāng)連接信息是預(yù)定的時(shí)間段內(nèi)通信數(shù)據(jù)的傳輸失敗的次數(shù)時(shí),交換機(jī)3將傳輸失敗的次數(shù)與預(yù)定的門限值進(jìn)行比較,并且當(dāng)傳輸失敗的次數(shù)大于或等于所述門限值時(shí),交換機(jī)3確定通信路徑01是不可連接的??蛇x地,交換機(jī)3可以基于ICMP的錯(cuò)誤通知的存在或不存在來確定通信路徑01是否是可連接的。
[0087]當(dāng)當(dāng)前在使用的通信路徑01是可連接的時(shí)候(步驟S12中“是”),該過程結(jié)束。此后,控制器4通過使用通信路徑01來傳送通信數(shù)據(jù)。
[0088]另一方面,當(dāng)當(dāng)前在使用的通信路徑01是不可連接的時(shí)候(步驟S12中“否”),該過程前進(jìn)到步驟S13。
[0089]在步驟S13中,交換機(jī)3確定存儲器2中存儲的是否是某通信路徑(另一通信路徑)的路徑信息,而不是當(dāng)前在使用的通信路徑的路徑信息。
[0090]當(dāng)另一通信路徑的路徑信息沒有被存儲在存儲器2中時(shí)(步驟S13中“否”),該過程結(jié)束。此后,通信設(shè)備10從多跳網(wǎng)絡(luò)斷開??蛇x地,通信設(shè)備10可以通過第一實(shí)施例中描述的方法,使用新的通信路徑來實(shí)施通信。
[0091]另一方面,當(dāng)另一通信路徑的路徑信息被存儲在存儲器2中時(shí)(步驟S13中“是”),該過程進(jìn)行到步驟S14。
[0092]在步驟S14中,交換機(jī)3根據(jù)收集器6所收集的連接信息,確定其路徑信息被存儲在存儲器2中的另一通信路徑是否是可連接的。能夠按照與步驟S12中相同的方法來實(shí)施所述確定。在步驟S11或者步驟S14中可以收集另一通信路徑的路徑信息。
[0093]當(dāng)存儲器2中存儲的所有其他通信路徑都是不可連接的時(shí)候(步驟S14中“否”),該過程結(jié)束。此后,通信設(shè)備10從多跳網(wǎng)絡(luò)中斷開??蛇x地,通信設(shè)備10可以通過第一實(shí)施例中描述的方法,使用新的通信路徑來實(shí)施通信。
[0094]另一方面,當(dāng)存儲器2中存儲的其他通信路徑中的至少一個(gè)是可連接的時(shí)候(步驟S14中“是”),該過程進(jìn)行到步驟S15。
[0095]在步驟S15中,交換機(jī)3選擇被確定為是可連接的通信路徑03,作為用于傳送通信數(shù)據(jù)的通信路徑。當(dāng)存在可連接的多個(gè)其他通信路徑時(shí),例如,交換機(jī)3選擇基于連接信息具有最佳連通性的通信路徑,或者選擇通往服務(wù)器(根節(jié)點(diǎn))的跳數(shù)最少的通信路徑。
[0096]在步驟S16中,交換機(jī)3將所選擇的通信路徑03的優(yōu)先級改變成1。進(jìn)一步地,交換機(jī)3將通信路徑01和02的優(yōu)先級改變成0。由此,要使用的通信路徑被交換到通信路徑03ο
[0097]此后,控制器4通過使用通信路徑03來傳送通信數(shù)據(jù)。換句話說,控制器4將通信數(shù)據(jù)傳送到通信路徑03中作為下一跳的通信設(shè)備12。
[0098]如上所述,根據(jù)當(dāng)前實(shí)施例,當(dāng)當(dāng)前在使用的通信路徑不具有連通性或者具有低連通性時(shí),通信設(shè)備10能夠自動(dòng)地選擇另一可連接的通信路徑,并且與服務(wù)器(根節(jié)點(diǎn))進(jìn)行通信。
[0099](第四實(shí)施例)
[0100]將參照圖11到圖15描述根據(jù)第四實(shí)施例的通信設(shè)備10。根據(jù)當(dāng)前實(shí)施例的通信設(shè)備10被包括在采用RPL(用于低功率和有損網(wǎng)絡(luò)的IPv6路由協(xié)議)作為通信協(xié)議的多跳網(wǎng)絡(luò)中。
[0101]首先,將參照圖11描述當(dāng)通信設(shè)備10加入到包括圖2的通信設(shè)備11至13的多跳網(wǎng)絡(luò)中時(shí),用于設(shè)置通信設(shè)備10的通信路徑的方法。在以下的描述中,假設(shè)通信設(shè)備11和12是通信設(shè)備10的鄰近節(jié)點(diǎn),而通信設(shè)備13是根節(jié)點(diǎn)(服務(wù)器)。
[0102]通信設(shè)備10通過多播將DIS(D0DAG信息征集)傳送到鄰近節(jié)點(diǎn)(通信設(shè)備)11和12。DIS是用于請求接收到該DIS的節(jié)點(diǎn)傳送D10(D0DAG信息對象)的消息。接收到DIS的鄰近節(jié)點(diǎn)11和12向通信設(shè)備10傳送D10。
[0103]D10是通知與D0DAG(面向目的地的有向非循環(huán)圖)有關(guān)的D0DAG信息的消息,D0DAG是多跳網(wǎng)絡(luò)的拓?fù)洹T诖?,圖12是示出了 D10的格式的示例的示圖。如圖12所示,D10 將 RPL 實(shí)例 ID、版本號、等級(Rank)、G、MOP、Pfr、DTSN、標(biāo)志(Flags)和 D0DAGID 作為D0DAG信息來進(jìn)行通知。
[0104]RPL實(shí)例ID是為RPL的每個(gè)實(shí)例提供的標(biāo)識符。RPL實(shí)例ID的數(shù)據(jù)長度是一個(gè)字節(jié)。當(dāng)RPL實(shí)例ID的最高有效位為0時(shí),所述RPL實(shí)例ID指示全局實(shí)例,而當(dāng)最高有效位為1時(shí),所述RPL實(shí)例ID指示本地實(shí)例。RPL實(shí)例ID能被用作路徑標(biāo)識符。
[0105]版本號是每個(gè)通信路徑的版本。版本號的數(shù)據(jù)長度是一個(gè)字節(jié)。版本號能被用作路徑標(biāo)識符。
[0106]等級(等級值)是到根節(jié)點(diǎn)的跳數(shù)。這意味著等級值越小,離根節(jié)點(diǎn)越近。根節(jié)點(diǎn)的等級值是0。在RPL中,基于等級值來設(shè)置通信路徑。等級的數(shù)據(jù)長度是兩個(gè)字節(jié)。
[0107]G指示與根節(jié)點(diǎn)的連通性。G的數(shù)據(jù)長度是一個(gè)比特。G能夠被