專利名稱:專門網(wǎng)絡(luò)中分配因特網(wǎng)協(xié)議地址和檢測其復(fù)制品的方法
技術(shù)領(lǐng)域:
本發(fā)明總的涉及一種在專門網(wǎng)絡(luò)(ad-hoc network)環(huán)境下分配因特網(wǎng)協(xié)議(IP)地址和檢測該IP地址的復(fù)制的方法,具體地說,本發(fā)明涉及一種在專門網(wǎng)絡(luò)環(huán)境下分配IP地址和檢測該IP地址的復(fù)制品(duplication)的方法,其中終端在專門網(wǎng)絡(luò)環(huán)境中為自己分配IP地址,并有效地檢測和處理該IP地址的復(fù)制品,從而減小整個(gè)網(wǎng)絡(luò)的負(fù)載并允許本方法與現(xiàn)有的路由協(xié)議一起使用。
背景技術(shù):
專門網(wǎng)絡(luò)是一種建立在沒有基礎(chǔ)架構(gòu)(infrastructure)的環(huán)境中的無線終端之間的網(wǎng)絡(luò),其中沒有中心服務(wù)器,因此幾乎不可能為使用動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)服務(wù)器等的無線終端動(dòng)態(tài)地分配IP地址。
因此,由于專門網(wǎng)絡(luò)沒有中心服務(wù)器,每個(gè)終端都應(yīng)該具有為其自身分配IP地址并允許其與其它終端通信的0配置功能。
當(dāng)終端在沒有中心服務(wù)器的情況下為其自身分配IP地址時(shí),其檢查該IP地址是否在整個(gè)專門網(wǎng)絡(luò)中唯一,以防止IP地址的沖突。與無線網(wǎng)絡(luò)中不同,對(duì)專門網(wǎng)絡(luò)中IP地址沖突的檢測非常復(fù)雜。其原因是由于終端移動(dòng)而產(chǎn)生復(fù)雜的和不可預(yù)測的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的變化,例如不同網(wǎng)絡(luò)互相融合以及將一個(gè)網(wǎng)絡(luò)劃分為多個(gè)網(wǎng)絡(luò)。
直到現(xiàn)在,所使用的方法是專門網(wǎng)絡(luò)中的每個(gè)終端都具有一個(gè)唯一的標(biāo)識(shí)(ID),假設(shè)該唯一ID設(shè)置為介質(zhì)存取控制(MAC)地址或隨機(jī)數(shù),并確定是否每對(duì)唯一ID及其對(duì)應(yīng)IP地址在專門網(wǎng)絡(luò)中都有一個(gè)復(fù)制品。
在另一種方法中,假設(shè)每個(gè)專門網(wǎng)絡(luò)都具有區(qū)分于其他網(wǎng)絡(luò)的唯一ID。這樣的ID可以被設(shè)置為隨機(jī)數(shù)。網(wǎng)絡(luò)ID可以檢測兩個(gè)專門網(wǎng)絡(luò)的合并。
如果假設(shè)每個(gè)終端都有唯一的ID,則該終端在建立路由表的過程中向其它終端發(fā)送IP地址和唯一ID。當(dāng)所發(fā)送的IP地址與路由表中的一個(gè)IP地址相同,而所發(fā)送的ID與路由表中具有相同IP地址的終端的ID不同時(shí),可以確定兩個(gè)不同的終端在使用同一個(gè)IP地址。
如果假設(shè)每個(gè)專門網(wǎng)絡(luò)都具有唯一的ID,則通過專門網(wǎng)絡(luò)的現(xiàn)有終端為每個(gè)網(wǎng)絡(luò)分配一個(gè)IP地址。因此,在這種情況下,不會(huì)出現(xiàn)完全相同的IP地址。如果兩個(gè)專門網(wǎng)絡(luò)相互合并,則通過專門網(wǎng)絡(luò)的ID檢測專門網(wǎng)絡(luò)的合并。兩個(gè)專門網(wǎng)絡(luò)可以通過互相交換IP地址配置表來檢測該專門網(wǎng)絡(luò)的IP地址的復(fù)制。復(fù)制的IP地址在合并專門網(wǎng)絡(luò)的所有終端之間重新分配。
然而,盡管現(xiàn)有技術(shù)假設(shè)可以生成終端和專門網(wǎng)絡(luò)的唯一ID,但是幾乎不可能在沒有事先協(xié)議或通信的情況下生成唯一的ID。也就是說,由于MAC地址可以有復(fù)制品,因此即使基于MAC地址生成ID也不能保證ID是唯一的。因此,在ID具有復(fù)制品的情況下,現(xiàn)有技術(shù)不能檢測該IP地址的復(fù)制品。
此外,在傳統(tǒng)技術(shù)中,由于通過整個(gè)網(wǎng)絡(luò)進(jìn)行廣播,因此該廣播給網(wǎng)絡(luò)施加了額外的負(fù)擔(dān),從而使網(wǎng)絡(luò)超負(fù)荷。
簡言之,在現(xiàn)有技術(shù)中,由于專門網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)以不可預(yù)測的方式改變,因此需要采用復(fù)雜的方法檢測IP地址的復(fù)制品。盡管各種對(duì)應(yīng)方法試圖適應(yīng)各種情況,現(xiàn)有技術(shù)仍然窮于應(yīng)付網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的變化。因此,由于可能被終端移動(dòng)和通信故障嚴(yán)重影響,現(xiàn)有技術(shù)問題百出。
發(fā)明內(nèi)容
因此,本發(fā)明針對(duì)上述現(xiàn)有技術(shù)中存在的問題,其目的是提供一種在專門網(wǎng)絡(luò)中分配IP地址和檢測IP地址的復(fù)制的方法,其中終端在專門網(wǎng)絡(luò)環(huán)境中為自己分配一個(gè)IP地址,并有效檢測和處理該IP地址的復(fù)制品。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種在專門網(wǎng)絡(luò)環(huán)境中有效分配IP地址和檢測該IP地址的復(fù)制品的方法,包括步驟為終端分配初始IP地址,發(fā)送和接收呼叫信息;在發(fā)送和接收呼叫信息時(shí)檢測該IP地址的復(fù)制品,通過搜索雙重地址檢測(Duplicate Address Detection,DAD)表和歷史表來更新DAD表,并確定在使用DAD計(jì)時(shí)處理程序時(shí)是否出現(xiàn)IP地址沖突。
本發(fā)明的上述和其它目的、特征和其它優(yōu)點(diǎn)在以下結(jié)合附圖的詳細(xì)說明中更加清楚易懂,其中圖1為表示IP分配請(qǐng)求消息的格式圖;圖2為IP分配響應(yīng)消息的格式圖;圖3為表示呼叫消息的格式圖;圖4為表示DAD表結(jié)構(gòu)的框圖;圖5為表示歷史表結(jié)構(gòu)的框圖;圖6為初始IP地址分配處理的流程圖;圖7為呼叫消息接收處理的流程圖;圖8為呼叫消息發(fā)送處理的流程圖;圖9為DAD計(jì)時(shí)處理程序操作的流程圖;圖10為DAD表搜索處理的流程圖;圖11為歷史表搜索處理的流程圖;和圖12為檢測IP沖突處理的流程圖。
具體實(shí)施例方式
附圖標(biāo)記與附圖一起使用,其中在所有的不同附圖中使用的相同附圖標(biāo)記表示相同或相似的部件。
在下文中,參照附圖詳細(xì)說明在專門網(wǎng)絡(luò)中分配IP地址和檢測該IP地址的復(fù)制品的方法。
專門網(wǎng)絡(luò)中的每個(gè)終端都具有序列號(hào)(下文稱為“SEQ_NUM”)、臨時(shí)ID(下文稱為“TID”)、雙重地址檢測(下文稱為“DAD”)計(jì)時(shí)器、DAD表和歷史表。
為了清楚理解本發(fā)明,下面簡短說明上述部件的功能。
1.只要DAD計(jì)時(shí)器產(chǎn)生超時(shí),它就更新SEQ_NUM和TID。
2.只要DAD計(jì)時(shí)器產(chǎn)生超時(shí),SEQ_NUM就增加“1”。
3.只要DAD計(jì)時(shí)器產(chǎn)生超時(shí),就重新生成TID(0xffff表示地址沖突)。
4.圖4所示的DAD表可以是路由表的一部分。DAD表的每個(gè)條目都包括終端在網(wǎng)絡(luò)中的地址、該終端的SEQ_NUM、該終端的TID和標(biāo)記(flag),并通過一次轉(zhuǎn)發(fā)廣播消息(one-hop broadcast message,下文稱為“呼叫消息”)定時(shí)更新。在這種情況下,IP地址是終端用來在網(wǎng)絡(luò)中通信的固定地址,SEQ_NUM和TID是用于確定使用IP地址的終端是否唯一的值,標(biāo)記表示表中一個(gè)條目的狀態(tài)。因此,當(dāng)DAD表接收新信息時(shí),將該信息存儲(chǔ)在表的條目中,并將標(biāo)記設(shè)置為“1”;當(dāng)DAD表通過呼叫消息發(fā)送信息時(shí),將標(biāo)記設(shè)置為“0”。
圖5所示的歷史表存儲(chǔ)由當(dāng)前終端產(chǎn)生的最新的SEQ_NUM和最新的TID。為了開啟終端并為其分配IP地址,使用IP分配請(qǐng)求消息和IP分配響應(yīng)消息。需要分配IP地址的終端通過圖1所示的IP分配請(qǐng)求消息向相鄰的終端發(fā)送試探性IP地址。相鄰的終端通過IP分配響應(yīng)消息響應(yīng)該IP分配請(qǐng)求消息。IP分配請(qǐng)求消息包括消息類型、消息長度和試探性IP地址,而IP分配響應(yīng)消息包括消息類型、消息長度和建議IP地址。
為了在分配IP地址后檢測該IP地址的復(fù)制品,每個(gè)節(jié)點(diǎn)都定期發(fā)送如圖3所示的呼叫消息。呼叫消息包括消息類型、消息長度、存儲(chǔ)發(fā)送呼叫消息的終端的信息的源節(jié)點(diǎn)字段以及存儲(chǔ)網(wǎng)絡(luò)現(xiàn)有終端的信息的目標(biāo)節(jié)點(diǎn)字段。
下面參照?qǐng)D6至12說明自動(dòng)分配IP地址和檢測該IP地址的復(fù)制品的方法。
在開啟當(dāng)前終端時(shí),應(yīng)當(dāng)為當(dāng)前終端分配IP地址。IP地址的分配通過圖6所示的初始IP地址分配處理(S600)進(jìn)行,下面將簡短說明。
在當(dāng)前終端為自己分配了由隨機(jī)數(shù)組成的試探性IP地址(S610)后,當(dāng)前終端詢問一次轉(zhuǎn)發(fā)范圍內(nèi)的現(xiàn)有相鄰終端,是否可以使用該試探性IP地址(S620)。
此后,每個(gè)相鄰終端都使用DAD表和IP分配請(qǐng)求消息來比較該試探性IP地址和DAD表中的IP地址。如果該試探性IP地址具有一個(gè)復(fù)制品,則相鄰終端選擇DAD表中不存在的一個(gè)建議性IP地址,并通過IP分配響應(yīng)消息將其發(fā)送到當(dāng)前終端。如果試探性IP地址沒有復(fù)制品,則相鄰終端不響應(yīng)。
如果IP分配響應(yīng)消息從相鄰終端發(fā)送到當(dāng)前終端,則IP分配響應(yīng)消息的發(fā)送意味著試探性IP地址具有復(fù)制品。因此,當(dāng)前終端使用相鄰終端選擇的建議性IP地址作為新的試探性IP地址重新發(fā)送IP分配請(qǐng)求消息(S640)。
上述步驟重復(fù)“N”次,直到不再從相鄰終端接收到IP分配響應(yīng)消息(S650)。如果未從相鄰終端接收到“N”次IP分配響應(yīng)消息,則試探性IP地址用作當(dāng)前終端的IP地址(S660)。
當(dāng)初始IP地址通過上述處理分配給當(dāng)前終端之后,在重復(fù)發(fā)送和接收呼叫消息期間檢測該IP地址的復(fù)制品。參照?qǐng)D8說明發(fā)送呼叫消息的方法。
當(dāng)前終端在源節(jié)點(diǎn)字段存儲(chǔ)其IP地址、SEQ_NUM和TID。此后,如果DAD表中具有其中標(biāo)記為“1”的條目,則當(dāng)前終端在目標(biāo)節(jié)點(diǎn)字段中存儲(chǔ)該條目信息,并向一次轉(zhuǎn)發(fā)范圍內(nèi)的現(xiàn)有相鄰終端發(fā)送呼叫消息。接收呼叫消息的方法在圖7中說明。
如圖7所示,當(dāng)每個(gè)相鄰終端接收呼叫消息時(shí)(S700),相鄰終端從包括源節(jié)點(diǎn)字段和目標(biāo)節(jié)點(diǎn)字段的所有字段中取出節(jié)點(diǎn)字段F(m)(S710)。如果取出的節(jié)點(diǎn)字段F(m)的IP地址與本終端的IP地址相同(S740),則相鄰終端進(jìn)行圖11所示的歷史表搜索。如果取出的節(jié)點(diǎn)字段F(m)的IP地址與本終端的IP地址不相同,且DAD表中存在與所取出的節(jié)點(diǎn)字段F(m)具有相同IP地址的條目(S750),則相鄰終端進(jìn)行DAD表搜索。下面說明歷史表搜索和DAD表搜索。
與此同時(shí),如果存在與上述兩種情況不符的情況,則該情況意味著接收了新節(jié)點(diǎn)信息。新節(jié)點(diǎn)信息存儲(chǔ)在DAD表中,且標(biāo)記設(shè)置為“1”(S760)。重復(fù)該處理,直到從呼叫消息中再?zèng)]有待取出的節(jié)點(diǎn)字段。
下面參照?qǐng)D10說明DAD表搜索方法。
首先,將所取出的節(jié)點(diǎn)字段F(m)的SEQ_NUM與和取出的節(jié)點(diǎn)字段F(m)具有相同IP地址的條目E(t)的SEQ_NUM進(jìn)行比較(S1030)。將取出的節(jié)點(diǎn)字段F(m)的SEQ_NUM設(shè)置為Seq_m,而條目E(t)的SEQ_NUM設(shè)置為Seq_t。如果Seq_t為“0”(S1040),則條目E(t)更新為取出的節(jié)點(diǎn)字段F(m)(S1050);如果Seq_m小于Seq_t(S1055),則確定已輸入舊信息,且不應(yīng)當(dāng)更新條目E(t)(S1060)。
同時(shí),如果Seq_m與Seq_t相同(S1070),也就是,包括在取出的節(jié)點(diǎn)字段F(m)中的TID與TID_t,即包括在條目E(t)中的TID比較(S1075)。如果TID_m與TID_t不同(S1080),則使用相同IP地址的終端數(shù)量為兩個(gè)或更多。因此,E(t)的TID更改為0xffff(S1085),標(biāo)記更改為“1”,并通過下一個(gè)呼叫消息在整個(gè)網(wǎng)絡(luò)宣告IP地址的沖突(S1090)。如果TID_m與TID_t相同,則確定輸入了相同信息,處理返回而無需更改條目E(t)。如果Seq_m大于Seq_t,則確定輸入了新信息,條目E(t)更改為取出的節(jié)點(diǎn)字段F(m)(S1095)。
下面參照?qǐng)D11說明歷史表搜索方法。
Seq_m,即包括在從呼叫消息取出的節(jié)點(diǎn)字段F(m)中的SEQ_NUM與Seq_n,即當(dāng)前終端的SEQ_NUM(S1110)比較。如果Seq_m小于或等于Seq_n(S1120),則確定當(dāng)前終端的歷史表中是否存在SEQ_NUM是Seq_m的條目(S1130)。如果不存在這樣的條目,則處理返回而無需任何更改。
同時(shí),如果當(dāng)前終端的歷史表中存在SEQ_NUM是Seq_m的條目,則該條目設(shè)置為E(h)(S1140),此后,TID_m,即包括在取出的節(jié)點(diǎn)字段F(m)中的TID與TID_h,即E(h)的TID進(jìn)行比較(S1150)。如果TID_m不等于TID_h(S1160),則進(jìn)行檢測IP沖突方法(S1170)。參照?qǐng)D12說明檢測IP沖突方法。
首先,確定是否針對(duì)當(dāng)前終端在限制的時(shí)間段(例如,DAD計(jì)時(shí)器N次后超時(shí)的時(shí)間段)中所具有的IP地址進(jìn)行了檢測IP沖突方法(S1210)。如果在限制的時(shí)間段內(nèi)執(zhí)行檢測IP沖突方法,則意味著在該限制的時(shí)間段內(nèi)執(zhí)行了兩次IP地址沖突檢測。在這種情況下,IP地址通過初始IP地址分配處理再次分配給當(dāng)前終端。
在上述情況中,DAD計(jì)時(shí)器處理程序持續(xù)地檢查超時(shí)的產(chǎn)生,以確定是否在限制的時(shí)間段內(nèi)執(zhí)行了檢測IP沖突方法。參照?qǐng)D9簡要說明DAD計(jì)時(shí)處理程序的操作。
如圖9所示,如果產(chǎn)生超時(shí),則DAD計(jì)時(shí)器將當(dāng)前終端的SEQ_NUM增加“1”(S910),并生成當(dāng)前終端的TID(S920)。如果存在在DAD計(jì)時(shí)器處理程序“N”次操作期間沒有被更新的DAD表?xiàng)l目,則該條目的SEQ_NUM設(shè)置為“0”(S930)(設(shè)置SEQ_NUM為“0”的作用如圖10所示)。從DAD表中刪除在DAD計(jì)時(shí)器處理程序“M”次操作期間沒有被更新的DAD表?xiàng)l目(S940)(“M”是充分大于“N”的值)。
與此同時(shí),如果沒有在限制的時(shí)間段內(nèi)執(zhí)行檢測IP沖突方法,則應(yīng)確定該IP地址是否被更改或被持續(xù)使用。如果該IP地址被更改,則執(zhí)行初始IP地址分配處理。如果沒有更改IP地址,則SEQ_NUM設(shè)置為“所取出節(jié)點(diǎn)字段的SEQ_NUM+1”,并重新生成TID,以通知使用相同IP地址的相應(yīng)部分,該IP地址發(fā)生沖突。在這種情況下,更新的信息通過下一個(gè)呼叫消息發(fā)送到網(wǎng)絡(luò)。
由于在整個(gè)網(wǎng)絡(luò)中的廣播,現(xiàn)有技術(shù)對(duì)網(wǎng)絡(luò)施加了過量的負(fù)載,而本發(fā)明的方法采用一次轉(zhuǎn)發(fā)廣播來減小了施加在整個(gè)網(wǎng)絡(luò)上的負(fù)載。此外,現(xiàn)有技術(shù)不能應(yīng)付網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的變化,例如網(wǎng)絡(luò)分割和網(wǎng)絡(luò)合并,而本發(fā)明的方法由于其結(jié)構(gòu)簡單而具有穩(wěn)定性。
因此,本發(fā)明的方法可以防止以下情況,即由于每個(gè)終端不能具有唯一的ID而導(dǎo)致一定時(shí)間后改變ID,因此由于完全相同的IP和ID而幾乎不可能檢測到IP地址的復(fù)制品。
盡管公開本發(fā)明的優(yōu)選實(shí)施例是為了說明性目的,但本領(lǐng)域的技術(shù)人員知道各種不背離本發(fā)明范圍和精神的修改、添加和替代都是可以的。
權(quán)利要求
1.一種在網(wǎng)絡(luò)環(huán)境中分配因特網(wǎng)協(xié)議(IP)地址和檢測該IP地址的復(fù)制品的方法,包括步驟為終端分配初始IP地址;發(fā)送和接收廣播消息;在發(fā)送和接收廣播消息期間檢測所述IP地址的復(fù)制品;通過雙重地址探測(DAD)表和歷史表的至少一個(gè)的搜索來更新DAD表;使用DAD計(jì)時(shí)器處理程序來確定是否出現(xiàn)IP地址的沖突。
2.如權(quán)利要求1所述的方法,其中,所述網(wǎng)絡(luò)環(huán)境是專門網(wǎng)絡(luò)環(huán)境。
3.如權(quán)利要求1所述的方法,其中所述終端將所述初始IP地址分配給自己。
4.如權(quán)利要求1所述的方法,其中,所述廣播消息是一次轉(zhuǎn)發(fā)廣播消息。
5.一種在網(wǎng)絡(luò)環(huán)境中分配因特網(wǎng)協(xié)議(IP)地址和探測該IP地址的復(fù)制品的方法,包括步驟(a)開始為終端分配試探性IP地址;(b)確定該試探性IP地址是否可以被該終端使用;(c)將所述試探性IP地址與至少一個(gè)其它IP地址進(jìn)行比較;(d)如果試探性IP地址具有復(fù)制品,則選擇不存在的建議性IP地址;(e)向所述終端發(fā)送該建議性IP地址;(f)用該建議性IP地址作為試探性IP地址執(zhí)行步驟(b)。
6.如權(quán)利要求5所述的方法,其中所述終端將所述試探性IP地址分配給自己。
7.如權(quán)利要求5所述的方法,其中,所述網(wǎng)絡(luò)環(huán)境是專門環(huán)境。
8.如權(quán)利要求5所述的方法,其中,所述網(wǎng)絡(luò)環(huán)境沒有中心服務(wù)器。
9.如權(quán)利要求5所述的方法,其中,所述至少一個(gè)其它IP地址位于雙重地址檢測(DAD)表中。
10.如權(quán)利要求9所述的方法,其中所述建議性IP地址不存在于所述DAD表中。
11.如權(quán)利要求5所述的方法,其中相鄰終端選擇所述建議性IP地址。
全文摘要
本發(fā)明涉及一種在專門網(wǎng)絡(luò)環(huán)境中分配因特網(wǎng)(IP)地址和檢測該IP地址的復(fù)制品的方法。在本發(fā)明的方法中,終端在專門網(wǎng)絡(luò)環(huán)境中為自己分配IP地址,并有效檢測和處理該IP地址的復(fù)制品,從而減小了整個(gè)網(wǎng)絡(luò)的負(fù)載,并允許本方法與現(xiàn)有的路由協(xié)議一起使用。
文檔編號(hào)H04L29/12GK1527540SQ20041000745
公開日2004年9月8日 申請(qǐng)日期2004年3月4日 優(yōu)先權(quán)日2003年3月4日
發(fā)明者金玟秀, 南相秀 申請(qǐng)人:三星電子株式會(huì)社