專利名稱:域名系統(tǒng)中的數(shù)據(jù)庫(kù)性能的增強(qiáng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式數(shù)據(jù)庫(kù),特別涉及作為用于因特網(wǎng)的分布式數(shù)據(jù)庫(kù)的域名系統(tǒng)(DNS)。確切些說(shuō),本發(fā)明涉及改善當(dāng)前實(shí)際DNS的名稱服務(wù)器(name server)即DNS客戶機(jī)服務(wù)器機(jī)制的服務(wù)器實(shí)體的性能的方法。
背景技術(shù):
眾所周知,域名系統(tǒng)(DNS)是一種分層的分布式數(shù)據(jù)庫(kù),在諸如因特網(wǎng)之類的計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)用來(lái)將域名轉(zhuǎn)換成IP地址。存儲(chǔ)在數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)單元由組織成稱為域名空間的倒置樹(shù)(inverted tree)結(jié)構(gòu)的域名標(biāo)識(shí)。樹(shù)內(nèi)每個(gè)節(jié)點(diǎn)給有標(biāo)簽(label)。節(jié)點(diǎn)的域名為由從本節(jié)點(diǎn)到樹(shù)的根節(jié)點(diǎn)的路徑上的各個(gè)標(biāo)簽組成的序列,用點(diǎn)將標(biāo)簽相互隔開(kāi)。也就是說(shuō),域名標(biāo)識(shí)了樹(shù)內(nèi)的節(jié)點(diǎn)。與每個(gè)域名關(guān)聯(lián)的數(shù)據(jù)存儲(chǔ)在一個(gè)或多個(gè)資源記錄(RR)內(nèi)。目前,有大約20種不同類型的RR在普遍使用。在下面,對(duì)DNS系統(tǒng)進(jìn)行簡(jiǎn)要的說(shuō)明,以解釋與本發(fā)明有關(guān)的一些概念或組成部分。
為了分散管理域名空間,將域名空間分成一些稱為地域(zone)的區(qū)域。每個(gè)地域開(kāi)始于特定節(jié)點(diǎn),延伸到樹(shù)的葉節(jié)點(diǎn)或其他地域的開(kāi)始節(jié)點(diǎn)。每個(gè)地域由負(fù)責(zé)本地域的稱為特許名稱服務(wù)器(authoritative name server)的至少一個(gè)名稱服務(wù)器維護(hù)和服務(wù)。特許名稱服務(wù)器含有它所負(fù)責(zé)的地域的全部信息。為了使DNS能耐受故障,地域通常具有超過(guò)一個(gè)的特許名稱服務(wù)器。存儲(chǔ)地域數(shù)據(jù)的原版拷貝的特許服務(wù)器稱為主服務(wù)器,而同一地域的其他特許名稱服務(wù)器稱為從服務(wù)器或輔助服務(wù)器。每個(gè)從服務(wù)器從地域的其他特許名稱服務(wù)器獲取地域數(shù)據(jù)。這種復(fù)制過(guò)程通常稱為地域傳送(zone transfer)。本發(fā)明關(guān)心的主要是從服務(wù)器,如下面要較為詳細(xì)說(shuō)明的那樣。
DNS也可以用來(lái)標(biāo)識(shí)與作為標(biāo)準(zhǔn)E.164號(hào)碼給出的特定電話號(hào)碼關(guān)聯(lián)的業(yè)務(wù)。如所周知,E.164號(hào)碼在公用電信網(wǎng)內(nèi)是諸如電話機(jī)或傳真機(jī)之類的資源的全球性唯一標(biāo)識(shí)符(即,國(guó)際電話號(hào)碼)。所用的名稱,E.164,來(lái)自定義標(biāo)識(shí)符格式的國(guó)際電信聯(lián)盟(ITU)建議E.164。
RFC(Requests for Comments)2916討論了用DNS標(biāo)識(shí)與E.164號(hào)碼關(guān)聯(lián)的可用業(yè)務(wù)。這個(gè)RFC文件規(guī)定了稱為ENUM的將國(guó)際電話號(hào)碼映射為因特網(wǎng)業(yè)務(wù)的協(xié)議。用于這種映射的基于DNS的系統(tǒng)在這個(gè)環(huán)境內(nèi)稱為ENUM系統(tǒng)。在終端用戶進(jìn)入或撥了E.164號(hào)碼時(shí),這個(gè)號(hào)碼就變換為完全合格域名(Fully Qualified Domain NameFQDN)提供給DNS,DNS返回與FQDN關(guān)聯(lián)的所有名權(quán)限指針(NAPTR)記錄。NAPTR為上面所說(shuō)明的資源記錄類型之一。與特定E.164號(hào)碼關(guān)聯(lián)的存儲(chǔ)在DNS內(nèi)的這些NAPTR包括可以用來(lái)聯(lián)系與這個(gè)號(hào)碼關(guān)聯(lián)的一個(gè)或多個(gè)網(wǎng)絡(luò)資源。
當(dāng)前實(shí)際DNS服務(wù)器基于Berkeley因特網(wǎng)名稱域(BIND)實(shí)現(xiàn),其中數(shù)據(jù)庫(kù)基于紅-黑二進(jìn)制樹(shù)。與這些服務(wù)器有關(guān)的缺點(diǎn)是它們的性能對(duì)于ENUM系統(tǒng)沒(méi)有最佳化,而上面所提到的將電話號(hào)碼轉(zhuǎn)換成FQDN降低了它們的性能。本發(fā)明旨在消除這個(gè)由于轉(zhuǎn)換的性質(zhì)引起的缺點(diǎn),情況如下面所說(shuō)明的。
發(fā)明內(nèi)容
本發(fā)明旨在改善當(dāng)前實(shí)際名稱服務(wù)器的性能。本發(fā)明還旨在優(yōu)化當(dāng)前的實(shí)際名稱服務(wù)器的用于ENUM系統(tǒng)或用于提供給域名系統(tǒng)的FQDN類似用于ENUM系統(tǒng)的FQDN的任何其他查詢的性能。
在本發(fā)明中,在實(shí)際的數(shù)據(jù)庫(kù)接口前修改在名稱服務(wù)器接收到的FQDN,然后再將經(jīng)修改的FQDN提供給這個(gè)接口。如下面所說(shuō)明的,修改配合地域傳送和配合隨后的DNS查詢執(zhí)行。在這里,數(shù)據(jù)庫(kù)接口指的是名稱服務(wù)器內(nèi)在實(shí)際的數(shù)據(jù)庫(kù)操作前的點(diǎn),即地域數(shù)據(jù)和DNS查詢通過(guò)其被提供給諸如插入、刪除或搜索之類的數(shù)據(jù)庫(kù)操作的那個(gè)接口。
因此,本發(fā)明的實(shí)施例是提供一種增強(qiáng)域名系統(tǒng)(DNS)中的數(shù)據(jù)庫(kù)性能的方法。這種方法包括下列步驟接收要提供給數(shù)據(jù)庫(kù)操作的數(shù)據(jù),所述數(shù)據(jù)包括含有多個(gè)相繼標(biāo)簽的至少一個(gè)域名,所述至少一個(gè)域名具有第一格式;將所述至少一個(gè)域名中的至少一個(gè)變換成第二格式,其中所述至少一個(gè)域名中的至少一個(gè)的至少兩個(gè)相繼標(biāo)簽被合并,以形成單個(gè)標(biāo)簽。這種方法還包括將數(shù)據(jù)提供給數(shù)據(jù)庫(kù)操作,所提供的數(shù)據(jù)包括第二格式的至少一個(gè)域名。
在另一個(gè)實(shí)施例中,本發(fā)明提供了一種增強(qiáng)域名系統(tǒng)中的數(shù)據(jù)庫(kù)性能的系統(tǒng)。這種系統(tǒng)包括第一裝置,用來(lái)接收要提供給數(shù)據(jù)庫(kù)操作的數(shù)據(jù),所述數(shù)據(jù)包括含有多個(gè)相繼標(biāo)簽的至少一個(gè)域名,所述至少一個(gè)域名具有第一格式;第二裝置,用來(lái)將所述至少一個(gè)域名中的至少一個(gè)變換成第二格式,其中所述至少一個(gè)域名中的至少一個(gè)的至少兩個(gè)相繼標(biāo)簽被合并,以形成單個(gè)標(biāo)簽;以及第三裝置,用來(lái)將數(shù)據(jù)提供給數(shù)據(jù)庫(kù)操作,所提供的數(shù)據(jù)包括第二格式的至少一個(gè)域名。
在另一個(gè)實(shí)施例中,本發(fā)明提供了一種用于域名系統(tǒng)的名稱服務(wù)器。這種名稱服務(wù)器包括第一接口,用來(lái)接收要提供給數(shù)據(jù)庫(kù)操作的數(shù)據(jù),所述數(shù)據(jù)包括含有多個(gè)相繼標(biāo)簽的至少一個(gè)域名,所述至少一個(gè)域名具有第一格式;在操作上連接到第一接口上的修改模塊,用來(lái)將所述至少一個(gè)域名中的至少一個(gè)變換成第二格式,其中所述至少一個(gè)域名中的至少一個(gè)的至少兩個(gè)相繼標(biāo)簽形成單個(gè)標(biāo)簽;以及在操作上連接到修改模塊上的第二接口,用來(lái)將數(shù)據(jù)提供給數(shù)據(jù)庫(kù)操作,所提供的數(shù)據(jù)包括第二格式的至少一個(gè)域名。
在又一個(gè)實(shí)施例中,本發(fā)明提供了一種計(jì)算機(jī)程序產(chǎn)品。這種計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀代碼,設(shè)計(jì)成在由計(jì)算機(jī)執(zhí)行時(shí)使這個(gè)計(jì)算機(jī)基本上執(zhí)行上面所提到的方法的步驟。
利用本發(fā)明的解決方案,可以顯著地提高ENUM系統(tǒng)的性能,因?yàn)橛缮厦嫠岬降淖儞Q所引起的主要內(nèi)部延遲可以在名稱服務(wù)器內(nèi)消除。
本發(fā)明的另一個(gè)優(yōu)點(diǎn)是可以用一種簡(jiǎn)單的低成本方式提高DNS名稱服務(wù)器的性能。這是因?yàn)榭梢岳^續(xù)使用現(xiàn)有的服務(wù)器軟件(BIND)和不需要修改實(shí)際數(shù)據(jù)庫(kù)(即搜索樹(shù))。
從以下詳細(xì)說(shuō)明和附圖中可以清楚地看到本發(fā)明的其他特征和優(yōu)點(diǎn)。
下面將結(jié)合圖1至6所示的例子對(duì)本發(fā)明及其實(shí)施例進(jìn)行較為詳細(xì)的說(shuō)明,在這些附圖中圖1通過(guò)示出在從普通的電話機(jī)發(fā)起呼叫時(shí)DNS的使用情況例示了ENUM系統(tǒng);圖2例示了在當(dāng)前的DNS系統(tǒng)內(nèi)域名的格式;圖3例示了在本發(fā)明中對(duì)圖2的域名格式修改的情況;圖4為例示本發(fā)明的名稱服務(wù)器的體系結(jié)構(gòu)的原理圖;圖5為例示配合地域傳送修改域名的流程圖;以及圖6為例示配合DNS查詢修改域名的流程圖。
具體實(shí)施例方式
為了例示本發(fā)明應(yīng)用的環(huán)境,圖1示出了使用ENUM系統(tǒng)的例子。在圖1中假設(shè)用戶從普通電話機(jī)100向國(guó)際電話號(hào)碼(即,E.164號(hào)碼)為+358-60-111-2222的另一用戶(未示出)發(fā)起呼叫。首先,電話網(wǎng)120將這個(gè)呼叫請(qǐng)求路由給為這個(gè)E.164號(hào)碼的業(yè)務(wù)代理(serviceagent)的網(wǎng)關(guān)130。接收到呼叫請(qǐng)求,網(wǎng)關(guān)將這個(gè)E.164號(hào)碼變換成FQDN。這個(gè)變換是,首先將E.164號(hào)碼內(nèi)的數(shù)字倒轉(zhuǎn),然后將點(diǎn)插入數(shù)字之間,最后將域“e164.arpa”附加到串的末端。在這種情況下,因此得到的FQDN為2.2.2.2.1.1.1.0.6.8.5.3.e164.arpa。然后,網(wǎng)關(guān)將包括剛才形成的FQDN的標(biāo)準(zhǔn)DNS查詢發(fā)送給DNS。接收到查詢的名稱服務(wù)器140執(zhí)行搜索,在DNS響應(yīng)中返回與FQDN相應(yīng)的所有NAPTR記錄。這些記錄列出了映射到所考慮的E.164號(hào)碼的因特網(wǎng)業(yè)務(wù)。為此,NAPTR記錄包括例如次序字段,指出處理多個(gè)NAPTR記錄的次序;以及業(yè)務(wù)字段,指出需使用的解析協(xié)議和業(yè)務(wù),即一些怎樣繼續(xù)進(jìn)行對(duì)這個(gè)呼叫請(qǐng)求的處理的指令。根據(jù)在這組NAPTR記錄內(nèi)接收到的信息,網(wǎng)關(guān)于是確定接下來(lái)需使用的解析服務(wù)。這樣,按照從DNS接收到的信息繼續(xù)處理這個(gè)呼叫請(qǐng)求。由于本發(fā)明并不涉及過(guò)程的這個(gè)階段,而只是與以上所說(shuō)明的名稱服務(wù)器有關(guān),因此在這里就沒(méi)有討論呼叫請(qǐng)求的完成情況。
本發(fā)明的發(fā)明者發(fā)現(xiàn)將E.164號(hào)碼轉(zhuǎn)換成FQDN的本性降低了實(shí)際名稱服務(wù)器的性能。如以上所說(shuō)明的那樣,在ENUM系統(tǒng)內(nèi)域名包括多個(gè)只是一字符(一字節(jié))長(zhǎng)的標(biāo)簽。在實(shí)際名稱服務(wù)器內(nèi),搜索算法對(duì)域名的處理是從根目錄起逐標(biāo)簽地遍歷域名,而每當(dāng)遇到點(diǎn)時(shí),在根節(jié)點(diǎn)與標(biāo)簽的已遍歷域名相應(yīng)的新的子樹(shù)內(nèi)繼續(xù)搜索。這意味著使用ENUM系統(tǒng)會(huì)轉(zhuǎn)換為在更多個(gè)子樹(shù)中執(zhí)行搜索。在這里假設(shè)有一百萬(wàn)個(gè)電話號(hào)碼需映射到相應(yīng)的因特網(wǎng)業(yè)務(wù)。如果使用允許長(zhǎng)標(biāo)簽的傳統(tǒng)系統(tǒng),這可以實(shí)現(xiàn)為包括一百萬(wàn)個(gè)節(jié)點(diǎn)的單樹(shù)。然而,在標(biāo)簽只包括一個(gè)號(hào)碼的ENUM情況下,必需在六個(gè)各包括10個(gè)節(jié)點(diǎn)(標(biāo)為0到9)的不同的樹(shù)(電話號(hào)碼的每個(gè)數(shù)字一個(gè)樹(shù))內(nèi)搜索。由于樹(shù)可以有10個(gè)標(biāo)簽(數(shù)字值從0到9),因此樹(shù)的數(shù)目為Σn=1k10(n-1)]]>其中k為一個(gè)數(shù)字的標(biāo)簽的數(shù)目。在這種情況下,k等于6,從而可能的樹(shù)的數(shù)目等于111111。
要從紅-黑二進(jìn)制樹(shù)找出某個(gè)節(jié)點(diǎn)的時(shí)間等于O(log n),其中n為樹(shù)內(nèi)的節(jié)點(diǎn)數(shù),而O(.)為通常使用的O標(biāo)記法。因此,在傳統(tǒng)的情況下,搜索時(shí)間等于O(log 1000000)=6。在相應(yīng)的ENUM情況下,在樹(shù)內(nèi)的搜索時(shí)間等于O(log10)=1。由于一百萬(wàn)電話號(hào)碼必須用6個(gè)樹(shù),因此總搜索時(shí)間等于6,即在這兩種情況下搜索時(shí)間是相等的。然而,在ENUM情況下從一個(gè)二進(jìn)制樹(shù)移到另一個(gè)二進(jìn)制樹(shù)形成總搜索時(shí)間的重要部分,因?yàn)閺囊粋€(gè)樹(shù)切換到另一個(gè)樹(shù)的任務(wù)實(shí)際上比在一個(gè)二進(jìn)制樹(shù)內(nèi)搜索復(fù)雜。
在當(dāng)前的實(shí)際名稱服務(wù)器中,域名通常以未經(jīng)壓縮的線格式(wire format)存儲(chǔ)。在DNS查詢內(nèi)域名也以這種格式出現(xiàn)。在這種格式中,每個(gè)標(biāo)簽之前是1字節(jié)的計(jì)數(shù)(count),這個(gè)計(jì)數(shù)規(guī)定了這個(gè)域名為域名內(nèi)下一個(gè)標(biāo)簽承載的字節(jié)數(shù)。域名以值為零的字節(jié)結(jié)束,這是這個(gè)根的標(biāo)簽。圖2示出了域名5.3.2.2.2.2.e164.arpa以這種格式存儲(chǔ)的情況。可以看到,所存儲(chǔ)的域名包括6個(gè)為1的計(jì)數(shù)值,與6個(gè)1字節(jié)的標(biāo)簽相應(yīng)。
所存儲(chǔ)的名稱數(shù)據(jù)的結(jié)構(gòu)還可以表示為<pre listing-type="program-listing"> struct dns_name{ unsigned int magic; unsigned char* ndata; unsigned int length; unsigned int labels; unsigned int attributes; unsigned char* offsets; isc_buffer_t*buffer; ISC_LINK(dns_name_t) link; ISC_LIST(dns_rdataset_t) list; };</pre>其中,ndata指的是處于未經(jīng)壓縮的線格式的域名數(shù)據(jù),labels指出ndata內(nèi)的標(biāo)簽數(shù),而offsets指出標(biāo)號(hào)x的計(jì)數(shù)字節(jié)偏移量。對(duì)標(biāo)簽的計(jì)數(shù)從與根標(biāo)簽相反的那側(cè)開(kāi)始,第一標(biāo)簽具有為零的值。
在圖2這個(gè)例子中,labels和offsets的值如下-labels=9,-offsetsoffsets[label=0]=0,offsets[label=1]=2,offsets[label=2]=4,offsets[label=3]=6等,-具有以上offsets的ndata值為ndata[offsets=0]=1,ndata[offsets=2]=1,ndata[offsets=4]=1等。
在本發(fā)明的這個(gè)例子中,通過(guò)修改域名,以至一定數(shù)量的標(biāo)簽組合形成單個(gè)標(biāo)簽,來(lái)提高名稱服務(wù)器的性能。修改從給定的原點(diǎn)(origin)開(kāi)始,使得線格式的第一計(jì)數(shù)值(即ndata[offset=0])改變?yōu)榕c在要合并的標(biāo)簽內(nèi)和在所述標(biāo)簽之間的計(jì)數(shù)內(nèi)的字節(jié)數(shù)之和相應(yīng)的值。也就是說(shuō),第一計(jì)數(shù)改變?yōu)榕c在經(jīng)合并的標(biāo)簽內(nèi)的字節(jié)的總數(shù)相應(yīng)的值。圖3示出了圖2所示的域名在所希望的原點(diǎn)為e164.arpa的假設(shè)下的修改情況。在這種情況下,在要合并的標(biāo)簽內(nèi)的字節(jié)的總數(shù)為6(5.3.2.2.2.2),而在中間的計(jì)數(shù)內(nèi)的字節(jié)的數(shù)目為5。因此,名稱內(nèi)的第一計(jì)數(shù)的值為11,指出下面11個(gè)字節(jié)形成在第一計(jì)數(shù)后的標(biāo)簽。
在上面這個(gè)例子中,labels和offsets的值因此修改成-labels=4,-offsetsoffsets[label=0]=0,offsets[label=1]=12,offsets[label=2]=17,offsets[label=3]=22,-具有以上offsets的ndata值為ndata[offsets=0]=11,ndata[offsets=12]=4,ndata[offsets=17]=4,ndata[offsets=22]=0。
圖4為本發(fā)明的名稱服務(wù)器的例子的體系結(jié)構(gòu)的示意圖。在本發(fā)明中,在名稱服務(wù)器內(nèi)引入獨(dú)立的修改模塊40,使得這個(gè)模塊處在諸如分別標(biāo)以43、44和45的添加、刪除和搜索之類的實(shí)際數(shù)據(jù)庫(kù)操作之前。如上面所提到的,實(shí)際數(shù)據(jù)庫(kù)42通常為紅-黑二進(jìn)制樹(shù)。修改模塊接收要執(zhí)行的數(shù)據(jù)庫(kù)操作的輸入數(shù)據(jù),輸入數(shù)據(jù)例如是隨地域傳送或DNS查詢接收到的。如果必要的話,修改模塊以上面所說(shuō)明的方式改變包含在輸入數(shù)據(jù)內(nèi)的域名。修改模決因此檢驗(yàn)是否需要修改,在需要修改的情況下執(zhí)行修改。否則,模塊將輸入數(shù)據(jù)保持原狀,即名稱服務(wù)器以傳統(tǒng)的方式進(jìn)行操作。
在從數(shù)據(jù)庫(kù)(即從模塊46)接收到查詢響應(yīng)時(shí),修改模塊將經(jīng)修改的域名恢復(fù)為它原來(lái)的格式。實(shí)際上,修改模塊可以實(shí)現(xiàn)成它位于普通的BIND實(shí)現(xiàn)內(nèi),即在入局?jǐn)?shù)據(jù)的情況下在修改前還執(zhí)行一定的BIND功能。這些功能包括在正常地域傳送情況下的dns_db_beginload( )和beginload( )、在增量地域傳送情況下的xfrin_recv_done( )和xfr_rr( )、在DNS查詢情況下的client_request和ns_query_start( )和在lwresd查詢情況下的lookup_find( )和view_find( )。從數(shù)據(jù)庫(kù)接收到的DNS查詢響應(yīng)轉(zhuǎn)給的功能為continue_query_find( )。這個(gè)在修改模塊之前的級(jí)在這里稱為預(yù)處理級(jí)。修改模塊可以作為補(bǔ)丁文件添加給BIND軟件的源程序。
本發(fā)明可以配合地域傳送和隨后的DNS查詢使用。這將在下面說(shuō)明。
圖5為例示修改模塊配合地域傳送即在將整個(gè)地城傳送給名稱服務(wù)器時(shí)的基本操作的例子的流程圖。在這種情況下,修改模塊因此修改如圖3所示的地域數(shù)據(jù),以便保證地域數(shù)據(jù)存儲(chǔ)在二進(jìn)制樹(shù)內(nèi)。這從而消除了如上面所說(shuō)明的性能問(wèn)題,因?yàn)殡S后的搜索可以在一個(gè)搜索樹(shù)內(nèi)執(zhí)行。
在接收和預(yù)處理地域數(shù)據(jù)的同時(shí),修改模塊一次一個(gè)地即時(shí)(on-the-fly)檢驗(yàn)NAPTR記錄,以檢查其是否滿足為修改設(shè)置的預(yù)定條件(步驟51)。為此,修改模塊用NAPTR記錄的標(biāo)準(zhǔn)格式在到來(lái)的記錄內(nèi)尋找有關(guān)的數(shù)據(jù)。這個(gè)為NAPTR記錄設(shè)置的預(yù)定條件通常是域名必須包括“越過(guò)”地域的原點(diǎn)的至少特定數(shù)量的1字節(jié)標(biāo)簽,以使修改能夠發(fā)生。例如,修改模塊只有在域名包括“越過(guò)”原點(diǎn)的至少三個(gè)1字節(jié)標(biāo)簽時(shí)才可以合并標(biāo)簽。用上面的域名(5.3.2.2.2.2.e164.arpa)作為例子,假設(shè)地域原點(diǎn)為2.2.2.e164.arpa,修改模塊會(huì)合并上面這個(gè)域名內(nèi)的前三個(gè)標(biāo)簽(5.3.2),但不會(huì)為只有兩個(gè)標(biāo)簽(4.4)超出原點(diǎn)的域名4.4.2.2.2.e164執(zhí)行合并。因此,對(duì)于每個(gè)NAPTR記錄,修改模塊定義地域原點(diǎn)與域名之“差”,將“差”的標(biāo)簽合并在一起,如果它們滿足預(yù)定的條件。
在步驟51的檢查和在步驟52的可能修改后,將數(shù)據(jù)添加給數(shù)據(jù)庫(kù)(步驟53)。
圖6為例示修改模塊配合到來(lái)DNS查詢的基本操作的例子的流程圖。在預(yù)處理級(jí)處理查詢數(shù)據(jù)時(shí),修改模塊在步驟601、602和603執(zhí)行預(yù)檢查,確定域名配合這個(gè)查詢是否需修改。首先,修改模塊檢查在名稱服務(wù)器內(nèi)是否可以發(fā)現(xiàn)域名的原點(diǎn)(步驟601)。其次,修改模塊檢查是否有所考慮的ENUM查詢(步驟602),然后修改模塊再檢查名稱服務(wù)器是否為所考慮的地域的特許名稱服務(wù)器(步驟603)。
如果所有以上三個(gè)條件都滿足,修改模塊將超出所考慮的域原點(diǎn)的標(biāo)簽合并在一起(步驟606),如果域名滿足在步驟605檢查的一個(gè)或多個(gè)預(yù)定條件的話。這個(gè)檢查與圖5中的步驟52相應(yīng),即它檢查標(biāo)簽是否具有足夠多的超出原點(diǎn)的1字節(jié)標(biāo)簽。
然后將這個(gè)查詢提供給數(shù)據(jù)庫(kù)操作,即圖4中的模塊45(步驟607)。在修改模塊從數(shù)據(jù)庫(kù)接收到響應(yīng)時(shí)(步驟608/yes),它檢驗(yàn)輸入的域名的標(biāo)簽是否配合查詢先前受到合并(步驟609)。如果是,修改模塊就分離這些標(biāo)簽(步驟610),即通過(guò)將域名內(nèi)的第一計(jì)數(shù)改回它的原來(lái)值將域名恢復(fù)為它原來(lái)的格式。然后,修改模塊將響應(yīng)轉(zhuǎn)給預(yù)處理級(jí)(步驟611)。如果檢測(cè)到在數(shù)據(jù)庫(kù)操作前輸入域名的標(biāo)簽沒(méi)有合并,就不分離標(biāo)簽。在這里需指出的是,以上面的方式處理響應(yīng),無(wú)論它是否含有應(yīng)答,即步驟609至611保持相同,即使發(fā)現(xiàn)沒(méi)有來(lái)自數(shù)據(jù)庫(kù)的應(yīng)答。
如果在步驟601的第一檢查指出在名稱服務(wù)器內(nèi)不能發(fā)現(xiàn)原點(diǎn),這個(gè)查詢就轉(zhuǎn)給另一個(gè)服務(wù)器(步驟604)。如果在步驟602的檢查指出查詢不是ENUM查詢,就跳過(guò)修改,將查詢提供給數(shù)據(jù)庫(kù)操作。因此,在這種情況下名稱服務(wù)器以傳統(tǒng)的方式操作。如果在步驟603的第三檢查指出修改模塊對(duì)于所考慮的地域不是特許的,則跳過(guò)修改,將查詢提供給數(shù)據(jù)庫(kù)操作。在這種情況下,查詢是名稱服務(wù)器已經(jīng)高速緩存的遞歸查詢,即名稱服務(wù)器作為高速緩存服務(wù)器進(jìn)行操作。
如上面所說(shuō)明的名稱服務(wù)器通常是從服務(wù)器。也就是說(shuō),這個(gè)名稱服務(wù)器從主服務(wù)器接收地域數(shù)據(jù)。然而,本發(fā)明的變型也可以在將地域數(shù)據(jù)發(fā)送給從服務(wù)器前在主服務(wù)器內(nèi)執(zhí)行,在這種情況下,在從服務(wù)器內(nèi)不需要修改。然而,在這種情況下,主、從之間的地域傳送不是完全按照標(biāo)準(zhǔn)過(guò)程的(因?yàn)榻?jīng)修改的域名在網(wǎng)絡(luò)上傳送)。
雖然上面結(jié)合附圖所示的例子對(duì)本發(fā)明作了說(shuō)明,但顯然本發(fā)明不局限于這些例子,而是可以由熟悉該技術(shù)的人員在不背離本發(fā)明的專利保護(hù)范圍和精神實(shí)質(zhì)的情況下加以修改。例如,本發(fā)明的解決方案可以與ENUM業(yè)務(wù)之外的其他業(yè)務(wù)結(jié)合使用,倘若這些應(yīng)用產(chǎn)生象FQDN那樣具有許多短標(biāo)簽的話。此外,這種方法不局限于合并一些1字節(jié)長(zhǎng)的標(biāo)簽,也可以以同樣方式合并不同長(zhǎng)度的標(biāo)簽。在這種情況下,在上面所說(shuō)明的檢查(步驟51)指出域名包括超出給定原點(diǎn)至少預(yù)定數(shù)量的標(biāo)簽而且所述標(biāo)簽具有預(yù)定最大長(zhǎng)度(現(xiàn)在是大于一字節(jié))時(shí)執(zhí)行修改。此外,不是必要合并所有超出原點(diǎn)的標(biāo)簽,也可以只合并部分這樣的標(biāo)簽。
權(quán)利要求
1.一種增強(qiáng)域名系統(tǒng)(DNS)中的數(shù)據(jù)庫(kù)性能的方法,所述方法包括下列步驟接收要提供給數(shù)據(jù)庫(kù)操作的數(shù)據(jù),所述數(shù)據(jù)包括含有多個(gè)相繼標(biāo)簽的至少一個(gè)域名,所述至少一個(gè)域名具有第一格式;將所述至少一個(gè)域名中的至少一個(gè)變換成第二格式,其中所述至少一個(gè)域名中的至少一個(gè)的至少兩個(gè)相繼標(biāo)簽被合并,以形成單個(gè)標(biāo)簽;以及將數(shù)據(jù)提供給數(shù)據(jù)庫(kù)操作,所提供的數(shù)據(jù)包括第二格式的至少一個(gè)域名。
2.按照權(quán)利要求1所述的方法,所述方法還包括檢驗(yàn)域名是否滿足第一格式的預(yù)定條件的步驟。
3.按照權(quán)利要求2所述的方法,其中所述檢驗(yàn)步驟包括檢驗(yàn)所述域名是否包括超出給定原點(diǎn)的至少預(yù)定數(shù)量的標(biāo)簽,所述標(biāo)簽具有預(yù)定的最大長(zhǎng)度。
4.按照權(quán)利要求3所述的方法,其中在檢驗(yàn)步驟指出域名包括超出給定原點(diǎn)的至少預(yù)定數(shù)量的標(biāo)簽、所述標(biāo)簽具有預(yù)定的最大長(zhǎng)度時(shí),針對(duì)所述域名執(zhí)行所述變換步驟,并且在檢驗(yàn)步驟指出域名不包括至少預(yù)定數(shù)量的標(biāo)簽時(shí),不執(zhí)行所述變換步驟。
5.按照權(quán)利要求3所述的方法,其中所述預(yù)定數(shù)量的標(biāo)簽是三個(gè)標(biāo)簽。
6.按照權(quán)利要求3所述的方法,其中預(yù)定的最大長(zhǎng)度是一字節(jié)。
7.按照權(quán)利要求5所述的方法,其中預(yù)定的最大長(zhǎng)度是一字節(jié)。
8.按照權(quán)利要求1所述的方法,所述方法還包括下列步驟接收包括第二格式的另一域名的數(shù)據(jù);以及將以第二格式接收的另一域名變換回第一格式。
9.一種增強(qiáng)域名系統(tǒng)中的數(shù)據(jù)庫(kù)性能的系統(tǒng),所述系統(tǒng)包括第一裝置,用來(lái)接收要提供給數(shù)據(jù)庫(kù)操作的數(shù)據(jù),所述數(shù)據(jù)包括含有多個(gè)相繼標(biāo)簽的至少一個(gè)域名,所述至少一個(gè)域名具有第一格式;第二裝置,用來(lái)將所述至少一個(gè)域名中的至少一個(gè)變換成第二格式,其中所述至少一個(gè)域名中的至少一個(gè)的至少兩個(gè)相繼標(biāo)簽被合并,以形成單個(gè)標(biāo)簽;以及第三裝置,用來(lái)將數(shù)據(jù)提供給數(shù)據(jù)庫(kù)操作,所提供的數(shù)據(jù)包括第二格式的至少一個(gè)域名。
10.按照權(quán)利要求9所述的系統(tǒng),所述系統(tǒng)還包括第四裝置,用來(lái)檢驗(yàn)域名是否滿足預(yù)定條件,所述第二裝置被配置為在域名滿足預(yù)定條件時(shí)將域名變換成第二格式。
11.一種用于域名系統(tǒng)的名稱服務(wù)器,所述名稱服務(wù)器包括第一接口,用來(lái)接收要提供給數(shù)據(jù)庫(kù)操作的數(shù)據(jù),所述數(shù)據(jù)包括含有多個(gè)相繼標(biāo)簽的至少一個(gè)域名,所述至少一個(gè)域名具有第一格式;在操作上連接到第一接口上的修改模塊,用來(lái)將所述至少一個(gè)域名中的至少一個(gè)變換成第二格式,其中所述至少一個(gè)域名中的至少一個(gè)的至少兩個(gè)相繼標(biāo)簽形成單個(gè)標(biāo)簽;以及在操作上連接到修改模塊上的第二接口,用來(lái)將數(shù)據(jù)提供給數(shù)據(jù)庫(kù)操作,所提供的數(shù)據(jù)包括第二格式的至少一個(gè)域名。
12.一種計(jì)算機(jī)程序產(chǎn)品,所述產(chǎn)品包括計(jì)算機(jī)可讀代碼,所述計(jì)算機(jī)可讀代碼被配置為在由計(jì)算機(jī)執(zhí)行時(shí)使所述計(jì)算機(jī)基本上執(zhí)行權(quán)利要求1所述的步驟。
全文摘要
本發(fā)明提出了一種增強(qiáng)域名系統(tǒng)(DNS)中的數(shù)據(jù)庫(kù)性能的機(jī)制。為了優(yōu)化當(dāng)前的實(shí)際DNS名稱服務(wù)器的用于請(qǐng)求與E.164號(hào)碼有關(guān)的數(shù)據(jù)的查詢的性能,將接收到的具有第一格式的域名變換成第二格式再提供給數(shù)據(jù)庫(kù)操作。在第二格式中,域名的至少兩個(gè)相繼的標(biāo)簽被合并,以形成單個(gè)標(biāo)簽。這變換可以配合地域傳送和配合隨后的DNS查詢進(jìn)行。
文檔編號(hào)H04L29/12GK1777889SQ200480010408
公開(kāi)日2006年5月24日 申請(qǐng)日期2004年5月24日 優(yōu)先權(quán)日2003年5月27日
發(fā)明者羅伊·利爾克維斯特, 朱哈·尤斯基 申請(qǐng)人:諾基亞公司