專利名稱:多語言域名服務(wù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于將網(wǎng)絡(luò)域名分解為對應(yīng)的網(wǎng)絡(luò)地址的域名服務(wù)。本發(fā)明尤其涉及接受用不同的編碼格式,而不僅僅是ASCII格式,提供的域名的替換的或改進(jìn)的域名服務(wù)。
因特網(wǎng)已經(jīng)從純粹的研究和學(xué)術(shù)領(lǐng)域發(fā)展為全球網(wǎng)絡(luò),從而深入到具有不同的語言和文化的多樣化社會(huì)中。因特網(wǎng)已經(jīng)在所有的領(lǐng)域中為其用戶提供服務(wù)。今天,已經(jīng)可以用許多語言進(jìn)行電子郵件的交換。萬維網(wǎng)上的內(nèi)容也作為激增的多語言的軟件應(yīng)用以許多不同的語言進(jìn)行發(fā)布。例如可以向中國的另一個(gè)人發(fā)送電子郵件消息或?yàn)g覽日文的萬維網(wǎng)網(wǎng)頁。
今天因特網(wǎng)完全依賴于域名系統(tǒng)將人類可讀的名稱分解為數(shù)字IP地址或進(jìn)行相反的操作。域名系統(tǒng)(DNS)仍然基于拉丁-1字母表的子集,因此仍然主要是英語。為了提供通用性,電子郵件地址,Web地址和其他因特網(wǎng)尋址格式均采用ASCII作為全球標(biāo)準(zhǔn)以確?;ゲ僮鳌,F(xiàn)在還沒有規(guī)定允許電子郵件地址或Web地址使用非ASCII的本國語言。這就意味著任何一個(gè)因特網(wǎng)的用戶必須具有一些ASCII字符的基本知識。
盡管對于懂得作為科學(xué)、技術(shù)、商業(yè)和政治的國際性語言的英語的技術(shù)或商業(yè)用戶來講,這種情況一般不會(huì)出現(xiàn)問題,但是對于英語不被廣泛使用的國家來講要使因特網(wǎng)迅速地激增卻是一個(gè)很大的障礙。在那些國家中,因特網(wǎng)新手必須懂一些基本的英語作為用他本國語言發(fā)送電子郵件的準(zhǔn)備條件,這是因?yàn)榧词闺娮余]件應(yīng)用程序可以支持本國語言,電子郵件地址也不支持這種語言。企業(yè)內(nèi)部網(wǎng)必須使用ASCII來簡單地命名他們的部門域名和Web文檔,因?yàn)榧词乖诒镜乜梢杂卸鄠€(gè)文件名和目錄路徑,在域名領(lǐng)域中協(xié)議也不支持除ASCII外的任何符號。
而且,講歐洲語言的用戶必須將他們的域名近似為沒有重音等的域名。例如希望要一個(gè)企業(yè)標(biāo)識的Citroёn公司不得不將自己近似為一個(gè)最接近的ASCII符號,而使用“www.citroen.fr”,來自法國的Francois先生不得不經(jīng)常忍受將其電子郵件地址故意地錯(cuò)誤拼寫為“francois@email.fr”的煩惱(假象的例子)。
當(dāng)前,就象操作系統(tǒng)可以被本地化一樣電子郵件地址域中的用戶標(biāo)識可以用多語言腳本書寫以被本地化從而提供相應(yīng)的本地字體。而且在多語言腳本中也可以提供目錄和文件名。但是這些名稱中的域名部分局限于在RFC1035因特網(wǎng)標(biāo)準(zhǔn),即闡明域名系統(tǒng)的標(biāo)準(zhǔn)中所允許的那些部分。
造成這種情況的一個(gè)正當(dāng)?shù)睦碛煽梢允莾A向于使用重疊代碼的軟件開發(fā)者。例如中國BIG5和GB2312編碼(即字形或字符的數(shù)字表示)重疊,日本JIS和Shift-JIS和韓國KSC5601也重疊。結(jié)果,除非在編碼中包括指定編碼的附加參數(shù)來提示應(yīng)用客戶正在使用什么編碼,否則客戶是很難確保BIG5和JIS或GB2312和KSC5601之間的差別的。因此要確保域名的唯一性和編碼的確定性,DNS不得不使用ASCII。
根據(jù)RFC1035,當(dāng)前有效的域名僅局限于ISO-8859拉丁1字母表的子集,該表包括字母A-Z(情況不靈敏),數(shù)字0-9及連字符(-)。該限制有效地使一個(gè)域名支持英語或具有羅馬字化的語言,例如日文中的Malay或Romaji,或羅馬音譯,例如音譯Tamil。但是不接受其他腳本,即使是擴(kuò)展的ASCII字符也不使用。
統(tǒng)一字符編碼標(biāo)準(zhǔn)(Unicode)是一種字符編碼系統(tǒng),其中幾乎最重要的語言的每個(gè)字符都被唯一地映射為16位值。由于統(tǒng)一字符編碼標(biāo)準(zhǔn)為唯一非重疊編碼系統(tǒng)提供了基礎(chǔ),一些研究者開始探討統(tǒng)一字符編碼標(biāo)準(zhǔn)如何能夠作為未來的DNS命名空間的基礎(chǔ),從而可以包括當(dāng)今世界所呈現(xiàn)出的豐富的多樣化語言。見M.Dürst,″Internationalizationof Domain Names,″Internet Draft″draft-duerst-dns-i18n-02.txt,″可以在http//www.ietf.cnri.reston.va.us/ID.html,IETF主頁上找到July1998。該文檔在此作為參考文獻(xiàn)被引用。新的命名空間應(yīng)該可以提供多語言和多腳本功能,從而使得非英語用戶可以容易地使用因特網(wǎng)。
采用統(tǒng)一字符編碼標(biāo)準(zhǔn)作為新的域名系統(tǒng)的標(biāo)準(zhǔn)字符集避免了不同的語言腳本重疊代碼空間。這樣,因特網(wǎng)團(tuán)體可以使用其本國語言腳本例如www.citroёn.chwww.genève-city.ch遺憾的是,幾個(gè)困難阻礙了改進(jìn)DNS服務(wù)器和客戶應(yīng)用系統(tǒng)來實(shí)現(xiàn)一個(gè)多語言域名系統(tǒng)。例如所有未來的客戶應(yīng)用和所有未來的服務(wù)器都要被改進(jìn)。由于客戶和服務(wù)器必須進(jìn)行改進(jìn)以使系統(tǒng)工作,從舊系統(tǒng)過渡到新系統(tǒng)可能是很困難的。另外,可用的客戶應(yīng)用很少使用本國統(tǒng)一字符編碼標(biāo)準(zhǔn)。相反,大多數(shù)多語言客戶應(yīng)用使用非統(tǒng)一字符編碼標(biāo)準(zhǔn)進(jìn)行編碼,并且應(yīng)用很廣泛。
基于上述事實(shí),很希望有一種技術(shù),它使得可以在DNS系統(tǒng)中使用多語言編碼。
本發(fā)明提供一種用于實(shí)現(xiàn)一個(gè)多語言域名系統(tǒng)的系統(tǒng)和方法,使得用戶可以使用非統(tǒng)一字符編碼標(biāo)準(zhǔn)和非ASCII編碼的域名。該方法可以在不同的系統(tǒng)或系統(tǒng)的組合中得以實(shí)現(xiàn),因此該系統(tǒng)被稱為國際DNS服務(wù)器(或“iDNS”服務(wù)器)。當(dāng)iDNS服務(wù)器首先接收一個(gè)DNS請求時(shí),它判斷那個(gè)請求的編碼類型。它可能通過考慮域名的頂級域的位字符串并將該字符串與不同的編碼類型的已知頂級域的已知位字符串列表匹配來進(jìn)行判斷。列表中的一個(gè)入口可能是關(guān)于例如中文BIG5的“.com”位字符串。當(dāng)iDNS服務(wù)器識別出域名的編碼類型后,它將該域名的編碼轉(zhuǎn)換為一個(gè)通用語言編碼類型(例如統(tǒng)一字符編碼標(biāo)準(zhǔn))。然后將該通用語言編碼類型表示翻譯為一個(gè)符合通用DNS標(biāo)準(zhǔn)的ASCII表示。然后該表示被傳遞到一個(gè)常規(guī)域名系統(tǒng),該系統(tǒng)識別ASCII格式的域名并返回相關(guān)的IP地址。
本發(fā)明的一個(gè)方面提供一種用于檢測一個(gè)數(shù)字地表示的域名的語言編碼類型的方法,該方法的特征在于包括步驟(a)接收數(shù)字地表示的域名的預(yù)先指定的部分(即頂級域)的數(shù)字序列;(b)將該域名的所述數(shù)字序列與已知的數(shù)字序列集合中的一個(gè)已知的數(shù)字序列進(jìn)行匹配;(c)識別與和域名中的數(shù)字序列相匹配的已知數(shù)字序列相關(guān)的一個(gè)編碼類型;其中(b)中每個(gè)數(shù)字序列與一個(gè)特定的語言編碼類型相關(guān)聯(lián)。注意該集合包括至少兩個(gè)不同的語言編碼類型的已知數(shù)字序列。
通常提供一個(gè)表中的集合是很方便的,其中該表包括具有包括已知的數(shù)字序列和編碼類型的屬性。這樣識別編碼類型包括識別具有匹配已知的數(shù)字序列的記錄的編碼類型。該表包括至少如下編碼類型ASCII,BIG5,GB2312,shift-JIS,EUC-JP,KSC5601,及擴(kuò)展ASCII。
當(dāng)至少有兩個(gè)已知數(shù)字序列與域名中的數(shù)字序列相匹配時(shí),有必要解決多義性。這可以通過如下步驟來實(shí)現(xiàn)(a)接收數(shù)字地表示的域名的第二部分的數(shù)字序列;(b)多次將第二部分?jǐn)?shù)字序列譯碼,每次使用一個(gè)不同的語言編碼類型的譯碼方案,每個(gè)與至少兩個(gè)已知數(shù)字序列相關(guān)聯(lián);及(c)識別給出最好結(jié)果的譯碼??蛇x地,該多義性可以通過如下步驟解決首先匹配一個(gè)擴(kuò)展的數(shù)字序列(包括域名的第一和第二部分),然后將擴(kuò)展序列與可能與擴(kuò)展序列相對應(yīng)的一個(gè)已知的數(shù)字序列進(jìn)行匹配。在這種情況下,已知數(shù)字序列的集合必須包括一些擴(kuò)展序列。
在一個(gè)具體實(shí)施例中,記錄的集合包括一個(gè)“最小代碼分解字符串(MCRS)”的數(shù)字序列(或一個(gè)數(shù)字序列的表示)。這是一個(gè)域名的部分?jǐn)?shù)字序列,并且已知將那個(gè)具體的編碼類型的域名與集合中其它任何域名/編碼類型組合區(qū)分開來。當(dāng)匹配發(fā)生時(shí)只要避免了多義性,該MCRS可能是頂級域的一個(gè)子字符串,頂級域的一個(gè)超級字符串,去往第二和第三級域的一個(gè)溢出(overflow)等。
如上所述,該方法尤其應(yīng)用于處理DNS請求。這樣該方法也包括(i)接收一個(gè)包括數(shù)字地表示的域名的DNS請求;(ii)識別一個(gè)負(fù)責(zé)分解所識別的編碼類型的根級別的域的根級別的DNS服務(wù)器;(iii)將該DNS請求發(fā)送到該根級別的DNS服務(wù)器。在發(fā)送該DNS請求之前,將所識別的編碼類型的域名的數(shù)字序列轉(zhuǎn)換為與DNS協(xié)議兼容的一個(gè)DNS編碼類型(即ASCII或統(tǒng)一字符編碼標(biāo)準(zhǔn)或其它將來可用的通用編碼)。在一個(gè)有效實(shí)施例中,這種轉(zhuǎn)換在兩個(gè)操作中發(fā)生(i)將所識別的編碼類型的域名的數(shù)字序列轉(zhuǎn)換為一個(gè)通用的語言編碼類型;及(ii)將域名的數(shù)字序列從通用語言編碼類型轉(zhuǎn)換為與DNS協(xié)議兼容的一個(gè)DNS編碼類型。
該發(fā)明還提供一個(gè)映射表,將具體的語言編碼類型與具體的數(shù)字序列相關(guān)聯(lián)。該映射表包括多個(gè)記錄,每個(gè)包括如下屬性(a)一個(gè)數(shù)字地表示的域名的一個(gè)預(yù)先指定部分的已知數(shù)字序列;及(b)一個(gè)與已知的數(shù)字序列相關(guān)聯(lián)的語言編碼類型。該數(shù)字地表示的域名的預(yù)先指定的部分可用是域名的根級域的數(shù)字序列。這些記錄也可以包括一個(gè)負(fù)責(zé)分解記錄中的語言編碼類型的根級別的域的頂級DNS服務(wù)器。另外映射表可以指定需要將域名從一個(gè)非DNS編碼類型轉(zhuǎn)換為一個(gè)DNS兼容編碼類型(即UTF-5)的轉(zhuǎn)換類型。
本發(fā)明還設(shè)計(jì)一個(gè)具有如下特征的裝置(a)一個(gè)或多個(gè)處理器;(b)與至少一個(gè)或多個(gè)處理器相耦合的存儲(chǔ)器;及(c)一個(gè)或多個(gè)網(wǎng)絡(luò)接口,可以接收包括一個(gè)非DNS編碼類型的域名的一個(gè)第一DNS請求,并用與DNS協(xié)議兼容的DNS編碼類型下的域名發(fā)送一個(gè)DNS請求,其中至少一個(gè)或多個(gè)處理器的至少一個(gè)被設(shè)計(jì)或配置為將非DNS編碼類型的域名轉(zhuǎn)換為DNS編碼類型的那個(gè)域名。其中一個(gè)或多個(gè)網(wǎng)絡(luò)接口與一個(gè)網(wǎng)絡(luò)相耦合,其耦合方式使得裝置接收客戶機(jī)DNS請求,其中客戶機(jī)DNS請求為表示非DNS編碼類型的域名。另外其中一個(gè)或多個(gè)網(wǎng)絡(luò)接口與一個(gè)網(wǎng)絡(luò)相耦合,其耦合方式使得裝置向一個(gè)標(biāo)準(zhǔn)的DNS服務(wù)器發(fā)送一個(gè)DNS請求,其中DNS請求為表示DNS編碼類型的域名。
該裝置最好還包括一個(gè)至少部分地駐留在存儲(chǔ)器中的映射表(最好是上面所描述的一個(gè)),其中該映射表將特定的語言編碼類型與希望在數(shù)字地編碼的域名中找到的具體數(shù)字序列相關(guān)聯(lián)。
本發(fā)明的這些特征和優(yōu)點(diǎn)將參考附圖更詳細(xì)地描述。
圖1概略地示出一個(gè)網(wǎng)絡(luò)體系結(jié)構(gòu),包括位于一個(gè)DNS服務(wù)器和一個(gè)客戶之間的iDNS。
圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例描述分解一個(gè)表示非DNS編碼類型的域名的DNS請求處理流程圖。
圖3A是將一個(gè)非DNS編碼類型的域名轉(zhuǎn)換為對應(yīng)的DNS編碼類型的域名的流程圖。
圖3B是一個(gè)iDNS系統(tǒng)的邏輯構(gòu)成。
圖4是描述用于確定一個(gè)域名的編碼類型的處理的流程圖。
圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例識別域名的編碼類型的邏輯映射表的實(shí)例。
圖6是描述中文編碼的層次的“樹形”圖表。
圖7是可以用于實(shí)現(xiàn)本發(fā)明的iDNS功能的一個(gè)通用計(jì)算機(jī)系統(tǒng)的方框圖。
1.DNS和統(tǒng)一字符編碼標(biāo)準(zhǔn)本發(fā)明把多語言多腳本名稱轉(zhuǎn)換為與DNS(即如1999在RFC1035中所解釋的DNS)相適應(yīng)的格式。這些經(jīng)轉(zhuǎn)換過的名稱可以被作為DNS查詢轉(zhuǎn)發(fā)到一個(gè)常規(guī)的DNS服務(wù)器。下面的圖1示出了如何將一個(gè)本地化的域名分解為其數(shù)字IP地址的處理流程。但是,在描述圖1之前,將要討論一些背景原理和術(shù)語。
程序通常不通過二進(jìn)制網(wǎng)絡(luò)地址來訪問主機(jī)。取代二進(jìn)制數(shù)字,它們使用ASCII字符串,例如www.pobox.org.sg。當(dāng)然,網(wǎng)絡(luò)自己僅理解二進(jìn)制地址,從而需要一些機(jī)制來將ASCII字符串轉(zhuǎn)換為網(wǎng)絡(luò)地址。該機(jī)制由域名系統(tǒng)提供。
DNS的基本原理是層次的、基于域命名的方案和用于實(shí)現(xiàn)這個(gè)命名方案的分布式數(shù)據(jù)庫系統(tǒng)。它主要用于將主機(jī)名稱和電子郵件目的地映射為IP地址,但也可以用于其他目的。如上所述,DNS由RFC1034和1035來定義。
簡單地說,DNS按如下方式來使用。為了將一個(gè)名稱映射為一個(gè)IP地址,應(yīng)用程序調(diào)用一個(gè)稱為“轉(zhuǎn)換器(resolver)”的庫程序,并將名稱作為參數(shù)傳遞給它。轉(zhuǎn)換器向一個(gè)本地DNS服務(wù)器發(fā)送一個(gè)UDP分組,服務(wù)器然后查找名稱,并將IP地址返回給轉(zhuǎn)換器,轉(zhuǎn)換器然后將其返回給調(diào)用者。使用手頭的IP地址,程序可以與目的地建立TCP連接或向其發(fā)送UDP分組。
一般的,因特網(wǎng)分為多個(gè)頂級“域”,每個(gè)域覆蓋多個(gè)主機(jī)。每個(gè)域分為多個(gè)子域并且它們又被進(jìn)一步再次劃分,依此類推。所有這些域可以用一個(gè)樹來表示。樹的葉結(jié)點(diǎn)代表沒有子域的域(當(dāng)然不包括機(jī)器)。一個(gè)葉域(leaf domain)可以包括一個(gè)單獨(dú)的主機(jī),也可以表示包括成千上萬個(gè)主機(jī)的公司。
頂級域具有兩個(gè)意味類和國家。類域是com(商業(yè)),edu(教育機(jī)構(gòu)),gov(政府),int(某些國際組織),mil(軍隊(duì)),net(網(wǎng)絡(luò)提供商),和org(組織)。國際域包括ISO3166中所定義每個(gè)國家的一個(gè)入口。每個(gè)域由從它往上到來命名的根結(jié)點(diǎn)的路徑來命名。各組成之間用句點(diǎn)(讀作“圓點(diǎn)”)來分離。
理論上,域可以以兩種方式插入樹。例如cs.ucb.edu可以平等地列在us國家域之下,如cs.ucb.ct.us。但是實(shí)際上,幾乎美國所有的組織都在一個(gè)類域之下,并且在幾乎所有美國之外的國家所有的組織都在它們的國家域之下。沒有規(guī)則反對在兩個(gè)頂級域之下進(jìn)行注冊,但是這樣做可能引起混亂,因此很少有組織使用它。
每個(gè)域?qū)θ绾畏峙渌碌挠蜻M(jìn)行控制。例如,日本具有域ac.jp和co.jp來鏡象edu和com。為了創(chuàng)建一個(gè)新的域,該新的域要在它所從屬的域中被許可。例如,如果加州伯克利大學(xué)啟動(dòng)一個(gè)人工智能小組并想稱之為ai.cs.ucb.edu,則它就需要得到管理cs.ucb.edu的管理者的許可。類似地,如果設(shè)立了一個(gè)新的大學(xué),例如Lake Tahoe大學(xué),則它必須請求edu域的管理者分配給它ulth.edu。這樣,避免了名稱的沖突,并且每個(gè)域可以跟蹤它所有的子域。一旦創(chuàng)建并注冊了一個(gè)新的域,它就可以創(chuàng)建它的子域,例如cs.ulth.edu,而不需請求位于樹的任何組織的許可。
理論上,至少一個(gè)單獨(dú)的名稱服務(wù)器可以包括整個(gè)DNS數(shù)據(jù)庫,并響應(yīng)所有對于它的查詢。但實(shí)際上,這種服務(wù)器將因?yàn)槌d而變成無用的機(jī)器。進(jìn)而,如果它停止了工作,則整個(gè)因特網(wǎng)將陷入癱瘓。為了避免由于只有一個(gè)信息源所造成的問題,DNS域名空間被分割為不重疊的“區(qū)域”。每個(gè)區(qū)域包括樹的某些部分并也包括保持有關(guān)該區(qū)域的授權(quán)信息的名稱服務(wù)器。通常,一個(gè)區(qū)域具有一個(gè)主名稱服務(wù)器,它從其盤上的一個(gè)文件得到自己的信息,一個(gè)或多個(gè)二級服務(wù)器,它們從其主名稱服務(wù)器得到自己的信息。
當(dāng)一個(gè)轉(zhuǎn)換器獲得一個(gè)關(guān)于域名的查詢時(shí),它把查詢發(fā)送到一個(gè)本地名稱服務(wù)器。如果待查找的域在該名稱服務(wù)器的管轄范圍內(nèi),例如位于cs.ucb.edu下的ai.cs.ucb.edu,則該服務(wù)器授權(quán)的資源記錄被返回。一個(gè)授權(quán)記錄來自于管理記錄的管理機(jī)構(gòu),因此總是正確的。一個(gè)給定的名稱服務(wù)器也可以包括“高速緩存的記錄”,它們可能已經(jīng)過時(shí)。
如果感興趣的域是遠(yuǎn)程的,并且在本地沒有關(guān)于可用的請求域的信息,則名稱服務(wù)器將查詢消息發(fā)送到所請求域的頂級名稱服務(wù)器。例如,試圖查找ai.cs.ucb.edu的IP地址的一個(gè)本地名稱服務(wù)器可能將一個(gè)UDP分組發(fā)送到其數(shù)據(jù)庫中有edu的服務(wù)器,edu-server.net。這個(gè)服務(wù)器可能不知道ai.cs.ucb.edu的地址,并且可能也不知道cs.ucb.edu,但是它肯定知道其所有的子結(jié)點(diǎn),從而它把請求轉(zhuǎn)發(fā)到ucb.edu的名稱服務(wù)器。進(jìn)而,該服務(wù)器將請求轉(zhuǎn)發(fā)到肯定具有授權(quán)資源記錄的cs.ucb.edu。由于每個(gè)請求是從一個(gè)客戶到一個(gè)服務(wù)器,所請求的授權(quán)記錄返回到請求ai.cs.ucb.edu的IP地址的原始名稱服務(wù)器。
一旦記錄返回到原始名稱服務(wù)器,該服務(wù)器將其輸入到高速緩存中,以供以后使用。但是,該信息不是權(quán)威的,因?yàn)樵赾s.usb.edu所作的修改不會(huì)廣播到世界上所有可以知道它的高速緩存。因此高速緩存中的入口應(yīng)該頻繁地刪除或更新。該操作可以用包括在每個(gè)記錄中的一個(gè)“time to live”域來實(shí)現(xiàn)。
上述用于分解一個(gè)域名的方法例子被稱為遞歸查詢。也可以使用其他技術(shù)。有關(guān)DNS的更詳細(xì)的細(xì)節(jié),請見Andrew S.Tanenbaum,″Computer Networds,″3rdEd.,Prentice Hall,Upper Saddle River,NJ(1996),該文章中描述了上述的內(nèi)容。另外還可參看U.D.Black,″TCP/IP and Related Protocols,″3rdEd.,McGraw-Hill,SanFrancisco,CA(1998)。這兩篇文獻(xiàn)在此被作為參看文獻(xiàn)。
如上所述,DNS協(xié)議當(dāng)前是基于ASCII的子集,因此它局限于拉丁字母表。其他的多種編碼提供了對世界上其他字符集的數(shù)字表示。這些例子包括中文字符腳本的BIG5和GB-2312(分別表示繁體和簡體),日文字符腳本的Shift-JIS和EUC-JP,韓文字符腳本的KSC-5601,及法文和德文字符的擴(kuò)展ASCII字符。
除了這些語言專用的編碼類型,還有一個(gè)統(tǒng)一字符編碼標(biāo)準(zhǔn)(一種“通用語言編碼類型”),它具有對全世界的書寫語言所使用的所有字符進(jìn)行編碼的能力。它使用16位編碼,從而,可以為超過65,000個(gè)字符提供代碼。統(tǒng)一字符編碼標(biāo)準(zhǔn)腳本包括拉丁語、希臘語、亞美尼亞語、希伯來語、阿拉伯語、梵文字母、孟加拉語、Gurmukhi、吉吉拉特語、奧里雅語、泰米爾語、泰盧周語、埃納德語、馬來西亞語、Thia、老撾語、格魯吉亞語、藏語、日本假名、現(xiàn)代Korean Hangul的完整集、中文/日文/韓文(CJK)表意文字的統(tǒng)一字符集。其他更多的腳本和字符被簡短地加入,包括埃塞俄比亞語、加拿大語、Syllabics、切羅基族語、額外的罕見的象形文字、僧伽羅語、敘利亞語、緬甸語、高棉語、布萊葉盲文。
一個(gè)16位數(shù)字被分配給由統(tǒng)一字符編碼標(biāo)準(zhǔn)所定義的一個(gè)代碼元素。每個(gè)16位數(shù)字稱為一個(gè)代碼值,在文本中被引用時(shí),它們用跟在前綴“U”后的16進(jìn)制格式來表示。例如代碼值U+0041是16進(jìn)制數(shù)字0041(等于數(shù)字65)。它表示統(tǒng)一字符編碼標(biāo)準(zhǔn)中的字符“A”。
每個(gè)字符也被分配一個(gè)唯一的標(biāo)識它的名稱。例如,U+0041被分配字符名稱“LATIN CAPITAL LETTER A”,U+0A1B被分配字符名稱“GURMUKHI LETTER CHA”。這些統(tǒng)一字符編碼名稱相應(yīng)于相同的字符的ISO/IEC 10646名稱。
統(tǒng)一字符編碼標(biāo)準(zhǔn)通過用代碼塊用腳本將字符進(jìn)行分組。一個(gè)腳本可以是相關(guān)字符的任意系統(tǒng)。該標(biāo)準(zhǔn)保持源集中可能的字符順序。當(dāng)一個(gè)腳本的字符以某個(gè)順序--例如字母表順序--進(jìn)行常規(guī)排列時(shí),統(tǒng)一字符編碼標(biāo)準(zhǔn)在任何可能的時(shí)候都使用相同的順序在其代碼空間中排列它們。代碼塊在大小上變化很大。例如亞美尼亞語代碼塊不超過256個(gè)代碼值,而CJK代碼塊有上萬個(gè)代碼值。
在整個(gè)代碼值范圍內(nèi)(稱為代碼空間)代碼元素被邏輯地分組,編碼從U+0000以標(biāo)準(zhǔn)ASCII字符開始,接著是希臘語、亞美尼亞語、希伯來語、阿拉伯語、印度語及其他腳本;接著是符號和標(biāo)點(diǎn)。代碼空間中接著就是平假名、片假名和bopomofo。在現(xiàn)代Hangul的完整集之后是統(tǒng)一漢字表意文字。為使用UTF-16進(jìn)行將來的擴(kuò)展而預(yù)留了代碼值的代用范圍。在代碼空間的結(jié)束部分,在兼容字符之后,是為專用而預(yù)留的代碼值范圍。兼容字符是一些字符變量,僅用于編碼來使得可以轉(zhuǎn)換編碼為使用它們的較早的標(biāo)準(zhǔn)及舊的實(shí)現(xiàn)。
字符編碼標(biāo)準(zhǔn)不僅定義每個(gè)字符及其數(shù)字值或代碼位置的標(biāo)識,還定義這些值是如何用位進(jìn)行表示的。統(tǒng)一字符編碼標(biāo)準(zhǔn)認(rèn)可對應(yīng)于ISO10646轉(zhuǎn)換格式UTF-7,UTF-8和UTF-16的至少三種格式。
ISO 10646轉(zhuǎn)換格式UTF-7,UTF-8和UTF-16是將編碼轉(zhuǎn)換為在實(shí)現(xiàn)中所使用的實(shí)際字符的實(shí)質(zhì)性方法。UTF-16假設(shè)16位字符,并允許一定范圍的字符作為擴(kuò)展機(jī)構(gòu)被使用以使用16位字符對訪問附加的百萬個(gè)字符。The Unicode Standard,Version 2.0,Addison WesleyLongman(1996)(通過″The Unicode Standard,Version 2.0″進(jìn)行了修改和添加)采用了ISO/IEC 10646的這種轉(zhuǎn)換格式。再次將其作為參看文獻(xiàn)引用。
第二個(gè)轉(zhuǎn)換格式稱為UTF-8。這是將所有的統(tǒng)一字符編碼標(biāo)準(zhǔn)字符轉(zhuǎn)換為字節(jié)長度可變的編碼的方法。它的優(yōu)點(diǎn)是對應(yīng)于熟悉的ASCII集的統(tǒng)一字符編碼標(biāo)準(zhǔn)字符具有與ASCII相同的字節(jié)值。轉(zhuǎn)換為UTF-8的統(tǒng)一字符編碼標(biāo)準(zhǔn)字符可以用于現(xiàn)存的軟件中而不需對軟件進(jìn)行重寫。統(tǒng)一字符編碼標(biāo)準(zhǔn)聯(lián)盟也認(rèn)可UTF-8的使用,并作為實(shí)現(xiàn)統(tǒng)一字符編碼標(biāo)準(zhǔn)的一種方法。任何一個(gè)用16位UTF-16格式表示的統(tǒng)一字符編碼標(biāo)準(zhǔn)字符都可以轉(zhuǎn)換為UTF-8格式并可以進(jìn)行相反的轉(zhuǎn)換,而不損失信息。為了在標(biāo)準(zhǔn)的原理及其所體現(xiàn)的編碼體系結(jié)構(gòu)方面做到一致,統(tǒng)一字符編碼標(biāo)準(zhǔn)指定了一些明確的要求。一個(gè)一致的實(shí)現(xiàn)具有如下特征,作為最低需求字符是以16位為單位;字符用統(tǒng)一字符編碼標(biāo)準(zhǔn)語義進(jìn)行解釋;未分配的代碼不使用;未知字符不誤用。
只要UTF-8實(shí)現(xiàn)時(shí)將統(tǒng)一字符編碼標(biāo)準(zhǔn)字符(字節(jié)順序)的每個(gè)UTF-8編碼看成對應(yīng)的16位單元并根據(jù)統(tǒng)一字符編碼標(biāo)準(zhǔn)規(guī)格解釋字符,則統(tǒng)一字符編碼標(biāo)準(zhǔn)的UTF-8實(shí)現(xiàn)起來就是一致的。全部的一致性要求見于The Unicode Standard,Version 2.0,Addison WesleyLongman(1996),此前其作為參考文獻(xiàn)而出現(xiàn)。設(shè)計(jì)UTF-7來提供進(jìn)行7位介質(zhì)/傳輸時(shí)有用的7位字符。由RFC822所指定的電子郵件是一個(gè)7位系統(tǒng)。指定UTF-16進(jìn)行16位介質(zhì)/傳輸,并且指定UTF-8進(jìn)行8位介質(zhì)/傳輸。因特網(wǎng)的大多數(shù)是可以進(jìn)行8位傳輸?shù)?,但是也有使?位的傳統(tǒng)系統(tǒng)(即DNS,SMTP電子郵件等)。
2.術(shù)語這里所用的一些術(shù)語在本領(lǐng)域中不經(jīng)常使用。另一些術(shù)語則有多種含義。因此提供了下面的定義作為理解下面的描述的輔助說明。權(quán)利要求書中的發(fā)明不限于這些定義。
語言編碼類型---現(xiàn)在已知或?qū)硎褂玫娜魏巫址蚍柧幋a類型(例如ASCII或BIG5)。
通用語言編碼類型---現(xiàn)在已知或?qū)黹_發(fā)出的任一種語言編碼類型,包括位于其編碼范圍內(nèi)的超過一個(gè)的字符或符號集。統(tǒng)一字符編碼標(biāo)準(zhǔn)是一個(gè)例子,BIG5,ISO-8859-11和GB-2312是另外的一些例子。
數(shù)字表示---作為編碼的結(jié)果表示字符的方法(例如,用位流,16進(jìn)制格式等)。
數(shù)字順序---1和0的特殊順序,16進(jìn)制字符,或其他的數(shù)字表示組成。
數(shù)字表示域名“部分”---域名的任何部分或全部;例如,頂級域,第二級域,頂級和第二級域。
“已知”數(shù)字序列---一個(gè)感興趣的數(shù)字序列,因?yàn)橐阎c用某個(gè)特殊的編碼類型(例如“.com”的BIG5數(shù)字序列)所編碼的一些常用的字符組合(或域名的其他特性)相關(guān)聯(lián)。
已知數(shù)字序列的“集合”---多個(gè)已知數(shù)字序列之間的任意排列或連接。典型地,盡管不必要,作為一張表(例如這里所描述的“映射表”)邏輯地存儲(chǔ)在一起。
DNS編碼類型---由網(wǎng)絡(luò)或因特網(wǎng)的DNS協(xié)議所支持的編碼類型,例如由RFC1035所指定的ASCII的有限集。
非DNS編碼類型---不是由所考慮的DNS協(xié)議所支持的編碼類型,例如RFC1035下的BIG5。
3.iDNS的實(shí)現(xiàn)現(xiàn)在轉(zhuǎn)向圖1,用于本發(fā)明的一個(gè)實(shí)施例的網(wǎng)絡(luò)10的重要組成包括一個(gè)客戶機(jī)12,一個(gè)客戶機(jī)12希望與之通信的對應(yīng)的節(jié)點(diǎn)14,一個(gè)iDNS服務(wù)器16及一個(gè)常規(guī)的DNS服務(wù)器18。iDNS服務(wù)器16可以在一個(gè)DNS端口(當(dāng)前定址于域名端口53)用于取代通常的DNS服務(wù)器來進(jìn)行多語言域名查詢,它可能包括伯克利因特網(wǎng)域名服務(wù)器(‘BIND’及其可執(zhí)行版本‘命名的’),由Paul Vixie所寫的廣泛使用的DNS服務(wù)器(http//www.isc.org/)。
為了理解這些組成部分的任務(wù),假設(shè)一個(gè)中國學(xué)生使用客戶機(jī)12想要查詢香港某公司的招聘情況,該公司操作對應(yīng)的節(jié)點(diǎn)14。該學(xué)生事先與該公司進(jìn)行通信獲得其域名。該域名用本國中文字符提供??蛻魴C(jī)12配置了一個(gè)可以輸入中文字符的鍵盤,并配置了可以識別編碼的中文字符并將其準(zhǔn)確地顯示在計(jì)算機(jī)屏幕上的軟件。
現(xiàn)在,該學(xué)生準(zhǔn)備了一個(gè)發(fā)給該香港公司的消息,并附上自己的簡歷,她輸入該公司的中文域名作為目的地。當(dāng)她指示客戶機(jī)12將消息發(fā)送給對應(yīng)的節(jié)點(diǎn)14時(shí),示于圖1的系統(tǒng)執(zhí)行如下操作。首先,通過一個(gè)DNS請求向iDNS服務(wù)器16提交由本國語言組成的相應(yīng)節(jié)點(diǎn)的域名。iDNS服務(wù)器16識別出該域名不是可以由常規(guī)的DNS服務(wù)器處理的格式。因此它把中文域名轉(zhuǎn)變?yōu)榭梢杂沙R?guī)的DNS服務(wù)器使用的格式(通常是ASCII字符的一個(gè)有限集)。接著iDNS服務(wù)器16用轉(zhuǎn)變后的對應(yīng)節(jié)點(diǎn)域名將DNS請求重新打包,并將那個(gè)請求發(fā)送給常規(guī)DNS服務(wù)器18。然后,DNS服務(wù)器18使用通常的DNS協(xié)議獲得它在DNS請求中所接收的域名的網(wǎng)絡(luò)地址。所得到的結(jié)果網(wǎng)絡(luò)地址就是相應(yīng)的節(jié)點(diǎn)14的網(wǎng)絡(luò)地址。DNS服務(wù)器18根據(jù)常規(guī)的DNS協(xié)議將那個(gè)網(wǎng)絡(luò)地址打包并將其轉(zhuǎn)發(fā)回iDNS服務(wù)器15。iDNS服務(wù)器16接著將所需的網(wǎng)絡(luò)地址發(fā)送回客戶機(jī)12,并且該地址被放到該學(xué)生的消息中。該消息被進(jìn)行分組,每個(gè)分組具有對應(yīng)于節(jié)點(diǎn)14的目的地網(wǎng)絡(luò)地址。接著客戶12通過因特網(wǎng)將消息分組發(fā)送到節(jié)點(diǎn)14。
通過圖2的交換處理流程圖將更全面地理解該過程。如圖所示,在圖的左側(cè)用一條垂線表示客戶機(jī)12,在圖的中央用一條垂線表示iDNS服務(wù)器16,在圖的右側(cè)用一條垂線表示DNS服務(wù)器18。
首先在203,運(yùn)行在客戶機(jī)12上的一個(gè)應(yīng)用生成一個(gè)到某個(gè)網(wǎng)絡(luò)目的地的消息,該目的地的域名是用非DNS兼容文本編碼格式輸入的。這樣該文本用數(shù)字地表示該文本的字符的語言編碼類型進(jìn)行編碼。如所描述的,ASCII僅是一種語言編碼類型。在優(yōu)選實(shí)施例中,廣泛應(yīng)用的一些類型還包括GB2312,GIG5,Shift-JIS,EUC-JP,KSC5601,擴(kuò)展ASCII等。
在203當(dāng)客戶機(jī)應(yīng)用生成消息以后,在205客戶機(jī)操作系統(tǒng)生成一個(gè)分解域名的DNS請求。DNS請求在許多方面可以與一個(gè)常規(guī)的DNS請求相似。但是請求中所提供的域名將用一個(gè)非DNS編碼格式提供。在207,客戶機(jī)操作系統(tǒng)將其DNS請求發(fā)送到iDNS服務(wù)器16。注意可以將客戶機(jī)操作系統(tǒng)配置為將DNS請求發(fā)送到iDNS服務(wù)器16。換句話說,客戶機(jī)12缺省的DNS服務(wù)器是iDNS服務(wù)器16。
在209,iDNS服務(wù)器16從DNS請求中抽取編碼的域名,并生成一個(gè)轉(zhuǎn)換的DNS請求,該請求用一個(gè)DNS兼容編碼格式表示域名(當(dāng)前是RFC1035所指定的精簡ASCII)。接著,在211,iDNS服務(wù)器16將其DNS請求發(fā)送到常規(guī)的DNS名稱服務(wù)器18。在213,名稱服務(wù)器使用常規(guī)的DNS協(xié)議獲得在客戶機(jī)通信時(shí)所使用的域名的IP地址。在215,名稱服務(wù)器將請求的IP地址返回給iDNS。在217,iDNS服務(wù)器16把IP地址返回給客戶機(jī)12。最后,在219,客戶機(jī)用手頭的IP地址將其消息發(fā)送到目的地。
如上所述,域名在某些地方,必須被從非DNS編碼類型轉(zhuǎn)換為DNS兼容編碼類型。在上述例子中,是用代理iDNS服務(wù)器來完成該操作的。但是并不限于此,在客戶機(jī)或常規(guī)的DNS服務(wù)器中也可以包括進(jìn)行這種轉(zhuǎn)換所需的功能。
在一個(gè)替代的實(shí)施例中,由代理iDNS服務(wù)器所執(zhí)行的功能全部(或部分地)在客戶機(jī)和/或DNS服務(wù)器上執(zhí)行。在一個(gè)實(shí)施例中,在一個(gè)因特網(wǎng)應(yīng)用上(例如可以支持多語言的Web瀏覽器上)實(shí)現(xiàn)包括檢測一個(gè)編碼類型,將一個(gè)非DNS編碼域轉(zhuǎn)變?yōu)橐粋€(gè)DNS編碼域名及識別一個(gè)缺省的名稱服務(wù)器的操作(下面將要描述的圖3A的操作305-311)。在該實(shí)施例中,在將一個(gè)DNS分解請求分配到一個(gè)DNS服務(wù)器上之前自動(dòng)地執(zhí)行代碼檢測和代碼轉(zhuǎn)換。在一些實(shí)施例中,該應(yīng)用可以提供避免了進(jìn)行代碼檢測的自動(dòng)定義的語言編碼。
在另一個(gè)可替代的實(shí)施例中,可以在iDNS服務(wù)器上實(shí)現(xiàn)操作305-311。其他的實(shí)施例包括將代理iDNS的全部或一部分操作分配到DNS服務(wù)器上。例如一些iDNS功能的代碼可以作為兼容模塊分配為BIND代碼。
在圖2中,在209執(zhí)行將域名從一個(gè)語言編碼類型轉(zhuǎn)換為第二種語言編碼類型(與DNS兼容)的操作。如圖3A所示,根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例,可以通過處理301執(zhí)行該轉(zhuǎn)換。在303處理以系統(tǒng)識別DNS請求中的域名的編碼類型開始。當(dāng)系統(tǒng)可能面對多種不同的編碼類型時(shí)該操作是必須的。在識別完編碼類型后,接著在305系統(tǒng)判斷域名是否用DNS兼容編碼類型進(jìn)行編碼。當(dāng)前,要求判斷域名是否用ASCII的精簡集編碼類型進(jìn)行編碼。如果是,則不需進(jìn)一步的轉(zhuǎn)換并且處理控制轉(zhuǎn)向311,下面將描述。
在一個(gè)有趣的例子中,域名是用非DNS格式進(jìn)行編碼的。這樣處理控制轉(zhuǎn)向307,在此系統(tǒng)將域名轉(zhuǎn)變?yōu)橐粋€(gè)通用編碼類型。在一個(gè)優(yōu)選實(shí)施例中,該通用編碼類型是統(tǒng)一字符編碼標(biāo)準(zhǔn)。在這種情況下,用本國語言編碼類型表示的字符被用統(tǒng)一字符編碼標(biāo)準(zhǔn)進(jìn)行表示,并轉(zhuǎn)換為統(tǒng)一字符編碼標(biāo)準(zhǔn)序列。
接著新轉(zhuǎn)換的域名被進(jìn)一步地被從統(tǒng)一字符編碼標(biāo)準(zhǔn)類型轉(zhuǎn)換為DNS兼容編碼類型,如309。這樣,該最終的編碼類型可能是ASCII精簡集。注意,從DNS不兼容格式轉(zhuǎn)換為DNS兼容格式通過一個(gè)中間的通用編碼類型經(jīng)過了兩個(gè)步驟。下面將詳細(xì)描述這兩個(gè)步驟。但是,應(yīng)該理解,也可以直接用一個(gè)步驟從DNS不兼容域名轉(zhuǎn)換為DNS兼容域名。這可以在具有多個(gè)轉(zhuǎn)換算法的系統(tǒng)中實(shí)現(xiàn),其中每個(gè)算法用于將一個(gè)具體的編碼類型轉(zhuǎn)換為ASCII(或其它未來的DNS兼容編碼類型)。在一個(gè)例子中,這些算法可以在上述的“dürst algorithm”中得到模板。許多其它的合適的算法是已知的,或可以進(jìn)行開發(fā)。
現(xiàn)在手邊已經(jīng)有了一個(gè)DNS兼容域名,系統(tǒng)僅需判斷將域名轉(zhuǎn)發(fā)到哪個(gè)常規(guī)DNS名稱服務(wù)器。根據(jù)通常的DNS協(xié)議,DNS請求可能被轉(zhuǎn)發(fā)到一個(gè)頂級名稱服務(wù)器。如下面將要詳細(xì)地描述的那樣,具有處理不同的語言域的根名稱服務(wù)器是很方便的。例如,中國政府可以保持中文域名的根名稱服務(wù)器,日本政府或一個(gè)日本公司可以保持一個(gè)日文域名的根名稱服務(wù)器,印度政府可以保持印度文域名的根名稱服務(wù)器等。在任一種情況下,如圖3A所示,在311,系統(tǒng)必須識別適當(dāng)?shù)拿Q服務(wù)器。在完成此操作之后,完成了轉(zhuǎn)換處理,并且DNS請求可以發(fā)送到DNS系統(tǒng),以根據(jù)本發(fā)明進(jìn)行處理。
優(yōu)選地,僅在一個(gè)iDNS服務(wù)器執(zhí)行圖3A所示的處理。但是,一些處理可以在一個(gè)客戶機(jī)或一個(gè)常規(guī)的DNS服務(wù)器執(zhí)行。例如,303和305可以在一個(gè)客戶機(jī)執(zhí)行,309可以在一個(gè)常規(guī)的DNS服務(wù)器執(zhí)行。
iDNS功能(327)的優(yōu)選工作分配如圖3B所示,如圖所示,一個(gè)iDNS映射器服務(wù)器321執(zhí)行操作305-311。在此處,它包括一張映射表(例如參考圖5所描述的例子),并將所有語言的編碼類型轉(zhuǎn)換為統(tǒng)一字符編碼標(biāo)準(zhǔn)(或其它適當(dāng)?shù)耐ㄓ镁幋a類型)。在此實(shí)施例中,客戶機(jī)325執(zhí)行操作303,并且常規(guī)的DNS服務(wù)器323執(zhí)行標(biāo)準(zhǔn)的DNS分解協(xié)議。
在一個(gè)實(shí)現(xiàn)方式中,iDNS映射器服務(wù)器321運(yùn)行在一個(gè)指定端口(例如端口號2000)的機(jī)器(例如表示為i2.i-dns.com)上。它接受用任何語言編碼類型進(jìn)行數(shù)字表示的域名的全部,并返回轉(zhuǎn)換為一個(gè)DNS編碼類型(UTF-5)的用字符編碼標(biāo)準(zhǔn)進(jìn)行數(shù)字表示的域名的全部。注意,映射表和轉(zhuǎn)換程序代碼可以很大,從而增加了DNS服務(wù)器323的文件夾數(shù)(如果在那里執(zhí)行)。通過從DNS協(xié)議分離操作305-311,就可以減少分配iDNS所需的代碼數(shù)量。
如圖3A所示,當(dāng)系統(tǒng)必須處理大量編碼類型時(shí),它必須能夠區(qū)分編碼類型。該處理如塊303所描述,并在圖4中進(jìn)行了說明。
如圖4所示,在403開始識別編碼類型401的處理,系統(tǒng)識別域名的頂級域的數(shù)字序列。在1999年3月的系統(tǒng)中的頂級域包括.com,.edu,.gov,.mil,.org,.int,.net,及不同的兩個(gè)字母的國家標(biāo)識(例如.fr,.sg,.kr,等)。
在識別完頂級域的數(shù)字序列之后,接著系統(tǒng)將該序列匹配到一個(gè)具體的編碼類型。在一個(gè)優(yōu)選實(shí)施例中,它包括在405將序列與一個(gè)映射表中的記錄進(jìn)行匹配。下面將詳細(xì)地描述一個(gè)示例性的映射表?,F(xiàn)在簡單地認(rèn)為該表(或其它邏輯結(jié)構(gòu))包括系統(tǒng)所處理的不同的語言編碼類型的不同頂級域的數(shù)字序列列表。每個(gè)單獨(dú)的記錄還包括一個(gè)相關(guān)的編碼類型識別符。該系統(tǒng)通過簡單地將一個(gè)被考慮的數(shù)字序列與映射表的各個(gè)記錄中的序列進(jìn)行比較(使用標(biāo)識的數(shù)據(jù)庫查找過程例如二元搜索,哈希表,B樹等)來匹配該數(shù)字序列。這樣一般將提供一個(gè)單獨(dú)的匹配。但是如果如果有多個(gè)入口可以發(fā)布頂級域(例如每個(gè)用于不同的語言),則不同的編碼格式的兩個(gè)頂級域的數(shù)字序列可能是相同的。
考慮到這種可能性,系統(tǒng)在407判斷多個(gè)記錄是否與被考慮的數(shù)字序列相匹配。如果不匹配,在413處理結(jié)束,系統(tǒng)確定使用在單獨(dú)匹配記錄中所識別的編碼。如果兩個(gè)或多個(gè)記錄匹配,則系統(tǒng)必須解決這種多義性。在409,首先識別一個(gè)低一級的域(例如一個(gè)子域如第二級域)。換句話說,被考慮的域名將具有與比其級別低的域相關(guān)的一個(gè)數(shù)字序列?,F(xiàn)在將擴(kuò)展的數(shù)字序列再次與映射表中的數(shù)字序列相匹配(405)。注意表中的一些記錄可以包括組合了頂級域和低級別域的數(shù)字序列(解決在頂級域的序列中潛在的多義性)。在405找到一個(gè)匹配之后,如上所述,處理前進(jìn)到407。
在一個(gè)可替代的實(shí)施例中,在映射表中僅保持了頂級域的數(shù)字序列。沒有為擴(kuò)展的序列做處理來解決多義性。在這種情況下,當(dāng)407回答是肯定的(多個(gè)記錄匹配)時(shí),系統(tǒng)識別每個(gè)潛在的匹配(后續(xù)編碼類型)。接著使用每個(gè)潛在的編碼類型將考慮的序列進(jìn)行譯碼。例如根域數(shù)字序列可能在日文編碼類型的一個(gè)中找到了.net的一個(gè)匹配,在中文編碼類型的一個(gè)中找到了.com的一個(gè)匹配。
在后續(xù)編碼類型語言中一個(gè)譯碼字符串應(yīng)該是可以理解的。其它的應(yīng)該是雜亂信息。這樣系統(tǒng)選擇對二級域進(jìn)行了最好譯碼的后續(xù)編碼類型。接著處理在413結(jié)束,系統(tǒng)使用所選的編碼類型。
如圖4的405所述,iDNS服務(wù)器可能為一個(gè)域名查詢的頂級域的數(shù)字序列匹配了已知的多個(gè)編碼類型的數(shù)字序列。一個(gè)映射表可能具有已知的數(shù)字序列。圖5提供了根據(jù)本發(fā)明的一個(gè)實(shí)施例的一個(gè)映射表501。表501中的每個(gè)記錄為一個(gè)具體的編碼類型(例如GIG5的.com)指定了一個(gè)最小代碼分解字符串(例如一個(gè)頂級域)。
如圖所示,映射表501包括6個(gè)字段,第一個(gè)是有效時(shí)間,用于指示在入口高速緩存失效之前還有多長時(shí)間。接著最小代碼分解字符串字段標(biāo)識一個(gè)域名的一部分?jǐn)?shù)字序列(例如GIG5中.com的數(shù)字編碼)。注意最小代碼分解字符串通常是8位二進(jìn)制字符串。為了簡化表501中的最小代碼分解字符串的輸入項(xiàng)和維護(hù),為了得到所示的格式還要對二進(jìn)制字符串進(jìn)行轉(zhuǎn)換。
盡管最小代碼分解字符串通??梢詾轫敿売颍?dāng)然也不限于此。對于一些語言編碼,由于多義性,可能必須包括第二或更高級的域,以唯一地分解在字符串中所給定的編碼類型。類似地,可能不必經(jīng)常使用整個(gè)頂級域來唯一地確定編碼類型。這將加速匹配的搜索。
表中所指定的“權(quán)威”是對記錄中所指定的域名的確定具有權(quán)威性的組織。例如,一個(gè)“i-dns”組織對BIG5的.com具有權(quán)威性,它可能有權(quán)利發(fā)布BIG5.com下的所有子域名。這樣就確保了只分配唯一的域名。當(dāng)然,為實(shí)現(xiàn)這種權(quán)威,要指示一個(gè)組織用一個(gè)名稱服務(wù)器(或多個(gè)服務(wù)器)來控制“權(quán)威”記錄,以為DNS空間的該權(quán)威范圍內(nèi)的域名分配IP地址。表501的“編碼”字段指示與記錄匹配的域名的編碼類型?!稗D(zhuǎn)換”字段指示與記錄匹配的域名的編碼類型。例如UTF-5是應(yīng)用于統(tǒng)一字符編碼標(biāo)識的Dürst算法(如下所述)。最后“注釋”字段包括一個(gè)文本字符串,用于標(biāo)識一個(gè)域名的什么部分對應(yīng)于最小代碼分解字符串。圖6示出用于分解中文域名的一個(gè)示例域名樹。一個(gè)iDNS服務(wù)器檢測中文代碼類型,它被配置為缺省的名稱服務(wù)器來分解一個(gè)域名。如圖6所示,在根下有多個(gè)頂級域(例如.com,.edu,.sg等)。在.sg頂級域下,有多個(gè)中文二級域例如edu.sg,在該二級域下,有多個(gè)域,包括nus.edu.sg等。相似地,在頂級域.com下,有多個(gè)中文二級域例如email.com。
如圖3A的實(shí)施例所示,iDNS系統(tǒng)將域名的通用編碼類型(例如統(tǒng)一字符編碼標(biāo)準(zhǔn))轉(zhuǎn)換為一個(gè)DNS編碼類型。在一個(gè)有效實(shí)施例中,是通過由在此作為參考文獻(xiàn)的因特網(wǎng)草案,“Internationalization ofDomain Names”,Martin Dürst,所定義的轉(zhuǎn)換算法來完成的。該算法將一個(gè)可變長數(shù)據(jù)實(shí)體轉(zhuǎn)換為僅包括RFC兼容ASCII純粹的字母表和數(shù)字的格式。下面的表示出在因特網(wǎng)草案中所使用的轉(zhuǎn)換表。
IN A 12.34.56.78DNS服務(wù)器根據(jù)RFC1035將該IP地址返回給iDNS代理服務(wù)器。該代理服務(wù)器將包括被正確分解的IP地址的消息轉(zhuǎn)發(fā)給客戶機(jī)。注意轉(zhuǎn)換的域名(ASCII)通常必須由負(fù)責(zé)控制和發(fā)布常規(guī)的DNS域名的權(quán)威組織注冊。
本發(fā)明的實(shí)施例涉及一個(gè)用于執(zhí)行上述iDNS操作的裝置。該裝置可以被特別地按照所要求的目的進(jìn)行構(gòu)造(設(shè)計(jì)),或者是通用計(jì)算機(jī),該計(jì)算機(jī)用存儲(chǔ)在計(jì)算機(jī)中的一個(gè)計(jì)算機(jī)程序選擇性地激活或重新配置。此處所描述的處理并不專門地設(shè)計(jì)某個(gè)具體的計(jì)算機(jī)或其它裝置。尤其是,各種通用機(jī)器可以使用根據(jù)本發(fā)明的教導(dǎo)所書寫的程序。另外,構(gòu)造一個(gè)更加專門化的裝置以執(zhí)行所要求的方法步驟將更方便。從以上的描述將更加清楚構(gòu)造各種這樣的機(jī)器所需要的結(jié)構(gòu)。
另外,本發(fā)明的實(shí)施例進(jìn)一步涉及計(jì)算機(jī)可讀介質(zhì),它包括用于執(zhí)行各種計(jì)算機(jī)可執(zhí)行操作的程序指令。該介質(zhì)還包括程序指令,數(shù)據(jù)文件,數(shù)據(jù)結(jié)構(gòu),表等,或者它們的組合。該介質(zhì)和程序指令可以是為本發(fā)明的目的特別涉及和構(gòu)造的,或者它們可能是計(jì)算機(jī)軟件領(lǐng)域某種已知和可用的類型。計(jì)算機(jī)可讀介質(zhì)的例子包括磁介質(zhì)例如硬盤、軟盤和磁帶;光學(xué)介質(zhì)例如CD-ROM盤;磁光介質(zhì)例如光磁盤;及專門進(jìn)行配置以存儲(chǔ)和執(zhí)行程序指令的硬件,例如只讀存儲(chǔ)器(ROM)和隨機(jī)訪問存儲(chǔ)器(RAM)。該介質(zhì)也可以是傳輸介質(zhì)例如光或金屬線,波導(dǎo)等,包括用于傳輸指定程序指令,數(shù)據(jù)結(jié)構(gòu)等的信號用的載波等。程序指令的例子不但包括例如由一個(gè)編譯器生成的機(jī)器代碼,還包括包含可以由計(jì)算機(jī)使用一個(gè)解釋器執(zhí)行的高級代碼的文件。
圖7示出一個(gè)根據(jù)本發(fā)明的實(shí)施例的典型計(jì)算機(jī)系統(tǒng)。該計(jì)算機(jī)系統(tǒng)700包括可以與存儲(chǔ)裝置相耦合的任何數(shù)量的處理器702(也指中央處理單元,或CPU),存儲(chǔ)裝置包括主存儲(chǔ)器703(通常為一個(gè)隨機(jī)訪問存儲(chǔ)器,或RAM),主存儲(chǔ)器704(通常為一個(gè)只讀存儲(chǔ)器,或ROM)。如在本領(lǐng)域已知的那樣,通常主存儲(chǔ)器704用于單向地向CPU傳輸數(shù)據(jù)和指令,主存儲(chǔ)器706用于以雙向的方式傳輸數(shù)據(jù)和指令。這兩種主存儲(chǔ)器可以包括上述的計(jì)算機(jī)可讀介質(zhì)的任一種合適的類型。海量存儲(chǔ)設(shè)備708也與CPU702雙向地耦合,并提供附加的數(shù)據(jù)存儲(chǔ)容量并可以包括上述的計(jì)算機(jī)可讀介質(zhì)的任一種合適的類型。海量存儲(chǔ)設(shè)備708可以用于存儲(chǔ)程序,數(shù)據(jù)等,典型地為一個(gè)二級存儲(chǔ)介質(zhì)例如速度比主存儲(chǔ)器慢的硬盤??梢岳斫猓A看鎯?chǔ)設(shè)備708中所保持的信息在適當(dāng)?shù)那闆r下可以以標(biāo)準(zhǔn)的流行方式作為虛擬存儲(chǔ)器成為主存儲(chǔ)器706的一部分。
一個(gè)具體的海量存儲(chǔ)設(shè)備例如為也可以將數(shù)據(jù)單向傳遞到CPU的CD-ROM714。
CPU702也與一個(gè)接口710相耦合,該接口包括一個(gè)或多個(gè)輸入/輸出設(shè)備例如視頻監(jiān)視器,軌跡球,鼠標(biāo),鍵盤,麥克風(fēng),觸摸顯示屏,傳感卡閱讀器,磁或紙帶閱讀器,寫字板,鐵筆,聲音或手寫體識別器,或其它已知的輸入設(shè)備例如當(dāng)然包括其它計(jì)算機(jī)。最后CPU702可選地可以通過使用一個(gè)在712所示的網(wǎng)絡(luò)連接與一個(gè)計(jì)算機(jī)或通信網(wǎng)絡(luò)相耦合。根據(jù)這種網(wǎng)絡(luò)連接,可以預(yù)測CPU可以從網(wǎng)絡(luò)接收信息,或在執(zhí)行上述的方法步驟的過程中向網(wǎng)絡(luò)輸出信息。上述的設(shè)備和材料對于計(jì)算機(jī)硬件和軟件領(lǐng)域的技術(shù)人員來說是很熟悉的。
上述的硬件單元可以配置成用于執(zhí)行實(shí)現(xiàn)本發(fā)明的操作的一個(gè)或多個(gè)軟件模塊。例如檢測一個(gè)編碼類型、轉(zhuǎn)換該編碼類型及識別一個(gè)缺省的名稱服務(wù)器的指令可以存儲(chǔ)在海量存儲(chǔ)設(shè)備708或714中,并與主存儲(chǔ)器706相結(jié)合由CPU708來執(zhí)行。
盡管為了理解的方便詳細(xì)地描述了上述發(fā)明,但是在所附的權(quán)利要求書的范圍內(nèi)可以有某些改變和修改。
權(quán)利要求
1.一種在一個(gè)裝置上實(shí)現(xiàn)的方法,用于檢測一個(gè)數(shù)字地表示的域名的語言編碼類型,該方法包括接收數(shù)字地表示的域名的預(yù)先指定的部分的數(shù)字序列;將該域名的所述數(shù)字序列與已知的數(shù)字序列集合中的一個(gè)已知的數(shù)字序列進(jìn)行匹配,其中每個(gè)數(shù)字序列與一個(gè)特定的語言編碼類型相關(guān)聯(lián),并且該集合包括至少兩個(gè)不同的語言編碼類型的已知數(shù)字序列;及識別與和域名中的數(shù)字序列相匹配的已知數(shù)字序列相關(guān)的一個(gè)編碼類型。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括接收一個(gè)包含該數(shù)字地表示的域名的DNS請求。
3.根據(jù)權(quán)利要求1或2所述的方法,其中域名的預(yù)先指定的部分是域名中的最小代碼分解字符串。
4.根據(jù)權(quán)利要求1、2或3所述的方法,進(jìn)一步包括在匹配上述的數(shù)字序列之前轉(zhuǎn)換數(shù)字地表示的域名的數(shù)字序列的格式。
5.根據(jù)權(quán)利要求1-4任一項(xiàng)所述的方法,其中已知的數(shù)字序列集合位于一張表中,該表包括具有包括已知的數(shù)字序列和編碼類型的屬性。
6.根據(jù)權(quán)利要求5所述的方法,其中該表包括具有至少如下編碼類型ASCII,BIG5,GB2312,shift-JIS,EUC-JP,KSC5601,及擴(kuò)展ASCII。
7.根據(jù)權(quán)利要求5所述的方法,其中識別編碼類型的步驟包括識別具有匹配已知的數(shù)字序列的記錄的編碼類型。
8.根據(jù)權(quán)利要求1-7任一項(xiàng)所述的方法,其中至少兩個(gè)已知的數(shù)字序列匹配域名中的數(shù)字序列,并進(jìn)一步包括接收數(shù)字地表示的域名的第二部分的數(shù)字序列;將第二部分的數(shù)字序列與已知的數(shù)字序列集合中的一個(gè)已知的數(shù)字序列進(jìn)行匹配。
9.根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括識別一個(gè)負(fù)責(zé)分解所識別的編碼類型的根級別的域的根級別的DNS服務(wù)器;及將DNS請求發(fā)送到該根級別的DNS服務(wù)器。
10.根據(jù)權(quán)利要求9所述的方法,進(jìn)一步包括在發(fā)送DNS請求之前,將域名的數(shù)字序列從所識別的編碼類型轉(zhuǎn)換為與DNS協(xié)議兼容的一個(gè)DNS編碼類型。
11.根據(jù)權(quán)利要求10所述的方法,其中該DNS編碼類型是ASCII或一個(gè)通用語言編碼類型。
12.根據(jù)權(quán)利要求10所述的方法,其中轉(zhuǎn)換域名的數(shù)字序列包括將域名的數(shù)字序列從所識別的編碼類型轉(zhuǎn)換為一個(gè)通用的語言編碼類型;及將域名的數(shù)字序列從通用語言編碼類型轉(zhuǎn)換為與DNS協(xié)議兼容的一個(gè)DNS編碼類型。
13.一個(gè)計(jì)算機(jī)程序產(chǎn)品,包括一個(gè)機(jī)器可讀介質(zhì),該介質(zhì)上具有程序指令,這些指令語言執(zhí)行用于檢測一個(gè)數(shù)字地表示的域名的語言編碼類型的方法,該方法包括接收數(shù)字地表示的域名的預(yù)先指定的部分的數(shù)字序列;將該域名的所述數(shù)字序列與已知的數(shù)字序列集合中的一個(gè)已知的數(shù)字序列進(jìn)行匹配,其中每個(gè)數(shù)字序列與一個(gè)特定的語言編碼類型相關(guān)聯(lián),并且該集合包括至少兩個(gè)不同的語言編碼類型的已知數(shù)字序列;及識別與和域名中的數(shù)字序列相匹配的已知數(shù)字序列相關(guān)的一個(gè)編碼類型。
14.根據(jù)權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,其中已知的數(shù)字序列集合位于一張表中,該表包括具有包括已知的數(shù)字序列和編碼類型的屬性。
15.根據(jù)權(quán)利要求13或14所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括完成如下操作的程序指令,接收一個(gè)包含數(shù)字地表示的域名的DNS請求。識別一個(gè)負(fù)責(zé)分解所識別的編碼類型的根級別的域的根級別的DNS服務(wù)器;及將該DNS請求發(fā)送到該根級別的DNS服務(wù)器。
16.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括完成如下操作的程序指令,在發(fā)送該DNS請求之前,將域名的數(shù)字序列從所識別的編碼類型轉(zhuǎn)換為與DNS協(xié)議兼容的一個(gè)DNS編碼類型。
17.在一個(gè)機(jī)器可讀的介質(zhì)上的一個(gè)語言編碼類型映射表,它將特定的語言編碼類型與特定的數(shù)字序列相關(guān)聯(lián),該映射表包括多個(gè)記錄,這些記錄包括數(shù)字地表示的域名的預(yù)先指定的部分的一個(gè)已知的數(shù)字序列;一個(gè)與已知的數(shù)字序列相關(guān)聯(lián)的一個(gè)語言編碼類型。
18.根據(jù)權(quán)利要求17所述的映射表,其中數(shù)字地表示的域名的預(yù)先指定的部分是域名中頂級域的數(shù)字序列。
19.根據(jù)權(quán)利要求17或18所述的映射表,其中該映射表記錄包括至少下列語言編碼類型ASCII,BIG5,GB2312,shift-JIS,EUC-JP,KSC5601,及擴(kuò)展ASCII。
20.根據(jù)權(quán)利要求17,18或19所述的映射表,其中這些記錄進(jìn)一步包括一個(gè)負(fù)責(zé)分解記錄中的語言編碼類型的根級別的域的頂級DNS服務(wù)器。
21.根據(jù)權(quán)利要求17-20任一項(xiàng)所述的映射表,其中這些記錄進(jìn)一步包括一個(gè)將編碼類型轉(zhuǎn)換為一個(gè)DNS兼容編碼類型的一個(gè)轉(zhuǎn)換。
22.根據(jù)權(quán)利要求17-21所述的映射表,其中這些記錄進(jìn)一步包括一個(gè)有效時(shí)間字段。
23.根據(jù)權(quán)利要求22所述的映射表,其中該DNS編碼類型是ASCII或通用語言編碼類型。
24.一種裝置,包括一個(gè)或多個(gè)處理器;與至少一個(gè)或多個(gè)處理器相耦合的存儲(chǔ)器;及一個(gè)或多個(gè)網(wǎng)絡(luò)接口,可以接收包括一個(gè)非DNS編碼類型的域名的一個(gè)第一DNS請求,并用與DNS協(xié)議兼容的DNS編碼類型下的域名發(fā)送一個(gè)DNS請求,其中至少一個(gè)或多個(gè)處理器的至少一個(gè)被設(shè)計(jì)或配置為將非DNS編碼類型的域名轉(zhuǎn)換為DNS編碼類型的那個(gè)域名。
25.根據(jù)權(quán)利要求24所述的裝置,其中一個(gè)或多個(gè)網(wǎng)絡(luò)接口與一個(gè)網(wǎng)絡(luò)相耦合,其耦合方式使得裝置接收客戶機(jī)DNS請求,其中客戶機(jī)DNS請求表示非DNS編碼類型的域名。
26.根據(jù)權(quán)利要求24或25所述的裝置,其中一個(gè)或多個(gè)網(wǎng)絡(luò)接口與一個(gè)網(wǎng)絡(luò)相耦合,其耦合方式使得裝置向一個(gè)標(biāo)準(zhǔn)的DNS服務(wù)器發(fā)送一個(gè)DNS請求,其中DNS請求表示DNS編碼類型的域名。
27.根據(jù)權(quán)利要求24,25或26所述的裝置,進(jìn)一步包括一個(gè)至少部分地駐留在存儲(chǔ)器中的映射表,其中該映射表將特定的語言編碼類型與希望在數(shù)字地編碼的域名中找到的具體數(shù)字序列相關(guān)聯(lián)。
28.根據(jù)權(quán)利要求24-27所述的裝置,其中至少一個(gè)處理器被配置或設(shè)計(jì)為,在將域名從非DNS編碼類型轉(zhuǎn)換為DNS編碼類型之前識別該域名的非DNS編碼類型。
全文摘要
一種多語言域名服務(wù)系統(tǒng),允許用戶使用非統(tǒng)一字符編碼標(biāo)準(zhǔn)或ASCII編碼的域名。一個(gè)國際DNS服務(wù)器首先接收一個(gè)DNS請求,通過考慮域名的頂級域的位字符串并將該字符串與不同的編碼類型的已知頂級域的已知位字符串列表匹配來判斷請求的編碼類型。當(dāng)識別出域名的編碼類型后,它將該域名的編碼轉(zhuǎn)換為一個(gè)通用語言編碼類型。然后將該通用語言編碼類型表示翻譯為一個(gè)符合通用DNS標(biāo)準(zhǔn)的ASCII表示。然后該表示被傳遞到一個(gè)常規(guī)域名系統(tǒng),該系統(tǒng)識別ASCII格式的域名并返回相關(guān)的IP地址。
文檔編號G06FGK1266237SQ0010169
公開日2000年9月13日 申請日期2000年1月27日 優(yōu)先權(quán)日1999年2月26日
發(fā)明者譚亭維, 沈青宏, 譚鐫岡, 龍柯永, 唐·艾爾文·翠西·德·西爾瓦, 李光松, 愛德華·S·泰, 薩布拉曼尼恩·薩比阿 申請人:I-Dns通迅國際公司