网络名字系统
1、什么是网络名字系统:
就好比我现在要访问京东的官网,如果是正常人的话,我想肯定是直接搜索京东而不是说直接输入京东的ip(ip可以理解为你家的地址),因为京东的ip相较于他的名字肯定是更加难记的(当然我刘哥也不希望你知道)那么现在就可以将网咯名字系统看作
京东----京东的ip
2、为什么要出现网路名字系统
第一点:肯定是方便呗
第二点:可以保护网站
3、名字系统的基本功能
我现在在浏览器中输入 “京东”浏览器大概会解析这个名字发现京东是个网站然后找到他对应的ip地址,这个过程就是解析,即:
通过你输入的名字找到该名字对应IP的过程
那现在就有一个问题了,为什么我在浏览器上输入自己的名字浏览器却不能找到我的地址呢?那是因为没有告诉浏览器你个信息,即:
让浏览器知道你的名字以及你的名字对应的IP的过程就是名字注册
因为互联网使用的人数以及范围非常广范,为了不产生引起系统整体出现问题而制定的一系列规定和措施,即:
描述构造和使用名字的规则,定义一台设备的名字与系统中其他设备的名字直接如何关联以及怎样确保不产生将引起系统整体出现问题的非法名字就是名字空间定义有时也被称为名字体系结构
总结:名字系统有三个基本功能:
名字空间 -- 描述如何产生和组织名字的空间
名字注册 -- 用来建立名字和地址之间的联系
名字解析 -- 负责把名字翻译成地址
4、名字空间和名字体系结构
4.1、名字空间功能
名字长度和最大名字数量:定义了构成名字的字符的个数,它还定义了系统中可以出现的名字的最大数量
名字规则和语法:定义合法的名字是什么样子的
名字体系结构和语义:每一个名字空间都使用一个特定的体系结构或结构,它描述了如和构造和解释名字
4.2、体系结构
4.2.1、扁平名字 体系结构(扁平名字空间)
在一个扁平体系结构中,名字作为一个符号串来被分配,这个符号串被看作是一个没有任何内部结构的、单一的、完整的标签。任何名字和其他名字之间都没有明显的关联性。
4.2.2、层次名字体系结构(结构化名字空间)
在层次名字体系结构或结构化名字空间中,名字仍然是一个字符串,但这个字符串里的符号是采用一种特定的、明确的结构来分配的。每个名字都由彼此关联的离散元素构成,这些元素通常使用层次的父/子语义相关联。
现实世界中最著名的层次名字空间的例子要数DNS的名字空间(后面会讲),它是使用由句号(或圆点)分隔的文本标签来形成的内部结构,且可以通过某台设备的名字来确定这台设备在这个结构中的位置。例如,www.tcpipguide.com 指www服务器是在商业公司(.com)这把“伞”下面的命名的。
4.2.3、名字体系结构比较
扁平名字空间的所有名字都是对等的、相互之间没有关系。而在层次体系结构中,一种多级结构被用来按照某种特殊的方法组织名字。扁平系统简单,对小型网络来说足够使用。层次名字空间更加灵活、功能更加强大、更适用于大型网络和互联网络。
5、名字注册方法 、管理和权威机构
5.1、名字注册的功能
一般而言名字注册涵盖了一下四个概念和任务。
名字分配和确保唯一性:
名字注册过程的核心任务是为设备分配名字,像所有标识机制一样,名字注册的一个关键的要求就是确保你每个名字的唯一性。重复的名字将带来歧义,并使得一致性得名字解析无法实现
中央注册权威机构指派:
为确保名字得唯一性,要求存在某个机构实际负责名字的分配过程。;这一中央权威机构既可以是负责维护一个包含了名字的文件的单一机构,也可以是负责全局的名字注册过程的一个组织。权威机构还要负责注册过程中可能出现的冲突问题。
注册权威机构委托:
中央权威机构可以将名字进行划分,把不同部分注册名字的权限委托给下一级组织,这样做就要求开发和实现一种委托策略。
层次结构定义:
当使用层次结构空间时,中央权威机构负责定义结构的外观样式,而这又进一步规定了如何在层次结构中的不同部分注册名字,并理所当然地影响者权威机构地委托方式。
5.2、层次名字注册
中央权威机构定义了层次结构,并决定如何将层次结构划分成可以由其他权威机构独立管理的子集,而这些权威机构也可以依次把它们的名字子集委托出去,从而建立一个灵活的、可拓展的系统。
例如将网站网址分为 .com .cn .edu .uk等等 这样的子集。
5.3名字注册方法
1、表名注册
分配的名字由一位管理员维护在一张表中,需要添加、删除或修改名字时就对表进行编辑。通常运用在扁平名字空间中
2、广播名字注册
在注册姓名的时候像系统中的其他设备发送广播,询问是否有设备在使用这个名字,仅限于在相对较小的系统中使用
3、数据库注册
利用数据库注册,需要为名字分配一个数据库,为了注册一个名字,必须发出一个请求以便将该名字分配到数据库中。如果名字系统的权威机构完全是集中式的,则数据库也是集中式的,由该权威机构负责维护。如果层次机构某些部分的权限做了委托,这就要使用一个分布式数据库进行注册,每个权威机构负责维护描述了自己管辖的层次结构部分的那一部分数据库。
这是最复杂的技术。也是通常与类似于DNS那样层次名字系统有关的一项技术。该技术具有许多好处,包括灵活、可靠和可分布式维护等。它的主要缺点是比较复杂。
6、名字解析技术及要素
将名字翻译成计算机可以在通信中实际使用的数字地址,这种方法称为名字解析,有时也叫做名字翻译、映射或绑定。
6.1、名字解析方法
1、基于表的名字解析
当一台设备需要执行解析时,它将去查询基于表的名字注册中的那张表,该表将告诉设备如何将它需要联系的那台机器的名字转换为一个地址。这种方法只能在非常小的名字系统中使用,但它也可以作为其他方法的补充。
2、广播名字解析
当一台设备需要解析某个名字时,他将以广播一个查询来表达这样的想法:“我需要向名为X的设备发送数据,谁是X设备?”,名为X的设备将响应:“我是X,我的数字地址是N。”
3、客户机/服务器名字解析
在客户机/服务器名字解析中,服务器安装的软件程序使其能够响应客户机发出的名字的解析请求。服务器提取出请求中的名字,在数据库中查找相关关联的数字符,然后在一个响应中将其发送给客户机。
6.2、客户机/服务器名字解析功能单元
大多数大型的现代名字系统采用客户机/服务器名字解析的方法。请求/应答解析的客户机/服务器方法与其它很多协议的工作原理相近。不过,名字解析有一个独特之处在于,名字解析常常不是客户机直接调用的额。例如,很好有用户会说“请解析一下这个名字”。我们当然也不希望用户想联系某台设备时他们都要人工将名字解析为地址,因为这样太麻烦了。
相反系统是自动化的。他让软件接受用户输入机器名字,而后软件将通过把机器传递给一个名字解析器软件单元来解析这个名字。解析器在名字解析的过程中充当客户机,他将联系一台字服务器,而字服务器将对请求做出响应。名字解析器和名字服务器构成名字解析过程中的两个主要的功能单元。
7、效率、可靠性以及有关名字解析的考虑
7.1、效率考虑
高速缓存
这种能力使得设备能够记住最近做过的名字解析,把名字到映射地址保留一段时间。无论在什么时候需要解析一个名字,都会在进行正式的解析过程之前首相检查一下高速缓存。
7.2、可靠性考虑
尽管在一个单独的中心区域维护有关的系统名字系统的所有信息更为简单,但却引入了危险的单一故障点点。如果存储信息的设备出现了什么问题,则整个系统都会失效,现代名字系统利用冗余来避免让整个系统依赖于任何一个特定的设备进行解析。客户机/服务器系统采用的一种典型方案是在不同位置(或不同网络)设置多个服务器来响应名字解析请求。
7.3、其他考虑
负载均衡:负载均衡将允许一个名字映射到底层的多个地址,这样做使得发送到某个特定虚拟设备的请求事实上被定向到很多个不同的物理地址设备,从而将负载分摊到多个机器上。
反向解析:类似于知道了一个电话号码然后试着查找到该号码所属的个人或公司的名字。
型方案是在不同位置(或不同网络)设置多个服务器来响应名字解析请求。
7.3、其他考虑
负载均衡:负载均衡将允许一个名字映射到底层的多个地址,这样做使得发送到某个特定虚拟设备的请求事实上被定向到很多个不同的物理地址设备,从而将负载分摊到多个机器上。
反向解析:类似于知道了一个电话号码然后试着查找到该号码所属的个人或公司的名字。