成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

國際化域名系統(tǒng)分析

張鴻1, 鄧翔2, 錢華林1(1.中科院計(jì)算機(jī)網(wǎng)絡(luò)信息中心, 北京市 100080;2. 中國互聯(lián)網(wǎng)信息中心, 北京市 100080)E-mail: zhangh@cnnic.net.cn; deng

張鴻1, 鄧翔2, 錢華林1

(1.中科院計(jì)算機(jī)網(wǎng)絡(luò)信息中心, 北京市 100080;2. 中國互聯(lián)網(wǎng)信息中心, 北京市 100080)

E-mail: zhangh@cnnic.net.cn; deng@cnnic.net.cn;hlqian@mimi.cnc.ac.cn 摘要:域名系統(tǒng)(Domain Name System 簡(jiǎn)稱DNS) 為當(dāng)今的互聯(lián)網(wǎng)提供基礎(chǔ)的網(wǎng)絡(luò)資源定

位服務(wù), 它的正確性, 安全性, 可靠性和穩(wěn)定性關(guān)系到全球網(wǎng)絡(luò)系統(tǒng)能否正常高效地運(yùn)行.

現(xiàn)有的DNS 系統(tǒng)中只能使用63個(gè)ASCII 字符("a-z","A-Z","0-9","-")來表示網(wǎng)絡(luò)

主機(jī)名, 這給非英語國家的用戶造成了極大的不便. 隨著互聯(lián)網(wǎng)國際化的發(fā)展趨勢(shì), 為了讓

用戶可以在DNS 中使用本國的文字, 迫切需要一個(gè)能夠支持多種語言文字的國際化域名系

統(tǒng). 本文中首先對(duì)現(xiàn)行域名系統(tǒng)進(jìn)行簡(jiǎn)單介紹, 然后分析了目前處于研究階段的國際化域名

系統(tǒng)推薦解決方案IDNA(Internationalizing Domain Names In Applications), 并針對(duì)

國際化域名系統(tǒng)中的一個(gè)重要組成部分 -- 中文域名系統(tǒng)的一些實(shí)現(xiàn)問題進(jìn)行了闡述.

關(guān)鍵詞:DNS,IDN,國際化域名

文獻(xiàn)標(biāo)識(shí)碼:1理論與應(yīng)用研究學(xué)術(shù)論文

,

Analysis On Internationalized Domain Name System

Zhang Hong 1, Deng Xiang 2 ,Hualin Qian 1

(1.Computer Network Information Center, Chinese Academy of Sciences, Beijing 100080; 2. Chinese Internet

Information Center, Beijing 100080)

E-mail: zhangh@cnnic.net.cn; deng@cnnic.net.cn; hlqian@mimi.cnc.ac.cn; Abstract: Domain Name System (DNS) provides resource location in the network, and it is the

base for many services on Internet today. The current DNS only use 63 ASCII characters in

domain name, which brings great inconvenience for people who do not speak English. A solution

for Internationalized DNS that allows people to use their native characters in Domain Name is

quite urgent. This paper gives a brief introduction to DNS and its working mechanism, and

continues with an analysis on the Internationalizing Domain Names In Applications (IDNA),

which is the recommended solution by IDN Workgroup in IETF, finally gives some comments on

introducing IDNA into Chinese Domain Name.

Keyword: DNS, IDN, Domain Name System

1. 簡(jiǎn)介

域名系統(tǒng)(Domain Name System,簡(jiǎn)稱:DNS)的主要功能是通過域名和IP 地址之間

的相互對(duì)應(yīng)關(guān)系, 來精確定位網(wǎng)絡(luò)資源, 即:根據(jù)域名查詢IP 地址, 反之亦然. 它是當(dāng)今

1

Internet 的基礎(chǔ)架構(gòu), 眾多的網(wǎng)絡(luò)服務(wù)(如Http,Ftp, Email等等) 都是建立在DNS 體系

基礎(chǔ)之上的. 權(quán)威人士指出:"一旦你理解了DNS, 你才真正懂得了Internet". 因此,DNS

的重要性是不言而喻的.

