计网 --- 域名服务系统:因特网的目录服务

主机名:

// 主机的一种标识方法如:
cnn.com
www.yahoo.com
gaia.cs.umass.edu
cis.poly.edu

主机名可能由不定长的字母数字组成,路由器难以处理.由于这些原因,
主机也可以使用IP地址(IP address) 进行标识

// 简略介绍ip地址
// 一个IP地址由4个字节组成,并有着严格的层次结构
// 例如:121.7.106.83这样一个IP地址,其中的每个字节都被句点分隔开来,表示了0~255的十进制数.

DNS提供的服务:

// 识别主机的方式有2种:通过主机或者IP地址
// 人们喜欢便于记忆的主机名标识方式
// 路由器喜欢定长的、有着层次结构的IP地址
// 为了折衷这些需求,就产生了DNS(Domain Name System, DNS).DNS是:
// 1.一个由分层的DNS服务器实现的分布式数据库;
// 2.一个使得主机能够查询分布式数据库的应用层协议// 注:DNS服务器通常是运行BIND(Berkeley Internet Name Domain)软件的UNIX机器
// DNS运行在UDP上面,使用端口53

DNS工作机理概述:

// 当某个用户主机上的一个浏览器请求URL www.someschool.edu/index.html页面时会发生如下:
// ·同一个用户主机上运行着DNS应用的客户端
// ·浏览器从输入的URL中提取出主机名www.someschool.edu,并将该主机名传递给DNS应用的客户端
// ·DNS客户像DNS服务器发送一个包含主机名的请求
// ·DNS客户最终会收到一份回答报文,其中包含对于该主机的IP地址.
// ·一旦浏览器接收到来自DNS的该IP地址,它能够向位于该IP地址80端口的HTTP服务器进程发起一个TCP连接

主机别名(host aliasing):

// 有些主机可能拥有一个或多个别名,如:
// relay1.west-coast.enterprise.com的主机,可能还有两个别名
// enterprise.com 和 www.enterprise.com。
// 称relay1.west-coast.enterprise.com为规范主机名
// 很明显,主机别名(enterprise.com)更容易记忆.
// 通过DNS可以主机别名查找到对应的规范主机名以及主机的IP地址

负载均衡(load distribution):

// 用于在冗余的服务器之间进行负载分配

DNS的分布式、层次数据库:

// DNS的一种简单设计是在因特网上只使用一个DNS服务器,该服务器包含所有的映射...
// 这种设计有很多缺陷(单点故障、通信容量、维护麻烦等),因此采用分布式、层次数据库// DNS使用了大量的DNS服务器,它们以层次方式组织,并且分布在全世界范围内.
// 没有一台DNS服务器拥有因特网上所有主机的映射(映射分布在所有的DNS服务器上).

DNS大致分为3类:根DNS服务器、顶级域DNS服务器和权威DNS服务器

顶级域(Top_Level Domain, TLD)DNS服务器:

// 这些服务器负责顶级域名如com、org、net、edu和gov
// 以及素有国家的顶级域名如uk、fr、ca和jp

权威DNS服务器:

// 在因特网上具有公共可访问主机的每个组织机构必须提供公共可访问的DNS记录,这些记录将这些主机的名字映射为IP地址
// 一个组织机构的权威DNS服务器收藏了这些DNS记录
// 一个组织机构能够选择实现它自己的权威DNS服务器以保存这些记录
// 另一种方法是,该组织能够支付费用,让这些记录存储在某个服务提供商的一个权威DNS服务器中

本地DNS服务器(local DNS server):

// 每个ISP都有一台本地DNS服务器(也叫默认名字服务器)
// 当主机与一个ISP连接时,该ISP提供一台主机的IP地址
// 一台主机可能有一台或堕胎本地DNS服务器的IP地址.
// 可以通过访问Windows或UNIX的网络状态窗口来确定本地DNS服务器的IP地址(ipconfig?)// 主机的本地DNS服务器通常"邻近"本主机.
// 对于某机构的ISP而言,本地DNS服务器可能就与主机在同一个局域网中
// 对于某居民区的ISP来说,本地DNS服务器通常与主机相关不超过几台路由器// 当主机发出DNS请求时,该请求被发往本地DNS服务器,它起着代理的作用
// 并将该请求转发到DNS服务器层次结构中(权威DNS服务器、TLD DNS服务器、根DNS服务器)

