本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種域名查詢方法及裝置。
背景技術(shù):
當客戶端需要訪問網(wǎng)絡(luò)時,在瀏覽器中輸入的網(wǎng)址,需要先通過遞歸域名系統(tǒng)(Domain Name System,簡稱DNS)進行域名解析,找到相應(yīng)的IP地址,而后才能上網(wǎng)。遞歸DNS主要用于完成從域名到互聯(lián)網(wǎng)協(xié)議(Internet Protocol,IP)地址的映射及其他互聯(lián)網(wǎng)資源解析。而域名到IP地址的映射通常存儲在多個授權(quán)的域名服務(wù)器(Name server,NS)的靜態(tài)數(shù)據(jù)庫中。
遞歸DNS在解析一個特定域名的時候,一般會有多個授權(quán)的域名服務(wù)器可供選擇,面對多個域名服務(wù)器,遞歸DNS面臨選擇域名服務(wù)器的問題,最理想的結(jié)果當然是始終選擇最快返回解析結(jié)果的一個域名服務(wù)器,但是因為網(wǎng)絡(luò)質(zhì)量的變化和域名服務(wù)器的狀態(tài)變化,誰能最快返回解析結(jié)果,是動態(tài)變化的。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種域名查詢方法及裝置,以預(yù)設(shè)概率選擇域名服務(wù)器發(fā)送域名查詢請求,向預(yù)測往返時延最小的域名服務(wù)器發(fā)送域名查詢請求的概率最大,不僅可以適應(yīng)動態(tài)網(wǎng)絡(luò)變化,還能保證發(fā)送域名查詢請求的網(wǎng)絡(luò)時延比較小。
本發(fā)明第一方面提供一種域名查詢方法,包括:
當接收到第一域名解析請求時,獲取M個域名服務(wù)器中每個域名服務(wù)器的預(yù)測往返時延,其中,所述M大于或者等于2;
確定所述M個域名服務(wù)器中的第一域名服務(wù)器,所述第一域名服務(wù)器的所述預(yù)測往返時延最??;
確定所述M個域名服務(wù)器中的第二域名服務(wù)器,所述第二域名服務(wù)器的所述預(yù)測往返時延與所述第一域名服務(wù)器的所述預(yù)測往返時延的差值小于預(yù)設(shè)閾值;
以預(yù)設(shè)概率向所述第一域名服務(wù)器或所述第二域名服務(wù)器發(fā)送域名查詢請求,其中,向所述第一域名服務(wù)器發(fā)送所述域名查詢請求的概率P最大,其中,所述P的取值范圍為0到1。
本發(fā)明第二方面提供一種域名查詢裝置,包括:
獲取模塊,用于當接收到第一域名解析請求時,獲取M個域名服務(wù)器中每個域名服務(wù)器的預(yù)測往返時延,其中,所述M大于或者等于2;
第一確定模塊,用于確定所述M個域名服務(wù)器中的第一域名服務(wù)器,所述第一域名服務(wù)器的所述預(yù)測往返時延最小;
第二確定模塊,用于確定所述M個域名服務(wù)器中的第二域名服務(wù)器,所述第二域名服務(wù)器的所述預(yù)測往返時延與所述第一域名服務(wù)器的所述預(yù)測往返時延差值小于預(yù)設(shè)閾值;
發(fā)送模塊,用于以預(yù)設(shè)概率向所述第一域名服務(wù)器或所述第二域名服務(wù)器發(fā)送域名查詢請求,其中,向所述第一域名服務(wù)器發(fā)送所述域名查詢請求的概率P最大,其中,所述P的取值范圍為0到1。
實施本發(fā)明實施例,具有如下有益效果:
本發(fā)明實施例,遞歸DNS以預(yù)設(shè)概率向第一域名服務(wù)器或第二域名服務(wù)器發(fā)送域名查詢請求,該第一域名服務(wù)器為M個域名服務(wù)器中預(yù)測往返時延最小的域名服務(wù)器,該第二域名服務(wù)器為M個域名服務(wù)器中預(yù)測往返時延與第一域名服務(wù)器的預(yù)測往返時延小于預(yù)設(shè)閾值的域名服務(wù)器,其中,向該第一域名服務(wù)器發(fā)送域名查詢請求的概率最大,這種方式不僅可以適應(yīng)動態(tài)網(wǎng)絡(luò)變化,還能保證域名查詢請求的網(wǎng)絡(luò)時延比較小。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種域名查詢網(wǎng)絡(luò)架構(gòu)圖;
圖2為本發(fā)明實施例提供的一種域名查詢方法的流程圖;
圖3為本發(fā)明實施例提供的另一種域名查詢方法的流程圖;
圖4為本發(fā)明實施例提供的又一種域名查詢方法的流程圖;
圖5為本發(fā)明實施例提供的一種域名查詢的網(wǎng)絡(luò)架構(gòu)圖;
圖6為本發(fā)明實施例提供的一種預(yù)測往返時延計算流程;
圖7為本發(fā)明實施例提供的三種域名查詢方案比較示意圖;
圖8為本發(fā)明實施例提供的一種域名查詢裝置的結(jié)構(gòu)示意圖;
圖9為本發(fā)明實施例提供的一種獲取模塊的結(jié)構(gòu)示意圖;
圖10為本發(fā)明實施例提供的另一種域名查詢裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明的說明書和權(quán)利要求書及所述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別不同對象,而不是用于描述特定順序。此外,術(shù)語“包括”和“具有”以及它們?nèi)魏巫冃?,意圖在于覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備沒有限定于已列出的步驟或單元,而是可選地還包括沒有列出的步驟或單元,或可選地還包括對于這些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
在本文中提及“實施例”意味著,結(jié)合實施例描述的特定特征、結(jié)構(gòu)或特性可以包含在本發(fā)明的至少一個實施例中。在說明書中的各個位置展示該短語并不一定均是指相同的實施例,也不是與其它實施例互斥的獨立的或備選的實施例。本領(lǐng)域技術(shù)人員顯式地和隱式地理解的是,本文所描述的實施例可以與其它實施例相結(jié)合。
請參照圖1,為本發(fā)明實施例提供的一種域名查詢的網(wǎng)絡(luò)系統(tǒng)架構(gòu)圖,如圖所示,該網(wǎng)絡(luò)系統(tǒng)架構(gòu)圖包括用戶客戶端、遞歸DNS以及多個域名服務(wù)器(圖1中以4個域名服務(wù)器作為舉例)。
當客戶端需要訪問網(wǎng)絡(luò)時,在瀏覽器中輸入的網(wǎng)址,需要先通過遞歸DNS進行域名解析,找到相應(yīng)的IP地址,而后才能上網(wǎng)。遞歸DNS主要用于完成從域名到互聯(lián)網(wǎng)協(xié)議(Internet Protocol,IP)地址的映射及其他互聯(lián)網(wǎng)資源解析。而域名到IP地址的映射通常存儲在多個授權(quán)的域名服務(wù)器的靜態(tài)數(shù)據(jù)庫中。
遞歸DNS在解析一個特定域名的時候,如圖1所示,在解析域名“qq.com”一般會有多個域名服務(wù)器可供選擇,面對多個域名服務(wù)器,遞歸DNS面臨選擇域名服務(wù)器的問題。
本發(fā)明實施例主要是通過在遞歸DNS中進行改進,計算各個域名服務(wù)器的預(yù)測往返時延,大概率選擇預(yù)測往返時延最小的域名服務(wù)器,同時也會存在一定概率選擇其它滿足條件的域名服務(wù)器,該條件可以是其它域名服務(wù)器的預(yù)測往返時延與最小往返時延的差值小于預(yù)設(shè)閾值,這樣不僅可以逐漸發(fā)現(xiàn)最優(yōu)的域名服務(wù)器,同時也能保證域名查詢請求的往返時延比較小。
下面將結(jié)合附圖2-附圖10,對本發(fā)明實施例提供的域名查詢方法及裝置進行詳細介紹。
請參照圖2,為本發(fā)明實施例提供的一種域名查詢方法的流程圖;該方法可包括以下步驟S200-步驟S203。
S200,當接收到第一域名解析請求時,獲取M個域名服務(wù)器中每個域名服務(wù)器的預(yù)測往返時延,其中,所述M大于或者等于2;
本發(fā)明實施例中,遞歸DNS接收客戶端發(fā)送的第一域名解析請求,該第一域名解析請求中攜帶需要解析的域名,比如“qq.com”。遞歸DNS需要從域名服務(wù)器中查詢該域名所對應(yīng)的IP地址,因此,遞歸DNS需要向域名服務(wù)器發(fā)送域名查詢請求。
最理想的情況是,向往返時延最小的域名服務(wù)器發(fā)送域名查詢請求,由于網(wǎng)絡(luò)質(zhì)量的動態(tài)變化,以及域名服務(wù)器本身的變化,往往會存在往返時延的波動,如果僅僅以上次查詢響應(yīng)的往返時延作為參考標準,可能會導(dǎo)致將比較優(yōu)質(zhì)的域名服務(wù)器直接隔離。比如,該優(yōu)質(zhì)域名服務(wù)器存在網(wǎng)絡(luò)質(zhì)量變化,上次查詢響應(yīng)的往返時延變得非常大,后續(xù)則不會再次選擇該域名服務(wù)器了(因為僅僅會選擇預(yù)測往返時延最小的域名服務(wù)器),這種方式很難選擇到最優(yōu)的域名服務(wù)器。
本發(fā)明實施例中,遞歸DNS并不會始終選擇預(yù)測往返時延最小的域名服務(wù)器。具體可選的,遞歸DNS獲取M個域名服務(wù)器中每個域名服務(wù)器的預(yù)測往返時延,該預(yù)測往返時延可以是根據(jù)該域名服務(wù)器的多個歷史往返時延進行計算得到的,比如,通過遞歸算法計算得到該預(yù)測往返時延,具體計算方式可以參照圖3的實施例描述,需要說明的是,圖3實施例描述僅僅為一種舉例,并不對本發(fā)明的預(yù)測往返時延的計算方式構(gòu)成限定。
對于一個域名服務(wù)器,會計算得到一個預(yù)測往返時延,存在M個域名服務(wù)器,因此會計算得到M個預(yù)測往返時延。
S201,確定所述M個域名服務(wù)器中的第一域名服務(wù)器,所述第一域名服務(wù)器的所述預(yù)測往返時延最??;
本發(fā)明實施例中,確定該M個域名服務(wù)器中的第一域名服務(wù)器,第一域名服務(wù)器的預(yù)測往返時延最小,因此該第一域名服務(wù)器僅僅包括一個域名服務(wù)器,比如該第一域名服務(wù)器的預(yù)測往返時延為RTT-min。
S202,確定所述M個域名服務(wù)器中的第二域名服務(wù)器,所述第二域名服務(wù)器的所述預(yù)測往返時延與所述第一域名服務(wù)器的所述預(yù)測往返時延差值小于預(yù)設(shè)閾值;
本發(fā)明實施例中,確定該M個域名服務(wù)器中的第二域名服務(wù)器,該第二域名服務(wù)器的預(yù)測往返時延與第一域名服務(wù)器的預(yù)測往返時延(比如為RTT-min)差值小于預(yù)設(shè)閾值,該預(yù)設(shè)閾值可以是RTT-BAND=300ms。
該第二域名服務(wù)器中可以包括至少一個域名服務(wù)器,該至少一個域名服務(wù)器的預(yù)測往返時延的范圍在[RTT-min,RTT-min+RTT-BAND]。
S203,以預(yù)設(shè)概率向所述第一域名服務(wù)器或所述第二域名服務(wù)器發(fā)送域名查詢請求,其中,向所述第一域名服務(wù)器發(fā)送所述域名查詢請求的概率P最大,其中,P的取值范圍在0到1。
可選的,所述第二域名服務(wù)器包括N(N大于等于1)個域名服務(wù)器,向所述N個域名服務(wù)器中每個所述域名服務(wù)器發(fā)送所述域名查詢請求的概率為(1-P)/N。
本發(fā)明實施例中,當遞歸DNS獲取到了M個域名服務(wù)器中的第一域名服務(wù)器和第二域名服務(wù)器后,以預(yù)設(shè)概率向第一域名服務(wù)器或第二域名服務(wù)器發(fā)送域名查詢請求,可選的,該預(yù)設(shè)概率為不均等概率,其中,向第一域名服務(wù)器發(fā)送域名查詢請求的概率P最大,P可以是大于50%,比如P=80%。該預(yù)設(shè)概率可以根據(jù)網(wǎng)絡(luò)實際情況以及第二域名服務(wù)器中域名服務(wù)器的數(shù)量進行設(shè)置。
由于向第一域名服務(wù)器發(fā)送域名查詢請求的概率最大,因此可以保證域名查詢請求的查詢響應(yīng)的往返時延會比較小。
對于第二域名服務(wù)器中的每個域名服務(wù)器,遞歸DNS把預(yù)測往返時延落在[RTT-min,RTT-min+RTT-BAND]之間的所有域名服務(wù)器可以進行不均等的概率性隨機選擇,也可以進行均等的概率選擇。
若遞歸DNS對第二域名服務(wù)器中的每個域名服務(wù)器進行不均等的概率性隨機選擇,則可以是預(yù)測往返時延越小的域名服務(wù)器,選擇概率越大。這樣在網(wǎng)絡(luò)動態(tài)變化過程中,可以逐步發(fā)現(xiàn)真正往返時延最小的域名服務(wù)器,同時也能迅速發(fā)現(xiàn)各個域名服務(wù)器的質(zhì)量變化。
若遞歸DNS對第二域名服務(wù)器中的每個域名服務(wù)器進行均等的概率性選擇,則向所述第一域名服務(wù)器發(fā)送所述域名查詢請求的概率P,第二域名服務(wù)器中包括N個域名服務(wù)器,向所述N個域名服務(wù)器中每個所述域名服務(wù)器發(fā)送所述域名查詢請求的概率為(1-P)/N。
如圖5所示,即是本發(fā)明實施例提供的一種概率選擇示意圖,該網(wǎng)絡(luò)架構(gòu)中包括4個域名服務(wù)器,其中該4個域名服務(wù)器的預(yù)測往返時延大小排序如下:RTT1<RTT2<RTT3<RTT4,其中,RTT1最小,因此遞歸DNS向域名服務(wù)器1發(fā)送域名查詢請求的概率最大,為80%,RTT2和RTT3與最小的RTT1的差值小于預(yù)設(shè)閾值RTT-BAND,因此遞歸DNS也會以一定概率向域名服務(wù)器2和域名服務(wù)器3發(fā)送域名查詢請求。
本發(fā)明實施例,遞歸DNS以預(yù)設(shè)概率向第一域名服務(wù)器或第二域名服務(wù)器發(fā)送域名查詢請求,該第一域名服務(wù)器為M個域名服務(wù)器中預(yù)測往返時延最小的域名服務(wù)器,該第二域名服務(wù)器為M個域名服務(wù)器中預(yù)測往返時延與第一域名服務(wù)器的預(yù)測往返時延小于預(yù)設(shè)閾值的域名服務(wù)器,其中,向該第一域名服務(wù)器發(fā)送域名查詢請求的概率最大,這種方式不僅可以適應(yīng)動態(tài)網(wǎng)絡(luò)變化,還能保證域名查詢請求的網(wǎng)絡(luò)時延比較小。
請參照圖3,為本發(fā)明實施例提供的另一種域名查詢方法的流程圖;該方法可包括以下步驟:
S300,當接收到第一域名解析請求時,針對M個域名服務(wù)器中的每個所述域名服務(wù)器,獲取所述域名服務(wù)器的歷史往返時延平均值以及離當前時間最近的最新往返時延;
S301,根據(jù)所述歷史往返時延平均值和所述最新往返時延,計算所述域名服務(wù)器的預(yù)測往返時延。
S302,存儲所述預(yù)測往返時延,所述預(yù)測往返時延用于在下次接收到第二域名解析請求時計算所述域名服務(wù)器的預(yù)測往返時延時使用。
可選的,所述歷史往返時延平均值為所述域名服務(wù)器的Q(Q≥2)個歷史往返時延和歷史預(yù)測往返時延的均值,所述歷史預(yù)測往返時延為歷史存儲的距離當前時間最近的所述域名服務(wù)器的預(yù)測往返時延;
所述Q個歷史往返時延為從往返時延序列中選擇的往返時延,所述往返時延序列為將所述域名服務(wù)器的所有歷史往返時延按時間先后順序進行排序后的序列;
所述Q個往返時延為在所述往返時延序列的所述最新往返時延之前的Q個往返時延。
本發(fā)明實施例中,遞歸DNS可以是采用遞歸的方式計算M個域名服務(wù)器中每個域名服務(wù)器的預(yù)測往返時延,這里以計算其中一個域名服務(wù)器的預(yù)測往返時延作為舉例說明,具體可選的,獲取所存儲的該域名服務(wù)器的最新往返時延,比如為RTT_new,該RTT_new為距離當前時間最近的一次查詢響應(yīng)的往返時延。
遞歸DNS查詢所存儲的時間在RTT_new之前的Q個歷史往返時延,比如,按照時間先后順序,將所有歷史往返時延組成往返時延序列,比如該往返時延序列為RTTi,RTTi-1.….RTT3,RTT2,RTT1,RTT_new,其中,RTT1時間次近,僅僅在RTT_new之前,RTTi時間最遠。遞歸DNS查詢所存儲的時間在RTT_new之前的Q個歷史RTT為RTT1,RTT2,RTT3…RTT Q,其中,Q小于i。
這里以Q=2作為舉例說明,遞歸DNS計算在RTT_new之前的2個往返時延與歷史預(yù)測往返時延的歷史平均值RTT_old_avg,計算公式可以是RTT_old_avg=(RTT1+RTT2+RTT_cal-n-1)/3。RTT_cal-n-1為上一次計算該域名服務(wù)器的預(yù)測往返時延得到的。
該域名服務(wù)器的預(yù)測往返時延計算方式如下,預(yù)測往返時延用RTT_cal-n表示:
RTT_cal-n=RTT_old_avg+factor*(RTT_new-RTT_old_avg)。(factor取值為0.25)
然后將這個新的RTT_cal-n取代Q個RTT中的時間最長的一個歷史往返時延,即是RTTQ。
當遞歸DNS接收到第二域名解析請求時,需要再次計算預(yù)測往返時延,則可以計算該預(yù)測往返時延與最新的Q個歷史往返時延的平均值,需要說明的是,上述RTT_new已經(jīng)成為該Q個歷史往返時延中的一個。
后續(xù)DNS在選擇域名服務(wù)器上,采用大概率選擇最優(yōu)往返時延,即是預(yù)測往返時延最小的域名服務(wù)器,另外小概率在所有和最小往返時延的差距在RTT_BAND之間的域名服務(wù)器中隨機選擇。
請參照圖6,是本發(fā)明實施例提供的一種預(yù)測往返時延的計算流程圖,如圖所示,遞歸DNS維護一個域名服務(wù)器的三次歷史往返時延,分別為RTT1、RTT2以及RTT3;其中RTT3時間最遠,RTT1時間最近。
除了上述RTT1、RTT2以及RTT3外,距離當前時間最近的一次查詢響應(yīng)的網(wǎng)絡(luò)往返時延為RTT_new。
計算歷史平均值為RTT-old-avg=(RTT 1+RTT 2+RTT3)/3
預(yù)測RTT-call=RTT-old-avg+0.25*(RTT-new-RTT-old-avg)
將最近計算出來的RTT-call替代時間最長的RTT3,
RTT3=RTT2;
RTT2=RTT1;
RTT1=RTT-call;
請參照圖7所示,采用本發(fā)明實施例的技術(shù)方案unbound-新機制后,1000次查詢響應(yīng)的遞歸平均時延為13.004ms,延時超過100ms的次數(shù)為4,可見明顯比現(xiàn)有方案的平均時延更小。
S303,確定所述M個域名服務(wù)器中的第一域名服務(wù)器,所述第一域名服務(wù)器的預(yù)測往返時延最??;
S304,確定所述M個域名服務(wù)器中的第二域名服務(wù)器,所述第二域名服務(wù)器的所述預(yù)測往返時延與所述第一域名服務(wù)器的所述預(yù)測往返時延差值小于預(yù)設(shè)閾值;
S305,以預(yù)設(shè)概率向所述第一域名服務(wù)器或所述第二域名服務(wù)器發(fā)送域名查詢請求,其中,向所述第一域名服務(wù)器發(fā)送所述域名查詢請求的概率P(0≤P≤1)最大。
本發(fā)明實施例步驟S302~S304請參照圖2的實施例步驟S201~S203,在此不再贅述。
本發(fā)明實施例,遞歸DNS以預(yù)設(shè)概率向第一域名服務(wù)器或第二域名服務(wù)器發(fā)送域名查詢請求,該第一域名服務(wù)器為M個域名服務(wù)器中預(yù)測往返時延最小的域名服務(wù)器,該第二域名服務(wù)器為M個域名服務(wù)器中預(yù)測往返時延與第一域名服務(wù)器的預(yù)測往返時延小于預(yù)設(shè)閾值的域名服務(wù)器,其中,向該第一域名服務(wù)器發(fā)送域名查詢請求的概率最大,這種方式不僅可以適應(yīng)動態(tài)網(wǎng)絡(luò)變化,還能保證域名查詢請求的網(wǎng)絡(luò)時延比較小。
請參照圖4,為本發(fā)明實施例提供的又一種域名查詢方法的流程圖;該方法可包括以下步驟:
S400,當接收到第一域名解析請求時,獲取M個域名服務(wù)器中每個域名服務(wù)器的預(yù)測往返時延;
S401,確定所述M個域名服務(wù)器中的第一域名服務(wù)器,所述第一域名服務(wù)器的所述預(yù)測往返時延最??;
S402,確定所述M個域名服務(wù)器中的第二域名服務(wù)器,所述第二域名服務(wù)器的所述預(yù)測往返時延與所述第一域名服務(wù)器的所述預(yù)測往返時延差值小于預(yù)設(shè)閾值;
S403,以預(yù)設(shè)概率向所述第一域名服務(wù)器或所述第二域名服務(wù)器發(fā)送域名查詢請求,其中,向所述第一域名服務(wù)器發(fā)送所述域名查詢請求的概率P(0≤P≤1)最大。
本發(fā)明實施例步驟S400~S403請參照圖2的實施例步驟S200~S203,在此不再贅述。
S404,確定所述至少兩個域名服務(wù)器中的第三域名服務(wù)器,所述第三域名服務(wù)器的所述預(yù)測往返時延與所述第一域名服務(wù)器的所述預(yù)測往返時延差值大于所述預(yù)設(shè)閾值;
S405,將所述第三域名服務(wù)器確定為故障服務(wù)器。
本發(fā)明實施例中,確定該至少兩個域名服務(wù)器中的第三域名服務(wù)器,第三域名服務(wù)器可以包括至少一個域名服務(wù)器,該第三域名服務(wù)器的預(yù)測往返時延與往返時延最小的第一域名服務(wù)器的預(yù)測往返時延差值大于預(yù)設(shè)閾值。將該第三域名服務(wù)器確定為故障服務(wù)器。
具體可選的,當一個域名服務(wù)器的預(yù)測往返時延超過預(yù)設(shè)閾值的時候則標記為故障,放入故障列表,以后查詢的時候不選擇這個故障的服務(wù)器,對故障的服務(wù)器做離線探測。
本發(fā)明實施例,遞歸DNS以預(yù)設(shè)概率向第一域名服務(wù)器或第二域名服務(wù)器發(fā)送域名查詢請求,該第一域名服務(wù)器為M個域名服務(wù)器中預(yù)測往返時延最小的域名服務(wù)器,該第二域名服務(wù)器為M個域名服務(wù)器中預(yù)測往返時延與第一域名服務(wù)器的預(yù)測往返時延小于預(yù)設(shè)閾值的域名服務(wù)器,其中,向該第一域名服務(wù)器發(fā)送域名查詢請求的概率最大,這種方式不僅可以適應(yīng)動態(tài)網(wǎng)絡(luò)變化,還能保證域名查詢請求的網(wǎng)絡(luò)時延比較小。
請參照圖8,為本發(fā)明實施例提供的一種域名查詢裝置的結(jié)構(gòu)示意圖,如圖所示,本發(fā)明實施例的域名查詢裝置包括:
獲取模塊10,用于當接收到第一域名解析請求時,獲取M個域名服務(wù)器中每個域名服務(wù)器的預(yù)測往返時延;
本發(fā)明實施例中,遞歸DNS接收客戶端發(fā)送的第一域名解析請求,該第一域名解析請求中攜帶需要解析的域名,比如“qq.com”。遞歸DNS需要從域名服務(wù)器中查詢該域名所對應(yīng)的IP地址,因此,遞歸DNS需要向域名服務(wù)器發(fā)送域名查詢請求。
最理想的情況是,向往返時延最小的域名服務(wù)器發(fā)送域名查詢請求,由于網(wǎng)絡(luò)質(zhì)量的動態(tài)變化,以及域名服務(wù)器本身的變化,往往會存在往返時延的波動,如果僅僅以上次查詢響應(yīng)的往返時延作為參考標準,可能會導(dǎo)致將比較優(yōu)質(zhì)的域名服務(wù)器直接隔離。比如,該優(yōu)質(zhì)域名服務(wù)器存在網(wǎng)絡(luò)質(zhì)量變化,上次查詢響應(yīng)的往返時延變得非常大,后續(xù)則不會再次選擇該域名服務(wù)器了(因為僅僅會選擇預(yù)測往返時延最小的域名服務(wù)器),這種方式很難選擇到最優(yōu)的域名服務(wù)器。
本發(fā)明實施例中,遞歸DNS并不會始終選擇預(yù)測往返時延最小的域名服務(wù)器。具體可選的,遞歸DNS獲取M個域名服務(wù)器中每個域名服務(wù)器的預(yù)測往返時延,該預(yù)測往返時延可以是根據(jù)該域名服務(wù)器的多個歷史往返時延進行計算得到的,比如,通過遞歸算法計算得到該預(yù)測往返時延,具體計算方式可以參照圖3的實施例描述,需要說明的是,圖3實施例描述僅僅為一種舉例,并不對本發(fā)明的預(yù)測往返時延的計算方式構(gòu)成限定。
對于一個域名服務(wù)器,會計算得到一個預(yù)測往返時延,存在M個域名服務(wù)器,因此會計算得到M個預(yù)測往返時延。
第一確定模塊11,用于確定所述M個域名服務(wù)器中的第一域名服務(wù)器,所述第一域名服務(wù)器的所述預(yù)測往返時延最?。?/p>
本發(fā)明實施例中,確定該M個域名服務(wù)器中的第一域名服務(wù)器,第一域名服務(wù)器的預(yù)測往返時延最小,因此該第一域名服務(wù)器僅僅包括一個域名服務(wù)器,比如該第一域名服務(wù)器的預(yù)測往返時延為RTT-min。
第二確定模塊12,確定所述M個域名服務(wù)器中的第二域名服務(wù)器,所述第二域名服務(wù)器的所述預(yù)測往返時延與所述第一域名服務(wù)器的所述預(yù)測往返時延差值小于預(yù)設(shè)閾值;
本發(fā)明實施例中,確定該M個域名服務(wù)器中的第二域名服務(wù)器,該第二域名服務(wù)器的預(yù)測往返時延與第一域名服務(wù)器的預(yù)測往返時延(比如為RTT-min)差值小于預(yù)設(shè)閾值,該預(yù)設(shè)閾值可以是RTT-BAND=300ms。
該第二域名服務(wù)器中可以包括至少一個域名服務(wù)器,該至少一個域名服務(wù)器的預(yù)測往返時延的范圍在[RTT-min,RTT-min+RTT-BAND]。
發(fā)送模塊13,用于以預(yù)設(shè)概率向所述第一域名服務(wù)器或所述第二域名服務(wù)器發(fā)送域名查詢請求,其中,向所述第一域名服務(wù)器發(fā)送所述域名查詢請求的概率P最大,其中,P的取值范圍在0到1。
可選的,所述第二域名服務(wù)器包括N(N大于等于1)個域名服務(wù)器,向所述N個域名服務(wù)器中每個所述域名服務(wù)器發(fā)送所述域名查詢請求的概率為(1-P)/N。
本發(fā)明實施例中,當遞歸DNS獲取到了M個域名服務(wù)器中的第一域名服務(wù)器和第二域名服務(wù)器后,以預(yù)設(shè)概率向第一域名服務(wù)器或第二域名服務(wù)器發(fā)送域名查詢請求,可選的,該預(yù)設(shè)概率為不均等概率,其中,向第一域名服務(wù)器發(fā)送域名查詢請求的概率P最大,P可以是大于50%,比如P=80%。該預(yù)設(shè)概率可以根據(jù)網(wǎng)絡(luò)實際情況以及第二域名服務(wù)器中域名服務(wù)器的數(shù)量進行設(shè)置。
由于向第一域名服務(wù)器發(fā)送域名查詢請求的概率最大,因此可以保證域名查詢請求的查詢響應(yīng)的往返時延會比較小。
對于第二域名服務(wù)器中的每個域名服務(wù)器,遞歸DNS把預(yù)測往返時延落在[RTT-min,RTT-min+RTT-BAND]之間的所有域名服務(wù)器可以進行不均等的概率性隨機選擇,也可以進行均等的概率選擇。
若遞歸DNS對第二域名服務(wù)器中的每個域名服務(wù)器進行不均等的概率性隨機選擇,則可以是預(yù)測往返時延越小的域名服務(wù)器,選擇概率越大。這樣在網(wǎng)絡(luò)動態(tài)變化過程中,可以逐步發(fā)現(xiàn)真正往返時延最小的域名服務(wù)器,同時也能迅速發(fā)現(xiàn)各個域名服務(wù)器的質(zhì)量變化。
若遞歸DNS對第二域名服務(wù)器中的每個域名服務(wù)器進行均等的概率性選擇,則向所述第一域名服務(wù)器發(fā)送所述域名查詢請求的概率P,第二域名服務(wù)器中包括N個域名服務(wù)器,向所述N個域名服務(wù)器中每個所述域名服務(wù)器發(fā)送所述域名查詢請求的概率為(1-P)/N。
如圖5所示,即是本發(fā)明實施例提供的一種概率選擇示意圖,該網(wǎng)絡(luò)架構(gòu)中包括4個域名服務(wù)器,其中該4個域名服務(wù)器的預(yù)測往返時延大小排序如下:RTT1<RTT2<RTT3<RTT4,其中,RTT1最小,因此遞歸DNS向域名服務(wù)器1發(fā)送域名查詢請求的概率最大,為80%,RTT2和RTT3與最小的RTT1的差值小于預(yù)設(shè)閾值RTT-BAND,因此遞歸DNS也會以一定概率向域名服務(wù)器2和域名服務(wù)器3發(fā)送域名查詢請求。
請一并參照圖9,如圖9所示,獲取模塊10包括獲取單元100和計算單元101;
獲取單元100,用于針對M個域名服務(wù)器中的每個所述域名服務(wù)器,獲取所述域名服務(wù)器的歷史往返時延平均值以及離當前時間最近的最新往返時延;
可選的,所述歷史往返時延平均值為所述域名服務(wù)器的Q(Q≥2)個歷史往返時延和歷史預(yù)測往返時延的均值,所述歷史預(yù)測往返時延為歷史存儲的距離當前時間最近的所述域名服務(wù)器的預(yù)測往返時延;
所述Q個歷史往返時延為從往返時延序列中選擇的往返時延,所述往返時延序列為將所述域名服務(wù)器的所有歷史往返時延按時間先后順序進行排序后的序列;
所述Q個往返時延為在所述往返時延序列的所述最新往返時延之前的Q個往返時延。
計算單元101,用于根據(jù)所述歷史往返時延平均值和所述最新往返時延,計算所述域名服務(wù)器的預(yù)測往返時延。
本發(fā)明實施例中,遞歸DNS可以是采用遞歸的方式計算M個域名服務(wù)器中每個域名服務(wù)器的預(yù)測往返時延,這里以計算其中一個域名服務(wù)器的預(yù)測往返時延作為舉例說明,具體可選的,獲取所存儲的該域名服務(wù)器的最新往返時延,比如為RTT_new,該RTT_new為距離當前時間最近的一次查詢響應(yīng)的往返時延。
遞歸DNS查詢所存儲的時間在RTT_new之前的Q個歷史往返時延,比如,按照時間先后順序,將所有歷史往返時延組成往返時延序列,比如該往返時延序列為RTTi,RTTi-1.….RTT3,RTT2,RTT1,RTT_new,其中,RTT1時間次近,僅僅在RTT_new之前,RTTi時間最遠。遞歸DNS查詢所存儲的時間在RTT_new之前的Q個歷史RTT為RTT1,RTT2,RTT3…RTT Q,其中,Q小于i。
這里以Q=2作為舉例說明,遞歸DNS計算在RTT_new之前的2個往返時延與歷史預(yù)測往返時延的歷史平均值RTT_old_avg,計算公式可以是RTT_old_avg=(RTT1+RTT2+RTT_cal-n-1)/3。RTT_cal-n-1為上一次計算該域名服務(wù)器的預(yù)測往返時延得到的。
該域名服務(wù)器的預(yù)測往返時延計算方式如下,預(yù)測往返時延用RTT_cal-n表示:
RTT_cal-n=RTT_old_avg+factor*(RTT_new-RTT_old_avg)。(factor取值為0.25)
然后將這個新的RTT_cal-n取代Q個RTT中的時間最長的一個歷史往返時延,即是RTTQ。
當遞歸DNS接收到第二域名解析請求時,需要再次計算預(yù)測往返時延,則可以計算該預(yù)測往返時延與最新的Q個歷史往返時延的平均值,需要說明的是,上述RTT_new已經(jīng)成為該Q個歷史往返時延中的一個。
后續(xù)DNS在選擇域名服務(wù)器上,采用大概率選擇最優(yōu)往返時延,即是預(yù)測往返時延最小的域名服務(wù)器,另外小概率在所有和最小往返時延的差距在RTT_BAND之間的域名服務(wù)器中隨機選擇。
請參照圖6,是本發(fā)明實施例提供的一種預(yù)測往返時延的計算流程圖,如圖所示,遞歸DNS維護一個域名服務(wù)器的三次歷史往返時延,分別為RTT1、RTT2以及RTT3;其中RTT3時間最遠,RTT1時間最近。
除了上述RTT1、RTT2以及RTT3外,距離當前時間最近的一次查詢響應(yīng)的網(wǎng)絡(luò)往返時延為RTT_new。
計算歷史平均值為RTT-old-avg=(RTT 1+RTT 2+RTT3)/3
預(yù)測RTT-call=RTT-old-avg+0.25*(RTT-new-RTT-old-avg)
將最近計算出來的RTT-call替代時間最長的RTT3,
RTT3=RTT2;
RTT2=RTT1;
RTT1=RTT-call;
請參照圖7所示,采用本發(fā)明實施例的技術(shù)方案unbound-新機制后,1000次查詢響應(yīng)的遞歸平均時延為13.004ms,延時超過100ms的次數(shù)為4,可見明顯比現(xiàn)有方案的平均時延更小。
本發(fā)明實施例,遞歸DNS以預(yù)設(shè)概率向第一域名服務(wù)器或第二域名服務(wù)器發(fā)送域名查詢請求,該第一域名服務(wù)器為M個域名服務(wù)器中預(yù)測往返時延最小的域名服務(wù)器,該第二域名服務(wù)器為M個域名服務(wù)器中預(yù)測往返時延與第一域名服務(wù)器的預(yù)測往返時延小于預(yù)設(shè)閾值的域名服務(wù)器,其中,向該第一域名服務(wù)器發(fā)送域名查詢請求的概率最大,這種方式不僅可以適應(yīng)動態(tài)網(wǎng)絡(luò)變化,還能保證域名查詢請求的網(wǎng)絡(luò)時延比較小。
請參照圖10,為本發(fā)明實施例提供的另一種域名查詢裝置的結(jié)構(gòu)示意圖,如圖所示,本發(fā)明實施例的域名查詢裝置包括:
獲取模塊20,用于當接收到第一域名解析請求時,獲取M個域名服務(wù)器中每個域名服務(wù)器的預(yù)測往返時延;
第一確定模塊21,用于確定所述M個域名服務(wù)器中的第一域名服務(wù)器,所述第一域名服務(wù)器的所述第一預(yù)測往返時延最??;
第二確定模塊22,用于確定所述M個域名服務(wù)器中的第二域名服務(wù)器,所述第二域名服務(wù)器的所述預(yù)測往返時延與所述第一域名服務(wù)器的所述預(yù)測往返時延差值小于預(yù)設(shè)閾值;
發(fā)送模塊23,用于以預(yù)設(shè)概率向所述第一域名服務(wù)器或所述第二域名服務(wù)器發(fā)送域名查詢請求,其中,向所述第一域名服務(wù)器發(fā)送所述域名查詢請求的概率P最大。
獲取模塊20、第一確定模塊21、第二確定模塊22以及發(fā)送模塊23請參照圖7的描述,在此不再贅述。
可選的,本發(fā)明實施例的域名查詢裝置還可以包括存儲模塊24;
存儲模塊24,用于存儲所述預(yù)測往返時延,所述預(yù)測往返時延用于在下次接收到第二域名解析請求時計算所述域名服務(wù)器的預(yù)測往返時延時使用。
可選的,本發(fā)明實施例的域名查詢裝置還可以包括第三確定模塊25和第四確定模塊26;
第三確定模塊25,用于確定所述至少兩個域名服務(wù)器中的第三域名服務(wù)器,所述第三域名服務(wù)器的所述預(yù)測往返時延與所述第一域名服務(wù)器的所述預(yù)測往返時延差值大于所述預(yù)設(shè)閾值;
第四確定模塊26,用于將所述第三域名服務(wù)器確定為故障服務(wù)器。
本發(fā)明實施例中,確定該至少兩個域名服務(wù)器中的第三域名服務(wù)器,第三域名服務(wù)器可以包括至少一個域名服務(wù)器,該第三域名服務(wù)器的預(yù)測往返時延與往返時延最小的第一域名服務(wù)器的預(yù)測往返時延差值大于預(yù)設(shè)閾值。將該第三域名服務(wù)器確定為故障服務(wù)器。
具體可選的,當一個域名服務(wù)器的預(yù)測往返時延超過預(yù)設(shè)閾值的時候則標記為故障,放入故障列表,以后查詢的時候不選擇這個故障的服務(wù)器,對故障的服務(wù)器做離線探測。
本發(fā)明實施例,遞歸DNS以預(yù)設(shè)概率向第一域名服務(wù)器或第二域名服務(wù)器發(fā)送域名查詢請求,該第一域名服務(wù)器為M個域名服務(wù)器中預(yù)測往返時延最小的域名服務(wù)器,該第二域名服務(wù)器為M個域名服務(wù)器中預(yù)測往返時延與第一域名服務(wù)器的預(yù)測往返時延小于預(yù)設(shè)閾值的域名服務(wù)器,其中,向該第一域名服務(wù)器發(fā)送域名查詢請求的概率最大,這種方式不僅可以適應(yīng)動態(tài)網(wǎng)絡(luò)變化,還能保證域名查詢請求的網(wǎng)絡(luò)時延比較小。
盡管在此結(jié)合各實施例對本發(fā)明進行了描述,然而,在實施所要求保護的本發(fā)明過程中,本領(lǐng)域技術(shù)人員通過查看所述附圖、公開內(nèi)容、以及所附權(quán)利要求書,可理解并實現(xiàn)所述公開實施例的其他變化。在權(quán)利要求中,“包括”(comprising)一詞不排除其他組成部分或步驟,“一”或“一個”不排除多個的情況。單個處理器或其他單元可以實現(xiàn)權(quán)利要求中列舉的若干項功能。相互不同的從屬權(quán)利要求中記載了某些措施,但這并不表示這些措施不能組合起來產(chǎn)生良好的效果。
本領(lǐng)域技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、裝置(設(shè)備)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。計算機程序存儲/分布在合適的介質(zhì)中,與其它硬件一起提供或作為硬件的一部分,也可以采用其他分布形式,如通過Internet或其它有線或無線電信系統(tǒng)。
本發(fā)明是參照本發(fā)明實施例的方法、裝置(設(shè)備)和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管結(jié)合具體特征及其實施例對本發(fā)明進行了描述,顯而易見的,在不脫離本發(fā)明的精神和范圍的情況下,可對其進行各種修改和組合。相應(yīng)地,本說明書和附圖僅僅是所附權(quán)利要求所界定的本發(fā)明的示例性說明,且視為已覆蓋本發(fā)明范圍內(nèi)的任意和所有修改、變化、組合或等同物。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。