zoukankan      html  css  js  c++  java
  • DNS协议(一)

     

    在互联网上要想与另外一台主机通信,要知道对方的IP地址,但是IP地址是很难记忆的,

    比如百度的一台服务器的IP地址为115.239.210.27,我们在浏览器中输入http://115.239.210.27/就可以访问百度了,但是如果访问一个网站就要记住它的的IP是很蛋疼的事,人们习惯记住有意义的字符串,比如baidu

     

    域名系统(英文Domain Name System缩写:DNS)是因特网的一项服务。它作为将域名IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网DNS 使用TCPUDP端口53

     

    DNS服务是如何实现的呢?

    首先我们的电脑里面都会有一个DNS服务器(Name Server)的IP地址,可以手动设置也可以自动获取,有名的DNS服务器包括google8.8.8.8 阿里巴巴的223.5.5.5等,查看自己电脑的DNS服务器的IP地址可以在windows命令行下输入ipconfig /all,在linux下面则通过more /etc/resolv.conf查看。

     

    客户端发起访问请求www.163.com:

    1.查看本地hosts文件,发现没有www.163.com IP 映射关系,将请求发送给本地DNS服务器( ----递归查询----)                          

    2.本地DNS服务器不包含163.com的权威域,不存在对应的www记录,因此将请求转发到根域名服务器(假如  a.root-servers.net.)   

    3.根域名DNS服务器会返回负责.com域解析的服务器(假如 a.gtld-servers.net.)给本地DNS服务器,本地DNS服务器再将请求发送给 a.gtld-servers.net                                  

    4..com域名服务器只能返回负责163.com域的解析服务器(如 ns1.nease.net.)给本地DNS服务器,本地DNS服务器再将请求发送给ns1.nease.net.                                

    5.ns1.nease.net.域名服务器返回www.163.com 的 IP映射关系给本地DNS服务器

                             (2-5过程)----迭代查询----

    6.本地DNS服务器将结果保存到本地缓存,并保持TTL时间,同时将结果应答给客户端.                                

    7.当其他客户端再次向本地DNS服务器查询www.163.com时,在TTL时间内,本地DNS服务器不再向根域名服务器转发请求,而是直接从缓存中读取数据应答给客户端如果已经超过TTL时间,则本地DNS服务器会再次经历一次上诉2-6的过程.

     

     

     

     

     

    以后会结合Wireshark分析DNS报文的每个字段详细意思,以及DNS查询的其它细节问题。

     

    【参考文献】

    http://magic3.blog.51cto.com/1146917/1354084

    http://www.360doc.com/content/11/0809/17/706976_139190573.shtml

    http://zh.wikipedia.org/zh/域名系统

     

  • 相关阅读:
    ajax发送cookies
    关于几个入口
    关于.net的概念
    codeproject
    Chrome extension
    modern web application
    JavaScript类型转换
    js方法在iframe父子窗口
    javascript book
    MVC Controller
  • 原文地址:https://www.cnblogs.com/anning/p/3869023.html
Copyright © 2011-2022 走看看