DNS 定義的域名空間的結(jié)構(gòu)是樹狀層次化的, 如圖1所示. 圖的最上方是

,

DNS 樹形結(jié)

構(gòu)中唯一的一個(gè)根(Root),用點(diǎn)號(hào)"." 表示, 根的下一級(jí)稱為頂級(jí)域(Top Level Domain,

簡(jiǎn)稱:TLD),也稱一級(jí)域. 頂級(jí)域的下級(jí)就是二級(jí)域(Second Level Domain, 簡(jiǎn)稱:SLD),

二級(jí)域的下級(jí)就是三級(jí)域, 依次類推. 每個(gè)域都是其上級(jí)域的子域(Sub Domain), 比如

".net.cn" 是".cn" 的子域, 而"cnnic.net.cn" 既是"net.cn" 的子域, 同時(shí)也是".cn" 的子域.

三級(jí)域

二級(jí)域

頂級(jí)域

區(qū)(Zone)

www …

com

cnnic

net

jp cn

orgnet com

"." 根

圖1 DNS的樹型結(jié)構(gòu)

圖1中DNS 樹上的每一個(gè)節(jié)點(diǎn)都有一個(gè)標(biāo)識(shí)(Label),根節(jié)點(diǎn)的標(biāo)識(shí)是" 空"(即長(zhǎng)度

為0), 其它節(jié)點(diǎn)的標(biāo)識(shí)的長(zhǎng)度在1到63字節(jié)之間. 一個(gè)節(jié)點(diǎn)的域名是由從

,

這個(gè)節(jié)點(diǎn)到根節(jié)

點(diǎn)的路徑上的所有標(biāo)識(shí)從左到右順序排列組成的, 標(biāo)識(shí)之間用"." 分隔. 例如

www.cnnic.net.cn.

DNS 的整個(gè)域名空間劃分成許多的區(qū)(Zone),見圖1中的橢圓標(biāo)記, 數(shù)據(jù)采用分布式

存儲(chǔ). 每個(gè)區(qū)都有域名服務(wù)器(包括主服務(wù)器和從服務(wù)器), 以資源記錄(Resource Record)

的形式來存儲(chǔ)域名信息. 資源記錄包括了主機(jī)名(域名) 和IP 地址的對(duì)應(yīng), 以及子域服務(wù)

器的授權(quán)等多種類型.

用戶在使用DNS 服務(wù)時(shí), 可以對(duì)不必細(xì)致地了解DNS 域名空間的樹型結(jié)構(gòu)體系, 只須

在設(shè)置網(wǎng)絡(luò)時(shí)指定一個(gè)DNS 服務(wù)器或使用動(dòng)態(tài)IP 等相關(guān)技術(shù). 從而用戶的應(yīng)用程序可以通

過操作系統(tǒng)內(nèi)嵌的解析器(Resolver)訪問DNS 系統(tǒng), 查詢域名相關(guān)的網(wǎng)絡(luò)資源信息. 關(guān)于

DNS 詳細(xì)的描述可以參考[1][2].現(xiàn)有的DNS 系統(tǒng)只支持七位(7bit)的ASCII 字符編碼的子

集. 在RFC1035中規(guī)定, 域名的標(biāo)識(shí)只能由字母(a-z, A-Z),數(shù)字(0-9),和"-" 組成, 稱

為L(zhǎng)DH(letter, digital, hyphen),而且只能以字母開頭, 以字母或數(shù)字結(jié)尾, 其它文字和符

,

2

號(hào)一律無效. 現(xiàn)在的許多基于文本的網(wǎng)絡(luò)協(xié)議, 比如HTML, XML, IMAP, FTP 等已經(jīng)支持

或者部分支持國際化字符集(Universal Character Set,簡(jiǎn)稱:UCS),而在現(xiàn)有的域名系統(tǒng)中

還不能使用國際化字符集, 這無疑影響了Internet 的發(fā)展.

國際化域名 [3](Internationalized Domain Name,簡(jiǎn)稱IDN) 是指使用國際化字符的域名.

