加入收藏 | 设为首页 | 会员中心 | 我要投稿 江门站长网 (https://www.0750zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

面试反客为主

发布时间:2021-04-11 16:50:19 所属栏目:传媒 来源:互联网
导读:上到下域名之间相互包含跟嵌套,根域名服务器是关键,必须是众所周知的,找到了它,下面的各级域名服务器才能找到,否则域名解析就无从谈起了。我们看下请求 www.baidu.com 的 DNS 解析流程: 首先访问根域名服务器,根域名是不做域名解析,只是给你指路用的

上到下域名之间相互包含跟嵌套,根域名服务器是关键,必须是众所周知的,找到了它,下面的各级域名服务器才能找到,否则域名解析就无从谈起了。我们看下请求 www.baidu.com 的 DNS 解析流程:

  1. 首先访问根域名服务器,根域名是不做域名解析,只是给你指路用的,现在你获取 com 顶级域名服务器的地址。
  2. 请求 com 顶级域名服务器,返回 baidu.com 域名服务器的地址。
  3. 然后请求 baidu.com 域名服务器,返回 www.baidu.com 的地址。

这样进行 DNS 的流程是OK的,但问题是全球数十亿的PC电脑,如果每个电脑请求上网都按照上面流程走一波,那上面的 DNS 核心解析系统瞬间爆炸!解决办法就是用缓存,很多大公司跟运营商都会搭建自己的 DNS 服务器来代替用户请求核心 DNS 系统,如果查到的话可以缓存查询记录,再次收到请求的号如果有缓存结果或者缓存未过期,则直接返回原来的缓存结果,知名的 Google 8.8.8.8 DNS 解析服务器,就是 Google 自建的非权威域名服务器 。除了非权威域名服务器,我们经常看到的有浏览器缓存,操作系统缓存,比如 /etc/

  1. 用户输入网址先看下浏览器的DNS缓存是否过期,没过期直接拿来用。过期了看看本地操作系统缓存 /etc/hosts 文件等。
  2. 请求本地配置的 非权威域名服务器 DNS resolver。
  3. DNS resolver 将网址转发到根域名请求,返回 com 域名地址。
  4. DNS resolver 将网址转发到 com 域名的服务器请求,返回跟 baidu.com 相关的 权威DNS解析器。
  5. DNS resolver 将网址转发权威 DNS 解析器继续请求,然后返回真正的目标域名IP。
  6. DNS resolver 最终将目标 IP 返回给用户继续接下来的访问请求。

3.2 TCP

3.2.1 TCP 头部讲解

TCP 是一个是面向连接的、可靠的、基于字节流的、工作在传输层的数据传输服务。用 TCP 传输数据能确保接收端接收的网络包是无损坏、无间隔、非冗余、有序

  1. 目的端口:指明接收者所用的端口号,一般由应用程序来指定。
  2. 序列号:建立连接时客户端生成随机数作为初始值,通过 SYN 包传给接收端主机,每发送一次数据,就累加一次。序列号达到最大值会出现序列号回绕,再次从0 开始。核心作用就是 接收方去重数据 + 按序接收。
  3. 确认号:用来解决不丢包的问题,指定下一次希望收到的数据的序列号,发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收。
  4. 数据偏移:表示 TCP 报文段的首部长度,4 位二进制最大表示15,由于TCP首部包含个可变长度选项,需要指定这个 TCP 报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。该字段的单位是4字节,所以TCP首部最大15*4 = 60字节。
  5. 保留:保留6位,未使用,应置零。

下面的7~12是控制位,用来表示说明报文段的性质

7.URG:表示本报文段中发送的数据是否包含紧急数据。只有当 URG=1 时后面的紧急指针字段urgent pointer才有效。

8.ACK:表示是否前面确认号字段是否有效。只有当 ACK=1 时,前面的确认号字段才有效。TCP 规定连接建立后 ACK=1,带 ACK 标志的TCP报文段称为确认报文段。

9.PSH:提示接收端需立即从 TCP 接收缓冲区中读走数据,为接收后续数据腾出空间。为1表示对方应当立即把数据提交给上层应用,如果应用程序不将接收到的数据读走,就会一直停留在 TCP 接收缓冲区中。

10.RST:收到一个 RST=1 的报文说明与主机的连接出现了严重错误,必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带 RST 标志的 TCP 报文段称为复位报文段。

11.SYN:建立连接时用来同步序号。SYN=1 说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中 SYN 才置为1,带 SYN 标志的 TCP 报文段称为同步

  1.  
  2. 目的端口:指明接收者所用的端口号,一般由应用程序来指定。
  3. 序列号:建立连接时客户端生成随机数作为初始值,通过 SYN 包传给接收端主机,每发送一次数据,就累加一次。序列号达到最大值会出现序列号回绕,再次从0 开始。核心作用就是 接收方去重数据 + 按序接收。
  4. 确认号:用来解决不丢包的问题,指定下一次希望收到的数据的序列号,发送端收到这个确认应答以后可以认为在这个序号以前的数据都已经被正常接收。
  5. 数据偏移:表示 TCP 报文段的首部长度,4 位二进制最大表示15,由于TCP首部包含个可变长度选项,需要指定这个 TCP 报文段到底有多长。它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。该字段的单位是4字节,所以TCP首部最大15*4 = 60字节。
  6. 保留:保留6位,未使用,应置零。

下面的7~12是控制位,用来表示说明报文段的性质

7.URG:表示本报文段中发送的数据是否包含紧急数据。只有当 URG=1 时后面的紧急指针字段urgent pointer才有效。

8.ACK:表示是否前面确认号字段是否有效。只有当 ACK=1 时,前面的确认号字段才有效。TCP 规定连接建立后 ACK=1,带 ACK 标志的TCP报文段称为确认报文段。

9.PSH:提示接收端需立即从 TCP 接收缓冲区中读走数据,为接收后续数据腾出空间。为1表示对方应当立即把数据提交给上层应用,如果应用程序不将接收到的数据读走,就会一直停留在 TCP 接收缓冲区中。

10.RST:收到一个 RST=1 的报文说明与主机的连接出现了严重错误,必须释放连接,然后再重新建立连接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带 RST 标志的 TCP 报文段称为复位报文段。

11.SYN:建立连接时用来同步序号。SYN=1 说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中 SYN 才置为1,带 SYN 标志的 TCP 报文段称为同步

(编辑:江门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读