專利名稱:樹型組網(wǎng)拓?fù)浣Y(jié)構(gòu)的獲取及地址分配方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信系統(tǒng)中網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的獲取技術(shù),特別是指樹型組網(wǎng)的通信系統(tǒng)中拓?fù)浣Y(jié)構(gòu)的獲取方法,及在其基礎(chǔ)上的網(wǎng)絡(luò)節(jié)點(diǎn)地址分配方法。
背景技術(shù):
在傳輸通信系統(tǒng)中,存在多種組網(wǎng)方式,如星型、鏈型、環(huán)型和樹型等。對于每種組網(wǎng),其網(wǎng)管系統(tǒng),一般由主節(jié)點(diǎn)(MN,Master Node)擔(dān)當(dāng),必須能夠?yàn)槊總€(gè)從節(jié)點(diǎn)(SN,Slave Node)分配通信地址,而且必須知道每個(gè)從節(jié)點(diǎn)在拓?fù)浣Y(jié)構(gòu)中的位置。
在各種拓?fù)浣Y(jié)構(gòu)的組網(wǎng)中,樹型組網(wǎng)是一種比較常用,也是一種比較復(fù)雜的組網(wǎng)方式。這種組網(wǎng)中,主節(jié)點(diǎn)為從節(jié)點(diǎn)分配地址目前采取的方案主要有以下兩種第一種為逐級代理方案,該方案的地址分配是從上到下逐級進(jìn)行的。樹型拓?fù)涞拿恳患壒?jié)點(diǎn)在為其下級節(jié)點(diǎn)分配地址時(shí),根據(jù)主節(jié)點(diǎn)下發(fā)的地址信息為其下級節(jié)點(diǎn)分配地址,并上報(bào)其下級節(jié)點(diǎn)的拓?fù)湮恢煤退峙涞南录壒?jié)點(diǎn)地址,主節(jié)點(diǎn)根據(jù)該下級節(jié)點(diǎn)的地址和拓?fù)湮恢?,為更下一級的?jié)點(diǎn)指定地址,并將該地址信息下發(fā)到所述下級節(jié)點(diǎn),由該下級節(jié)點(diǎn)為其下一級節(jié)點(diǎn)其分配地址。以后為描述方便,稱某一節(jié)點(diǎn)的下一級節(jié)點(diǎn)為該節(jié)點(diǎn)的子節(jié)點(diǎn),稱某一節(jié)點(diǎn)的上一級節(jié)點(diǎn)為該節(jié)點(diǎn)的父節(jié)點(diǎn)。
這種方案的缺點(diǎn)是由于只能串行逐級分配地址,使系統(tǒng)啟動時(shí)間長,并且一旦上一級節(jié)點(diǎn)重啟或故障,則必須重新獲取故障節(jié)點(diǎn)的下級節(jié)點(diǎn)的拓?fù)湮恢?,并重新進(jìn)行地址分配。
第二種方案是通過節(jié)點(diǎn)自身的硬件地址來表示節(jié)點(diǎn),并獲得各節(jié)點(diǎn)在拓?fù)鋱D中的位置。硬件地址可以通過撥碼開關(guān)實(shí)現(xiàn),也可以是節(jié)點(diǎn)設(shè)備出廠時(shí)設(shè)置的固定序列號。這樣,主節(jié)點(diǎn)只要知道網(wǎng)絡(luò)種存在哪些硬件地址,就可以通過廣播掃描的方式獲得組網(wǎng)的拓?fù)浣Y(jié)構(gòu)并為不同的硬件地址分配邏輯地址。
但是這種方案的缺點(diǎn)是在進(jìn)行系統(tǒng)組網(wǎng)和配置時(shí),必須預(yù)先獲得各節(jié)點(diǎn)的拓?fù)湮恢煤陀布刂?,并且必須完全依靠硬件地址的設(shè)置,造成系統(tǒng)可維護(hù)性差。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種樹型組網(wǎng)通信系統(tǒng)中拓?fù)浣Y(jié)構(gòu)的獲取方法,使主節(jié)點(diǎn)能夠自動快速地檢測出各從節(jié)點(diǎn)的拓?fù)湮恢茫玫骄W(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),提高系統(tǒng)的可維護(hù)性。
基于上述目的本發(fā)明提供的一種樹型組網(wǎng)通信系統(tǒng)中拓?fù)浣Y(jié)構(gòu)的獲取方法,包括a)根據(jù)每個(gè)從節(jié)點(diǎn)上一級節(jié)點(diǎn)的Hop編號和與上一級節(jié)點(diǎn)之間的級聯(lián)端口號,通過預(yù)先制定的統(tǒng)一編號規(guī)則設(shè)置每個(gè)從節(jié)點(diǎn)的Hop編號;b)每個(gè)從節(jié)點(diǎn)判斷是否收到從下一級節(jié)點(diǎn)發(fā)來的有效Hop編號,如果是,則將該Hop編號轉(zhuǎn)發(fā)給上一級節(jié)點(diǎn),否則,將自身的Hop編號發(fā)送給上一級節(jié)點(diǎn);c)從節(jié)點(diǎn)的Hop編號轉(zhuǎn)發(fā)到主節(jié)點(diǎn)后,主節(jié)點(diǎn)根據(jù)收到的從節(jié)點(diǎn)Hop編號,通過所述統(tǒng)一編號規(guī)則逆向逐級遞推得到上報(bào)的每個(gè)Hop編號所對應(yīng)的從節(jié)點(diǎn)至主節(jié)點(diǎn)之間路徑上的各級節(jié)點(diǎn)。
該方法步驟a)包括樹型組網(wǎng)中的主節(jié)點(diǎn)向自身的下一級從節(jié)點(diǎn)下發(fā)Hop編號;樹型組網(wǎng)中的每個(gè)從節(jié)點(diǎn)在接收到上一級節(jié)點(diǎn)下發(fā)的Hop編號后,設(shè)置該Hop編號為自身的Hop編號,并通過預(yù)先制定的統(tǒng)一編號規(guī)則,由自身的Hop編號和與下一級節(jié)點(diǎn)之間的下級級聯(lián)端口號計(jì)算出該節(jié)點(diǎn)下一級每個(gè)節(jié)點(diǎn)的Hop編號,分別下發(fā)至對應(yīng)的下級級聯(lián)端口。
該方法步驟a)包括樹型組網(wǎng)中的每個(gè)節(jié)點(diǎn)向下一級節(jié)點(diǎn)下發(fā)自身Hop編號和與下一級節(jié)點(diǎn)之間的級聯(lián)端口號;下一級節(jié)點(diǎn)根據(jù)收到的Hop編號和級聯(lián)端口號,通過預(yù)先制定的統(tǒng)一編號規(guī)則計(jì)算Hop編號,將得到的Hop編號設(shè)置為自身的Hop編號。
該方法所述編號規(guī)則為下一級節(jié)點(diǎn)的Hop編號=上一級節(jié)點(diǎn)的Hop編號×2k+上一級與該下一級節(jié)點(diǎn)之間的級聯(lián)端口編號,其中,k為整數(shù),且2k大于等于系統(tǒng)中所述級聯(lián)端口編號的上限值;所述的主節(jié)點(diǎn)通過所述固定編號規(guī)則逆向逐級遞推方法為將當(dāng)前Hop編號右移k位后所得的結(jié)果確定為當(dāng)前Hop編號對應(yīng)節(jié)點(diǎn)的上一級節(jié)點(diǎn)的Hop編號。
該方法所述2k恰好大于或等于系統(tǒng)中所述級聯(lián)端口編號的上限值。
該方法所述步驟c)后進(jìn)一步包括主節(jié)點(diǎn)保存每條路徑上末級從節(jié)點(diǎn)的Hop編號;進(jìn)行路徑檢測時(shí),被檢測路徑上的每個(gè)從節(jié)點(diǎn)判斷是否收到從下一級節(jié)點(diǎn)發(fā)來的有效Hop編號,如果是,則將該Hop編號轉(zhuǎn)發(fā)給上一級節(jié)點(diǎn),否則,將自身的Hop編號發(fā)送給上一級節(jié)點(diǎn);主節(jié)點(diǎn)從獲得的Hop編號中獲得路徑上當(dāng)前末級從節(jié)點(diǎn)的Hop編號,判斷當(dāng)前末級節(jié)點(diǎn)的Hop編號是否已被保存,如果是,則判定當(dāng)前末級節(jié)點(diǎn)所在路徑?jīng)]有變化;否則,通過所述統(tǒng)一編號規(guī)則逆向推導(dǎo)當(dāng)前末級節(jié)點(diǎn)的上級節(jié)點(diǎn)Hop編號,判斷是否已被保存,如果是,則判定當(dāng)前末級節(jié)點(diǎn)是原有路徑末級節(jié)點(diǎn)基礎(chǔ)上新增的下級節(jié)點(diǎn),用該Hop編號替換對應(yīng)路徑上所保存的原有Hop編號;否則,通過所述統(tǒng)一編號規(guī)則逆向推導(dǎo)出保存的Hop編號對應(yīng)節(jié)點(diǎn)的上級節(jié)點(diǎn)Hop編號,判斷所得上級節(jié)點(diǎn)Hop編號是否與當(dāng)前末級節(jié)點(diǎn)Hop編號一致,如果是,則判定當(dāng)前節(jié)點(diǎn)所在路徑自該節(jié)點(diǎn)以下不可用,用當(dāng)前節(jié)點(diǎn)Hop編號替換對應(yīng)路徑上所保存的原有Hop編號,否則,則判定當(dāng)前節(jié)點(diǎn)為原路徑以外新增的末級節(jié)點(diǎn),并保存當(dāng)前節(jié)點(diǎn)的Hop編號。
該方法所述步驟c)后進(jìn)一步包括主節(jié)點(diǎn)保存每條路徑上末級從節(jié)點(diǎn)的Hop編號;進(jìn)行路徑檢測時(shí),樹型組網(wǎng)中的每個(gè)從節(jié)點(diǎn)判斷是否收到從下一級節(jié)點(diǎn)發(fā)來的有效Hop編號,如果是,則將該Hop編號轉(zhuǎn)發(fā)給上一級節(jié)點(diǎn),否則,將自身的Hop編號發(fā)送給上一級節(jié)點(diǎn);主節(jié)點(diǎn)從獲得的Hop編號中獲取路徑上末級從節(jié)點(diǎn)的Hop編號,用新獲得的Hop編號更新原來保存的Hop編號。
該方法進(jìn)一步設(shè)置0xFF代表無效Hop編號;所述判斷是否收到下一級節(jié)點(diǎn)發(fā)來的有效的Hop編號的方法包括如果收到下一級節(jié)點(diǎn)發(fā)來的Hop編號且該編號不是0xFF,則判定收到的Hop編號為有效,否則,判定收到的Hop編號為無效。
該方法所述Hop編號承載在通信的物理幀中。
本發(fā)明的另一主要目的在于提供一種樹型組網(wǎng)通信系統(tǒng)中節(jié)點(diǎn)地址的分配方法,使地址分配更加靈活快速,提高地址分配效率,增加網(wǎng)絡(luò)的可維護(hù)性。
基于此目的本發(fā)明提供的一種樹型組網(wǎng)通信系統(tǒng)中節(jié)點(diǎn)地址的分配方法,包括a)根據(jù)每個(gè)從節(jié)點(diǎn)上一級節(jié)點(diǎn)的Hop編號和與上一級節(jié)點(diǎn)之間的級聯(lián)端口號,通過預(yù)先制定的統(tǒng)一編號規(guī)則設(shè)置每個(gè)從節(jié)點(diǎn)的Hop編號;b)主節(jié)點(diǎn)獲取待分配地址的從節(jié)點(diǎn)的Hop編號,將分配給該從節(jié)點(diǎn)的地址與該從節(jié)點(diǎn)的Hop編號綁定在一起,通過廣播的形式發(fā)送出去;c)從節(jié)點(diǎn)收到所述廣播的地址后,判斷地址綁定的Hop編號與自身的Hop編號是否一致,若是,則將該地址設(shè)置為自身地址。
該方法步驟a)包括樹型組網(wǎng)中的主節(jié)點(diǎn)為自身的下一級從節(jié)點(diǎn)分配Hop編號;
樹型組網(wǎng)中的每個(gè)從節(jié)點(diǎn)通過預(yù)先制定的統(tǒng)一的編號規(guī)則,由自身的Hop編號和與下一級節(jié)點(diǎn)之間的級聯(lián)端口號計(jì)算出該節(jié)點(diǎn)下一級每個(gè)節(jié)點(diǎn)的Hop編號,將得到的Hop編號分別分配給級聯(lián)端口對應(yīng)的下一級節(jié)點(diǎn)。
該方法步驟a)包括樹型組網(wǎng)中的每個(gè)節(jié)點(diǎn)向下一級節(jié)點(diǎn)下發(fā)自身Hop編號和與下一級節(jié)點(diǎn)之間的級聯(lián)端口號;下一級節(jié)點(diǎn)根據(jù)收到的Hop編號和級聯(lián)端口號,通過預(yù)先制定的統(tǒng)一編號規(guī)則計(jì)算Hop編號,將得到的Hop編號設(shè)置為自身的Hop編號。
該方法步驟b)所述主節(jié)點(diǎn)獲取待分配地址從節(jié)點(diǎn)Hop編號的過程包括每個(gè)從節(jié)點(diǎn)判斷是否收到從下一級節(jié)點(diǎn)發(fā)來的有效Hop編號,如果是,則將該Hop編號轉(zhuǎn)發(fā)給上一級節(jié)點(diǎn),否則,將自身的Hop編號發(fā)送給上一級節(jié)點(diǎn);從節(jié)點(diǎn)的Hop編號轉(zhuǎn)發(fā)到主節(jié)點(diǎn)后,主節(jié)點(diǎn)保存收到的Hop編號,從中找出待分配地址的從節(jié)點(diǎn)的Hop編號;如果待分配地址的從節(jié)點(diǎn)的Hop編號不在上報(bào)的Hop編號中,則通過所述統(tǒng)一編號規(guī)則逆向逐級遞推得到待分配地址的從節(jié)點(diǎn)的Hop編號。
該方法所述編號規(guī)則為下一級節(jié)點(diǎn)的Hop編號=上一級節(jié)點(diǎn)的Hop編號×2k+上一級與該下一級節(jié)點(diǎn)之間的級聯(lián)端口編號,其中,k為整數(shù),且2k大于等于系統(tǒng)中所述級聯(lián)端口編號的上限值。
該方法進(jìn)一步包括如果從節(jié)點(diǎn)檢測到自身的Hop編號發(fā)生變化,則置自身的地址為初始無效值。
該方法進(jìn)一步包括如果主節(jié)點(diǎn)檢測到從節(jié)點(diǎn)的拓?fù)湮恢冒l(fā)生改變,重新為從節(jié)點(diǎn)分配地址。
從上面所述可以看出,本發(fā)明提供的樹型組網(wǎng)通信系統(tǒng)中拓?fù)浣Y(jié)構(gòu)的獲取方法通過建立統(tǒng)一的編號規(guī)則,使樹型組網(wǎng)網(wǎng)絡(luò)中的從節(jié)點(diǎn)自動獲得本節(jié)點(diǎn)的編號,主節(jié)點(diǎn)自動獲得的拓?fù)浣Y(jié)構(gòu),并進(jìn)一步可對系統(tǒng)的拓?fù)浣Y(jié)構(gòu)變化和故障能夠進(jìn)行自動檢測,從而加快了網(wǎng)絡(luò)拓?fù)涞墨@取速度,大大提高了系統(tǒng)的可維護(hù)性和配置靈活性。本發(fā)明在此基礎(chǔ)上提出的樹型組網(wǎng)通信系統(tǒng)中節(jié)點(diǎn)地址的分配方法,實(shí)現(xiàn)了地址分配的并行性,使地址分配效率明顯提高,并隨時(shí)可以根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的變化,重新設(shè)置邏輯地址,提高了網(wǎng)絡(luò)的可維護(hù)性。
圖1為本發(fā)明較佳實(shí)施例的樹型組網(wǎng)各節(jié)點(diǎn)的Hop編號示意圖;圖2為本發(fā)明較佳實(shí)施例的樹型組網(wǎng)的Hop編號分配及上報(bào)示意圖;圖3為本發(fā)明實(shí)施例中網(wǎng)絡(luò)拓?fù)錂z測流程示意圖。
具體實(shí)施例方式
本發(fā)明方案包括在通信的物理幀中增加級聯(lián)組網(wǎng)中節(jié)點(diǎn)的編號(Hop)字段。其中,這里的物理幀相當(dāng)于開放式系統(tǒng)互連模型(OSI)層7模型的第一層(L1),但本發(fā)明的實(shí)現(xiàn)不限于在L1增加此字段,也可以在其它消息幀中增加該字段,Hop字段的字節(jié)數(shù)可以根據(jù)實(shí)際網(wǎng)絡(luò)規(guī)模的大小確定。并預(yù)先制定固定的Hop編號規(guī)則,使得樹型組網(wǎng)中的每個(gè)節(jié)點(diǎn)只要將自身的Hop編號和自身與其子節(jié)點(diǎn)之間的級聯(lián)端口編號帶入該預(yù)先制定的編號規(guī)則就可以得出該子節(jié)點(diǎn)的Hop編號。
具體分配Hop編號時(shí),可以采用兩種方案方案一,樹型組網(wǎng)中的各節(jié)點(diǎn)通過物理幀來為其下一級節(jié)點(diǎn)分配Hop編號,具體過程如下樹型組網(wǎng)中的主節(jié)點(diǎn)向其下一級的從節(jié)點(diǎn)下發(fā)Hop編號。組網(wǎng)中的每個(gè)從節(jié)點(diǎn)在接收到上一級節(jié)點(diǎn)下發(fā)的Hop編號后,設(shè)置該Hop編號為自身的Hop編號;同時(shí)通過所指定的編號規(guī)則,由自身的Hop編號和下級級聯(lián)端口號計(jì)算出自身每個(gè)子節(jié)點(diǎn)的Hop編號,并分別下發(fā)給對應(yīng)的子節(jié)點(diǎn);如此直至末級葉子節(jié)點(diǎn)。
方案二,樹型組網(wǎng)中各節(jié)點(diǎn)將自身Hop編號通過物理幀下發(fā)給其下一級節(jié)點(diǎn),由下一級節(jié)點(diǎn)根據(jù)指定的統(tǒng)一編號規(guī)則計(jì)算自身Hop編號,具體過程如下樹型組網(wǎng)中包括主節(jié)點(diǎn)在內(nèi)的每個(gè)節(jié)點(diǎn)向下一級節(jié)點(diǎn)下發(fā)自身Hop編號和與下一級節(jié)點(diǎn)之間的級聯(lián)端口號;下一級節(jié)點(diǎn)根據(jù)收到的上一級節(jié)點(diǎn)的Hop編號和與該上一級節(jié)點(diǎn)之間的級聯(lián)端口號,通過預(yù)先制定的統(tǒng)一編號規(guī)則計(jì)算Hop編號,將計(jì)算得到的Hop編號設(shè)置為自身的Hop編號;然后再向自身的下一級節(jié)點(diǎn)下發(fā)自身Hop編號和與下一級節(jié)點(diǎn)間的級聯(lián)端口號,如此直至末級葉子節(jié)點(diǎn)。
每個(gè)從節(jié)點(diǎn)在設(shè)置完成自身的Hop編號后,判斷是否收到其子節(jié)點(diǎn)發(fā)來的有效Hop編號,若是,則將收到的Hop編號轉(zhuǎn)發(fā)給其父節(jié)點(diǎn);否則,將自己的Hop編號發(fā)給其父節(jié)點(diǎn),這樣,使得只有每條路徑上的最末級節(jié)點(diǎn),才上報(bào)自身的Hop編號。主節(jié)點(diǎn)根據(jù)從節(jié)點(diǎn)上報(bào)的Hop編號,通過所述的編號規(guī)則進(jìn)行逆向推導(dǎo)就可以計(jì)算得到該從節(jié)點(diǎn)的父節(jié)點(diǎn)的Hop編號,再對該父節(jié)點(diǎn)的Hop編號通過編號規(guī)則進(jìn)行逆向推導(dǎo)就可以得到該父節(jié)點(diǎn)的上一級節(jié)點(diǎn)的Hop編號,……,如此,逆向逐級遞推,就可以得到該從節(jié)點(diǎn)至主節(jié)點(diǎn)之間路徑上的各級節(jié)點(diǎn),進(jìn)而通過對不同路徑上從節(jié)點(diǎn)Hop編號的計(jì)算,就得到整個(gè)組網(wǎng)的拓?fù)洹?br>
下面結(jié)合附圖及具體實(shí)施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明。
在本發(fā)明的較佳實(shí)施例中,Hop的編號遵從以下規(guī)則子節(jié)點(diǎn)的Hop=其父節(jié)點(diǎn)的Hop×2k+父節(jié)點(diǎn)與子節(jié)點(diǎn)間的級聯(lián)端口號。
其中,k為整數(shù),k的取值與網(wǎng)絡(luò)中節(jié)點(diǎn)之間的級聯(lián)端口數(shù)有關(guān),為了避免Hop編號重復(fù),2k應(yīng)大于等于系統(tǒng)中各級聯(lián)端口號的上限值;可以看出,這一Hop編號規(guī)則使得子節(jié)點(diǎn)的Hop右移k位(bit),即Hop>>k,便可得到其父節(jié)點(diǎn)的Hop。
Hop字段的字節(jié)數(shù)根據(jù)網(wǎng)絡(luò)的規(guī)模確定,網(wǎng)絡(luò)中節(jié)點(diǎn)多則Hop字段的字節(jié)數(shù)就應(yīng)該大,以留有充分的余地,反之,則Hop字段的字節(jié)數(shù)就可以較少。為了避免Hop字段資源的浪費(fèi),2k的較佳取值是恰好大于或等于系統(tǒng)中各級聯(lián)端口編號的上限值。
以上編號規(guī)則僅是本發(fā)明的一個(gè)較佳實(shí)施例,本領(lǐng)域技術(shù)人員應(yīng)該很容易想到還有很多其它的編號規(guī)則,比如子節(jié)點(diǎn)的Hop=其父節(jié)點(diǎn)的Hop×2k+父節(jié)點(diǎn)與子節(jié)點(diǎn)間的級聯(lián)端口號+某個(gè)自然數(shù),等等,只要該編號規(guī)則能夠被樹型組網(wǎng)中的所有從節(jié)點(diǎn)采用,并且不會引起Hop編號重復(fù)等問題,都可適用于本發(fā)明,并在本發(fā)明的保護(hù)范圍之內(nèi)。
另外,可規(guī)定所有字節(jié)均為0xFF表示無效Hop;0保留未用,可以認(rèn)為是主節(jié)點(diǎn)的Hop。這里,本領(lǐng)域技術(shù)人員應(yīng)很容易想到,所述的無效Hop和主節(jié)點(diǎn)Hop也可以用其它值表示。
參見圖1所示的樹型組網(wǎng),假設(shè)該網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)下面最多下掛7個(gè)節(jié)點(diǎn),級聯(lián)端口號范圍為0~6,則可以取k=3;根據(jù)該組網(wǎng)規(guī)模,選擇Hop字段的長度為2個(gè)字節(jié),這是因?yàn)?個(gè)字節(jié)長度是16位,又由k=3可知拓?fù)錁涞拿繉庸?jié)點(diǎn)占用字段的3位,因此16/3共至少可以表示5層節(jié)點(diǎn)的Hop編號,對于圖1所示4層樹型組網(wǎng)已經(jīng)足夠了。當(dāng)然,如果考慮到以后擴(kuò)展需要Hop編號也可以取更大的k值和更長的字段長度。
根據(jù)上述編號規(guī)則可以知,與MN直接相連的SN1的Hop=1,另外對于與MN直接相連的SN其Hop編號也可任意指定;其它SN的Hop=Hop父×8+級聯(lián)端口號,其中,這里級聯(lián)端口號取值范圍為0~6。各SN的編號可參見圖1所示,SN1.0的Hop編號HopSN1.0=HopSN1×8+0=8,SN1.0.1的Hop編號HopSN1.0.1=HopSN1.0×8+0=8×8+1=65,......,其它SN的編號都可以按照此規(guī)則計(jì)算得到。
參見圖2所示的樹型組網(wǎng),以上述方案一的Hop編碼分配過程為例進(jìn)行具體說明。
下行方向?qū)τ贛N,由于其只有一個(gè)子節(jié)點(diǎn),因此在發(fā)送物理幀時(shí)Hop字段上始終填1。
對于SN,接收從自身父節(jié)點(diǎn)發(fā)來的物理幀,提取Hop字段,將其中的Hop編碼設(shè)置為本節(jié)點(diǎn)的Hop;根據(jù)編碼規(guī)則將該Hop乘以8,分別加上與其子節(jié)點(diǎn)間的級聯(lián)端口號0、...、6通過物理幀下發(fā)到端口號對應(yīng)的下級級聯(lián)端口,即將Hop×8+0轉(zhuǎn)發(fā)到端口0,將Hop×8+1轉(zhuǎn)發(fā)到端口1,......。
例如SN1.1接收其父節(jié)點(diǎn)SN1發(fā)來的物理幀,從中提取出所分配的Hop編碼9,將9設(shè)置為自身的Hop。同時(shí)根據(jù)編碼規(guī)則分別計(jì)算其子節(jié)點(diǎn)的Hop,得到SN1.1.0的Hop=9×8+0=72,將該Hop編號放在物理幀中下發(fā)通過級聯(lián)端口0下發(fā)給SN1.1.0;得到SN1.1.1的Hop=9×8+1=73,將該Hop編號放在物理幀中下發(fā)通過級聯(lián)端口1下發(fā)給SN1.1.1,其它節(jié)點(diǎn)以此類推。具體可參見圖2所示,其中虛線代表下行路徑,實(shí)線代表上行路徑。
上行方向?qū)τ赟N,SN為自身的子節(jié)點(diǎn)分配完Hop后,會判斷是否收到上報(bào)的有效Hop編號,如果沒有收到子節(jié)點(diǎn)發(fā)來的Hop編號(該Hop編號不一定是子節(jié)點(diǎn)的)或發(fā)來的Hop編號為無效編號,即由0xFF組成,則將本地的Hop通過物理幀發(fā)送給自身的父節(jié)點(diǎn)。由于正常情況下,只有樹型組網(wǎng)每條路徑上的最末級SN,即葉子節(jié)點(diǎn)才會無法收到下級SN上報(bào)的Hop編碼,因此最終MN收到的將是樹型拓?fù)渖纤腥~子節(jié)點(diǎn)的Hop編號。其中,為防止由于子節(jié)點(diǎn)上報(bào)Hop編號的時(shí)間延誤而導(dǎo)致父節(jié)點(diǎn)的判斷錯誤,可以設(shè)置SN下發(fā)完Hop編碼后,延遲一段時(shí)間再進(jìn)行上述判斷;或設(shè)置在一段時(shí)間內(nèi)反復(fù)判斷,如果仍沒有收到有效Hop,則再上報(bào)自身的Hop。
對于MN,將上報(bào)的Hop記錄在Hop列表中。這里,優(yōu)選方案是MN只將葉子節(jié)點(diǎn)的Hop,記錄在Hop列表中,其中,為保障Hop列表中保存的全部是葉子節(jié)點(diǎn),MN可以對上報(bào)的Hop編號進(jìn)行篩選,篩選葉子節(jié)點(diǎn)Hop的方法可以有很多,比如將當(dāng)前獲取的Hop編號左移k位,即Hop<<k,在已獲取的編號中比較是否有與其具有相同字段的,如果有,說明當(dāng)前獲取的Hop對應(yīng)的節(jié)點(diǎn)不是葉子節(jié)點(diǎn),將該Hop丟棄,否則,說明當(dāng)前獲取的Hop對應(yīng)的節(jié)點(diǎn)在已獲取Hop的節(jié)點(diǎn)中是某條路徑最末級的,可將其保存。這樣當(dāng)網(wǎng)絡(luò)中所有節(jié)點(diǎn)的Hop分配過程都進(jìn)行完畢之后,根據(jù)Hop列表,MN就可以獲得整個(gè)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。
當(dāng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)變化時(shí),MN通過將當(dāng)前檢測到的葉子節(jié)點(diǎn)的Hop與Hop列表中保存葉子節(jié)點(diǎn)Hop進(jìn)行比較,就可以很容易地檢測出來,并獲知網(wǎng)絡(luò)新的拓?fù)浣Y(jié)構(gòu)。
下面仍以圖2所示的樹型組網(wǎng)為例對網(wǎng)絡(luò)拓?fù)涞臋z測過程進(jìn)行說明。
針對圖2所示的k=3的拓?fù)錁洌琈N中保存的葉子節(jié)點(diǎn)的Hop列表,參見表1所示
表1進(jìn)行網(wǎng)絡(luò)拓?fù)錂z測的觸發(fā)機(jī)制很多,比如開通某項(xiàng)業(yè)務(wù)前,MN會與從節(jié)點(diǎn)進(jìn)行一次握手,要求某條路徑上的從節(jié)點(diǎn)上報(bào)自身的Hop編號。上報(bào)Hop過程可以采用與上述相同的方案,即被檢測路徑上的每個(gè)從節(jié)點(diǎn)判斷是否收到從下一級節(jié)點(diǎn)發(fā)來的有效Hop編號,如果是,則將該Hop編號轉(zhuǎn)發(fā)給上一級節(jié)點(diǎn),否則,將自身的Hop編號發(fā)送給上一級節(jié)點(diǎn),從而保證正常情況下主節(jié)點(diǎn)收到的Hop編號都是葉子節(jié)點(diǎn)的。此后的過程參見圖3所示步驟301~303,MN收到上報(bào)的Hop編號后,為保障Hop列表中保存的全部是葉子節(jié)點(diǎn),可以對上報(bào)的Hop編號進(jìn)行篩選,找出其中的葉子節(jié)點(diǎn),判斷當(dāng)前葉子節(jié)點(diǎn)的Hop是否已在Hop列表中列出,如果是,則說明該葉子節(jié)點(diǎn)所在路徑?jīng)]有變化。
步驟304,如果當(dāng)前上報(bào)的某個(gè)葉子節(jié)點(diǎn)的Hop不在Hop列表中,則推導(dǎo)該葉子節(jié)點(diǎn)的父節(jié)點(diǎn)的Hop編號,即計(jì)算
Hop父=Hop>>k(右移k個(gè)bit)步驟305~306,判斷得到的Hop父是否在當(dāng)前葉子節(jié)點(diǎn)Hop列表中,如果是,則說明該節(jié)點(diǎn)是原來葉子節(jié)點(diǎn)下新增加了一個(gè)節(jié)點(diǎn),從Hop列表中刪除原來的葉子節(jié)點(diǎn)的Hop并將此節(jié)點(diǎn)的Hop保存到葉子節(jié)點(diǎn)Hop列表中;否則,可以進(jìn)一步對得到的Hop父繼續(xù)右移k位,并與Hop列表中的Hop比較。
如果經(jīng)多次右移后始終在Hop列表中找不到與其一致的Hop編號,則說明該Hop對應(yīng)節(jié)點(diǎn)不是在已知葉子節(jié)點(diǎn)下增加的新節(jié)點(diǎn),此時(shí)需要判斷該Hop對應(yīng)節(jié)點(diǎn)是否為原路徑上的節(jié)點(diǎn),如果是,則說明原來的葉子節(jié)點(diǎn)斷鏈或刪除,其父節(jié)點(diǎn)變?yōu)榱巳~子節(jié)點(diǎn);否則,說明該葉子節(jié)點(diǎn)是在原路徑以外新增的葉子節(jié)點(diǎn)。具體包括步驟307~310。
步驟307~310,推導(dǎo)Hop列表中葉子節(jié)點(diǎn)的父節(jié)點(diǎn)的Hop編號,即對Hop列表中的Hop執(zhí)行上述右移操作Hop父=Hop>>k(右移k個(gè)bit),如果發(fā)現(xiàn)某個(gè)列表中的葉子Hop(其Hop要大于新檢測到的Hop)經(jīng)一個(gè)或多個(gè)k位右移后與該新檢測的Hop相同,則判定當(dāng)前節(jié)點(diǎn)所在路徑自該節(jié)點(diǎn)以下不可用,此時(shí)可能是原來的葉子節(jié)點(diǎn)斷鏈或被刪除,將Hop列表中該路徑原來的葉子節(jié)點(diǎn)Hop刪除,并替換為新的葉子節(jié)點(diǎn)Hop;否則,判定該新Hop為原路徑以外增加的新節(jié)點(diǎn),此時(shí)只需要在Hop列表中增加新的葉子節(jié)點(diǎn)即可。
此外,還有一種情況就是多個(gè)連接到同一個(gè)父節(jié)點(diǎn)上的葉子節(jié)點(diǎn)中的一個(gè)或部分葉子節(jié)點(diǎn)被刪除或斷鏈,此時(shí),MN通過上述方案無法準(zhǔn)確檢測出來,這種情況MN可通過另一套方法檢測主節(jié)點(diǎn)通過定期檢測,要求網(wǎng)絡(luò)中的所有SN重新進(jìn)行上面所述上行方向的上報(bào)過程,MN重新構(gòu)建葉子節(jié)點(diǎn)隊(duì)列,通過比較新的葉子節(jié)點(diǎn)隊(duì)列和原來Hop列表中的葉子節(jié)點(diǎn)隊(duì)列是否相同來發(fā)現(xiàn)網(wǎng)絡(luò)中增加和減少的葉子節(jié)點(diǎn),并用新的Hop隊(duì)列替換原Hop列表中的Hop隊(duì)列。
以上所述的檢測方案只是舉例,本領(lǐng)域人員應(yīng)很容易想到與其類似的其它方案;并且由于構(gòu)建了Hop列表,MN就已獲知了整個(gè)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),因此,目前已有的各有檢測方法也可以被采用來實(shí)現(xiàn)本發(fā)明組網(wǎng)的拓?fù)渥兓臋z測。
在Hop分配的基礎(chǔ)上進(jìn)行地址分配,可以使網(wǎng)絡(luò)中節(jié)點(diǎn)的地址分配過程大大簡化,具體分配方法包括在所有從節(jié)點(diǎn)SN獲得自己的Hop的同時(shí),主節(jié)點(diǎn)也獲得了網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。此時(shí),主節(jié)點(diǎn)就可以并行地為各子節(jié)點(diǎn)分配邏輯鏈路的地址,以建立第二層(L2)鏈路。地址分配采用廣播方式,MN向整個(gè)網(wǎng)絡(luò)廣播地址分配消息,消息內(nèi)容包括所分配的節(jié)點(diǎn)地址和該節(jié)點(diǎn)的Hop,并且節(jié)點(diǎn)地址與節(jié)點(diǎn)Hop綁定在一起;SN在收到地址分配消息后,比較本節(jié)點(diǎn)的Hop和地址分配消息中Hop,如果Hop相同,則將該Hop對應(yīng)的地址設(shè)置為本節(jié)點(diǎn)的邏輯地址,否則,丟棄。
當(dāng)由于節(jié)點(diǎn)前面插入或刪除了SN節(jié)點(diǎn)等原因引起節(jié)點(diǎn)位置改變時(shí),SN將檢測到自身的Hop發(fā)生變化,此時(shí)置自身的邏輯地址為初始無效值,等待MN重新分配;當(dāng)MN檢測到SN的拓?fù)湮恢冒l(fā)生改變時(shí),重新為SN分配邏輯地址并為SN重新建立連接。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種樹型組網(wǎng)通信系統(tǒng)中拓?fù)浣Y(jié)構(gòu)的獲取方法,其特征在于,包括a)根據(jù)每個(gè)從節(jié)點(diǎn)上一級節(jié)點(diǎn)的Hop編號和與上一級節(jié)點(diǎn)之間的級聯(lián)端口號,通過預(yù)先制定的統(tǒng)一編號規(guī)則設(shè)置每個(gè)從節(jié)點(diǎn)的Hop編號;b)每個(gè)從節(jié)點(diǎn)判斷是否收到從下一級節(jié)點(diǎn)發(fā)來的有效Hop編號,如果是,則將該Hop編號轉(zhuǎn)發(fā)給上一級節(jié)點(diǎn),否則,將自身的Hop編號發(fā)送給上一級節(jié)點(diǎn);c)從節(jié)點(diǎn)的Hop編號轉(zhuǎn)發(fā)到主節(jié)點(diǎn)后,主節(jié)點(diǎn)根據(jù)收到的從節(jié)點(diǎn)Hop編號,通過所述統(tǒng)一編號規(guī)則逆向逐級遞推得到上報(bào)的每個(gè)Hop編號所對應(yīng)的從節(jié)點(diǎn)至主節(jié)點(diǎn)之間路徑上的各級節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟a)包括樹型組網(wǎng)中的主節(jié)點(diǎn)向自身的下一級從節(jié)點(diǎn)下發(fā)Hop編號;樹型組網(wǎng)中的每個(gè)從節(jié)點(diǎn)在接收到上一級節(jié)點(diǎn)下發(fā)的Hop編號后,設(shè)置該Hop編號為自身的Hop編號,并通過預(yù)先制定的統(tǒng)一編號規(guī)則,由自身的Hop編號和與下一級節(jié)點(diǎn)之間的下級級聯(lián)端口號計(jì)算出該節(jié)點(diǎn)下一級每個(gè)節(jié)點(diǎn)的Hop編號,分別下發(fā)至對應(yīng)的下級級聯(lián)端口。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟a)包括樹型組網(wǎng)中的每個(gè)節(jié)點(diǎn)向下一級節(jié)點(diǎn)下發(fā)自身Hop編號和與下一級節(jié)點(diǎn)之間的級聯(lián)端口號;下一級節(jié)點(diǎn)根據(jù)收到的Hop編號和級聯(lián)端口號,通過預(yù)先制定的統(tǒng)一編號規(guī)則計(jì)算Hop編號,將得到的Hop編號設(shè)置為自身的Hop編號。
4.根據(jù)權(quán)利要求1至3任意一項(xiàng)所述的方法,其特征在于,所述編號規(guī)則為下一級節(jié)點(diǎn)的Hop編號=上一級節(jié)點(diǎn)的Hop編號×2k+上一級與該下一級節(jié)點(diǎn)之間的級聯(lián)端口編號,其中,k為整數(shù),且2k大于等于系統(tǒng)中所述級聯(lián)端口編號的上限值;所述的主節(jié)點(diǎn)通過所述固定編號規(guī)則逆向逐級遞推方法為將當(dāng)前Hop編號右移k位后所得的結(jié)果確定為當(dāng)前Hop編號對應(yīng)節(jié)點(diǎn)的上一級節(jié)點(diǎn)的Hop編號。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述2k恰好大于或等于系統(tǒng)中所述級聯(lián)端口編號的上限值。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟c)后進(jìn)一步包括主節(jié)點(diǎn)保存每條路徑上末級從節(jié)點(diǎn)的Hop編號;進(jìn)行路徑檢測時(shí),被檢測路徑上的每個(gè)從節(jié)點(diǎn)判斷是否收到從下一級節(jié)點(diǎn)發(fā)來的有效Hop編號,如果是,則將該Hop編號轉(zhuǎn)發(fā)給上一級節(jié)點(diǎn),否則,將自身的Hop編號發(fā)送給上一級節(jié)點(diǎn);主節(jié)點(diǎn)從獲得的Hop編號中獲得路徑上當(dāng)前末級從節(jié)點(diǎn)的Hop編號,判斷當(dāng)前末級節(jié)點(diǎn)的Hop編號是否已被保存,如果是,則判定當(dāng)前末級節(jié)點(diǎn)所在路徑?jīng)]有變化;否則,通過所述統(tǒng)一編號規(guī)則逆向推導(dǎo)當(dāng)前末級節(jié)點(diǎn)的上級節(jié)點(diǎn)Hop編號,判斷是否已被保存,如果是,則判定當(dāng)前末級節(jié)點(diǎn)是原有路徑末級節(jié)點(diǎn)基礎(chǔ)上新增的下級節(jié)點(diǎn),用該Hop編號替換對應(yīng)路徑上所保存的原有Hop編號;否則,通過所述統(tǒng)一編號規(guī)則逆向推導(dǎo)出保存的Hop編號對應(yīng)節(jié)點(diǎn)的上級節(jié)點(diǎn)Hop編號,判斷所得上級節(jié)點(diǎn)Hop編號是否與當(dāng)前末級節(jié)點(diǎn)Hop編號一致,如果是,則判定當(dāng)前節(jié)點(diǎn)所在路徑自該節(jié)點(diǎn)以下不可用,用當(dāng)前節(jié)點(diǎn)Hop編號替換對應(yīng)路徑上所保存的原有Hop編號,否則,則判定當(dāng)前節(jié)點(diǎn)為原路徑以外新增的末級節(jié)點(diǎn),并保存當(dāng)前節(jié)點(diǎn)的Hop編號。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟c)后進(jìn)一步包括主節(jié)點(diǎn)保存每條路徑上末級從節(jié)點(diǎn)的Hop編號;進(jìn)行路徑檢測時(shí),樹型組網(wǎng)中的每個(gè)從節(jié)點(diǎn)判斷是否收到從下一級節(jié)點(diǎn)發(fā)來的有效Hop編號,如果是,則將該Hop編號轉(zhuǎn)發(fā)給上一級節(jié)點(diǎn),否則,將自身的Hop編號發(fā)送給上一級節(jié)點(diǎn);主節(jié)點(diǎn)從獲得的Hop編號中獲取路徑上末級從節(jié)點(diǎn)的Hop編號,用新獲得的Hop編號更新原來保存的Hop編號。
8.根據(jù)權(quán)利要求1、6、7任意一項(xiàng)所述的方法,其特征在于,進(jìn)一步設(shè)置0xFF代表無效Hop編號;所述判斷是否收到下一級節(jié)點(diǎn)發(fā)來的有效的Hop編號的方法包括如果收到下一級節(jié)點(diǎn)發(fā)來的Hop編號且該編號不是0xFF,則判定收到的Hop編號為有效,否則,判定收到的Hop編號為無效。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述Hop編號承載在通信的物理幀中。
10.一種樹型組網(wǎng)通信系統(tǒng)中節(jié)點(diǎn)地址的分配方法,其特征在于,包括a)根據(jù)每個(gè)從節(jié)點(diǎn)上一級節(jié)點(diǎn)的Hop編號和與上一級節(jié)點(diǎn)之間的級聯(lián)端口號,通過預(yù)先制定的統(tǒng)一編號規(guī)則設(shè)置每個(gè)從節(jié)點(diǎn)的Hop編號;b)主節(jié)點(diǎn)獲取待分配地址的從節(jié)點(diǎn)的Hop編號,將分配給該從節(jié)點(diǎn)的地址與該從節(jié)點(diǎn)的Hop編號綁定在一起,通過廣播的形式發(fā)送出去;c)從節(jié)點(diǎn)收到所述廣播的地址后,判斷地址綁定的Hop編號與自身的Hop編號是否一致,若是,則將該地址設(shè)置為自身地址。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,步驟a)包括樹型組網(wǎng)中的主節(jié)點(diǎn)為自身的下一級從節(jié)點(diǎn)分配Hop編號;樹型組網(wǎng)中的每個(gè)從節(jié)點(diǎn)通過預(yù)先制定的統(tǒng)一的編號規(guī)則,由自身的Hop編號和與下一級節(jié)點(diǎn)之間的級聯(lián)端口號計(jì)算出該節(jié)點(diǎn)下一級每個(gè)節(jié)點(diǎn)的Hop編號,將得到的Hop編號分別分配給級聯(lián)端口對應(yīng)的下一級節(jié)點(diǎn)。
12.根據(jù)權(quán)利要求10所述的方法,其特征在于,步驟a)包括樹型組網(wǎng)中的每個(gè)節(jié)點(diǎn)向下一級節(jié)點(diǎn)下發(fā)自身Hop編號和與下一級節(jié)點(diǎn)之間的級聯(lián)端口號;下一級節(jié)點(diǎn)根據(jù)收到的Hop編號和級聯(lián)端口號,通過預(yù)先制定的統(tǒng)一編號規(guī)則計(jì)算Hop編號,將得到的Hop編號設(shè)置為自身的Hop編號。
13.根據(jù)權(quán)利要求10所述的方法,其特征在于,步驟b)所述主節(jié)點(diǎn)獲取待分配地址從節(jié)點(diǎn)Hop編號的過程包括每個(gè)從節(jié)點(diǎn)判斷是否收到從下一級節(jié)點(diǎn)發(fā)來的有效Hop編號,如果是,則將該Hop編號轉(zhuǎn)發(fā)給上一級節(jié)點(diǎn),否則,將自身的Hop編號發(fā)送給上一級節(jié)點(diǎn);從節(jié)點(diǎn)的Hop編號轉(zhuǎn)發(fā)到主節(jié)點(diǎn)后,主節(jié)點(diǎn)保存收到的Hop編號,從中找出待分配地址的從節(jié)點(diǎn)的Hop編號;如果待分配地址的從節(jié)點(diǎn)的Hop編號不在上報(bào)的Hop編號中,則通過所述統(tǒng)一編號規(guī)則逆向逐級遞推得到待分配地址的從節(jié)點(diǎn)的Hop編號。
14.根據(jù)權(quán)利要求10至13任意一項(xiàng)所述的方法,其特征在于,所述編號規(guī)則為下一級節(jié)點(diǎn)的Hop編號=上一級節(jié)點(diǎn)的Hop編號×2k+上一級與該下一級節(jié)點(diǎn)之間的級聯(lián)端口編號,其中,k為整數(shù),且2k大于等于系統(tǒng)中所述級聯(lián)端口編號的上限值。
15.根據(jù)權(quán)利要求10所述的方法,其特征在于,進(jìn)一步包括如果從節(jié)點(diǎn)檢測到自身的Hop編號發(fā)生變化,則置自身的地址為初始無效值。
16.根據(jù)權(quán)利要求10所述的方法,其特征在于,進(jìn)一步包括如果主節(jié)點(diǎn)檢測到從節(jié)點(diǎn)的拓?fù)湮恢冒l(fā)生改變,重新為從節(jié)點(diǎn)分配地址。
全文摘要
本發(fā)明公開了一種樹型組網(wǎng)通信系統(tǒng)中拓?fù)浣Y(jié)構(gòu)的獲取方法,包括根據(jù)每個(gè)從節(jié)點(diǎn)上一級節(jié)點(diǎn)的Hop編號和與上一級節(jié)點(diǎn)之間的級聯(lián)端口號,通過預(yù)先制定的統(tǒng)一編號規(guī)則設(shè)置每個(gè)從節(jié)點(diǎn)的Hop編號;從節(jié)點(diǎn)若未收到子節(jié)點(diǎn)發(fā)來的Hop,則將自身的Hop轉(zhuǎn)發(fā)給其父節(jié)點(diǎn),主節(jié)點(diǎn)根據(jù)上報(bào)的Hop,通過所述編號規(guī)則逆向逐級遞推得到該從節(jié)點(diǎn)至主節(jié)點(diǎn)之間路徑上的各級節(jié)點(diǎn)。以及在此基礎(chǔ)上的地址分配方法,包括主節(jié)點(diǎn)將分配給從節(jié)點(diǎn)的地址與其Hop編號綁定在一起,通過廣播的形式發(fā)送出去;從節(jié)點(diǎn)將與自身Hop與綁定在一起的地址設(shè)置為自身地址。由此大大提高了系統(tǒng)的可維護(hù)性和配置靈活性。
文檔編號H04L29/12GK1848791SQ20051006424
公開日2006年10月18日 申請日期2005年4月12日 優(yōu)先權(quán)日2005年4月12日
發(fā)明者賀文勝 申請人:華為技術(shù)有限公司