书签 分享 收藏 举报 版权申诉 / 34

多语言域名服务.pdf

  • 上传人:大师****2
  • 文档编号:1057240
  • 上传时间:2018-03-29
  • 格式:PDF
  • 页数:34
  • 大小:1.29MB
  • 摘要
    申请专利号:

    CN00101694.6

    申请日:

    2000.01.27

    公开号:

    CN1266237A

    公开日:

    2000.09.13

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效|||公开

    IPC分类号:

    G06F17/22

    主分类号:

    G06F17/22

    申请人:

    I-DNS通迅国际公司;

    发明人:

    谭亭维; 沈青宏; 谭镌冈; 龙柯永; 唐·艾尔文·翠西·德·西尔瓦; 李光松; 爱德华·S·泰; 萨布拉曼尼恩·萨比阿

    地址:

    美国加利福尼亚

    优先权:

    1999.02.26 US 09/258,690

    专利代理机构:

    中国国际贸易促进委员会专利商标事务所

    代理人:

    于静

    PDF完整版下载: PDF下载
    内容摘要

    一种多语言域名服务系统,允许用户使用非统一字符编码标准或ASCII编码的域名。一个国际DNS服务器首先接收一个DNS请求,通过考虑域名的顶级域的位字符串并将该字符串与不同的编码类型的已知顶级域的已知位字符串列表匹配来判断请求的编码类型。当识别出域名的编码类型后,它将该域名的编码转换为一个通用语言编码类型。然后将该通用语言编码类型表示翻译为一个符合通用DNS标准的ASCII表示。然后该表示被传递到一个常规域名系统,该系统识别ASCII格式的域名并返回相关的IP地址。

    权利要求书

    1: 一种在一个装置上实现的方法,用于检测一个数字地表示的域 名的语言编码类型,该方法包括: 接收数字地表示的域名的预先指定的部分的数字序列; 将该域名的所述数字序列与已知的数字序列集合中的一个已知的数 字序列进行匹配,其中每个数字序列与一个特定的语言编码类型相关 联,并且该集合包括至少两个不同的语言编码类型的已知数字序列;及 识别与和域名中的数字序列相匹配的已知数字序列相关的一个编码 类型。
    2: 根据权利要求1所述的方法,进一步包括接收一个包含该数字 地表示的域名的DNS请求。
    3: 根据权利要求1或2所述的方法,其中域名的预先指定的部分 是域名中的最小代码分解字符串。
    4: 根据权利要求1、2或3所述的方法,进一步包括在匹配上述的 数字序列之前转换数字地表示的域名的数字序列的格式。
    5: 根据权利要求1-4任一项所述的方法,其中已知的数字序列集 合位于一张表中,该表包括具有包括已知的数字序列和编码类型的属 性。
    6: 根据权利要求5所述的方法,其中该表包括具有至少如下编码 类型:ASCII,BIG5,GB2312,shift-JIS,EUC-JP,KSC5601,及扩展 ASCII。
    7: 根据权利要求5所述的方法,其中识别编码类型的步骤包括识 别具有匹配已知的数字序列的记录的编码类型。
    8: 根据权利要求1-7任一项所述的方法,其中至少两个已知的数 字序列匹配域名中的数字序列,并进一步包括: 接收数字地表示的域名的第二部分的数字序列; 将第二部分的数字序列与已知的数字序列集合中的一个已知的数字 序列进行匹配。
    9: 根据权利要求2所述的方法,进一步包括: 识别一个负责分解所识别的编码类型的根级别的域的根级别的DNS 服务器;及 将DNS请求发送到该根级别的DNS服务器。
    10: 根据权利要求9所述的方法,进一步包括: 在发送DNS请求之前,将域名的数字序列从所识别的编码类型转 换为与DNS协议兼容的一个DNS编码类型。
    11: 根据权利要求10所述的方法,其中该DNS编码类型是ASCII 或一个通用语言编码类型。
    12: 根据权利要求10所述的方法,其中转换域名的数字序列包 括: 将域名的数字序列从所识别的编码类型转换为一个通用的语言编码 类型;及 将域名的数字序列从通用语言编码类型转换为与DNS协议兼容的 一个DNS编码类型。
    13: 一个计算机程序产品,包括一个机器可读介质,该介质上具有 程序指令,这些指令语言执行用于检测一个数字地表示的域名的语言编 码类型的方法,该方法包括: 接收数字地表示的域名的预先指定的部分的数字序列; 将该域名的所述数字序列与已知的数字序列集合中的一个已知的数 字序列进行匹配,其中每个数字序列与一个特定的语言编码类型相关 联,并且该集合包括至少两个不同的语言编码类型的已知数字序列;及 识别与和域名中的数字序列相匹配的已知数字序列相关的一个编码 类型。
    14: 根据权利要求13所述的计算机程序产品,其中已知的数字序 列集合位于一张表中,该表包括具有包括已知的数字序列和编码类型的 属性。
    15: 根据权利要求13或14所述的计算机程序产品,进一步包括完 成如下操作的程序指令, 接收一个包含数字地表示的域名的DNS请求。 识别一个负责分解所识别的编码类型的根级别的域的根级别的DNS 服务器;及 将该DNS请求发送到该根级别的DNS服务器。
    16: 根据权利要求15所述的计算机程序产品,进一步包括完成如 下操作的程序指令, 在发送该DNS请求之前,将域名的数字序列从所识别的编码类型 转换为与DNS协议兼容的一个DNS编码类型。
    17: 在一个机器可读的介质上的一个语言编码类型映射表,它将特 定的语言编码类型与特定的数字序列相关联,该映射表包括多个记录, 这些记录包括: 数字地表示的域名的预先指定的部分的一个已知的数字序列; 一个与已知的数字序列相关联的一个语言编码类型。
    18: 根据权利要求17所述的映射表,其中数字地表示的域名的预 先指定的部分是域名中顶级域的数字序列。
    19: 根据权利要求17或18所述的映射表,其中该映射表记录包括 至少下列语言编码类型:ASCII,BIG5,GB2312,shift-JIS,EUC- JP,KSC5601,及扩展ASCII。
    20: 根据权利要求17,18或19所述的映射表,其中这些记录进一 步包括一个负责分解记录中的语言编码类型的根级别的域的顶级DNS 服务器。
    21: 根据权利要求17-20任一项所述的映射表,其中这些记录进一 步包括一个将编码类型转换为一个DNS兼容编码类型的一个转换。
    22: 根据权利要求17-21所述的映射表,其中这些记录进一步包括 一个有效时间字段。
    23: 根据权利要求22所述的映射表,其中该DNS编码类型是 ASCII或通用语言编码类型。
    24: 一种装置,包括: 一个或多个处理器; 与至少一个或多个处理器相耦合的存储器;及 一个或多个网络接口,可以接收包括一个非DNS编码类型的域名 的一个第一DNS请求,并用与DNS协议兼容的DNS编码类型下的域 名发送一个DNS请求,其中至少一个或多个处理器的至少一个被设计 或配置为将非DNS编码类型的域名转换为DNS编码类型的那个域名。
    25: 根据权利要求24所述的装置,其中一个或多个网络接口与一 个网络相耦合,其耦合方式使得装置接收客户机DNS请求,其中客户 机DNS请求表示非DNS编码类型的域名。
    26: 根据权利要求24或25所述的装置,其中一个或多个网络接口 与一个网络相耦合,其耦合方式使得装置向一个标准的DNS服务器发 送一个DNS请求,其中DNS请求表示DNS编码类型的域名。
    27: 根据权利要求24,25或26所述的装置,进一步包括一个至少 部分地驻留在存储器中的映射表,其中该映射表将特定的语言编码类型 与希望在数字地编码的域名中找到的具体数字序列相关联。
    28: 根据权利要求24-27所述的装置,其中至少一个处理器被配置 或设计为,在将域名从非DNS编码类型转换为DNS编码类型之前识别 该域名的非DNS编码类型。

    说明书


    多语言域名服务

        本发明涉及用于将网络域名分解为对应的网络地址的域名服务。本发明尤其涉及接受用不同的编码格式,而不仅仅是ASCII格式,提供的域名的替换的或改进的域名服务。

        因特网已经从纯粹的研究和学术领域发展为全球网络,从而深入到具有不同的语言和文化的多样化社会中。因特网已经在所有的领域中为其用户提供服务。今天,已经可以用许多语言进行电子邮件的交换。万维网上的内容也作为激增的多语言的软件应用以许多不同的语言进行发布。例如可以向中国地另一个人发送电子邮件消息或浏览日文的万维网网页。

        今天因特网完全依赖于域名系统将人类可读的名称分解为数字IP地址或进行相反的操作。域名系统(DNS)仍然基于拉丁-1字母表的子集,因此仍然主要是英语。为了提供通用性,电子邮件地址,Web地址和其他因特网寻址格式均采用ASCII作为全球标准以确保互操作。现在还没有规定允许电子邮件地址或Web地址使用非ASCII的本国语言。这就意味着任何一个因特网的用户必须具有一些ASCII字符的基本知识。

        尽管对于懂得作为科学、技术、商业和政治的国际性语言的英语的技术或商业用户来讲,这种情况一般不会出现问题,但是对于英语不被广泛使用的国家来讲要使因特网迅速地激增却是一个很大的障碍。在那些国家中,因特网新手必须懂一些基本的英语作为用他本国语言发送电子邮件的准备条件,这是因为即使电子邮件应用程序可以支持本国语言,电子邮件地址也不支持这种语言。企业内部网必须使用ASCII来简单地命名他们的部门域名和Web文档,因为即使在本地可以有多个文件名和目录路径,在域名领域中协议也不支持除ASCII外的任何符号。

        而且,讲欧洲语言的用户必须将他们的域名近似为没有重音等的域名。例如希望要一个企业标识的Citroёn公司不得不将自己近似为一个最接近的ASCII符号,而使用“www.citroen.fr”,来自法国的Francois先生不得不经常忍受将其电子邮件地址故意地错误拼写为“francois@email.fr”的烦恼(假象的例子)。

        当前,就象操作系统可以被本地化一样电子邮件地址域中的用户标识可以用多语言脚本书写以被本地化从而提供相应的本地字体。而且在多语言脚本中也可以提供目录和文件名。但是这些名称中的域名部分局限于在RFC1035因特网标准,即阐明域名系统的标准中所允许的那些部分。

        造成这种情况的一个正当的理由可以是倾向于使用重叠代码的软件开发者。例如中国BIG5和GB2312编码(即字形或字符的数字表示)重叠,日本JIS和Shift-JIS和韩国KSC5601也重叠。结果,除非在编码中包括指定编码的附加参数来提示应用客户正在使用什么编码,否则客户是很难确保BIG5和JIS或GB2312和KSC5601之间的差别的。因此要确保域名的唯一性和编码的确定性,DNS不得不使用ASCII。

        根据RFC1035,当前有效的域名仅局限于ISO-8859拉丁1字母表的子集,该表包括字母A-Z(情况不灵敏),数字0-9及连字符(-)。该限制有效地使一个域名支持英语或具有罗马字化的语言,例如日文中的Malay或Romaji,或罗马音译,例如音译Tamil。但是不接受其他脚本,即使是扩展的ASCII字符也不使用。

        统一字符编码标准(Unicode)是一种字符编码系统,其中几乎最重要的语言的每个字符都被唯一地映射为16位值。由于统一字符编码标准为唯一非重叠编码系统提供了基础,一些研究者开始探讨统一字符编码标准如何能够作为未来的DNS命名空间的基础,从而可以包括当今世界所呈现出的丰富的多样化语言。见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。该文档在此作为参考文献被引用。新的命名空间应该可以提供多语言和多脚本功能,从而使得非英语用户可以容易地使用因特网。

        采用统一字符编码标准作为新的域名系统的标准字符集避免了不同的语言脚本重叠代码空间。这样,因特网团体可以使用其本国语言脚本例如:

        www.citroёn.ch

        www.genève-city.ch

        遗憾的是,几个困难阻碍了改进DNS服务器和客户应用系统来实现一个多语言域名系统。例如所有未来的客户应用和所有未来的服务器都要被改进。由于客户和服务器必须进行改进以使系统工作,从旧系统过渡到新系统可能是很困难的。另外,可用的客户应用很少使用本国统一字符编码标准。相反,大多数多语言客户应用使用非统一字符编码标准进行编码,并且应用很广泛。

        基于上述事实,很希望有一种技术,它使得可以在DNS系统中使用多语言编码。

        本发明提供一种用于实现一个多语言域名系统的系统和方法,使得用户可以使用非统一字符编码标准和非ASCII编码的域名。该方法可以在不同的系统或系统的组合中得以实现,因此该系统被称为国际DNS服务器(或“iDNS”服务器)。当iDNS服务器首先接收一个DNS请求时,它判断那个请求的编码类型。它可能通过考虑域名的顶级域的位字符串并将该字符串与不同的编码类型的已知顶级域的已知位字符串列表匹配来进行判断。列表中的一个入口可能是关于例如中文BIG5的“.com”位字符串。当iDNS服务器识别出域名的编码类型后,它将该域名的编码转换为一个通用语言编码类型(例如统一字符编码标准)。然后将该通用语言编码类型表示翻译为一个符合通用DNS标准的ASCII表示。然后该表示被传递到一个常规域名系统,该系统识别ASCII格式的域名并返回相关的IP地址。

        本发明的一个方面提供一种用于检测一个数字地表示的域名的语言编码类型的方法,该方法的特征在于包括步骤:(a)接收数字地表示的域名的预先指定的部分(即顶级域)的数字序列;(b)将该域名的所述数字序列与已知的数字序列集合中的一个已知的数字序列进行匹配;(c)识别与和域名中的数字序列相匹配的已知数字序列相关的一个编码类型;其中(b)中每个数字序列与一个特定的语言编码类型相关联。注意该集合包括至少两个不同的语言编码类型的已知数字序列。

        通常提供一个表中的集合是很方便的,其中该表包括具有包括已知的数字序列和编码类型的属性。这样识别编码类型包括识别具有匹配已知的数字序列的记录的编码类型。该表包括至少如下编码类型:ASCII,BIG5,GB2312,shift-JIS,EUC-JP,KSC5601,及扩展ASCII。

        当至少有两个已知数字序列与域名中的数字序列相匹配时,有必要解决多义性。这可以通过如下步骤来实现:(a)接收数字地表示的域名的第二部分的数字序列;(b)多次将第二部分数字序列译码,每次使用一个不同的语言编码类型的译码方案,每个与至少两个已知数字序列相关联;及(c)识别给出最好结果的译码。可选地,该多义性可以通过如下步骤解决:首先匹配一个扩展的数字序列(包括域名的第一和第二部分),然后将扩展序列与可能与扩展序列相对应的一个已知的数字序列进行匹配。在这种情况下,已知数字序列的集合必须包括一些扩展序列。

        在一个具体实施例中,记录的集合包括一个“最小代码分解字符串(MCRS)”的数字序列(或一个数字序列的表示)。这是一个域名的部分数字序列,并且已知将那个具体的编码类型的域名与集合中其它任何域名/编码类型组合区分开来。当匹配发生时只要避免了多义性,该MCRS可能是顶级域的一个子字符串,顶级域的一个超级字符串,去往第二和第三级域的一个溢出(overflow)等。

        如上所述,该方法尤其应用于处理DNS请求。这样该方法也包括:(i)接收一个包括数字地表示的域名的DNS请求;(ii)识别一个负责分解所识别的编码类型的根级别的域的根级别的DNS服务器;(iii)将该DNS请求发送到该根级别的DNS服务器。在发送该DNS请求之前,将所识别的编码类型的域名的数字序列转换为与DNS协议兼容的一个DNS编码类型(即ASCII或统一字符编码标准或其它将来可用的通用编码)。在一个有效实施例中,这种转换在两个操作中发生:(i)将所识别的编码类型的域名的数字序列转换为一个通用的语言编码类型;及(ii)将域名的数字序列从通用语言编码类型转换为与DNS协议兼容的一个DNS编码类型。

        该发明还提供一个映射表,将具体的语言编码类型与具体的数字序列相关联。该映射表包括多个记录,每个包括如下属性:(a)一个数字地表示的域名的一个预先指定部分的已知数字序列;及(b)一个与已知的数字序列相关联的语言编码类型。该数字地表示的域名的预先指定的部分可用是域名的根级域的数字序列。这些记录也可以包括一个负责分解记录中的语言编码类型的根级别的域的顶级DNS服务器。另外映射表可以指定需要将域名从一个非DNS编码类型转换为一个DNS兼容编码类型(即UTF-5)的转换类型。

        本发明还设计一个具有如下特征的装置:(a)一个或多个处理器;(b)与至少一个或多个处理器相耦合的存储器;及(c)一个或多个网络接口,可以接收包括一个非DNS编码类型的域名的一个第一DNS请求,并用与DNS协议兼容的DNS编码类型下的域名发送一个DNS请求,其中至少一个或多个处理器的至少一个被设计或配置为将非DNS编码类型的域名转换为DNS编码类型的那个域名。其中一个或多个网络接口与一个网络相耦合,其耦合方式使得装置接收客户机DNS请求,其中客户机DNS请求为表示非DNS编码类型的域名。另外其中一个或多个网络接口与一个网络相耦合,其耦合方式使得装置向一个标准的DNS服务器发送一个DNS请求,其中DNS请求为表示DNS编码类型的域名。

        该装置最好还包括一个至少部分地驻留在存储器中的映射表(最好是上面所描述的一个),其中该映射表将特定的语言编码类型与希望在数字地编码的域名中找到的具体数字序列相关联。

        本发明的这些特征和优点将参考附图更详细地描述。

        图1概略地示出一个网络体系结构,包括位于一个DNS服务器和一个客户之间的iDNS。

        图2是根据本发明的一个实施例描述分解一个表示非DNS编码类型的域名的DNS请求处理流程图。

        图3A是将一个非DNS编码类型的域名转换为对应的DNS编码类型的域名的流程图。

        图3B是一个iDNS系统的逻辑构成。

        图4是描述用于确定一个域名的编码类型的处理的流程图。

        图5是根据本发明的一个实施例识别域名的编码类型的逻辑映射表的实例。

        图6是描述中文编码的层次的“树形”图表。

        图7是可以用于实现本发明的iDNS功能的一个通用计算机系统的方框图。

        1.DNS和统一字符编码标准

        本发明把多语言多脚本名称转换为与DNS(即如1999在RFC1035中所解释的DNS)相适应的格式。这些经转换过的名称可以被作为DNS查询转发到一个常规的DNS服务器。下面的图1示出了如何将一个本地化的域名分解为其数字IP地址的处理流程。但是,在描述图1之前,将要讨论一些背景原理和术语。

        程序通常不通过二进制网络地址来访问主机。取代二进制数字,它们使用ASCII字符串,例如www.pobox.org.sg。当然,网络自己仅理解二进制地址,从而需要一些机制来将ASCII字符串转换为网络地址。该机制由域名系统提供。

        DNS的基本原理是层次的、基于域命名的方案和用于实现这个命名方案的分布式数据库系统。它主要用于将主机名称和电子邮件目的地映射为IP地址,但也可以用于其他目的。如上所述,DNS由RFC1034和1035来定义。

        简单地说,DNS按如下方式来使用。为了将一个名称映射为一个IP地址,应用程序调用一个称为“转换器(resolver)”的库程序,并将名称作为参数传递给它。转换器向一个本地DNS服务器发送一个UDP分组,服务器然后查找名称,并将IP地址返回给转换器,转换器然后将其返回给调用者。使用手头的IP地址,程序可以与目的地建立TCP连接或向其发送UDP分组。

        一般的,因特网分为多个顶级“域”,每个域覆盖多个主机。每个域分为多个子域并且它们又被进一步再次划分,依此类推。所有这些域可以用一个树来表示。树的叶结点代表没有子域的域(当然不包括机器)。一个叶域(leaf domain)可以包括一个单独的主机,也可以表示包括成千上万个主机的公司。

        顶级域具有两个意味:类和国家。类域是com(商业),edu(教育机构),gov(政府),int(某些国际组织),mil(军队),net(网络提供商),和org(组织)。国际域包括ISO3166中所定义每个国家的一个入口。每个域由从它往上到来命名的根结点的路径来命名。各组成之间用句点(读作“圆点”)来分离。

        理论上,域可以以两种方式插入树。例如cs.ucb.edu可以平等地列在us国家域之下,如cs.ucb.ct.us。但是实际上,几乎美国所有的组织都在一个类域之下,并且在几乎所有美国之外的国家所有的组织都在它们的国家域之下。没有规则反对在两个顶级域之下进行注册,但是这样做可能引起混乱,因此很少有组织使用它。

        每个域对如何分配它名下的域进行控制。例如,日本具有域ac.jp和co.jp来镜象edu和com。为了创建一个新的域,该新的域要在它所从属的域中被许可。例如,如果加州伯克利大学启动一个人工智能小组并想称之为ai.cs.ucb.edu,则它就需要得到管理cs.ucb.edu的管理者的许可。类似地,如果设立了一个新的大学,例如Lake Tahoe大学,则它必须请求edu域的管理者分配给它ulth.edu。这样,避免了名称的冲突,并且每个域可以跟踪它所有的子域。一旦创建并注册了一个新的域,它就可以创建它的子域,例如cs.ulth.edu,而不需请求位于树的任何组织的许可。

        理论上,至少一个单独的名称服务器可以包括整个DNS数据库,并响应所有对于它的查询。但实际上,这种服务器将因为超载而变成无用的机器。进而,如果它停止了工作,则整个因特网将陷入瘫痪。为了避免由于只有一个信息源所造成的问题,DNS域名空间被分割为不重叠的“区域”。每个区域包括树的某些部分并也包括保持有关该区域的授权信息的名称服务器。通常,一个区域具有一个主名称服务器,它从其盘上的一个文件得到自己的信息,一个或多个二级服务器,它们从其主名称服务器得到自己的信息。

        当一个转换器获得一个关于域名的查询时,它把查询发送到一个本地名称服务器。如果待查找的域在该名称服务器的管辖范围内,例如位于cs.ucb.edu下的ai.cs.ucb.edu,则该服务器授权的资源记录被返回。一个授权记录来自于管理记录的管理机构,因此总是正确的。一个给定的名称服务器也可以包括“高速缓存的记录”,它们可能已经过时。

        如果感兴趣的域是远程的,并且在本地没有关于可用的请求域的信息,则名称服务器将查询消息发送到所请求域的顶级名称服务器。例如,试图查找ai.cs.ucb.edu的IP地址的一个本地名称服务器可能将一个UDP分组发送到其数据库中有edu的服务器,edu-server.net。这个服务器可能不知道ai.cs.ucb.edu的地址,并且可能也不知道cs.ucb.edu,但是它肯定知道其所有的子结点,从而它把请求转发到ucb.edu的名称服务器。进而,该服务器将请求转发到肯定具有授权资源记录的cs.ucb.edu。由于每个请求是从一个客户到一个服务器,所请求的授权记录返回到请求ai.cs.ucb.edu的IP地址的原始名称服务器。

        一旦记录返回到原始名称服务器,该服务器将其输入到高速缓存中,以供以后使用。但是,该信息不是权威的,因为在cs.usb.edu所作的修改不会广播到世界上所有可以知道它的高速缓存。因此高速缓存中的入口应该频繁地删除或更新。该操作可以用包括在每个记录中的一个“time to live”域来实现。

        上述用于分解一个域名的方法例子被称为递归查询。也可以使用其他技术。有关DNS的更详细的细节,请见Andrew S.Tanenbaum,″Computer Networds,″3rd Ed.,Prentice Hall,Upper Saddle River,NJ(1996),该文章中描述了上述的内容。另外还可参看U.D.Black,″TCP/IP and Related  Protocols,″3rd Ed.,McGraw-Hill,SanFrancisco,CA(1998)。这两篇文献在此被作为参看文献。

        如上所述,DNS协议当前是基于ASCII的子集,因此它局限于拉丁字母表。其他的多种编码提供了对世界上其他字符集的数字表示。这些例子包括:中文字符脚本的BIG5和GB-2312(分别表示繁体和简体),日文字符脚本的Shift-JIS和EUC-JP,韩文字符脚本的KSC-5601,及法文和德文字符的扩展ASCII字符。

        除了这些语言专用的编码类型,还有一个统一字符编码标准(一种“通用语言编码类型”),它具有对全世界的书写语言所使用的所有字符进行编码的能力。它使用16位编码,从而,可以为超过65,000个字符提供代码。统一字符编码标准脚本包括拉丁语、希腊语、亚美尼亚语、希伯来语、阿拉伯语、梵文字母、孟加拉语、Gurmukhi、吉吉拉特语、奥里雅语、泰米尔语、泰卢周语、埃纳德语、马来西亚语、Thia、老挝语、格鲁吉亚语、藏语、日本假名、现代Korean Hangul的完整集、中文/日文/韩文(CJK)表意文字的统一字符集。其他更多的脚本和字符被简短地加入,包括埃塞俄比亚语、加拿大语、Syllabics、切罗基族语、额外的罕见的象形文字、僧伽罗语、叙利亚语、缅甸语、高棉语、布莱叶盲文。

        一个16位数字被分配给由统一字符编码标准所定义的一个代码元素。每个16位数字称为一个代码值,在文本中被引用时,它们用跟在前缀“U”后的16进制格式来表示。例如代码值U+0041是16进制数字0041(等于数字65)。它表示统一字符编码标准中的字符“A”。

        每个字符也被分配一个唯一的标识它的名称。例如,U+0041被分配字符名称“LATIN CAPITAL LETTER A”,U+0A1B被分配字符名称“GURMUKHI LETTER CHA”。这些统一字符编码名称相应于相同的字符的ISO/IEC 10646名称。

        统一字符编码标准通过用代码块用脚本将字符进行分组。一个脚本可以是相关字符的任意系统。该标准保持源集中可能的字符顺序。当一个脚本的字符以某个顺序--例如字母表顺序--进行常规排列时,统一字符编码标准在任何可能的时候都使用相同的顺序在其代码空间中排列它们。代码块在大小上变化很大。例如亚美尼亚语代码块不超过256个代码值,而CJK代码块有上万个代码值。

        在整个代码值范围内(称为代码空间)代码元素被逻辑地分组,编码从U+0000以标准ASCII字符开始,接着是希腊语、亚美尼亚语、希伯来语、阿拉伯语、印度语及其他脚本;接着是符号和标点。代码空间中接着就是平假名、片假名和bopomofo。在现代Hangul的完整集之后是统一汉字表意文字。为使用UTF-16进行将来的扩展而预留了代码值的代用范围。在代码空间的结束部分,在兼容字符之后,是为专用而预留的代码值范围。兼容字符是一些字符变量,仅用于编码来使得可以转换编码为使用它们的较早的标准及旧的实现。

        字符编码标准不仅定义每个字符及其数字值或代码位置的标识,还定义这些值是如何用位进行表示的。统一字符编码标准认可对应于ISO10646转换格式UTF-7,UTF-8和UTF-16的至少三种格式。

        ISO 10646转换格式UTF-7,UTF-8和UTF-16是将编码转换为在实现中所使用的实际字符的实质性方法。UTF-16假设16位字符,并允许一定范围的字符作为扩展机构被使用以使用16位字符对访问附加的百万个字符。The Unicode Standard,Version 2.0,Addison WesleyLongman(1996)(通过″The Unicode Standard,Version 2.0″进行了修改和添加)采用了ISO/IEC 10646的这种转换格式。再次将其作为参看文献引用。

        第二个转换格式称为UTF-8。这是将所有的统一字符编码标准字符转换为字节长度可变的编码的方法。它的优点是对应于熟悉的ASCII集的统一字符编码标准字符具有与ASCII相同的字节值。转换为UTF-8的统一字符编码标准字符可以用于现存的软件中而不需对软件进行重写。统一字符编码标准联盟也认可UTF-8的使用,并作为实现统一字符编码标准的一种方法。任何一个用16位UTF-16格式表示的统一字符编码标准字符都可以转换为UTF-8格式并可以进行相反的转换,而不损失信息。为了在标准的原理及其所体现的编码体系结构方面做到一致,统一字符编码标准指定了一些明确的要求。一个一致的实现具有如下特征,作为最低需求:

        字符是以16位为单位;

        字符用统一字符编码标准语义进行解释;

        未分配的代码不使用;

        未知字符不误用。

        只要UTF-8实现时将统一字符编码标准字符(字节顺序)的每个UTF-8编码看成对应的16位单元并根据统一字符编码标准规格解释字符,则统一字符编码标准的UTF-8实现起来就是一致的。全部的一致性要求见于The Unicode Standard,Version 2.0,Addison WesleyLongman(1996),此前其作为参考文献而出现。设计UTF-7来提供进行7位介质/传输时有用的7位字符。由RFC822所指定的电子邮件是一个7位系统。指定UTF-16进行16位介质/传输,并且指定UTF-8进行8位介质/传输。因特网的大多数是可以进行8位传输的,但是也有使用7位的传统系统(即DNS,SMTP电子邮件等)。

        2.术语

        这里所用的一些术语在本领域中不经常使用。另一些术语则有多种含义。因此提供了下面的定义作为理解下面的描述的辅助说明。权利要求书中的发明不限于这些定义。

        语言编码类型---现在已知或将来使用的任何字符或符号编码类型(例如ASCII或BIG5)。

        通用语言编码类型---现在已知或将来开发出的任一种语言编码类型,包括位于其编码范围内的超过一个的字符或符号集。统一字符编码标准是一个例子,BIG5,ISO-8859-11和GB-2312是另外的一些例子。

        数字表示---作为编码的结果表示字符的方法(例如,用位流,16进制格式等)。

        数字顺序---1和0的特殊顺序,16进制字符,或其他的数字表示组成。

        数字表示域名“部分”---域名的任何部分或全部;例如,顶级域,第二级域,顶级和第二级域。

        “已知”数字序列---一个感兴趣的数字序列,因为已知它与用某个特殊的编码类型(例如“.com”的BIG5数字序列)所编码的一些常用的字符组合(或域名的其他特性)相关联。

        已知数字序列的“集合”---多个已知数字序列之间的任意排列或连接。典型地,尽管不必要,作为一张表(例如这里所描述的“映射表”)逻辑地存储在一起。

        DNS编码类型---由网络或因特网的DNS协议所支持的编码类型,例如由RFC1035所指定的ASCII的有限集。

        非DNS编码类型---不是由所考虑的DNS协议所支持的编码类型,例如RFC1035下的BIG5。

        3.iDNS的实现

        现在转向图1,用于本发明的一个实施例的网络10的重要组成包括一个客户机12,一个客户机12希望与之通信的对应的节点14,一个iDNS服务器16及一个常规的DNS服务器18。iDNS服务器16可以在一个DNS端口(当前定址于域名端口53)用于取代通常的DNS服务器来进行多语言域名查询,它可能包括伯克利因特网域名服务器(‘BIND’及其可执行版本‘命名的’),由Paul Vixie所写的广泛使用的DNS服务器(http://www.isc.org/)。

        为了理解这些组成部分的任务,假设一个中国学生使用客户机12想要查询香港某公司的招聘情况,该公司操作对应的节点14。该学生事先与该公司进行通信获得其域名。该域名用本国中文字符提供。客户机12配置了一个可以输入中文字符的键盘,并配置了可以识别编码的中文字符并将其准确地显示在计算机屏幕上的软件。

        现在,该学生准备了一个发给该香港公司的消息,并附上自己的简历,她输入该公司的中文域名作为目的地。当她指示客户机12将消息发送给对应的节点14时,示于图1的系统执行如下操作。首先,通过一个DNS请求向iDNS服务器16提交由本国语言组成的相应节点的域名。iDNS服务器16识别出该域名不是可以由常规的DNS服务器处理的格式。因此它把中文域名转变为可以由常规的DNS服务器使用的格式(通常是ASCII字符的一个有限集)。接着iDNS服务器16用转变后的对应节点域名将DNS请求重新打包,并将那个请求发送给常规DNS服务器18。然后,DNS服务器18使用通常的DNS协议获得它在DNS请求中所接收的域名的网络地址。所得到的结果网络地址就是相应的节点14的网络地址。DNS服务器18根据常规的DNS协议将那个网络地址打包并将其转发回iDNS服务器15。iDNS服务器16接着将所需的网络地址发送回客户机12,并且该地址被放到该学生的消息中。该消息被进行分组,每个分组具有对应于节点14的目的地网络地址。接着客户12通过因特网将消息分组发送到节点14。

        通过图2的交换处理流程图将更全面地理解该过程。如图所示,在图的左侧用一条垂线表示客户机12,在图的中央用一条垂线表示iDNS服务器16,在图的右侧用一条垂线表示DNS服务器18。

        首先在203,运行在客户机12上的一个应用生成一个到某个网络目的地的消息,该目的地的域名是用非DNS兼容文本编码格式输入的。这样该文本用数字地表示该文本的字符的语言编码类型进行编码。如所描述的,ASCII仅是一种语言编码类型。在优选实施例中,广泛应用的一些类型还包括GB2312,GIG5,Shift-JIS,EUC-JP,KSC5601,扩展ASCII等。

        在203当客户机应用生成消息以后,在205客户机操作系统生成一个分解域名的DNS请求。DNS请求在许多方面可以与一个常规的DNS请求相似。但是请求中所提供的域名将用一个非DNS编码格式提供。在207,客户机操作系统将其DNS请求发送到iDNS服务器16。注意可以将客户机操作系统配置为将DNS请求发送到iDNS服务器16。换句话说,客户机12缺省的DNS服务器是iDNS服务器16。

        在209,iDNS服务器16从DNS请求中抽取编码的域名,并生成一个转换的DNS请求,该请求用一个DNS兼容编码格式表示域名(当前是RFC1035所指定的精简ASCII)。接着,在211,iDNS服务器16将其DNS请求发送到常规的DNS名称服务器18。在213,名称服务器使用常规的DNS协议获得在客户机通信时所使用的域名的IP地址。在215,名称服务器将请求的IP地址返回给iDNS。在217,iDNS服务器16把IP地址返回给客户机12。最后,在219,客户机用手头的IP地址将其消息发送到目的地。

        如上所述,域名在某些地方,必须被从非DNS编码类型转换为DNS兼容编码类型。在上述例子中,是用代理iDNS服务器来完成该操作的。但是并不限于此,在客户机或常规的DNS服务器中也可以包括进行这种转换所需的功能。

        在一个替代的实施例中,由代理iDNS服务器所执行的功能全部(或部分地)在客户机和/或DNS服务器上执行。在一个实施例中,在一个因特网应用上(例如可以支持多语言的Web浏览器上)实现包括检测一个编码类型,将一个非DNS编码域转变为一个DNS编码域名及识别一个缺省的名称服务器的操作(下面将要描述的图3A的操作305-311)。在该实施例中,在将一个DNS分解请求分配到一个DNS服务器上之前自动地执行代码检测和代码转换。在一些实施例中,该应用可以提供避免了进行代码检测的自动定义的语言编码。

        在另一个可替代的实施例中,可以在iDNS服务器上实现操作305-311。其他的实施例包括将代理iDNS的全部或一部分操作分配到DNS服务器上。例如一些iDNS功能的代码可以作为兼容模块分配为BIND代码。

        在图2中,在209执行将域名从一个语言编码类型转换为第二种语言编码类型(与DNS兼容)的操作。如图3A所示,根据本发明的一个优选实施例,可以通过处理301执行该转换。在303处理以系统识别DNS请求中的域名的编码类型开始。当系统可能面对多种不同的编码类型时该操作是必须的。在识别完编码类型后,接着在305系统判断域名是否用DNS兼容编码类型进行编码。当前,要求判断域名是否用ASCII的精简集编码类型进行编码。如果是,则不需进一步的转换并且处理控制转向311,下面将描述。

        在一个有趣的例子中,域名是用非DNS格式进行编码的。这样处理控制转向307,在此系统将域名转变为一个通用编码类型。在一个优选实施例中,该通用编码类型是统一字符编码标准。在这种情况下,用本国语言编码类型表示的字符被用统一字符编码标准进行表示,并转换为统一字符编码标准序列。

        接着新转换的域名被进一步地被从统一字符编码标准类型转换为DNS兼容编码类型,如309。这样,该最终的编码类型可能是ASCII精简集。注意,从DNS不兼容格式转换为DNS兼容格式通过一个中间的通用编码类型经过了两个步骤。下面将详细描述这两个步骤。但是,应该理解,也可以直接用一个步骤从DNS不兼容域名转换为DNS兼容域名。这可以在具有多个转换算法的系统中实现,其中每个算法用于将一个具体的编码类型转换为ASCII(或其它未来的DNS兼容编码类型)。在一个例子中,这些算法可以在上述的“dürst algorithm”中得到模板。许多其它的合适的算法是已知的,或可以进行开发。

        现在手边已经有了一个DNS兼容域名,系统仅需判断将域名转发到哪个常规DNS名称服务器。根据通常的DNS协议,DNS请求可能被转发到一个顶级名称服务器。如下面将要详细地描述的那样,具有处理不同的语言域的根名称服务器是很方便的。例如,中国政府可以保持中文域名的根名称服务器,日本政府或一个日本公司可以保持一个日文域名的根名称服务器,印度政府可以保持印度文域名的根名称服务器等。在任一种情况下,如图3A所示,在311,系统必须识别适当的名称服务器。在完成此操作之后,完成了转换处理,并且DNS请求可以发送到DNS系统,以根据本发明进行处理。

        优选地,仅在一个iDNS服务器执行图3A所示的处理。但是,一些处理可以在一个客户机或一个常规的DNS服务器执行。例如,303和305可以在一个客户机执行,309可以在一个常规的DNS服务器执行。

        iDNS功能(327)的优选工作分配如图3B所示,如图所示,一个iDNS映射器服务器321执行操作305-311。在此处,它包括一张映射表(例如参考图5所描述的例子),并将所有语言的编码类型转换为统一字符编码标准(或其它适当的通用编码类型)。在此实施例中,客户机325执行操作303,并且常规的DNS服务器323执行标准的DNS分解协议。

        在一个实现方式中,iDNS映射器服务器321运行在一个指定端口(例如端口号2000)的机器(例如表示为i2.i-dns.com)上。它接受用任何语言编码类型进行数字表示的域名的全部,并返回转换为一个DNS编码类型(UTF-5)的用字符编码标准进行数字表示的域名的全部。注意,映射表和转换程序代码可以很大,从而增加了DNS服务器323的文件夹数(如果在那里执行)。通过从DNS协议分离操作305-311,就可以减少分配iDNS所需的代码数量。

        如图3A所示,当系统必须处理大量编码类型时,它必须能够区分编码类型。该处理如块303所描述,并在图4中进行了说明。

        如图4所示,在403开始识别编码类型401的处理,系统识别域名的顶级域的数字序列。在1999年3月的系统中的顶级域包括.com,.edu,.gov,.mil,.org,.int,.net,及不同的两个字母的国家标识(例如.fr,.sg,.kr,等)。

        在识别完顶级域的数字序列之后,接着系统将该序列匹配到一个具体的编码类型。在一个优选实施例中,它包括在405将序列与一个映射表中的记录进行匹配。下面将详细地描述一个示例性的映射表。现在简单地认为该表(或其它逻辑结构)包括系统所处理的不同的语言编码类型的不同顶级域的数字序列列表。每个单独的记录还包括一个相关的编码类型识别符。该系统通过简单地将一个被考虑的数字序列与映射表的各个记录中的序列进行比较(使用标识的数据库查找过程例如二元搜索,哈希表,B树等)来匹配该数字序列。这样一般将提供一个单独的匹配。但是如果如果有多个入口可以发布顶级域(例如每个用于不同的语言),则不同的编码格式的两个顶级域的数字序列可能是相同的。

        考虑到这种可能性,系统在407判断多个记录是否与被考虑的数字序列相匹配。如果不匹配,在413处理结束,系统确定使用在单独匹配记录中所识别的编码。如果两个或多个记录匹配,则系统必须解决这种多义性。在409,首先识别一个低一级的域(例如一个子域如第二级域)。换句话说,被考虑的域名将具有与比其级别低的域相关的一个数字序列。现在将扩展的数字序列再次与映射表中的数字序列相匹配(405)。注意表中的一些记录可以包括组合了顶级域和低级别域的数字序列(解决在顶级域的序列中潜在的多义性)。在405找到一个匹配之后,如上所述,处理前进到407。

        在一个可替代的实施例中,在映射表中仅保持了顶级域的数字序列。没有为扩展的序列做处理来解决多义性。在这种情况下,当407回答是肯定的(多个记录匹配)时,系统识别每个潜在的匹配(后续编码类型)。接着使用每个潜在的编码类型将考虑的序列进行译码。例如根域数字序列可能在日文编码类型的一个中找到了.net的一个匹配,在中文编码类型的一个中找到了.com的一个匹配。

        在后续编码类型语言中一个译码字符串应该是可以理解的。其它的应该是杂乱信息。这样系统选择对二级域进行了最好译码的后续编码类型。接着处理在413结束,系统使用所选的编码类型。

        如图4的405所述,iDNS服务器可能为一个域名查询的顶级域的数字序列匹配了已知的多个编码类型的数字序列。一个映射表可能具有已知的数字序列。图5提供了根据本发明的一个实施例的一个映射表501。表501中的每个记录为一个具体的编码类型(例如GIG5的.com)指定了一个最小代码分解字符串(例如一个顶级域)。

        如图所示,映射表501包括6个字段,第一个是有效时间,用于指示在入口高速缓存失效之前还有多长时间。接着最小代码分解字符串字段标识一个域名的一部分数字序列(例如GIG5中.com的数字编码)。注意最小代码分解字符串通常是8位二进制字符串。为了简化表501中的最小代码分解字符串的输入项和维护,为了得到所示的格式还要对二进制字符串进行转换。

        尽管最小代码分解字符串通常可以为顶级域,当然也不限于此。对于一些语言编码,由于多义性,可能必须包括第二或更高级的域,以唯一地分解在字符串中所给定的编码类型。类似地,可能不必经常使用整个顶级域来唯一地确定编码类型。这将加速匹配的搜索。

        表中所指定的“权威”是对记录中所指定的域名的确定具有权威性的组织。例如,一个“i-dns”组织对BIG5的.com具有权威性,它可能有权利发布BIG5.com下的所有子域名。这样就确保了只分配唯一的域名。当然,为实现这种权威,要指示一个组织用一个名称服务器(或多个服务器)来控制“权威”记录,以为DNS空间的该权威范围内的域名分配IP地址。表501的“编码”字段指示与记录匹配的域名的编码类型。“转换”字段指示与记录匹配的域名的编码类型。例如UTF-5是应用于统一字符编码标识的Dürst算法(如下所述)。最后“注释”字段包括一个文本字符串,用于标识一个域名的什么部分对应于最小代码分解字符串。图6示出用于分解中文域名的一个示例域名树。一个iDNS服务器检测中文代码类型,它被配置为缺省的名称服务器来分解一个域名。如图6所示,在根下有多个顶级域(例如.com,.edu,.sg等)。在.sg顶级域下,有多个中文二级域例如edu.sg,在该二级域下,有多个域,包括nus.edu.sg等。相似地,在顶级域.com下,有多个中文二级域例如email.com。

        如图3A的实施例所示,iDNS系统将域名的通用编码类型(例如统一字符编码标准)转换为一个DNS编码类型。在一个有效实施例中,是通过由在此作为参考文献的因特网草案,“Internationalization ofDomain Names”,Martin Dürst,所定义的转换算法来完成的。该算法将一个可变长数据实体转换为仅包括RFC兼容ASCII纯粹的字母表和数字的格式。下面的表示出在因特网草案中所使用的转换表。      半字节代码  十六进制   二进制   初始   后序       0       1       2       3       4       5       6       7       8       9       A       B       C       D       E       F    0000    0001    0010    0011    0100    0101    0110    0111    1000    1001    1010    1011    1100    1101    1110    1111    G    H    I    J    K    L    M    N    O    P    Q    R    S    T    U    V    0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F

        该表的前两列为二进制(十六进制)值,最后两列为ASCII RFC1035兼容字符。“初始”和“后续”分别指数据实体的初始的半字节及数据实体的剩下部分。如果数据实体有两个字节长(象UCS-2那样),则在该具体的数据实体中有4个半字节。

        如上所述,为了分解一个多语言域名,一个客户机应用将向一个iDNS代理服务器提交多语言非RFC兼容查询。该代理服务器接着使用该转换算法将查询转换为一个RFC兼容格式,并把该查询提交该一个DNS服务器。

        在DNS服务器,有一个关于该RFC兼容查询的入口,它与一个有效的IP地址相匹配,该入口例如为

        U4B8O7E7RBB4U7BDP1.U696R0E5OAA0U59DQ1 IN A 12.34.56.78

        DNS服务器根据RFC1035将该IP地址返回给iDNS代理服务器。该代理服务器将包括被正确分解的IP地址的消息转发给客户机。注意转换的域名(ASCII)通常必须由负责控制和发布常规的DNS域名的权威组织注册。

        本发明的实施例涉及一个用于执行上述iDNS操作的装置。该装置可以被特别地按照所要求的目的进行构造(设计),或者是通用计算机,该计算机用存储在计算机中的一个计算机程序选择性地激活或重新配置。此处所描述的处理并不专门地设计某个具体的计算机或其它装置。尤其是,各种通用机器可以使用根据本发明的教导所书写的程序。另外,构造一个更加专门化的装置以执行所要求的方法步骤将更方便。从以上的描述将更加清楚构造各种这样的机器所需要的结构。

        另外,本发明的实施例进一步涉及计算机可读介质,它包括用于执行各种计算机可执行操作的程序指令。该介质还包括程序指令,数据文件,数据结构,表等,或者它们的组合。该介质和程序指令可以是为本发明的目的特别涉及和构造的,或者它们可能是计算机软件领域某种已知和可用的类型。计算机可读介质的例子包括磁介质例如硬盘、软盘和磁带;光学介质例如CD-ROM盘;磁光介质例如光磁盘;及专门进行配置以存储和执行程序指令的硬件,例如只读存储器(ROM)和随机访问存储器(RAM)。该介质也可以是传输介质例如光或金属线,波导等,包括用于传输指定程序指令,数据结构等的信号用的载波等。程序指令的例子不但包括例如由一个编译器生成的机器代码,还包括包含可以由计算机使用一个解释器执行的高级代码的文件。

        图7示出一个根据本发明的实施例的典型计算机系统。该计算机系统700包括可以与存储装置相耦合的任何数量的处理器702(也指中央处理单元,或CPU),存储装置包括主存储器703(通常为一个随机访问存储器,或RAM),主存储器704(通常为一个只读存储器,或ROM)。如在本领域已知的那样,通常主存储器704用于单向地向CPU传输数据和指令,主存储器706用于以双向的方式传输数据和指令。这两种主存储器可以包括上述的计算机可读介质的任一种合适的类型。海量存储设备708也与CPU702双向地耦合,并提供附加的数据存储容量并可以包括上述的计算机可读介质的任一种合适的类型。海量存储设备708可以用于存储程序,数据等,典型地为一个二级存储介质例如速度比主存储器慢的硬盘。可以理解,海量存储设备708中所保持的信息在适当的情况下可以以标准的流行方式作为虚拟存储器成为主存储器706的一部分。

        一个具体的海量存储设备例如为也可以将数据单向传递到CPU的CD-ROM714。

        CPU702也与一个接口710相耦合,该接口包括一个或多个输入/输出设备例如视频监视器,轨迹球,鼠标,键盘,麦克风,触摸显示屏,传感卡阅读器,磁或纸带阅读器,写字板,铁笔,声音或手写体识别器,或其它已知的输入设备例如当然包括其它计算机。最后CPU702可选地可以通过使用一个在712所示的网络连接与一个计算机或通信网络相耦合。根据这种网络连接,可以预测CPU可以从网络接收信息,或在执行上述的方法步骤的过程中向网络输出信息。上述的设备和材料对于计算机硬件和软件领域的技术人员来说是很熟悉的。

        上述的硬件单元可以配置成用于执行实现本发明的操作的一个或多个软件模块。例如检测一个编码类型、转换该编码类型及识别一个缺省的名称服务器的指令可以存储在海量存储设备708或714中,并与主存储器706相结合由CPU708来执行。

        尽管为了理解的方便详细地描述了上述发明,但是在所附的权利要求书的范围内可以有某些改变和修改。

    关 键  词:
    语言 域名服务
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:多语言域名服务.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1057240.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1