這里的國際化字符來自國際化字符集[4] UCS ,即Unicode 字符集標(biāo)準(zhǔn), 字符的編碼用"U "

16進(jìn)制整數(shù)來表示. 例如:漢字" 中" 的Unicode 是U 4E2D.

在由傳統(tǒng)的DNS 演變成支持國際化域名的IDN 過程中, 要考慮以下幾點(diǎn)因素:

域名長(zhǎng)度:域名由一串標(biāo)識(shí)組成, 每串標(biāo)識(shí)的長(zhǎng)度是1-63字節(jié), 這些標(biāo)識(shí)串的總

長(zhǎng)度(也就是域名的長(zhǎng)度) 不能超過255字節(jié).

兼容性和互操作性:由于DNS 在Internet 中的基礎(chǔ)性地位, 國際化域名系統(tǒng)必須

與現(xiàn)有DNS 保持良好的兼容性和互操作性, 并且要盡量減小對(duì)現(xiàn)有建立在DNS

之上的各種網(wǎng)絡(luò)應(yīng)用協(xié)議的影響.

國際化考慮:在DNS 的域名和資源記錄中允許使用的國際化字符應(yīng)該依據(jù)Unicode

,

字符標(biāo)準(zhǔn).

2. 國際化域名方案

IETF(Internet Engineering Task Force,國際互聯(lián)網(wǎng)絡(luò)技術(shù)工程組織) 成立了國際化域

名工作組(IDN Working group)負(fù)責(zé)研究, 確立國際化域名標(biāo)準(zhǔn).IDN 工作組提出的技術(shù)

實(shí)現(xiàn)方案[5]稱為:Internationalizing Domain Names in Applications(簡(jiǎn)稱IDNA), 即:在應(yīng)用

程序中實(shí)現(xiàn)國際化域名.

IDNA 方案無需修改DNS 服務(wù)器端, 而是在用戶的應(yīng)用程序中對(duì)國際化域名進(jìn)行規(guī)范

化及字符轉(zhuǎn)換處理, 采用ASCII 兼容的編碼方式(ASCII Compatible encoding, 簡(jiǎn)稱:ACE)

把國際化域名轉(zhuǎn)換成由ASCII 字符表示的域名. 這些都發(fā)生在DNS 處理過程內(nèi)部, 對(duì)于使

用DNS 服務(wù)的用戶是完全透明的. 無論用戶輸入的是英文域名還是各國文字所構(gòu)成的國際

化域名, 都可以正確的使用DNS 服務(wù), 無縫的實(shí)現(xiàn)現(xiàn)有域名系統(tǒng)到國際化域名系統(tǒng)的升級(jí).

IDNA 方案的結(jié)構(gòu)如圖2所示, 圖中的左半部分表示國際化域名的處理過程, 右半部分

表示的是應(yīng)用程序與各種應(yīng)用服務(wù)器之間的交互處理過程, 與DNS 無

,

關(guān).

2.1用戶輸入

IDNA 的結(jié)構(gòu)并不影響用戶和應(yīng)用程序的接口, 用戶可以采用應(yīng)用程序接受的任何字符

來輸入域名. 用戶輸入的字符通常是本地字符集的編碼(中文如GB2312,GB13000,GB18030,

Big5等), 要先把本地字符編碼轉(zhuǎn)換成Unicode 編碼后才能進(jìn)行后續(xù)處理.

支持IDNA 的應(yīng)用程序(如:瀏覽器, 電子郵件等) 應(yīng)該能夠以兩種形式接受國際化域

名的輸入, 即, 國際化字符形式和ACE 形式. 但ACE 形式是一串無規(guī)律的ASCII 字符串, 所

以并不推薦用戶直接使用ACE 形式, 但不排除程序員在軟件調(diào)試中使用.

3

2.2 Nameprep

Nameprep[6](Name preparation)是指對(duì)域名中字符的預(yù)處理, 包括進(jìn)行字符映射, 字

符規(guī)范化處理, 以及對(duì)禁止字符的檢查三個(gè)步驟. 只有通過Nameprep 檢查的字符才能出現(xiàn)

在國際化域名中.

