TCP/IP协议—DNS

DNS协议

域名系统(Domain Name System,DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,主要用于将域名转换为IP地址(也可以将IP地址转换为相应的域名地址)。DNS使用TCP和UDP端口53。

DNS通常使用UDP进行通信,但在某些情况下,DNS可以使用TCP进行通信。

  1. 大型响应: 当DNS响应的大小超过了UDP报文的最大限制时(通常是512字节),DNS服务器可能会选择使用TCP来发送较大的响应。
  2. 如果在UDP上进行DNS通信时出现丢包或数据损坏,DNS服务器可能会尝试使用TCP来进行可靠的重传。
  3. 在DNS区域传输中,当一个DNS服务器需要从另一个DNS服务器获取大量的区域记录时,它可能会选择使用TCP来进行传输。
    虽然TCP在DNS中的使用相对较少,但它是DNS协议的一部分,用于一些特定情况下的通信。DNS在RFC 1035中定义,该标准允许DNS使用UDP和TCP进行通信。

DNS协议源文档

DNS协议特点

  • 分布式数据库系统:DNS是一种层次结构分布的数据库系统,由全球分布的DNS服务器组成,负责将域名和IP地址相互映射。
  • 分层架构:DNS采用树形结构的分层架构,从根服务器到顶级域名,再到二级和三级域名,形成清晰的层级结构。
  • 递归查询:DNS支持递归查询,允许客户端向DNS服务器发送查询请求,DNS服务器将负责解析域名并返回相应的IP地址。

DNS通信流程

以浏览器访问网页为例。

  1. 用户从浏览器中访问网页,浏览器将从URL中获取主机域名,比如百度www.baidu.com。首先浏览器会从缓存中检查是否在域名队友的IP,有则直接访问,无则会查询本机hosts文件
  2. 本机hosts文件有对应的IP则直接访问,无则将域名传给DNS应用的客户端。
  3. DNS客户端收到后将会向 DNS 服务器发送一个包含主机名的请求,请求 DNS 服务器解析这个主机名的 IP 地址。DNS地址有很多,一般默认使用的地址是8.8.8.8(谷歌全球免费DNS服务器)。
  4. DNS 服务器会给DNS客户端返回一份包含主机域名对应IP地址的报文。
  5. 浏览器收到IP地址后,即可与主机建立TCP连接,从而发送HTTP请求。

DNS报文

在这里插入图片描述

在这里插入图片描述
DNS报文一共分成3部分,分别是DNS首部(12个字节)、DNS问题、DNS资源记录(只包含在应答报文中)

DNS首部

在这里插入图片描述
DNS口部分了6部分,每个部分12字节

  • ID:DNS 报文的 ID 标识。对于请求报文和其对应的应答报文,该字段的值是相同的。
  • 标识:DNS 报文中的标志字段。
    • QR:查询请求/响应的标志信息。查询请求时,值为 0;响应时,值为 1。
    • Opcode:操作码。其中,0 表示标准查询;1 表示反向查询;2 表示服务器状态请求。
    • AA:授权应答,该字段在响应报文中有效。值为 1 时,表示名称服务器是权威服务器;值为 0 时,表示不是权威服务器。
    • TC:表示是否被截断。值为 1 时,表示响应已超过 512 字节并已被截断,只返回前 512 个字节。
    • RD:期望递归。该字段能在一个查询中设置,并在响应中返回。该标志告诉名称服务器必须处理这个查询,这种方式被称为一个递归查询。如果该位为 0,且被请求的名称服务器没有一个授权回答,它将返回一个能解答该查询的其他名称服务器列表。这种方式被称为迭代查询。
    • RA:可用递归。该字段只出现在响应报文中。当值为 1 时,表示服务器支持递归查询。
    • Z:保留字段,在所有的请求和应答报文中,它的值必须为 0。
    • RCODE:返回码字段,表示响应的差错状态。当值为 0 时,表示没有错误;当值为 1 时,表示报文格式错误(Format error),服务器不能理解请求的报文;当值为 2 时,表示域名服务器失败(Server failure),因为服务器的原因导致没办法处理这个请求;当值为 3 时,表示名字错误(Name Error),只有对授权域名解析服务器有意义,指出解析的域名不存在;当值为 4 时,表示查询类型不支持(Not Implemented),即域名服务器不支持查询类型;当值为 5 时,表示拒绝(Refused),一般是服务器由于设置的策略拒绝给出应答,如服务器不希望对某些请求者给出应答。
  • 问题计数:DNS 查询请求的数目。
  • 回答资源记录数:DNS 响应的数目。
  • 权威名称服务器计数:权威名称服务器的数目。
  • 附加资源记录数:额外的记录数目(权威名称服务器对应 IP 地址的数目)。

DNS问题

查询问题

在这里插入图片描述

  • QNAME:具体域名。
  • QTYPE:DNS 查询请求的资源类型,A表示IPv4主机地址,AAAA表示IPv6主机地址。
  • QCLASS:地址类型,通常为互联网地址,值为 1。

以下为百度的dns查询报文

在这里插入图片描述

回复问题

在这里插入图片描述

  • NAME:回复域名。
  • TYPE:回复资源类型,参考查询问题。
  • CLASS:回复地址类型,参考查询问题。
  • TTL:生存时间,以秒为单位。
  • RDLENGTH:地址长度。
  • RDATA:具体IP地址,也有可能是别名域名。

以下为百度的dns回复报文
在这里插入图片描述

DNS资源记录

在这里插入图片描述
DNS资源记录分为权威服务器区域(Authoritative nameservers)和附加信息区域(Additionnal records),两者的报文格式一致,并与回复报文一致。

  • NAME:域名,DNS 请求的域名。
  • TYPE:类型,资源记录的类型,与问题部分中的查询类型值是一样的。
  • CLASS:类,地址类型,与问题部分中的查询类值是一样的。
  • TTL:生存时间,以秒为单位,表示资源记录的生命周期,一般用于当地址解析程序取出资源记录后决定保存及使用缓存数据的时间。它同时也可以表明该资源记录的稳定程度,稳定的信息会被分配一个很大的值。
  • RDLENGTH:资源数据长度,资源数据的长度。
  • RDATA:资源数据,表示按查询段要求返回的相关资源记录的数据。

以下为百度的dns资源记录报文

在这里插入图片描述

mDNS

多播DNS(Multicast DNS,mDNS),主要实现了在没有传统DNS服务器的情况下使局域网内的主机实现相互发现和通信,使用的端口为5353,遵从dns协议,使用现有的DNS信息结构、语法和资源记录类型,并且没有指定新的操作代码或响应代码。

mDNS协议特点

  • 局域网内通讯:与单播的dns不同,mdns只在局域网内通讯,UDP端口为5353,目的是为了提供服务以及主机IP地址 。
  • 组播发送报文:使用地址224.0.0.251(ipv6:FF02::FB),并且主机域名以.local结尾。

mDNS通信流程

  1. 局域网内主机A开启了mDNS服务,并注册信息如:IP地址、提供的服务(TCP、FTP等)、端口号。
  2. 主机B加入局域网,并使用mDNS在局域网内发送查询TCP服务器的请求。
  3. 主机A收到请求后将会回复所注册的信息,主机B收到回复后即可与主机A建立TCP连接。

学习笔记,有问题欢迎指出
参考链接
https://c.biancheng.net/view/6457.html

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: TCP/IP协议安装包是安装和配置TCP/IP协议的文件集合。TCP/IP协议是一种用于网络通信的基本协议,它包括了许多子协议和工具,用于实现数据传输、网络连接和数据路由等功能。 在安装TCP/IP协议时,需要准备TCP/IP协议安装包。这个安装包通常是由操作系统或网络设备厂商提供的,可以是一个压缩文件,也可以是一个光盘或网络下载的文件。 安装TCP/IP协议的第一步是解压或挂载安装包。然后,根据操作系统的要求,选择适合的安装方式。通常,操作系统提供了图形界面和命令行界面两种安装方式,用户可以根据自己的需求选择合适的方式。 在安装过程中,用户需要提供一些必要的信息,例如IP地址、子网掩码、默认网关等。这些信息将用于配置计算机或设备的网络连接参数,确保它可以正确地与其他计算机进行通信。 安装完成后,系统会自动配置TCP/IP协议,并为计算机或设备分配一个唯一的IP地址。此时,用户可以通过使用网络工具(如ping命令)来测试网络连接是否正常。 总之,TCP/IP协议安装包是安装和配置TCP/IP协议的文件集合。它使得用户能够轻松地将TCP/IP协议部署到计算机或设备上,并实现网络通信功能。 ### 回答2: TCP/IP协议是一组用于在网络上进行数据通信的协议集合。与其他网络协议不同,TCP/IP协议是一个无需安装包的协议。它已经被集成到操作系统中,用户可以在操作系统中的网络设置中直接配置、启用和管理TCP/IP协议。 在Windows操作系统中,用户可以通过以下步骤来配置TCP/IP协议:首先,在控制面板中找到“网络和Internet设置”或“网络和共享中心”,然后选择“更改适配器设置”。接下来,在适配器设置中,找到对应的网络适配器,右键点击选择“属性”。在属性窗口中,找到“Internet协议版本4(TCP/IPv4)”或“Internet 协议版本6(TCP/IPv6)”,然后点击“属性”。在协议属性窗口中,用户可以设置IP地址、子网掩码、网关和DNS服务器等。 对于其他操作系统,如Linux和MacOS等,用户可以在网络设置或网络配置文件中找到TCP/IP协议相关的配置选项,进行相应的设置。 总的来说,TCP/IP协议不需要单独的安装包,因为它已经被集成到现代操作系统中。用户只需通过操作系统提供的网络设置界面来进行配置和管理即可。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值