更详细的论述:

// 假设主机cis.poly.edu想知道主机gaia.cs.umass.edu的IP地址
// 设某理工大学的本地DNS服务器为dns.poly.edu
// 设gaia.cs.umass.edu的权威DNS服务器为dns.umass.edu
// (1)主机cis.poly.edu首先向它的本地DNS服务器dns.poly.edu发送一个DNS查询报文(含主机名gaia.cs.umass.edu)
// (2)本地DNS服务器将该报文转发到根DNS服务器
// (3)根DNS服务器注意到其edu前缀并向本地DNS服务器返回负责edu的TLD的IP地址列表
// (4)该本地DNS服务器则再次向这些TLD服务器之一发送查询报文
// (5)该TLD服务器注意到umass.edu前缀,并用权威DNS服务器的IP地址进行响应
// (6)该权威DNS服务器是负责马萨诸塞大学的dns.umass.edu
// (7)最后本地DNS服务器直接向dns.umass.edu重发查询报文,dns.umass.edu用gaia.cs.umass.edu的IP地址进行响应
// (8)本地DNS服务器将IP地址返还给端系统,// 得到ip地址后,就可以建立TCP连接了!!!

参考《计算机网络-自顶向下方法》(原书第6版)P89~P92

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251062.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ansible基础概述

一、Ansible简介 Ansible基于Python语言实现,由paramiko和PyYAML两个关键模块构建。Ansible的编排引擎可以出色地完成配置管理,流程控制,资源部署等多方面工作。Ansible公司负责Ansible开源软件的维护,管理。一般软件的更新大概每…

selenium浏览器驱动下载地址整理

今天把手头有的一些关于selenium测试的资源整理了一下,分享出来。 1. 所有版本chrome下载 是不是很难找到老版本的chrome?博主收集了几个下载chrome老版本的网站,其中哪个下载的是原版的就不得而知了。 http://www.slimjet.com/chrome/google…

DOM-12 【模拟桌面待讲评】鼠标事件深入、点击与拖拽分离、双击事件

鼠标事件深入 点击事件 mousedown mouseupposition: absolute 会将内联元素变为块级(比如a)a标签的协议限定符(伪协议,防止跳转和刷新,让href不生效),javascript:;,可以让点击和拖…

scrapy的操作

转载于:https://www.cnblogs.com/mengqingjian/p/8337772.html

http --- HTTPS是在安全的传输层上发送的HTTP

HTTPS: // HTTPS是最常见的HTTP安全版本 // 是在安全的传输层上发送的HTTP// 将HTTP报文发送给TCP之前,先将其发送给了一个安全层(通过SSL协议实现),对其进行加密.然后再发送给TCP // 在服务器端,通过提取商量好的密钥进行解密HTTPS方案: // 对Web服务器发起请求时,需要有一种…

Devexpress xaf针对某个用户登录后在面板中设置导航无效的解决方法

Devexpress xaf框架生成的项目默认情况下导航栏是显示在左侧,有时候我们用某个账户登录后,发现导航栏无法显示在左侧,操作十分不方便。我们可以去数据库删除当前登录用户的自定义布局 解决方法如下: 1、查询PermissionPolicyUser用户表&#…

DOM-13 【实战】输入及状态改变事件、京东搜索框

