DNS协议

DNS协议

域名系统(Domain Name System)被用来解决主机名与IP地址的映射关系,互联网用户经常依赖DNS的功能,比如说你输入(www.google.com)的时候,你的主机怎么知道谷歌的IP地址到底是什么呢?

1为什么要有DNS呢?

这是因为我们是人,而不是机器,我们更加熟悉自然语言,而不是一些看起来毫无关系的二进制码,即使是十进制码(当然,特殊人才除外),比如说你可以记住google,Baidu等,但是你能保证你能记住104.10.1.1等看起来毫无关系的一系列数字么?所以说,其实域名系统只是为了方便我们人脑记住,而对机器来说,显然0和1更加亲切。所以DNS就是处理 网址—–>IP地址的映射。

2. 那为什么机器处理ip数据包时,直接用域名呢,为什么还要有IP地址呢?

因为IP地址的长度是固定的,ipv4(32位),ipv6(128位),而域名的长度是可变的,机器处理起来比较困难。

3. 既然只是为了处理域名和IP地址的映射,那全世界只有一台DNS服务器不就行了?

理论上,我们当然可以使用一个域名服务器,让它处理互联网上的所有主机与ip地址的映射。但是,这是一种并不现实的做法,英特网的规模极其大,让一台服务器处理来自全球的查询,(你这是要累死宝宝么!)而且,一旦这台服务器出现问题,那么意味着整个互联网处于瘫痪状态。(你这是要弄啥子里!)。

4. 说了这么半天,到底DNS是采用什么手段呢?

早在1983年,就开始使用层次树状结构的命名方法,并且采用分布式的域名服务系统。它采用一种客户服务器的方式,它使得大多数名字都在本地进行解析,仅有少量的解析需要在互联网上进行通信,因此,效率很高。而且,因为DNS是分布式的,所以,即使网络中的一台主机出现故障,也不会对整个网络造成影响。

DNS 解析过程

  1. 当某一个应用进程需要把主机名解析为IP地址是,它就调用解析程序,并成为DNS的一个服务对象,它把需解析的域名放在DNS请求报文中,以UDP的方式发送给本地域名服务器(使用UDP是为了节省开销)。
  2. 本地域名服务器在本地服务器查找该域名,如果找到,则将查找后的ip地址放在回复报文中返回给应用进程,应用进程获得以后就可以进行通信。如果没有找到,则进行第三步。
  3. 本地域名服务器向上一级域名服务器发送解析请求,它自己成为上一级DNS的服务对象,直到查找到能解析的服务器,如果最后都没有回复消息,则返回错误消息。

注:还有一篇更加详细的博客DNS详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值