專利名稱:一種外部網絡訪問移動自組網域名的方法
技術領域:
本發明涉及移動自組織網絡MANET(Mobile Ad Hoc Networks)技術領域,是MANET中外部網絡訪問自組網域名的一種實現方法。
背景技術:
移動自組織網絡是一種無基站的無線多跳網絡,是一種具有高度動態拓撲結構、節點任意移動的、點對點的自創建、自組織、自管理網絡。文獻[1]Ramanathan R,Redi J,“A Brief Overview of mobile Ad hoc NetworksChallenges and Directions”,IEEE Communications Magazine,50thAnniversary Commemorative Issue[C],2002。域名系統Domain Name System(DNS)為網絡節點提供域名解析服務,將請求的域名轉換為目的節點的IP地址。[2]DOMAIN NAMES-IMPLEMENTATION ANDSPECIFICATION,P.Mockapetris,ISI,November 1987。移動自組網臨時組網、節點自由移動以及用戶零配置的特性,使得MANET節點的IP地址是自動生成并動態變化的,因此,IP地址無法唯一標識一個MANET節點,而域名正好提供了一種唯一標識MANET節點的途徑。傳統DNS使用靜態配置完成域名與IP地址的映射,這在MANET中是不現實的,因為動態變化的IP地址使得靜態配置的映射關系不再正確。所以,必須提供一種外部網絡訪問MANET節點域名的方法。
發明內容
本發明的目的在于提供一種外部網絡訪問移動自組網節點域名的實現方法。
本發明定義了五種消息域名服務信息宣告消息、域名信息注冊消息、域名服務應答消息、身份驗證消息和注冊中心應答消息。其消息格式如下0 7 813 14 15
域名服務信息宣告消息報文結構Type 消息類型0Reserved 保留字段,置為全0N 網關域名服務器標識0表示網關不能提供域名服務,域名服務器由NameServer IP Address字段給出;1表示網關就是域名服務器,其地址由Gateway IP Address字段給出,此時,無Name Server IP Address字段P 協議標識0表示該消息中的IP地址為IPv4地址;1表示該消息中的IP地址為IPv6地址Gateway IP Address網關的IP地址Name Server IP Address域名服務器的IP地址Gateway Lifetime 32位,網關的服務生存期Reply Sequence Number 32位,消息序列號,用于標識消息的新舊078 13 14 15
域名信息注冊消息報文結構消息類型1
Reserved 保留字段,置為全0U 域名信息更新標識0表示根據此消息更新域名信息1表示根據此消息加入新域名信息P 協議標識0表示該消息中的IP地址為IPv4地址;1表示該消息中的IP地址為IPv6地址Domain Name請求注冊的域名Domain Name IP Address 請求注冊域名對應的IP地址ID 32位,注冊用戶標識碼Request Sequence Number32位,注冊消息序列號,用于標識消息的新舊Lifetime 32位,請求注冊域名信息的服務生存期0 7 8 10 11 12 13 14 15
域名服務應答消息報文結構Type 消息類型2Error錯誤類型0無錯誤,即此消息為注冊確認消息1無域名服務器2注冊信息錯誤3注冊中心忙4服務不可用Res 保留字段,置為全0M充值標識0表示剩余費用充足,無需充值1表示剩余費用不多,需盡快充值N網關域名服務器標識
0表示網關不能提供域名服務,域名服務器由NameServer IP Address字段給出;1表示網關就是域名服務器,其地址由Gateway IP Address字段給出,此時,無Name Server IP Address字段P 協議標識0表示該消息中的IP地址為IPv4地址;1表示該消息中的IP地址為IPv6地址Gateway IP Address 網關的IP地址Name Server IP Address 域名服務器的IP地址Domain Name請求注冊的域名Domain Name IP Address 請求注冊域名對應的IP地址Request Sequence Number32位,注冊消息序列號,從域名信息注冊消息中拷貝而來Reply Sequence Number 32位,消息序列號,用于標識消息的新舊Lifetime 32位,申請到的域名信息服務生存期07 814 15
身份驗證消息報文結構Type 消息類型3Reserved 保留字段,置為全0P 協議標識0表示該消息中的IP地址為IPv4地址;1表示該消息中的IP地址為IPv6地址Domain Name 請求注冊的域名ID32位,注冊用戶標識碼Lifetime 32位,請求注冊域名信息的服務生存期
0 7 89 10 13 14 15
注冊中心應答消息報文結構Type消息類型4Error 錯誤類型0無錯誤,即此消息為注冊確認消息1注冊信息錯誤2服務不可用Reserved保留字段,置為全0M 充值標識0表示剩余費用充足,無需充值1表示剩余費用不多,需盡快充值P 協議標識0表示該消息中的IP地址為IPv4地址;1表示該消息中的IP地址為IPv6地址Domain Name 請求注冊的域名ID 32位,注冊用戶標識碼Lifetime 32位,申請到的域名信息服務生存期以上幾種消息中,Domain Name采用RFC1035中資源記錄(resourcerecord)名字(NAME)字段所定義的格式。
本發明要求用戶所使用的域名必須向一個國家或地區的域名分配機構申請并獲得授權,域名分配機構根據用戶繳納費用的多少分配給用戶一個域名、用戶身份標識碼ID以及該域名所使用的期限。域名服分配機構維護著一個注冊中心,其數據庫中保存著用戶申請的域名、ID以及根據費用結算的域名服務生存期。
本發明要求MANET網絡通過一個網關與外部網絡連接,網關上運行域名服務,或者網關配置有域名服務器。外部網絡可以通過本發明所提出的方法對MANET節點的域名進行訪問。
本發明的實現由域名服務信息宣告模塊、域名信息注冊模塊、域名服務更新模塊、注冊中心處理模塊組成。在所有的MANET節點(包括網關)和域名服務器上都維護著一個域名服務緩存,用于提供域名解析服務。MANET節點上的域名服務緩存為MANET內的節點提供域名解析服務(MANET內部域名服務/解析方法不在本發明的范圍內),域名服務器上的域名服務緩存(例如傳統域名系統的域名信息數據庫)為外部網絡提供域名解析服務。所有的MANET節點和域名服務器還都維護著一個域名注冊緩存。域名服務器的域名注冊緩存用于保存申請注冊的域名信息一段時間,以等待注冊中心應答消息的到來;MANET節點的域名注冊緩存用于保存注冊消息一段時間,以避免由于網絡廣播使得同一注冊消息被多次轉發。MANET注冊節點維護著一個注冊序號計數器,對注冊次數進行遞增計數,每次域名信息注冊消息的發送或重發,都要將注冊序號計數器的值加1;網關維護著一個應答序號計數器,對域名服務信息宣告和域名服務信息應答進行遞增計數,每次域名服務信息宣告或域名服務應答消息的發送,都要將應答序號計數器的值加1。域名服務信息宣告模塊運行在網關上,負責向MANET節點廣播網關信息和域名服務器信息,并對域名信息注冊消息和域名服務應答消息進行處理和轉發;域名信息注冊模塊運行在MANET節點上,負責啟動域名信息注冊過程,進行消息的處理和轉發,向用戶返回提示信息;域名服務更新模塊運行在MANET節點和域名服務器上,負責根據域名服務應答消息或注冊中心應答消息對域名服務緩存進行更新,在域名服務器上運行的更新模塊還負責向注冊中心發送身份驗證消息;注冊中心處理模塊對收到的身份驗證消息進行處理,并向域名服務器返回注冊中心應答消息。
外部網絡訪問MANET域名的方法如下網關周期性地向MANET網絡宣告自己的網關信息和域名服務器信息,以便MANET節點獲知網關的存在并配置相關信息。網關域名服務信息宣告具體流程如圖1所示。
加入MANET或移動到一個新MANET的節點,若需要將自己的域名提供給外部網絡訪問,必須向一個域名服務器注冊自己預先申請的域名。MANET節點將自己的域名、當前的IP地址和用戶身份識別碼ID發送給域名服務器進行注冊,只有注冊成功后,外部網絡才能對該域名進行訪問。MANET域名信息注冊具體流程如圖2所示。
網關收到域名信息注冊消息后,根據當前網絡的域名服務器配置,對該消息進行處理。網關消息處理具體流程如圖3所示。
域名服務器收到域名注冊消息后,將申請注冊的域名、用戶ID和申請服務時間向域名注冊中心轉發,由域名注冊中心對用戶身份進行認證。通過認證的域名信息被加入域名服務器的域名服務緩存,提供給外部網絡訪問。域名服務器消息處理具體流程如圖4所示。
域名注冊中心收到身份驗證消息后,在域名用戶管理數據庫中對收到的信息進行驗證,然后向域名服務器返回注冊中心應答報文。域名注冊中心消息處理具體流程如圖5所示。
域名服務器收到注冊中心應答后,向注冊節點發送域名服務應答消息;網關收到該消息,進行填充并轉發;中間節點根據該消息中的相關信息更新自己的域名服務緩存,更新自己的網關和域名服務器配置,并將該消息向注冊節點轉發。中間節點消息處理具體流程如圖6所示。
注冊節點收到域名服務應答消息后,根據其中的信息進行處理,更新自己的網關和域名服務器配置,并根據Error值,向用戶返回不同的提示信息。若Error為0,且M為0,向用戶返回“注冊成功,本次服務時間為Lifetime”;若Error為0,且M為1,向用戶返回“注冊成功,本次服務時間為Lifetime,剩余服務時間不多”;若Error為1,向用戶返回“無域名服務器,進入等待域名服務器狀態”;若Error為2,向用戶返回“注冊信息錯誤,請確認后重新注冊”;若Error為3,向用戶返回“注冊中心忙,請稍后重試”;若Error為4,向用戶返回“服務不可用,請向注冊中心查詢原因”。
注冊節點收到Error為0的域名服務應答消息,表明節點自己當前的域名信息(包括域名、IP地址、服務生存期)已經加入域名服務器的服務緩存里,此時,外部網絡可以使用該域名訪問節點提供的服務了。
分析上述的外部網絡訪問MANET節點域名的方法,可以看出本發明的特點有(1)網關配置過程、域名服務器配置過程和域名信息注冊過程結合在一起,減少了在MANET上單獨傳送這些報文所占用的額外帶寬,同時增加了系統的統一性。
(2)由于該方法包含了域名服務器配置過程,所以MANET節點可以通過域名訪問外部網絡節點,即實現了MANET網絡和外部網絡的域名互通。
(3)利用事先申請的域名作為網絡節點標識,既方便網絡管理,又減輕了用戶記憶動態變化IP地址的負擔。
發明技術方案外部網絡通過域名訪問移動自組網節點的方法其特征在于網關配置過程、域名服務器配置過程和域名信息注冊過程結合在一起;網關周期性地向自組織網絡宣告網關信息和域名服務器信息;加入MANET或移動到新MANET的節點發送域名信息注冊消息請求對節點當前的域名信息進行注冊;網關收到注冊消息后,向域名服務器轉發;域名服務器收到域名信息注冊消息后,向域名注冊中心發送身份驗證消息;注冊中心根據身份驗證消息,在域名用戶管理數據庫中進行驗證,然后向域名服務器返回應答消息;域名服務器收到注冊中心應答消息后,將申請注冊的域名信息加入域名服務緩存,并向注冊節點發送域名服務信息應答消息;網關在域名服務應答消息中填充網關信息,然后將該消息向注冊節點發送;中間節點根據域名服務應答消息中的信息更新自己的網關配置、域名服務器配置以及域名服務緩存,并向注冊節點轉發該消息;注冊節點收到應答消息后,外部網絡就可通過域名訪問本節點提供的服務了。
圖1是網關域名服務信息宣告流程圖。
圖2是域名信息注冊流程圖。
圖3是網關消息處理流程圖。
圖4是域名服務器消息處理流程圖。
圖5是注冊中心處理流程圖。
圖6是中間節點消息處理流程圖。
具體實施例方式
外部網絡訪問移動自組網域名的方法,其中的網關域名服務信息宣告流程如下步驟S1網關根據自己是否為域名服務器或配置有域名服務器,構造域名服務信息宣告消息。
步驟S2將域名服務信息宣告消息周期性地向MANET節點廣播。
圖1中各事件的處理步驟如下(網關域名服務信息宣告流程)S1.1域名服務信息宣告模塊啟動后,初始化應答序號計數器的值為0,判斷自己是否為域名服務器,即自己是否運行了域名服務程序(如BIND)為其它網絡節點提供域名解析服務,若網關是域名服務器,進入S1.2;否則,轉到S1.3;S1.2將網關的IP地址保存在域名服務器記錄變量DN_SERVER中,進入S1.6;S1.3判斷自己是否配置有域名服務器(例如,在linux操作系統中,判斷文件/etc/resolv.conf中是否配置有域名服務器的IP地址),若有域名服務器配置,轉到S1.5;否則,進入S1.4;S1.4置DN_SERVER為空,即沒有域名服務器;S1.5置DN_SERVER為網關所配置的首選域名服務器的IP地址(例如,在linux操作系統中,置DN_SERVER為文件/etc/resolv.conf中第一條nameserver記錄的IP地址),進入S1.6;S1.6啟動定時器T0,用于周期性地廣播域名服務消息,T0的時間周期為NS_BROADCAST_TIMEOUT(其值根據實際的MANET網絡環境和規模決定),T0超時后,立即重啟下一次計時,定時器T0啟動后,進入S1.7;S1.7將應答序號計數器的值加1,將DN_SERVER置入域名服務信息宣告消息中廣播出去。若網關就是域名服務器,N被置1,否則,N被置0;P根據網關所使用的IP協議類型而定;Gateway Lifetime為網關的生存期,從網關配置文件中讀取;Gateway IP Address為網關的IP地址,N為1時,為DN_SERVER所保存的IP地址;當N為0時,Name ServerIP Address為DN_SERVER中的IP地址,Reply Sequence Number為應答序號計數器的當前值。進入S1.8;S1.8檢查自己的IP地址或首選域名服務器IP地址是否改變,若改變,進入S1.9;若未改變,轉到S1.10;S1.9置DN_SERVER為新的域名服務器地址,轉到S1.6;S1.10判斷T0是否超時,若未超時,進入S1.8;若等到T0超時,進入S1.7,周期性地廣播域名服務消息。
外部網絡訪問移動自組網域名的方法,其中的域名信息注冊流程如下步驟S1判斷自己是否配置有網關或域名服務器,若有,向網關或域名服務器單播多達兩次的域名信息注冊消息,進入步驟S2;若沒有,向MANET節點廣播多達兩次的域名信息注冊消息,轉到步驟S3;步驟S2啟動定時器,等待域名服務應答消息的到來。若兩次單播,定時器超時后,未收到域名服務應答消息,向MANET節點廣播多達兩次的域名信息注冊消息;步驟S3若兩次廣播,定時器超時后,仍未收到域名服務應答消息,就等待域名服務信息的到來,即等待網關域名服務信息宣告消息的到來,結束;步驟S4若在定時器超時前,收到了域名服務應答消息,若該消息為注冊確認消息,就表明域名信息已成功注冊,啟動域名服務生存期定時器,當定時器超時,重啟域名信息注冊過程;若該消息為其它類型的錯誤消息,就根據錯誤類型向用戶返回相應的提示消息;圖2中各事件的處理步驟如下(域名信息注冊流程)S2.1當域名信息注冊過程啟動時,首先檢查節點自己是否配置有域名服務器,若有,進入S2.2;否則,轉到S2.3;S2.2置域名信息注冊消息的IP頭目的IP地址為所配置的域名服務器地址,進入S2.5;S2.3檢查節點自己是否配置有網關,若有,進入S2.4;否則,進入S2.7;S2.4置域名信息注冊消息的IP頭目的IP地址為所配置的網關地址,進入S2.5;S2.5啟動注冊請求計數器Counter,置Counter的初值為0,進入S2.6;S2.6將域名信息注冊消息向目的IP地址單播出去,域名信息注冊消息中Domain Name為請求注冊的域名,Domain Name IP Address為節點當前的IP地址,ID為注冊中心分配給用戶使用Domain Name的身份標識碼,Request Sequence Number的值為注冊序號計數器的當前值,Lifetime為請求注冊域名信息的服務時間;然后將注冊序號計數器的值加1;轉到S2.9;S2.7啟動注冊請求計數器Counter,置Counter的初值為2,進入S2.8;S2.8將域名信息注冊消息向MANET節點廣播出去,域名信息注冊消息中Domain Name為請求注冊的域名,Domain Name IP Address為節點當前的IP地址,ID為注冊中心分配給用戶使用Domain Name的身份標識碼,Request Sequence Number的值為注冊序號計數器的當前值,Lifetime為請求注冊域名信息的服務時間;然后將注冊序號計數器的值加1;進入S2.9;S2.9將注冊請求計數器Counter的值加1,進入S2.10;S2.10啟動應答等待定時器T1,等待域名服務應答消息的到來;T1的時間周期為NS_REPLY_WAIT_TIMEOUT(其值根據實際的MANET網絡環境和規模決定);進入S2.11;S2.11判斷T1是否超時,若超時,進入S2.12;若未超時,且收到注冊確認消息,轉到S2.15,否則,等待T1超時;S2.12判斷Counter的值是否小于2,若是,轉到S2.6,再次單播域名信息注冊消息;否則,進入S2.13;S2.13判斷Counter的值是否小于4,若是,轉到S2.8,將域名信息注冊消息廣播出去;否則,進入S2.14;S2.14等待域名服務信息宣告的到來,啟動下一次域名信息注冊過程;S2.15啟動域名信息服務生存期定時器T2,T2的時間周期為收到的域名服務應答消息中的Lifetime值,進入S2.16;S2.16判斷T2是否超時,若超時,進入S2.1,啟動下一次域名信息注冊過程;否則,進入S2.16,等待T2超時。
外部網絡訪問移動自組網域名的方法,其中的網關消息處理流程如下步驟S1判斷收到的消息類型,若為域名信息注冊消息,進入步驟S2進行處理;若為域名服務應答消息,進入步驟S3進行處理;步驟S2若自己為域名服務器,對該消息進行域名信息注冊處理;否則,將該消息向域名服務器轉發;步驟S3填充域名服務應答消息中的相關字段,并根據該消息更新域名服務緩存,然后將該消息向注冊節點轉發。
圖3中各事件的處理步驟如下(網關消息處理流程)S3.1當網關收到域名信息注冊/域名服務應答消息時,首先判斷該消息類型,若為注冊消息,進入S3.2;若為應答消息,轉到S3.9;S3.2判斷網關自己是否為域名服務器,即檢查自己是否運行了域名服務程序,若是,進入S3.3;否則,轉到S3.4;S3.3對收到的消息中的域名信息進行注冊處理;S3.4檢查自己是否配置有域名服務器,若是,進入S3.5;否則,轉到S3.6;S3.5向自己所配置的域名服務器轉發域名信息注冊消息;S3.6判斷該消息的目的地是否為網關本身,即檢查該消息的IP頭目的IP地址與網關自己的IP地址是否相同,若是,轉到S3.8;否則,進入3.7;S3.7將該域名信息注冊消息向目的IP地址轉發;S3.8發送“無域名服務器”應答,即向注冊節點發送域名服務應答消息,其中Error字段置為1,Reply Sequence Number字段置為應答序號計數器的當前值;然后將應答序號計數器的值加1;S3.9對從域名服務器發來的域名服務應答消息中的Gateway IPAddress和Reply Sequence Number字段進行填充,Gateway IP Address的值為網關自己的IP地址,Reply Sequence Number的值為應答序號計數器的當前值;然后將應答序號計數器的值加1;進入S3.10;S3.10根據下面的規則更新域名服務緩存,然后進入S3.11;Error為0時在域名服務緩存中查找域名為Domain Name的記錄R,若找到記錄R,比較應答消息中的Reply Sequence Number和R中的ReplySequence Number,若前者的應答序號大,根據該消息中的Domain Name、Domain Name IP Address、Reply Sequence Number和Lifetime字段更新記錄R,否則,保持記錄R不變;若未找到記錄R,根據該消息中的DomainName、Domain Name IP Address、Reply Sequence Number和Lifetime字段,在域名服務緩存中加入一條新的域名信息記錄;Error為其它值時在域名服務緩存中查找域名為Domain Name的記錄R,若找到記錄R,將應答消息和R中的Domain Name IP Address、ReplySequence Number進行比較,若Domain Name IP Address不同且應答消息中Reply Sequence Number較大,將R從域名服務緩存中刪除,否則,保持記錄R不變;若未找到記錄R,對域名服務緩存不作任何改變;S3.11將該域名服務應答消息向注冊節點轉發。
外部網絡訪問移動自組網域名的方法,其中的域名服務器消息處理流程如下步驟S1根據收到域名信息注冊消息,操作域名注冊緩存;步驟S2判斷對該域名信息的注冊是否需要進行身份驗證,若是,進入步驟S3;否則,根據該消息更新域名服務緩存;步驟S3向域名注冊中心發送身份驗證消息,等待注冊中心應答消息的到來;步驟S4收到注冊中心應答消息后,根據該消息,更新域名服務緩存,并向注冊節點發送域名服務應答消息。
圖4中各事件的處理步驟如下(域名服務器消息處理流程)S4.1當域名服務器收到域名信息注冊消息時,立即啟動下述的域名信息注冊處理過程,首先在注冊緩存中查找域名為Domain Name的記錄R,若找到記錄R,轉到S4.3;否則,進入S4.2;
S4.2根據收到的域名信息注冊消息中的Domain Name、Domain NameIP Address和Request Sequence Number字段,在域名注冊緩存中加入一條新記錄;轉到S4.5;S4.3比較注冊消息中的Request Sequence Number和記錄R中的Request Sequence Number,若前者大,轉到S4.5;否則,進入S4.4;S4.4該注冊消息已被處理過,丟棄;S4.5在域名服務緩存中查找域名為Domain Name的記錄R,若找到記錄R,進入S4.6;否則,轉到S4.8;S4.6比較域名信息注冊消息中的ID和R中的ID,若相同,轉到S4.8;否則,進入S4.7;S4.7發送“注冊信息錯誤”應答,即向注冊節點發送域名服務應答消息,其中Error字段值置為2;Gateway IP Address和Reply SequenceNumber字段置空,留待網關填充;Name Server IP Address為節點自己的IP地址;Domain Name、Domain Name IP Address、Request Sequence Number和Lifetime從域名信息注冊消息復制而來;S4.8啟動身份驗證計數器A_Counter,計數初值為0;進入S4.9;S4.9向注冊中心發送身份驗證消息,其中Domain Name、ID和Lifetime從域名信息注冊消息復制而來;進入S4.10;S4.10啟動注冊中心應答等待定時器T3,等待注冊中心應答消息的到來,T3的計時周期為REGC_REPLY_WAIT_TIMEOUT(其值為域名服務器與注冊中心間的消息往返時間,根據實際的網絡環境而定);A_Counter的值加1;進入S4.11;S4.11判斷T3是否超時,若未超時且收到注冊中心應答消息,轉到S4.14;否則,等待T3超時,進入S4.12;S4.12判斷身份驗證計數器A_Counter的值是否小于2,若是,轉到S4.9,再次發送身份驗證消息;否則,進入S4.13;S4.13發送“注冊中心忙”應答,即向注冊節點發送域名服務應答消息,其中Error為3;S4.14判斷收到的注冊中心應答是否為確認應答,即檢查應答消息中的Error字段值是否為0,若是,進入S4.15;否則,轉到S4.17;
S4.15在域名服務緩存中查找域名為Domain Name的記錄R,若找到記錄R,根據域名信息注冊消息中的Domain Name IP Address和注冊中心應答消息中的Lifetime更新R的相應字段;若未找到記錄R,根據域名信息注冊消息中的Domain Name、Domain Name IP Address、ID和注冊中心應答消息中的Lifetime,在域名服務緩存中加入一條新記錄。進入S4.16;S4.16發送“注冊確認”應答,即向注冊節點發送域名服務應答消息,其中Error字段值置為0;Gateway IP Address和Reply Sequence Number字段置空;Name Server IP Address為節點自己的IP地址;Domain Name、Domain Name IP Address和Request Sequence Number從域名信息注冊消息復制而來;M和Lifetime從注冊中心應答消息復制而來;S4.17向注冊節點發送域名服務應答消息,其中Error字段值從注冊中心應答消息復制而來。
外部網絡訪問移動自組網域名的方法,其中的注冊中心處理流程如下步驟S1對注冊用戶身份ID進行驗證,若通過驗證,進入步驟S2;否則,不予注冊;步驟S2檢查注冊用戶請求的服務是否可用,若服務可用,進入步驟S3;否則,不予注冊;步驟S3檢查注冊用戶的域名服務剩余時間是否快到期,若是,向用戶發送“充值提示”;否則,發送“通過驗證”應答。
圖5中各事件的處理步驟如下(注冊中心處理流程)S5.1注冊中心收到身份驗證消息,首先在自己的數據庫中查找域名為Domain Name的記錄R,若找到記錄R,進入S5.2;否則,轉到S5.3;S5.2比較身份驗證消息中的ID與R中的ID是否相同,若相同,轉到S5.4;否則,進入S5.3;S5.3發送“注冊信息錯誤”應答,即向域名服務器發送注冊中心應答消息,其中Error為1;Domain Name、ID和Lifetime從身份驗證消息復制而來;
S5.4檢查注冊用戶是否有權限使用所請求的服務(例如,是否有權使用IPv6域名服務、用戶的享受服務權是否被暫時禁止等),若是,轉到S5.6;否則,進入S5.5;S5.5發送“服務不可用”應答,即向域名服務器發送注冊中心應答消息,其中Error為2;S5.6判斷服務剩余時間是否小于請求時間,即檢查注冊中心數據庫中的域名服務生存期與當前時間的差值是否小于身份驗證消息中的Lifetime值,若是,進入S5.7;否則,轉到S5.8;S5.7置注冊中心應答消息中的Lifetime為服務剩余時間;轉到S5.10;S5.8置注冊中心應答消息中的Lifetime為身份驗證消息中的Lifetime;進入S5.9;S5.9判斷服務剩余時間減去請求時間是否小于提示閾值FARE_ALARM_TIME(其值根據實際的收費策略而定),若是,進入S5.10;否則,轉到S5.11;S5.10向用戶發送“費用不多”指示,即置注冊中心應答消息中的M為1;進入S5.11;S5.11發送“通過驗證”應答,即向域名服務器發送注冊中心應答消息,其中Error為0;Domain Name和ID從身份驗證消息中復制而來。
外部網絡訪問移動自組網域名的方法,其中的中間節點消息處理流程如下步驟S1判斷收到的消息類型,若為域名信息注冊消息,進入步驟S2;若為域名服務應答消息,進入步驟S3;步驟S2判斷該注冊消息是否被處理過,若是,丟棄;否則,更新注冊緩存條目,并將該消息轉發出去;步驟S3根據域名服務應答消息更新節點的網關配置、域名服務器配置和域名服務緩存,并將該消息轉發出去。
圖6中各事件的處理步驟如下(中間節點消息處理流程)S6.1中間節點收到注冊/應答消息時,首先判斷該消息是否為域名信息注冊消息,若是,進入S6.2;否則,轉到S6.7;
S6.2在域名注冊緩存中查找域名為Domain Name的記錄R,若找到記錄R,進入S6.3;否則,轉到S6.6;S6.3比較域名信息注冊消息中的Request Sequence Number和記錄R中的Request Sequence Number,若前者大,轉到S6.5;否則,進入S6.4;S6.4該注冊消息已被處理過,丟棄;S6.5根據域名信息注冊消息中的Domain Name IP Address和RequestSequence Number更新記錄R;轉到S6.12;S6.6根據域名信息注冊消息中的Domain Name、Domain Name IPAddress和Request Sequence Number,在域名注冊緩存中加入一條新記錄;轉到S6.12;S6.7根據域名服務應答消息中的Gateway IP Address更新節點自己的網關配置;進入S6.8;S6.8根據域名服務應答消息中的Name Server IP Address更新節點自己的域名服務器配置;進入S6.9;S6.9判斷該消息是否為確認應答消息,即檢查域名服務應答消息中的Error值是否為0,若是,轉到S6.11;否則,進入S6.10;S6.10在域名服務緩存中查找域名為Domain Name、IP地址為DomainName IP Address的記錄R,若找到記錄R,將R從域名服務緩存中刪除;轉到S6.12;S6.11在域名服務緩存中查找域名為Domain Name、IP地址為DomainName IP Address的記錄R,若找到記錄R,根據域名服務應答消息中的Domain Name IP Address、Reply Sequence Number和Lifetime更新R;進入S6.12;S6.12將收到注冊/應答消息轉發出去。
權利要求
1.一種外部網絡訪問移動自組網域名的方法,其特征在于網關配置過程、域名服務器配置過程和域名信息注冊過程結合在一起,網關周期性地向MANET節點宣告網關信息和域名服務器配置信息,加入MANET或移動到一個新MANET的節點啟動域名信息注冊過程,向域名服務器發送注冊請求,網關收到注冊請求后,向自己配置的域名服務器轉發;域名服務器根據收到的注冊請求后,向域名注冊中心發送身份驗證請求;注冊中心對注冊節點的使用權限在域名用戶管理數據庫中進行驗證,通過身份驗證后,向域名服務器返回應答消息,域名服務器將注冊的域名信息加入域名服務緩存,提供給外部網絡訪問,域名服務器還要通過網關向注冊節點發送注冊應答,中間節點轉發應答,并根據應答信息進行網關配置和域名服務器配置以及域名服務緩存,并向注冊節點轉發該消息;注冊節點收到應答消息后,外部網絡就可通過域名訪問本節點提供的服務了。
2.根據權利要求1的外部網絡訪問移動自組網域名的方法,其中的域名信息注冊流程如下步驟S1判斷自己是否配置有網關或域名服務器,若有,向網關或域名服務器單播多達兩次的域名信息注冊消息,進入步驟S2;若沒有,向MANET節點廣播多達兩次的域名信息注冊消息,轉到步驟S3;步驟S2啟動定時器,等待域名服務應答消息的到來,若兩次單播,定時器超時后,未收到域名服務應答消息,向MANET節點廣播多達兩次的域名信息注冊消息;步驟S3若兩次廣播,定時器超時后,仍未收到域名服務應答消息,就等待域名服務信息的到來,即等待網關域名服務信息宣告消息的到來,結束;步驟S4若在定時器超時前,收到了域名服務應答消息,若該消息為注冊確認消息,就表明域名信息已成功注冊,啟動域名服務生存期定時器,當定時器超時,重啟域名信息注冊過程;若該消息為其它類型的錯誤消息,就根據錯誤類型向用戶返回相應的提示消息。
3.根據權利要求2的外部網絡訪問移動自組網域名的方法,其特征在于,域名信息注冊流程具體步驟如下S2.1當域名信息注冊過程啟動時,首先檢查節點自己是否配置有域名服務器,若有,進入S2.2;否則,轉到S2.3;S2.2置域名信息注冊消息的IP頭目的IP地址為所配置的域名服務器地址,進入S2.5;S2.3檢查節點自己是否配置有網關,若有,進入S2.4;否則,進入S2.7;S2.4置域名信息注冊消息的IP頭目的IP地址為所配置的網關地址,進入S2.5;S2.5啟動注冊請求計數器Counter,置Counter的初值為0,進入S2.6;S2.6將域名信息注冊消息向目的IP地址單播出去,域名信息注冊消息中Domain Name為請求注冊的域名,Domain Name IP Address為節點當前的IP地址,ID為注冊中心分配給用戶使用Domain Name的身份標識碼,Request Sequence Number的值為注冊序號計數器的當前值,Lifetime為請求注冊域名信息的服務時間;然后將注冊序號計數器的值加1;轉到S2.9;S2.7啟動注冊請求計數器Counter,置Counter的初值為2,進入S2.8;S2.8將域名信息注冊消息向MANET節點廣播出去,域名信息注冊消息中Domain Name為請求注冊的域名,Domain Name IP Address為節點當前的IP地址,ID為注冊中心分配給用戶使用Domain Name的身份標識碼,Request Sequence Number的值為注冊序號計數器的當前值,Lifetime為請求注冊域名信息的服務時間;然后將注冊序號計數器的值加1;進入S2.9;S2.9將注冊請求計數器Counter的值加1,進入S2.10;S2.10啟動應答等待定時器T1,等待域名服務應答消息的到來;T1的時間周期為NS_REPLY_WAIT_TIMEOUT,進入S2.11;S2.11判斷T1是否超時,若超時,進入S2.12;若未超時,且收到注冊確認消息,轉到S2.15,否則,等待T1超時;S2.12判斷Counter的值是否小于2,若是,轉到S2.6,再次單播域名信息注冊消息;否則,進入S2.13;S2.13判斷Counter的值是否小于4,若是,轉到S2.8,將域名信息注冊消息廣播出去;否則,進入S2.14;S2.14等待域名服務信息宣告的到來,啟動下一次域名信息注冊過程;S2.15啟動域名信息服務生存期定時器T2,T2的時間周期為收到的域名服務應答消息中的Lifetime值,進入S2.16;S2.16判斷T2是否超時,若超時,進入S2.1,啟動下一次域名信息注冊過程;否則,進入S2.16,等待T2超時。
4.根據權利要求1的外部網絡訪問移動自組網域名的方法,其中的網關消息處理流程具體步驟如下S3.1當網關收到域名信息注冊/域名服務應答消息時,首先判斷該消息類型,若為注冊消息,進入S3.2;若為應答消息,轉到S3.9;S3.2判斷網關自己是否為域名服務器,即檢查自己是否運行了域名服務程序,若是,進入S3.3;否則,轉到S3.4;S3.3對收到的消息中的域名信息進行注冊處理;S3.4檢查自己是否配置有域名服務器,若是,進入S3.5;否則,轉到S3.6;S3.5向自己所配置的域名服務器轉發域名信息注冊消息;S3.6判斷該消息的目的地是否為網關本身,即檢查該消息的IP頭目的IP地址與網關自己的IP地址是否相同,若是,轉到S3.8;否則,進入3.7;S3.7將該域名信息注冊消息向目的IP地址轉發;S3.8發送“無域名服務器”應答,即向注冊節點發送域名服務應答消息,其中Error字段置為1,Reply Sequence Number字段置為應答序號計數器的當前值;然后將應答序號計數器的值加1;S3.9對從域名服務器發來的域名服務應答消息中的Gateway IPAddress和Reply Sequence Number字段進行填充,Gateway IP Address的值為網關自己的IP地址,Reply Sequence Number的值為應答序號計數器的當前值;然后將應答序號計數器的值加1;進入S3.10;S3.10根據下面的規則更新域名服務緩存,然后進入S3.11;Error為0時在域名服務緩存中查找域名為Domain Name的記錄R,若找到記錄R,比較應答消息中的Reply Sequence Number和R中的ReplySequence Number,若前者的應答序號大,根據該消息中的Domain Name、Domain Name IP Address、Reply Sequence Number和Lifetime字段更新記錄R,否則,保持記錄R不變;若未找到記錄R,根據該消息中的DomainName、Domain Name IP Address、Reply Sequence Number和Lifetime字段,在域名服務緩存中加入一條新的域名信息記錄;Error為其它值時在域名服務緩存中查找域名為Domain Name的記錄R,若找到記錄R,將應答消息和R中的Domain Name IP Address、ReplySequence Number進行比較,若Domain Name IP Address不同且應答消息中Reply Sequence Number較大,將R從域名服務緩存中刪除,否則,保持記錄R不變;若未找到記錄R,對域名服務緩存不作任何改變;S3.11將該域名服務應答消息向注冊節點轉發。
5.根據權利要求1的外部網絡訪問移動自組網域名的方法,其中的域名服務器消息處理流程如下步驟S1根據收到域名信息注冊消息,操作域名注冊緩存;步驟S2判斷對該域名信息的注冊是否需要進行身份驗證,若是,進入步驟S3;否則,根據該消息更新域名服務緩存;步驟S3向域名注冊中心發送身份驗證消息,等待注冊中心應答消息的到來;步驟S4收到注冊中心應答消息后,根據該消息,更新域名服務緩存,并向注冊節點發送域名服務應答消息。
6.根據權利要求5的外部網絡訪問移動自組網域名的方法,其特征在于,域名服務器消息處理流程具體步驟如下S4.1當域名服務器收到域名信息注冊消息時,立即啟動下述的域名信息注冊處理過程,首先在注冊緩存中查找域名為Domain Name的記錄R,若找到記錄R,轉到S4.3;否則,進入S4.2;S4.2根據收到的域名信息注冊消息中的Domain Name、Domain NameIP Address和Request Sequence Number字段,在域名注冊緩存中加入一條新記錄;轉到S4.5;S4.3比較注冊消息中的Request Sequence Number和記錄R中的Request Sequence Number,若前者大,轉到S4.5;否則,進入S4.4;S4.4該注冊消息已被處理過,丟棄;S4.5在域名服務緩存中查找域名為Domain Name的記錄R,若找到記錄R,進入S4.6;否則,轉到S4.8;S4.6比較域名信息注冊消息中的ID和R中的ID,若相同,轉到S4.8;否則,進入S4.7;S4.7發送“注冊信息錯誤”應答,即向注冊節點發送域名服務應答消息,其中Error字段值置為2;Gateway IP Address和Reply SequenceNumber字段置空,留待網關填充;Name Server IP Address為節點自己的IP地址;Domain Name、Domain Name IP Address、Request Sequence Number和Lifetime從域名信息注冊消息復制而來;S4.8啟動身份驗證計數器A_Counter,計數初值為0;進入S4.9;S4.9向注冊中心發送身份驗證消息,其中Domain Name、ID和Lifetime從域名信息注冊消息復制而來;進入S4.10;S4.10啟動注冊中心應答等待定時器T3,等待注冊中心應答消息的到來,T3的計時周期為REGC_REPLY_WAIT_TIMEOUT,其值為域名服務器與注冊中心間的消息往返時間,根據實際的網絡環境而定;A_Counter的值加1;進入S4.11;S4.11判斷T3是否超時,若未超時且收到注冊中心應答消息,轉到S4.14;否則,等待T3超時,進入S4.12;S4.12判斷身份驗證計數器A_Counter的值是否小于2,若是,轉到S4.9,再次發送身份驗證消息;否則,進入S4.13;S4.13發送“注冊中心忙”應答,即向注冊節點發送域名服務應答消息,其中Error為3;S4.14判斷收到的注冊中心應答是否為確認應答,即檢查應答消息中的Error字段值是否為0,若是,進入S4.15;否則,轉到S4.17;S4.15在域名服務緩存中查找域名為Domain Name的記錄R,若找到記錄R,根據域名信息注冊消息中的Domain Name IP Address和注冊中心應答消息中的Lifetime更新R的相應字段;若未找到記錄R,根據域名信息注冊消息中的Domain Name、Domain Name IP Address、ID和注冊中心應答消息中的Lifetime,在域名服務緩存中加入一條新記錄。進入S4.16;S4.16發送“注冊確認”應答,即向注冊節點發送域名服務應答消息,其中Error字段值置為0;Gateway IP Address和Reply Sequence Number字段置空;Name Server IP Address為節點自己的IP地址;Domain Name、Domain Name IP Address和Request Sequence Number從域名信息注冊消息復制而來;M和Lifetime從注冊中心應答消息復制而來;S4.17向注冊節點發送域名服務應答消息,其中Error字段值從注冊中心應答消息復制而來。
7.根據權利要求1的外部網絡訪問移動自組網域名的方法,其中的注冊中心處理流程具體步驟如下S5.1注冊中心收到身份驗證消息,首先在自己的數據庫中查找域名為Domain Name的記錄R,若找到記錄R,進入S5.2;否則,轉到S5.3;S5.2比較身份驗證消息中的ID與R中的ID是否相同,若相同,轉到S5.4否則,進入S5.3;S5.3發送“注冊信息錯誤”應答,即向域名服務器發送注冊中心應答消息,其中Error為1;Domain Name、ID和Lifetime從身份驗證消息復制而來;S5.4檢查注冊用戶是否有權限使用所請求的服務,若是,轉到S5.6;否則,進入S5.5;S5.5發送“服務不可用”應答,即向域名服務器發送注冊中心應答消息,其中Error為2;S5.6判斷服務剩余時間是否小于請求時間,即檢查注冊中心數據庫中的域名服務生存期與當前時間的差值是否小于身份驗證消息中的Lifetime值,若是,進入S5.7;否則,轉到S5.8;S5.7置注冊中心應答消息中的Lifetime為服務剩余時間;轉到S5.10;S5.8置注冊中心應答消息中的Lifetime為身份驗證消息中的Lifetime;進入S5.9;S5.9判斷服務剩余時間減去請求時間是否小于提示閾值FARE_ALARM_TIME,若是,進入S5.10;否則,轉到S5.11;S5.10向用戶發送“費用不多”指示,即置注冊中心應答消息中的M為1;進入S5.11;S5.11發送“通過驗證”應答,即向域名服務器發送注冊中心應答消息,其中Error為0;Domain Name和ID從身份驗證消息中復制而來。
8.根據權利要求1的外部網絡訪問移動自組網域名的方法,其中的中間節點消息處理流程具體步驟如下S6.1中間節點收到注冊/應答消息時,首先判斷該消息是否為域名信息注冊消息,若是,進入S6.2;否則,轉到S6.7;S6.2在域名注冊緩存中查找域名為Domain Name的記錄R,若找到記錄R,進入S6.3;否則,轉到S6.6;S6.3比較域名信息注冊消息中的Request Sequence Number和記錄R中的Request Sequence Number,若前者大,轉到S6.5;否則,進入S6.4;S6.4該注冊消息已被處理過,丟棄;S6.5根據域名信息注冊消息中的Domain Name IP Address和RequestSequence Number更新記錄R;轉到S6.12;S6.6根據域名信息注冊消息中的Domain Name、Domain Name IPAddress和Request Sequence Number,在域名注冊緩存中加入一條新記錄;轉到S6.12;S6.7根據域名服務應答消息中的Gateway IP Address更新節點自己的網關配置;進入S6.8;S6.8根據域名服務應答消息中的Name Server IP Address更新節點自己的域名服務器配置;進入S6.9;S6.9判斷該消息是否為確認應答消息,即檢查域名服務應答消息中的Error值是否為0,若是,轉到S6.11;否則,進入S6.10;S6.10在域名服務緩存中查找域名為Domain Name、IP地址為DomainName IP Address的記錄R,若找到記錄R,將R從域名服務緩存中刪除;轉到S6.12;
全文摘要
本發明屬于移動自組織網絡MANET技術領域,它是一種外部網絡訪問MANET域名的實現方法。本方法將網關配置過程、域名服務器配置過程和域名信息注冊過程結合在一起,其步驟包括網關周期性地向MANET節點宣告網關信息和域名服務器配置信息;加入MANET的節點啟動域名信息注冊過程,向域名服務器發送注冊請求;域名服務器收到注冊請求后,向注冊中心發送身份驗證請求,對注冊節點的權限進行驗證;通過身份驗證后,域名服務器將注冊的域名信息加入域名服務緩存,提供給外部網絡訪問;域名服務器還要通過網關向注冊節點發送注冊應答;中間節點轉發應答,并根據應答信息進行網關配置和域名服務器配置。
文檔編號H04L29/06GK1614947SQ20041000992
公開日2005年5月11日 申請日期2004年12月2日 優先權日2004年12月2日
發明者周繼華, 孫毅, 石晶林 申請人:中國科學院計算技術研究所