模块化 IIFE window.onload function () {init() }function init() {keySearch()others() // 多人开发的模块 }var keySearch (function () {var searchKw document.getElementById(J_search_kw),autoKw document.getElementById(J_autoKw),recomKw JSON.parse(document…

吴恩达“机器学习”——学习笔记二

定义一些名词 欠拟合(underfitting):数据中的某些成分未被捕获到,比如拟合结果是二次函数,结果才只拟合出了一次函数。 过拟合(overfitting):使用过量的特征集合,使模型过…

Http 概述

Http是可靠的数据传输协议。资源Web服务器是Web资源(resource)的宿主。包括静态文件以及动态的内容。 媒体类型Http对每种需要由web传输的对象都打上了名为MIME类型的数据格式标签。主要的mime类型: text/htmltext/plainimage/jpegimage/gifvideo/quickt…

DOM-14 【实战】解决事件代理和鼠标移动事件的窘态

鼠标的滑入滑出 案例 事件现象应用场景mouseover/mouseout绑定在父元素时,对她的所有子元素,事件都生效dom结构简单mouseenter/mouseleave只对她绑定的元素有效,对window绑定无效dom结构简单mousemove长触发dom结构复杂// 绑定在父元素上 /…

项目开发的一般流程

项目开发的一般流程 确定项目需求:拿下一个项目编写《需求说明书》:使用文字和图片的形式将业务表现清楚。不涉及技术,只涉及业务需求。这个环节要和客户反复沟通。编写《概要设计说明书》: 涉及技术的的宏观性的内容,…

获取日期的区间数组

Date.prototype.Format function (fmt) { //author: meizz var o { "M": this.getMonth() 1, //月份 "d": this.getDate(), //日 "h": this.getHours(), //小时 "m": this.getMinutes(), //分 "s": this.getSeconds(), /…

javascript --- 再读作用域和闭包

执行环境: // 定义了变量或函数有权访问的其他数据,决定了它们各自的行为 // 每个执行环境都有一个与之关联的变量对象 // 执行环境中定义的所有变量和函数都保存在这个变量中执行环境与函数: // 每个函数都有自己的执行环境,当执行流进入一个函数时,函数的环境就会被推入一个…

DOM-15/16【实战】鼠标行为预测技术

鼠标预测行为动作复杂,使用事件代理得不偿失,在数量有限的情况下,使用循环绑定更好用户从menu斜着向右下角滑入时,可能是进入main,也可能是要选择子菜单,在判断前先做延迟如何判断用户进入main的意图&#…

SQLMAP命令详解

1.基础信息 python sqlmap/sqlmap.py -u "http://url/news?id1" --current-user #获取当前用户名称 python sqlmap/sqlmap.py -u "http://www.xxoo.com/news?id1" --current-db #获取当前数据库名称 python sqlmap/sqlmap.py -u "http://www.xxoo.…

Nginx命令大全

sudo nginx #打开 nginx nginx -s reload|reopen|stop|quit #重新加载配置|重启|停止|退出 nginx nginx -t #测试配置是否有语法错误nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]-?,-h : 打开帮助信息 -v : 显示版本信…

ES6-1 ES6版本过渡历史

一 历史 HTML HTML 1, HTML 2, HTML 3 1991-1997 IETF(the Internet Engineering Task Force) 国际互联网工程任务组1997.1 HTML3.2 W3C JavaScript 1995 liveScript(后改名为JavaScript1996年改名)1996 javascript 1.0 1.1;1997 Jscript1997.6 ECMAScript 1.01998.6 ECMAS…

oracle 数据库查询 COALESCE字符函数

功能:返回其参数中的第一个非空表达式,当你要在n个字段中选取某一个非空值 coalesce函数返回参数(列名)中第一个非NULL的字段值,注意不是为空 select COALESCE(t1.a ,t2.a) as a from table_a t1left join table_b t2…

Django-model进阶

知识预览 QuerySet中介模型查询优化extra整体插入回到顶部QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 。它等同于SQL 的LIMIT 和OFFSET 子句。 1>>> Entry.objects.all()[:5] # (LIMIT 5)>>> Entry.objects.all()[5:10] # (OFFSE…

vue --- 修饰符.lazy、.number、.trim

.lazy: 会在转变为change事件中同步 <div id"app"><input type"text" v-model.lazy"message"><p>{{ message }}</p> </div> <script>const app new Vue({el:#app,data: {message: }}) </script> //…