DNS 是一个应用层协议。 域名系统 (DNS) 的作用是将人类可读的域名 (如,www.example.com) 转换为机器可读的 IP 地址 (如,192.0.2.44)。 什么是域名?...递归型 DNS - 客户端通常不会对授权型 DNS 服务直接进行查询。而是通常连接到称为解析程序的其他类型 DNS 服务,或递归型 DNS 服务。...递归型 DNS 服务就像是旅馆的门童:尽管没有任何自身的 DNS 记录,但是可充当代表您获得 DNS 信息的中间程序。...动态映射 - 建立一套域名解析系统(DNS),只在专门的 DNS 服务器上配置主机到 IP 地址的映射,网络上需要使用主机名通信的设备,首先需要到 DNS 服务器查询主机所对应的 IP 地址。...ISP 的 DNS 解析程序将 www.example.com 的请求转发到 DNS 根名称服务器。
DNS协议端口 1.DNS网络层协议 DNS同时支持UDP和TCP访问,当名字解析器发出一个查询请求,并且返回响应报文中的TC位设置为1时,名字解析器通常使用TCP重发原来的查询请求,TCP能将用户的数据流分为一些报文段...此外,为了减轻单台DNS服务器的负载,有时要将同一DNS区域的内容保存在多个DNS服务器中(主从备份,分布式存储),这时,就要用到DNS的“区域传输”功能。...在分布式的DNS数据库中,当一个域的辅助名字服务器在启动时,将从该域的主名字服务器执行区域传送。...此外,DNS不像其他的使用UDP的应用一样,大部分操作集中在局域网上,DNS查询和响应通常经过广域网。分组丢失率和往返时间的不确定性在广域网上比局域网上更大。...这样对于DNS客户程序,一个好的重传和超时程序就显得更重要。 2.DNS使用端口 DNS服务器使用的熟知端口号无论对UDP还是TCP都是53
DNS服务器 域名和IP地址的对应关系存储在DNS服务器(DNS server)中。所谓的DNS服务器,是指在网络中进行域名解析的一些服务器(计算机)。...这些服务器都有自己的IP地址,并使用DNS协议(DNS protocol)进行通信。DNS协议主要基于UDP,是应用层协议(这也是我们见到的第一个应用层协议)。...DNS服务器构成一个分级(hierarchical)的树状体系。上图中,每个节点(node)为一个DNS服务器,每个节点都有自己的IP地址。树的顶端为用户电脑出口处的DNS服务器。...一次DNS查询就是从树的顶端节点出发,最终找到相应末端记录的过程。 中间节点根据域名的构成,将DNS查询引导向下一级的服务器。...在整个DNS查询过程中,无论是重新定向还是最终取得对应关系,都是用户计算机和DNS服务器使用DNS协议通信。用户计算机根据DNS服务器的反馈,依次与下一层的DNS服务器建立通信。
一、DNS 协议 DNS 是一整套从域名映射到 IP 的系统 1....注意:上面的整个过程用的是 UDP 协议,简单不需要建立连接 如果是 TCP 的话,本地 DNS 是将 IP 地址返回客户端,客户端和目标建立连接。 那是不是每次解析域名都要经过那么多的步骤呢?...因此,严格来说,ICMP既不是一个网络层协议,也不是一个传输层协议,而是介于两者之间的一个协议。...数据包是会被直接丢弃的(丢包),然后就没有后续了(IP 协议不能通知传输层是否丢包以及丢包的原因) 这是 IP协议 的一个设计准则决定的,也就是 best effort(尽力而为),这样的好处是让IP协议尽量保持简单的形态...,只负责有效率的数据传输,而更多的可靠性保证交给上层协议实现(如 TCP) 但并不是所有上层协议都保证可靠性,所以需要有协议辅助IP完成必要的网络质量管理。
前言 为了保证网址的正常访问,域名解析协议(DNS)其实在背后做出了很多努力,本文将透彻讲解 DNS 协议的原理,了解我们每天都在接触的网址到底是怎么工作的。 ? 1....什么是 DNS 协议 在学习 DNS 协议之前,我们先区分一下域名和 IP 地址这个两个概念: 「IP 地址」:一长串能够唯一地标记网络上的计算机的数字 「域名」:又称网域,是由一串用点分隔的名字组成的...「通过域名解析协议(DNS,Domain Name System)来将域名和 IP 地址相互映射」,使人更方便地访问互联网,而不用去记住能够被机器直接读取的 IP 地址数串。...DNS 协议可以使用 UDP 或者 TCP 进行传输,使用的端口号都为 53。但「大多数情况下 DNS 都使用 UDP 进行传输」。 ❞ 2. 域名详解 ❓ 那么域名由谁来规定和管理呢?...完整域名解析过程 OK,将我们上面所说的域名服务器之间的 DNS 查询请求过程和域名缓存结合起来,就是一个完整的 DNS 协议进行域名解析的过程。
DNS 的记录 DNS 中所说的记录,指的是域名和 IP 的对应关系。根据使用场景,有不同类型的记录: A记录:地址记录。...若没有,进入下一步,开始进行域名的迭代解析 本地 dns 将域名发送给根dns,根dns 发现域名中包含 com,于是返回负责解析 com 的顶级dns的 ip 地址 本地 dns 将域名发送给顶级dns...,顶级dns 发现域名中包含 qq.com,于是返回负责解析 qq.com 的权威dns的 ip 地址 本地 dns 将域名发送给权威dns,权威dns 发现域名中包含 join.qq.com,于是查找...ip 地址,于是通过三次握手与服务器建立 tcp 连接,接着发送 http 请求 PS:顶级 dns 解析的是 .com,权威 dns 解析的是 join.qq.com,那么一开始根 dns 解析的是什么呢...若没有,进入下一步,开始进行域名的迭代解析 本地 dns 将域名发送给根dns,根dns 发现域名中包含 com,于是返回负责解析 com 的顶级dns的 ip 地址 本地 dns 将域名发送给顶级dns
根 DNS 服务器:返回顶级域 DNS 服务器的 IP 地址; 顶级域 DNS 服务器:返回权威 DNS 服务器的 IP 地址; 权威 DNS 服务器:返回相应主机的 IP 地址。...DNS 解析流程 上面说了 DNS 服务器面临大流量访问的压力,因此,为了提高 DNS 的解析性能,很多网站都会就近部署 DNS 缓存服务器。...如果没有找到,本地 DNS 会去问它的根域名服务器; 根 DNS 收到来自本地 DNS 的请求,返回 .com 对应的顶级域名服务器的地址。...它发现请求的域名后缀是 .com,就会返回 .com 对应的顶级域名服务器的地址; 本地 DNS 服务器收到顶级 DNS 服务器地址,请求顶级 DNS 服务器查询域名 IP; 顶级 DNS 服务器返回权威...参考: 维基百科-域名系统 词条; 知乎-域名解析; 刘超 - 趣谈网络协议系列课;
UDP洪流攻击是导致基于主机的服务拒绝攻击的一种。用户数据报协议(UDP)是一种无连接协议,它不需要用任何程序建立连接来传输数据。...当数据包经由UDP协议发送时,发送双方无需通过三次握手建立连接,接收方必须接收处理该资料包。因此大量的发往受害主机UDP报文能使网络饱和。...通常,攻击中的DDOS工具会伪造攻击包的源IP地址。这有助于隐藏代理的身份,同时能确保来自受害主机的响应消息不会返回到代理。...如果向受害者计算机端口发送了足够多的UDP数据包,整个系统就会瘫痪。 这也是很多游戏开发者在租用服务器时会选择封UDP的原因了。...3、如果用户必须提供一些UDP服务的外部访问,可以使用代理机制来保护服务,使它不会被滥用。 4、对用户的网络进行监控以了解哪些系统在使用这些服务,并对滥用的迹象进行监控。
1.初识网络层(了解即可) 网络层做的事情就是下面的两个: 1)地址管理:就是对于这个地址的分配; 2)路由选择:两个节点之间的路径有很多,我们需要进行规划; 网络层主要就是学习这个IP协议: ...IP-v4:这个图上面的4位版本; IP-v6:如果上面的这个是6位版本就是我们的IP-v6; 上面的两个就是最常见的两个情况 3)16位总长度:IP数据包的总长度; IP协议支持拆包组包的功能...,协议自己是支持的,不需要我们自己手动实现; 4)16位标识:如果一个大包需要拆成多个小包,我们的小包的这个属性就是一样的; 13位偏移:越小数据越靠前,越大数据越靠后,对于我们的数据进行排序; ...DNS应用层协议 IP地址描述网络上面不同设备的位置; IP地址不适合进行宣传,我们使用域名进行宣传www.baidu.com这样的就是域名; 域名IP之间的这个相互转换,根据可以接受的域名转换为这个IP...DNS服务器,这个是一组服务器,我们想要对于这个IP和域名之间的这个转换进行更新的时候,直接对于这个一组服务器进行操作,但是又有新的问题: 如果对于这组服务器的访问量过大,这个时候我们的这组服务器是不是会出现问题
原理分析 这个虽然是利用到了比如说 mysql 的 LOAD_FILE 函数,其实本质还是对 windows 的资源管理器的一个利用,利用协议 // 去进行一个子域名的 DNS 解析,将你需要的(你取得的一些有用信息当做子域名信息给传递出来...) 先了解下 DNS 解析的基本原理吧 一张图解释 DNS 查询过程 ?...比如输入 www.163.com,这时,你使用的电脑会发出一个 DNS 请求到本地 DNS 服务器。本地 DNS 服务器一般都是你的网络接入服务器商提供,比如中国电信,中国移动。...2、查询 www.163.com 的 DNS 请求到达本地 DNS 服务器之后,本地 DNS 服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。...3、根 DNS 服务器没有记录具体的域名和 IP 地址的对应关系,而是告诉本地 DNS 服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。
三.分析阶段 截获的所有报文如下: ? 总得来看有两个DNS包(一次域名解析),和8个ICMP包(四次ping) 下面开始分析DNS的工作过程: 打开第一个包: ?...可以发现DNS为应用层协议,下层传输层采用UDP,再下层网络层是IP协议,然后是数据链路层的以太网帧. 需要关注的是应用层的实现也即DNS协议本身....在此之前,可以从下层获得一些必要信息: UDP(User Datagram Protocol)报文中:DNS的目的端口(Dst Port)是53 IPv4(Internet Protocol Version...展开DNS数据: ? 第一个是Transaction ID为标识字段,2字节,用于辨别DNS应答报文是哪个请求报文的响应....Class(类):2字节,IN表示Internet数据,通常为1 ---- 下面是截获的第二个DNS包: ?
本节,我们基于上一节理论的基础上,用代码实现DNS数据包的发送和解析。这里有两点需要重复,一是我们将使用DNS的递归式传输模式,也就是消息的发送如下图: ?...第二个值得我们了解的要点是DNS数据包的基本格式: ? 它包括固定的头部,以及相应的消息体部分。由于头部内容固定不变,因此我们可以在代码实现中写死,它的基本组成结构如下: ?...重要的是有两个可变的数据部分需要我们掌握,一个是Question数据格式,它包含了客户端向服务器请求的内容格式,它的组成如下: ?...当我们想要解析某个域名对应的IP时,我们需要按照上面的结构组织信息发布给服务器,服务器顺利解读后会给我们发送如下格式的应答信息: ?...由此我们代码的目的是构造包头,然后将要查询的域名信息按照上面给出的Question数据格式组织好发送给路由器并等待其回复,拿到回复数据包之后,我们再按照上头anwser resource格式解析服务器返回的数据
本文将详细解析TCP/IP协议栈、HTTP、HTTPS和DNS等关键协议的原理及其应用,帮助读者从根本上理解这些协议的作用和工作机制。...协议DNS(Domain Name System)是互联网的域名解析系统,它将人类易读的域名转换为计算机可以识别的IP地址。...DNS通过递归查询和迭代查询,逐级解析域名,最终返回对应的IP地址。...例如,当用户在浏览器中输入网址并按下回车键时,以下过程依次发生:DNS解析:浏览器通过DNS解析,将域名转换为服务器的IP地址。TCP连接:浏览器与服务器通过TCP进行三次握手,建立可靠的传输连接。...总结通过本文的介绍,我们详细解析了TCP/IP协议栈、HTTP、HTTPS和DNS等关键网络协议的原理及其应用。
(1)DNS报文格式 上图就是DNS报文的格式,从上图可以看出,DNS报文格式分为五大部分。...首先看看Header段中每个字段的含义: DNS ID号(DNS ID Number): 用来对应DNS查询和DNS响应 查询/响应(Query/Response, QR): 用来指明这个报文是... 额外记录数(Additional Records Count):在额外信息区段中的记录数 问题区段(Question Section):包含有被发送到DNS服务器的一条或者多条信息 ...(2)捕获DNS数据包 打开Wireshark,捕捉数据,然后打开浏览器,输入网址:www.baidu.com 可以明显的看到18帧是DNS请求帧,19帧是DNS回应帧 (3)分析DNS请求帧...,对应的是18帧 从上图的分析可看出,请求计数为1,请求的主机域名为:www.baidu.com (4)分析DNS响应帧,对应的是19帧 从上图可以看到,问题计数1个,也就是对应的请求帧中的问题
DNS协议的运转需要客户端和服务器进行交互。由于服务器端需要存储大量的域名信息,同时每天需要应答海量的解析请求,因此它的设计必须遵循分布式系统。...我们用wireshark抓取dns有关的消息包后,对照上面描述的条目进行解析。...启动wireshark,然后使用关键词dns过滤,然后在浏览器里输入一个你以前没有访问过的网址,如果输入已经访问过的,浏览器会有缓存,因此不会走dns协议。...由此一个DNS域名解析数据包的轮廓如下: ? 接下来我们看看问题段数据结构,它结构如下: ? 首先是问题名字,这个字段长度可变,存储的是要查询的域名,以0作为结尾。...为了简单起见,其他两种资源的数据格式我们暂时放一放,以后需要的时候才研究,在下一节我们将使用代码实现本节描述的DNS域名解析流程。
作为互联网的技术基础的ARPANET(The Advanced Research Projects Agency Network)是第一个具有分布式控制的广域分组交换网络,也是最早应用 TCP/IP 协议的网络设施...DNS的组成 讲解完DNS的功能之后,让我们来看看DNS的组成,作为一个域名服务,DNS是由域名空间和Name servers两部分组成的。...浏览器缓存就是由浏览器负责维护的DNS缓存,而操作系统DNS缓存是操作系统级的DNS缓存。...DNS消息的结构 既然有DNS查询,那么就会有DNS查询的消息结构,DNS消息可以分为两种,分别是查询消息和回复消息。...总结 以上就是DNS的结构和DNS工作的基本流程。
由我们发出请求解析 DNS 的时候,首先会连接到运营商本地的 DNS 服务器,由这个服务器帮我们去整棵 “DNS 树” 上进行解析,然后将解析的结果返回给客户端。...上面总结了 DNS 的五个问题。问题有了,总得有解决办法,就像因为 HTTP 的安全问题,才火了 HTTPS 协议一样,对应的,也有 HTTPDNS 来解决上述 DNS 出现的问题。...其实很简单: HTTPDNS 是基于 HTTP 协议和域名解析的流量调度解决方案。它不走传统的 DNS 解析,而是自己搭建基于 HTTP 协议的 DNS 服务器集群,分布在多个地点和多个运营商。...这就相当于每家基于 HTTP 协议,自己实现自己的域名解析,做一个自己的地址簿,而不使用统一的地址簿。...参考: HTTPDNS 的原理; 刘超 - 趣谈网络协议系列课;
作为互联网的技术基础的ARPANET(The Advanced Research Projects Agency Network)是第一个具有分布式控制的广域分组交换网络,也是最早应用 TCP/IP 协议的网络设施...DNS的功能 前面我们也提过了,DNS最基本的作用就是将用户提供的域名转换成为服务器的地址。...DNS的组成 讲解完DNS的功能之后,让我们来看看DNS的组成,作为一个域名服务,DNS是由域名空间和Name servers两部分组成的。...浏览器缓存就是由浏览器负责维护的DNS缓存,而操作系统DNS缓存是操作系统级的DNS缓存。...DNS消息的结构 既然有DNS查询,那么就会有DNS查询的消息结构,DNS消息可以分为两种,分别是查询消息和回复消息。
2、WireShark学习理解DNS报文 这里注意因为 Wireshark的捕获过滤器无法设置DNS协议,又因为DNS是基于 UDP协议的,所以这里捕获过滤器我们就设置为 UDP就好。...弱网环境下,因为DNS使用的传输协议是不可靠的 UDP,又因为DNS查询的过程是一个递归的过程,所以DNS查询在弱网环境下是有概率失败的。...5、DNS真的是基于UDP协议的吗?...其实DNS协议真的不是完全基于UDP协议的,DNS的协议里面其实有主DNS服务器和辅DNS服务器的概念,辅DNS服务器在启动的时候会主动去主DNS服务器上拉取最新的该区域DNS信息。...这里有人可能会想到,为什么不用UDP协议来完成这个过程,因为UDP协议最大只能传送512个byte的数据,而辅DNS要拉取该区域的DNS信息很容易就超过这个最大报文数量的限制,所以这里采用的就是TCP协议来完成拉取数据的操作
DNS(Domain Name System, 域名系统)是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便地访问互联网,而不是用去记住能够被机器直接读取的IP数串。...虽然域名便于人们记住,但是主机之间只能互相认识IP地址,所以它们之间的转化就需要DNS来完成。 ...上图表示DNS将www.baidu.com解析后的IP地址为: 119.75.217.109 (2)DNS的系统结构 在整个互联网中,如果将数亿的主机的域名和IP地址的对应关系交给一台DNS服务器管理...因此,整个域名系统采用了分布式数据库的方式,讲不同范围内的域名IP地址对应的关系交给不同的DNS服务器管理,这个分布式数据库采用树形结构。...如下图 (3)DNS系统解析过程 接下来以www.abc.com.cn域名为例子讲解DNS系统解析的过程 a:DNS客户端向本地域名服务器发送一个查询递归查询,请求查找www.abc.com.cn
领取专属 10元无门槛券
手把手带您无忧上云