應(yīng)用服務(wù)器 DNS 服務(wù)器

應(yīng)用程序依據(jù)特定的

,

應(yīng)用協(xié)議與相應(yīng)的應(yīng)

用服務(wù)器進(jìn)行通訊.

解析器

ACE 轉(zhuǎn)換

Nameprep

應(yīng)用程序(本地字符集到Unicode 轉(zhuǎn)換)

IDNA

用戶輸入

圖2 IDNA的結(jié)構(gòu)

2.3 ACE轉(zhuǎn)換

ACE[7](ASCII-compatible encoding)轉(zhuǎn)換是指用域名中允許的63個(gè)ASCII 字符來表

示國際化字符.ACE 算法詳見下一節(jié).

2.4 應(yīng)用程序和解析器

,

應(yīng)用程序與解析器實(shí)際上是通過一個(gè)應(yīng)用程序接口(API)進(jìn)行交互, 輸入解析器和解

析器輸出的域名均為ACE 格式. 解析器返回給應(yīng)用程序的域名是以ACE 表示的, 應(yīng)用程序應(yīng)

該對(duì)ACE 進(jìn)行解碼, 以正常的字符形式顯示給用戶.

4

2.5 解析器和DNS 服務(wù)器

支持國際化域名的操作系統(tǒng)中應(yīng)該包含實(shí)現(xiàn)IDNA 的庫函數(shù). 庫函數(shù)的輸入是應(yīng)用程序

使用的字符集中的字符, 它對(duì)現(xiàn)有的LDH 字符組成的域名沒有影響, 但對(duì)于國際化域名, 輸

出的是ACE 格式的域名. 因此, 解析器和DNS 服務(wù)器之間交互的仍然是ASCII 字符組成的域

名.

3.ACE 算法

經(jīng)過Nameprep 處理過的國際化域名是以Unicode 序列的形式表示的. 但現(xiàn)有的DNS

系統(tǒng)只支持用ASCII 字符表示的域名, 所以要對(duì)Unicode 序列進(jìn)行ACE 編碼, 把Unicode

序列表示的域名轉(zhuǎn)換成ASCII 字符串表示的ACE 域名. 下面介紹IDN 工作組采納的

PUNYCODE[8]編碼算法.

PUNYCODE 是一種高效的ACE 編碼方式, 專為國際化域名而設(shè)計(jì)的. 它

,

可以在Unicode

序列和ASCII 字符串之間進(jìn)行唯一的和可逆的轉(zhuǎn)換. 轉(zhuǎn)換的過程中,Unicode 序列中的ASCII

字符保持不變, 國際化字符則用字母和數(shù)字來表示. 它的實(shí)質(zhì)是一種用數(shù)量有限的基本字符

(字母和數(shù)字) 來唯一地表示大字符集(Unicode)中的字符的通用算法. 域名中的字符,

包括ASCII 碼和Unicode 碼, 都是作為整數(shù)進(jìn)行處理.

人們常用的整數(shù)有二進(jìn)制, 八進(jìn)制, 十進(jìn)制, 十六進(jìn)制等. 這些表示法都有兩個(gè)缺點(diǎn),

就拿十進(jìn)制來講, 一方面, 一個(gè)整數(shù)可以有多種表示法, 如,0123,00123都等于123; 另

一方面, 如果多個(gè)整數(shù)連在一起組成數(shù)字序列, 就無法分隔出來. 如數(shù)字序列123456可能

是123,456, 也可能是1234,56等等.

PUNYCODE 算法的思想是基于:通用可變長(zhǎng)度整數(shù)的概念

(generalized variable-length

integers ). 通用可變長(zhǎng)度整數(shù)算法克服了上述兩個(gè)缺陷, 是一種表示整數(shù)序列的巧妙方法.

用這種方法表示的整數(shù)是唯一的, 并且連接在一起的多個(gè)整數(shù)之間不需要分隔符, 而是根據(jù)

整數(shù)本身的特征進(jìn)行分隔, 這些特點(diǎn)非常適合于用來表示國際化域名. 國際化域名中的

標(biāo)簽: