TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP)

时间:2022-05-11 10:34:10

@本系列文章是在阅读TCP/IP协议:详解的过程中,根据稳重内容,对重要知识点做的总结,不包含个人观点,插图均来自书中。

第14章:DNS:域名系统

  • 应用层协议
  • DNS是一种一种用于TCP/IP应用程序的分布式数据库,"分布式"是指Internet单个站点不能拥有所有的信息,只保留自己的信息数据库,并运行一个服务器程序供Internet上的其他系统查询.DNS提供了允许服务器和客户程序相互通信的协议.
  • DNS的访问是通过地址解析器(resolver)完成的,解析器通常是应用程序的一部分,解析器并不像TCP/IP协议那样是操作系统的内核,操作系统内核中的TCP/IP协议族对于DNS一点都不知道
  • 域名树
    *域名被分为三个部分:
    • a r p a是一个用作地址到名字转换的特殊域
    • 7个3字符长的普通域。有些书也将这些域称为组织域
    • 所有2字符长的域均是基于 I S O 3 1 6 6中定义的国家代码这些域被称为国家域,或地理域 
      TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP)
      TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP)
      注:普通域中只有. g o v和. m i l域局限于美国
  • 只有一个机构,网络信息中心 N I C负责分配*域和委派其他指定地区域的授权机构
  • DNS报文
    • DNS定义了用于查询和响应的报文格式.
      TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP)
      标识字段由客户程序设置并由服务器返回结果
      16 bit的标志字段被划分为若干子字段
      TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP) 
      TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP) 
      TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP)    
    • 问题
      TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP) 
      • 查询名
        TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP) 
      • 查询类型
        TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP)
      • 查询类通常是1,指互联网地址 
    • 资源记录(RR[Resource Record])
      • 格式
        TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP) 
        • 域名:同查询名
        • 类型:同查询类型
        • 类:通常是1,指互联网地址
        • 生存时间字段:是客户程序保留该资源记录的秒数。资源记录通常的生存时间值为2天
        • 资源数据长度说明资源数据的数量。该数据的格式依赖于类型字段的值。对于类型 1(A记录)资源数据是 4字节的I P地址。
  • 指针查询
    • 给定一个 I P地址,返回与该地址对应的域名
  • D N S的一个基本特性是使用超高速缓存
    • 为了减少Internet上DNS的通信量,所有的名字服务器上均使用高速缓存.
  • 区域传送将使用 T C P, 因为数据同步传送的数据量比一个请求和应答的数据量要多得多,(不使用udp的原因是,udp一般不进行分片,分片容易造成大量的数据丢失);
    域名解析时使用UDP协议,客户端向DNS服务器查询域名,一般返回的内容都不超过512字节

第15章:TFTP:简单文件传输协议

  • 使用UDP.69端口
  • 报文格式
    TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP)
  • T F T P的优点在于实现的简单而不是高的系统吞吐量。
  • (1)既然T F T P使用不可靠的 U D P,T F T P就必须处理分组丢失和分组重复.分组丢失可通过发送方的超时与重传机制解决.(2)T F T P报文中没有检验和,它假定任何数据差错都将被 U D P的检验和检测到
  • T F T P协议需要客户进程向服务器进程的 U D P熟知端口(6 9)发送第一个分组(R R Q或W R Q)。之后服务器进程便向服务器主机申请一个尚未使用的端口( 如1 0 7 7),服务器进程使用这个端口来进行请求客户进程与服务器进程间的其他数据交换。客户进程的端口号没有变化。
  • 注意在T F T P分组中并不提供用户名和口令。这是 T F T P的一个特征(即“安全漏洞”)

第16章:BOOTP:引导程序协议

  • 一种用于无盘系统进行系统引导的替代方法,又称为引导程序协议(之前的方法是使用RARP获取自己的IP地址);B O O T P还能返回其他的信息,如路由器的 I P地址、客户的子网掩码和名字服务器的 I P地址.
  • B O O T P使用 U D P,通常需与 T F T P协同工作
  • 请求和应答格式
    TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP)
    TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP)
    • “跳数”字段由客户设置为 0,但也能被一个代理服务器设置
    • “事务标识”字段是一个由客户设置并由服务器返回的 32 bit整数。客户用它对请求和应答进行匹配。对每个请求,客户应该将该字段设置为一个随机数。
    • 客户开始进行引导时,将“秒数”字段设置为一个时间值。服务器能够看到这个时间值,备用服务器在等待时间超过这个时间值后才会响应客户的请求,这意味着主服务器没有启动。
    • 如果该客户已经知道自身的 I P地址,它将写入“客户 I P地址”字段。否则,它将该字段设置为 0。对于后面这种情况,服务器用该客户的 I P地址写入“你的 I P地址”字段。“服务器I P地址”字段则由服务器填写。如果使用了某个代理服务器,则该代理服务器就填写“网关 I P地址”字段。
    • 客户必须设置它的“客户硬件地址”字段。尽管这个值与以太网数据帧头中的值相同,U D P数据报中也设置这个字段,但任何接收这个数据报的用户进程能很容易地获得它(例如一个BOOTP 服务器)。一个进程通过查看 U D P数据报来确定以太网帧首部中的该字段通常是很困难的(或者说是不可能的)。
    • “服务器主机名”字段是一个空值终止串,由服务器填写。服务器还将在“引导文件名字段”填入包括用于系统引导的文件名及其所在位置的路径全名。
    • “特定厂商区域”字段用于对 B O O T P进行不同的扩展。(之后会讨论)
  • B O O T P有两个熟知端口: BOOTP 服务器为 6 7,BOOTP 客户为6 8.
  • B O O T P客户通常固化在无盘系统只读存储器中,因此了解BOOTP 服务器的实现将更有意义。
  • BOOTP穿越路由器
  • 特定厂商信息
    TCP/IP详解:协议(基于UDP的DNS,TFTP,BOOTP)