1.DNS

     DNS 是计算机域名系统(Domain Name System 或Domain Name Service) 的缩写,它是由解析器以及域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。DNS使用TCP与UDP端口号都是53,主要使用UDP,服务器之间备份使用TCP。
  • 域名解析过程:
    • 当某个应用进程需要将主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个客户,将待解析的域名放在DNS请求报文中,以UDP数据报方式发给本地域名服务器。本地域名服务器在查找域名后,将对应的IP地址放在回答的报文中返回。应用进程获得目的主机的IP地址后即可进行通信。
  • 域名结构:
    • 域名:任何一个链接在因特网上的主机或路由器,都拥有一个唯一的层次结构名字,该名字为域名。
    • 域:名字空间中的一个可被管理的划分,可以继续划分为子域。
    • 设计原则:域名的结构由若干个分量组成,各分量之间用点隔开,如:….三级域名.二级域名.顶级域名
      • 每一级域名都由英文字母和数字组成(不超过63个字符,不区分大小写字母),除连字符外不能使用其他标点符号。
      • 类别最低的域名写在最左边,级别最高的顶级域名写在最右边
      • 完成的域名不超过255个字符。
  • 域名的层次结构如图所示
2.DNS的报文格式
     DNS定义了一个用于查询和响应的报文格式。这个报文由12字节长的首部和4个长度可变的字段组成
  • 标识字段:由客户程序设置并由服务器返回结果。客户程序通过他来确定响应与查询是否匹配。
  • 标志字段:16bit的标志字段被划分为若干子段,如图所示

  

    • QR:0表示查询报文,1表示响应报文
    • opcode:0标准查询,1反向查询,2服务器状态请求。
    • AA:表示“授权回答”,该名字服务器是授权于该域的。
    • TC:表示“可截断的”,使用UDP时,它表示当应答的总长度超过512字节时, 只返回前512个字节。
    • RD:表示“期望递归”。这个表示告诉名字服务器必须处理这个查询,也称为一个递归查询。
    • RA:表示“可用递归”。如果名字服务器支持递归查询,则在相应中将该比特设置为1。
    • zero:3bit为0
    • rcode:返回码字段。0为没有差错,3名字差错。
  • 问题部分
    • 问题部分中每个问题的格式如图所示,通常只有一个问题:
    • 查询名是要查找的名字,它是一个或多个标识符的序列。
    • 每个问题有一个查询类型,而每个相应也有一个类型。大约有20个不同的类型只,其中有一部分已经过时,最常用的查询类型是A类型,表示期望获得查询名的IP地址。

    

  • DNS报文最后三个字段:回答字段、授权字段和附加信息字段,均采用一种称为资源记录RR的相同格式。如图所示:

  

    • 域名是记录中资源数据对应的名字
    • 类型说明RR的类型码
    • 生存时间是客户程序保留该资源记录的秒数

3.DNS高速缓存

     为了减少Internet上的DNS的通信量,所有的名字服务器均使用高速缓存,存放最近用过的名字以及从何处获得名字映射信息的记录。

TCP/IP详解学习笔记(10)-- DNS:域名系统的更多相关文章

  1. TCP/IP详解学习笔记(8)-DNS域名系统

    前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要用一个指定的IP来访问一台计算机,而IP地址又非 ...

  2. TCP/IP详解学习笔记(10)-TCP连接的建立与中止

    TCP是一个面向连接的协议,所以在连接双方发送数据之前,都需要首先建立一条连接.这和前面讲到的协议完全不同.前面讲的所有协议都只是发送数据而已,大多数都不关心发送的数据是不是送到,UDP尤其明显,从编 ...

  3. TCP/IP详解学习笔记

    TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议, ...

  4. TCP/IP详解学习笔记 这位仁兄写得太好了

      TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣 ...

  5. TCP/IP详解学习笔记 这位仁兄写得太好了.(转载)

    TCP/IP详解学习笔记   这位仁兄写得太好了   TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/20444 ...

  6. 【转】TCP/IP详解学习笔记(二)

    TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据 ...

  7. TCP/IP详解学习笔记- 概述

    TCP/IP详解学习笔记(1)-- 概述1.TCP/IP的分层结构      网络协议通常分不同层次进行开发,每一层分别负责不同的同信功能.TCP/IP通常被认为是一个四层协议系统.      如图所 ...

  8. 【转】TCP/IP详解学习笔记(一)

      TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/204448.aspx TCP/IP详解学习笔记(13)-T ...

  9. TCP/IP详解学习笔记(3)-- IP:网际协议

    1.概述      IP是TCP/IP协议族中最为核心的协议.所有的TCP,UDP,ICMP,IGMP数据都以IP数据报格式传输.      IP提供不可靠,无连接的数据报传送服务. 不可靠:它不能保 ...

  10. TCP/IP详解学习笔记(9)-TCP协议概述

    终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读.前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西. TCP和UDP处在同一层---运输 ...

随机推荐

  1. [tty与uart]3.tty驱动分析

    转自:http://www.wowotech.net/linux_kenrel/183.html 目录: 1 首先分析设备驱动的注册 1.1 uart_register_driver分析 1.2 tt ...

  2. 删除SQL server 实例

    在网上找到下面几种方法,本人使用的是第一种,很实用. 1.删除 SQL Server 的特定实例若要删除 SQL Server 的某个特定实例,请按照以下步骤操作: 找到并删除%drive%:\\Pr ...

  3. iphone Dev 开发实例9:Create Grid Layout Using UICollectionView in iOS 6

    In this tutorial, we will build a simple app to display a collection of recipe photos in grid layout ...

  4. Observer - IO (File Monitor)

    1. 概述 有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己. 2. ...

  5. hdu 1532 Dinic模板(小白书)

    hdu1532 输入n,m. n条边,m个点,之后给出a到b的容量,求1到m的最大流. 注意:Dinic只能调用一次,因为原理是改变cap的值,如果调用多次一样的,那么第一次会对,其余的都会是0,因为 ...

  6. google protobuf 简单实例

    1.定义proto文件: User.proto package netty; option java_package="myprotobuf"; option java_outer ...

  7. SqlServer2005基于已有表创建分区

    随着当今数据库的容量越来越快的朝着在大型数据库或超大型数据库的发展,对于数据库中的大 型表以及具有各种访问模式的表的可伸缩性和可管理性运行环境变得尤为重要, SQL server 从 SQL serv ...

  8. mybatis的增删改查

    一.配置文件方式 mapper.xml: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  9. 收缩sql server2008 数据库

    USE DATABASENAME; GO -- Truncate the log by changing the database recovery model to SIMPLE. ALTER DA ...

  10. 大容量导入和导出 XML 文档的示例

    示例表 若要测试示例 A,必须创建示例表 T.   USE tempdb CREATE TABLE T (IntCol int, XmlCol xml); GO 示例数据文件 在运行示例 A 之前,必 ...