目录
  1. 1. UDP用户数据报协议
    1. 1.1. UDP首部
  2. 2. DNS
    1. 2.1. 基础概念
    2. 2.2. DNS服务器类型
    3. 2.3. DNS查询方式
    4. 2.4. DNS资源记录
    5. 2.5. TCP or UDP

UDP用户数据报协议

 UDP是一种简单的面向数据报的传输层协议(TCP是面向数据流)。面向数据报,既当应用层交给UDP的数据,UDP并不会理会数据的大小而是直接在数据上封装UDP首部后直接交给网络层的IP(TCP对数据则会是大割小补,总是以TCP认为适合的数据大小进行传输)。
 UDP不提供可靠性,与IP一样是不可靠协议,数据会有丢失的可能性。
 应用程序必须关系网络层中IP数据报的长度。因为UDP是面向数据报的,不理会数据大小直接将数据交给IP,如果数据大小超过MTU则会涉及到IP分片的问题。

UDP首部

 UDP首部结构相比TCP要简单得多,如下图所示:


udp-header
  • 源端口(16位):用于表明发送进程。端口占16位表明端口最大为2^16(端口最大为65535)。
  • 目的端口(16位):用于表明接收进程。
  • UDP长度:UDP首部+UDP数据的总长度。
  • UDP校验和:校验和是校验以下三个部分:UDP首部+UDP数据+UDP伪首部

DNS

基础概念

 域名系统(DNS)提供主机名和IP地址间的转换,是一种TCP/IP应用程序的分布式数据库,具有层次化结构且不区分大小写。
 以结尾的域名称之为绝对域名完全合格域名——FQDN(Full Qualified Domain Name),比如www.google.com.(域名树的根节点即为)
顶级域名分为三部分:

  • arpa是一个用作地址到名字转换的特殊域
  • 7个3字符长的普通域。com edu gov int mil net org
  • 所有2字符长的域均是基于ISO3166中定义的国家代码。us cn

DNS服务器类型

 DNS服务器大致分成四种类型:

  • 主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改
  • 辅助域名服务器:辅助域名服务器中区域文件中的数据是从主域名服务器中复制得来,是不可以修改的。辅助域名服务器从主域名服务器复制区域数据的行为称之为区域传送(区域传送使用的是TCP 53端口)
  • 缓存域名服务器:又称唯缓存域名服务器,将查询过的结果进行缓存以便快速查询,缓存域名服务器不是权威的域名服务器,提供的信息只是间接信息。
  • 转发域名服务器:将所有非本地域名的查询转发到指定的域名服务器中。

DNS查询方式

 一般DNS提供本地域名查询,若遇到非本地域名则会采用递归查询迭代查询两种方式进行查询:

  • 递归查询(最常见的查询方式):
    由本地域名服务器代替客户端向根域名服务器发起查询请求并在域名树中上下分支中进行递归查询,最终将查询结果返回给客户端。
    比如客户端发起一个域名查询www.google.com,假设本地域名服务器没有相应记录,则本地域名服务器向根域名服务器发起查询,根域名服务器告知本地域名服务器去问.com域名服务器,以此类推本地域名服务器依次向.comgoogle.comwww.google.com发起查询请求,最终将结果返回给客户端并存入高速缓存中。
  • 迭代查询:
    迭代查询与递归查询不同的是,查询请求都有客户端自己发起。迭代查询时客户端依次向..comgoogle.comwww.google.com发起查询请求,而并非像递归查询由本地服务器发起。

DNS资源记录

 DNS资源记录常见的有5种类型,详细请参见这里

  • 主机(A):将域名FQND映射到IP 正向解析
  • 别名(CNAME):将A记录指向的域名 指向 另外一个域名
  • 邮件交换器(MX):指出当前区域内 SMTP邮件服务器IP
  • 名称服务器(NS):指出当前区域内有几个DNS服务器在提供服务
  • 反向解析(PRT):将IP解析为域名(FQND)

TCP or UDP

 DNS是使用TCP 53端口和UDP 53端口的,那么什么时候使用TCP,什么时候使用UDP呢?
 一般情况下DNS默认都是使用UDP 53,但在一些特殊情况下会使用到TCP 53

  • 应答长度超过512字节,使用TCP。DNS在UDP模式下限制报文长度在512字节以下,假若应答报文超过512字节则使用TCP
  • 区域传送使用TCP。辅助服务器与主服务器在进行区域传输时使用TCP

Powered: Hexo, Theme: Nadya remastered from NadyMain