大数据复习之TCP/IP协议

一、TCP/IP

TCP/IP协议讲解原文链接

TCP硬核图解链接

1.计算机网络结构分层

OSI(开放系统互联) TCP/IP 功能 TCP/IP协议族
应用层 文件传输,电子邮件,文件服务等 TFTP、HTTP、SNMP、FTP、SMTP、DNS、Telnet
表示层 应用层 数据格式化、数据加密、代码转换
会话层 解除或建立与其他节点的联系
传输层 传输层 提供端对端的接口 TCP、UDP
网络层 网络层 为数据包选择路由 IP、ICMP、RIP、OSFP、BGP、IGMP
数据链路层 链路层 传输有地址的帧及错误检测功能 SLIP、CSLIP、PPP、ARP、RARP、MTU
物理层 以二进制数据形式在物理媒体上传输数据 IS02110、IEEE802,IEEE802.2

TCP/IP与OSI在分层上有所区别,OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开发哪种程序”。

2.TCP/IP基础

2.1.TCP/IP的概念

TCP/IP代表互联网中利用 IP 进行通信时所必须用到的协议族的统称。互联网进行通信时,需要相应的网络协议,TCP/IP 原本就是为使用互联网而开发制定的协议族。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。

2.2.数据包的概念

包、帧、数据包、段、消息都是数据的单位,区别如下:

  • 包:比较全能的术语
  • 帧:用于表示数据链路层中包的单位
  • 数据包:网络层以上包的概念
  • 段:TCP数据流中的信息
  • 消息:协议中的数据单位

网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分是上一层传过来的数据。首部的结构由协议的具体规范详细定义。在数据包的首部,明确标明了协议应该如何读取数据。反过来说,看到首部,也就能够了解该协议必要的信息以及所要处理的数据。包首部就像协议的脸。
大数据复习之TCP/IP协议

2.3.数据处理流程

大数据复习之TCP/IP协议

  1. 应用程序处理:
    首先应用程序会编码处理,编码转化后,控制何时建立通信连接与何时发送数据。
  2. TCP模块的处理:
    TCP负责建立连接、发送数据以及断开连接,将应用层发来的数据顺利发送到对端的可靠传输。为此,在应用层数据的前端附加一个TCP头部。
  3. IP模块的处理:
    IP将TCP传过来的TCP头部和TCP数据当作自己的数据,并在TCP头部的前端加上自己的IP的首部。IP包生成后,参考路由控制表决定接受此IP包的路由或主机。
  4. 网络接口(以太网驱动)的处理:
    从 IP 传过来的 IP 包对于以太网来说就是数据。给这些数据附加上以太网首部并进行发送处理,生成的以太网数据包将通过物理层传输给接收端。
  5. 网络接口(以太网驱动)的处理:
    主机收到以太网包后,首先从以太网包首部找到 MAC 地址(硬件网卡地址)判断是否为发送给自己的包,若不是则丢弃数据。如果是发送给自己的包,则从以太网包首部中的类型确定数据类型,再传给相应的模块 。
  6. IP模块的处理:
    IP 模块接收到 数据后也做类似的处理。从包首部中判断此 IP 地址是否与自己的 IP 地址匹配,如果匹配则根据首部的协议类型将数据发送给对应的模块
  7. TCP 模块的处理:
    在 TCP 模块中,首先会计算一下校验和,判断数据是否被破坏。然后检查是否在按照序号接收数据。检查端口号,确定具体的应用程序。数据被完整地接收以后,会传给由端口号识别的应用程序。
  8. 应用程序的处理:
    接收端应用程序会直接接收发送端发送的数据。通过解析数据,展示相应的内容。

3.TCP和UDP

TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP。

  • TCP是面向连接的、可靠的、基于字节流的传输层通信协议。TCP可以确保发送的顺序,但会以无间隔的数据流形式发送。TCP为提供可靠性传输,实行“顺序控制、重发控制”,还有用于提高网络利用率的“流控制、拥塞控制”等功能。
  • UDP不具有可靠性,能确保发送消息的大小,但不保证消息一定到达,因此,应用会根据需求进行重发处理。
  • TCP 和 UDP 的优缺点无法简单地、绝对地去做比较:TCP 用于在传输层有必要实现可靠传输的情况;而在一方面,UDP 主要用于那些对高速传输和实时性有较高要求的通信或广播通信。TCP 和 UDP 应该根据应用的目的按需使用。
3.1.端口号

数据链路和 IP 中的地址,分别指的是 MAC 地址和 IP 地址。前者用来识别同一链路中不同的计算机,后者用来识别 TCP/IP 网络中互连的主机和路由器。在传输层也有这种类似于地址的概念,那就是端口号。端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。

TCP/IP层级 寻址标识
应用层(应用程序)
传输层(TCP) 端口号
网络层(IP) IP地址
链路层(物理连接) MAC地址

一个通信是通过网络层:源IP地址、目标IP地址、协议号;传输层:源端口号、目标端口号这五个元素识别的。
大数据复习之TCP/IP协议

  • ① 和② 的通信是在两台计算机上进行的。它们的目标端口号相同,都是80。这里可以根据源端口号加以区分。
  • ③ 和 ① 的目标端口号和源端口号完全相同,但它们各自的源 IP 地址不同。
  • 当 IP 地址和端口号全都一样时,我们还可以通过协议号来区分(6表示传输层为TCP ;17表示为 UDP)。
  • tcp端口号表示是什么应用,eg:80 http服务,23 telnet服务,53 dns服务
  • 端口号由其使用的传输层协议决定。因此,不同的传输层协议可以使用相同的端口号。
  • 那些知名端口号与传输层协议并无关系。只要端口一致都将分配同一种应用程序进行处理。
3.2.UDP(适用于实时通讯,但存在乱序、丢包等问题)
  • UDP 不提供复杂的控制机制,利用 IP 提供面向无连接的通信服务。
  • 并且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况,UDP 也无法进行流量控制等避免网络拥塞行为。
  • 此外,传输途中出现丢包,UDP 也不负责重发。
  • 甚至当包的到达顺序出现乱序时也没有纠正的功能。
  • 如果需要以上的细节控制,不得不交由采用 UDP 的应用程序去处理。
  • UDP 常用于一下几个方面:1.包总量较少的通信(DNS、SNMP等);2.视频、音频等多媒体通信(即时通信);3.限定于 LAN 等特定网络中的应用通信;4.广播通信(广播、多播)。
3.3.TCP(面向连接的、可靠的、基于字节流的传输层通信协议)
  • TCP 与 UDP 的区别相当大。它充分地实现了数据传输时各种控制功能,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。而这些在 UDP 中都没有。
  • 此外,TCP 作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。
  • 根据 TCP 的这些机制,在 IP 这种无连接的网络上也能够实现高可靠性的通信( 主要通过检验和、***、确认应答、重发控制、连接管理以及窗口控制等机制实现)。
3.3.1.TCP三次握手

大数据复习之TCP/IP协议

  1. 一开始,客户端和服务端都处于 CLOSED 状态。先是服务端主动监听某个端口,处于 LISTEN 状态。
    大数据复习之TCP/IP协议
  2. 客户端会随机初始化序号(client_isn),将此序号置于 TCP 首部的「序号」字段中,同时把 SYN 标志位置为 1 ,表示 SYN 报文。接着把第一个 SYN 报文发送给服务端,表示向服务端发起连接,该报文不包含应用层数据,之后客户端处于 SYN-SENT 状态。
    大数据复习之TCP/IP协议
  3. 服务端收到客户端的 SYN 报文后,首先服务端也随机初始化自己的序号(server_isn),将此序号填入 TCP 首部的「序号」字段中,其次把 TCP 首部的「确认应答号」字段填入 client_isn + 1, 接着把 SYNACK 标志位置为 1。最后把该报文发给客户端,该报文也不包含应用层数据,之后服务端处于 SYN-RCVD 状态。
    大数据复习之TCP/IP协议
  4. 客户端收到服务端报文后,还要向服务端回应最后一个应答报文,首先该应答报文 TCP 首部 ACK 标志位置为 1 ,其次「确认应答号」字段填入 server_isn + 1 ,最后把报文发送给服务端,这次报文可以携带客户到服务器的数据,之后客户端处于 ESTABLISHED 状态。
  5. 服务器收到客户端的应答报文后,也进入 ESTABLISHED 状态。
三次握手的原因 解释
防止旧的重复连接初始化造成混乱 (主要原因) 客户端连续发送多次 SYN 建立连接的报文,在网络拥堵等情况下,一个「旧 SYN 报文」比「最新的 SYN 」 报文早到达了服务端;那么此时服务端就会回一个 SYN + ACK 报文给客户端;客户端收到后可以根据自身的上下文,判断这是一个历史连接(***过期或超时),那么客户端就会发送 RST 报文给服务端,表示中止这一次连接。
保证同步双方的初始*** TCP 协议的通信双方, 都必须维护一个「***」, ***是可靠传输的一个关键因素,它的作用:接收方可以去除重复的数据;接收方可以根据数据包的***按序接收;可以标识发送出去的数据包中, 哪些是已经被对方收到的;所以只有一来一回,才能确保双方的初始***能被可靠的同步
避免资源浪费 针对同一个SYN,当网络拥堵造成SYN重发时,若只有两次握手,由于没有第三次握手,服务器不清楚客户端是否收到了自己发送的建立连接的 ACK 确认信号,所以每收到一个 SYN 就只能先主动建立一个连接,从而建立多个冗余的无效链接,造成不必要的资源浪费。

大数据复习之TCP/IP协议

3.3.2.TCP分片

我们先来认识下 MTU 和 MSS
大数据复习之TCP/IP协议

  • MTU:一个网络包的最大长度,以太网中一般为 1500 字节;
  • MSS:除去 IP 和 TCP 头部之后,一个网络包所能容纳的 TCP 数据的最大长度;

如果在 TCP 的整个报文(头部 + 数据)交给 IP 层进行分片,会有什么异常呢?

当 IP 层有一个超过 MTU 大小的数据(TCP 头部 + TCP 数据)要发送,那么 IP 层就要进行分片,把数据分片成若干片,保证每一个分片都小于 MTU。把一份 IP 数据报进行分片以后,由目标主机的 IP 层来进行重新组装后,在交给上一层 TCP 传输层。
这看起来井然有序,但这存在隐患的,那么当如果一个 IP 分片丢失,由于包含IP地址和端口号信息,整个 IP 报文的所有分片都得重传。
因为 IP 层本身没有超时重传机制,它由传输层的 TCP 来负责超时和重传。当接收方发现 TCP 报文(头部 + 数据)的某一片丢失后,则不会响应 ACK 给对方,那么发送方的 TCP 在超时后,就会重发「整个 TCP 报文(头部 + 数据)」。
因此,可以得知由 IP 层进行分片传输,是非常没有效率的
所以,为了达到最佳的传输效能 TCP 协议在建立连接的时候通常要协商双方的 MSS 值,当 TCP 层发现数据超过 MSS 时,则就先会进行分片,当然由它形成的 IP 包的长度也就不会大于 MTU ,自然也就不用 IP 分片了。
经过 TCP 层分片后,如果一个 TCP 分片丢失后,进行重发时也是以 MSS 为单位,而不用重传所有的分片,大大增加了重传的效率。

3.3.3.TCP断开连接

天下没有不散的宴席,对于 TCP 连接也是这样, TCP 断开连接是通过四次挥手方式。
双方都可以主动断开连接,断开连接后主机中的「资源」将被释放。
大数据复习之TCP/IP协议

  1. 客户端打算关闭连接,此时会发送一个 TCP 首部 FIN 标志位被置为 1 的报文,也即 FIN 报文,之后客户端进入 FIN_WAIT_1 状态。
  2. 服务端收到该报文后,就向客户端发送 ACK 应答报文,接着服务端进入 CLOSED_WAIT 状态。
  3. 客户端收到服务端的 ACK 应答报文后,之后进入 FIN_WAIT_2 状态。
  4. 等待服务端处理完数据后,也向客户端发送 FIN 报文,之后服务端进入 LAST_ACK 状态。
  5. 客户端收到服务端的 FIN 报文后,回一个 ACK 应答报文,之后进入 TIME_WAIT 状态
  6. 服务器收到了 ACK 应答报文后,就进入了 CLOSE 状态,至此服务端已经完成连接的关闭。
  7. 客户端在经过 2MSL 一段时间后,自动进入 CLOSE 状态,至此客户端也完成连接的关闭。

主动关闭连接的,才有 TIME_WAIT 状态。

为什么挥手需要四次?

  • 关闭连接时,客户端向服务端发送 FIN 时,仅仅表示客户端不再发送数据了但是还能接收数据。
  • 服务器收到客户端的 FIN 报文时,先回一个 ACK 应答报文,而服务端可能还有数据需要处理和发送,等服务端不再发送数据时,才发送 FIN 报文给客户端来表示同意现在关闭连接。

从上面过程可知,服务端通常需要等待完成数据的发送和处理,所以服务端的 ACK 和 FIN 一般都会分开发送,从而比三次握手导致多了一次。

为什么 TIME_WAIT 等待的时间是 2MSL?

  • MSL:Maximum Segment Lifetime,报文最大生存时间,它是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。

TIME_WAIT 等待 2 倍的 MSL,比较合理的解释是: 网络中可能存在来自发送方的数据包,当这些发送方的数据包被接收方处理后又会向对方发送响应,所以一来一回需要等待 2 倍的时间。2MSL 的时间是从客户端接收到 FIN 后发送 ACK 开始计时的。如果在 TIME-WAIT 时间内,因为客户端的 ACK 没有传输到服务端,客户端又接收到了服务端重发的 FIN 报文,那么 2MSL 时间将重新计时。
2MSL 的时间是从客户端接收到 FIN 后发送 ACK 开始计时的。如果在 TIME-WAIT 时间内,因为客户端的 ACK 没有传输到服务端,客户端又接收到了服务端重发的 FIN 报文,那么 2MSL 时间将重新计时。

为什么需要 TIME_WAIT 状态?

  1. 防止接受过期报文,如下图所示,若SEQ=301因网络延迟晚到达客户端,此时没有TIME_WAIT,则客户端已经关闭,客户端将SEQ=301当成新报文而正常接收,产生数据错乱等严重的问题。

所以,TCP 就设计出了这么一个机制,经过 2MSL 这个时间,足以让两个方向上的数据包都被丢弃,使得原来连接的数据包在网络中都自然消失,再出现的数据包一定都是新建立连接所产生的。
大数据复习之TCP/IP协议

  1. 保证连接的正确性

TIME-WAIT 作用是等待足够的时间以确保最后的 ACK 能让被动关闭方接收,从而帮助其正常关闭。
大数据复习之TCP/IP协议

  • 如上图红色框框客户端四次挥手的最后一个 ACK 报文如果在网络中被丢失了,此时如果客户端 TIME-WAIT 过短或没有,则就直接进入了 CLOSE 状态了,那么服务端则会一直处在 LASE-ACK 状态。
  • 当客户端发起建立连接的 SYN 请求报文后,发现与期望报文不同,服务端会发送 RST 报文给客户端,连接建立的过程就会被终止。

TIME_WAIT 过多有什么危害?

如果服务器有处于 TIME-WAIT 状态的 TCP,则说明是由服务器方主动发起的断开请求。
过多的 TIME-WAIT 状态主要的危害有两种:

  • 第一是内存资源占用;
  • 第二是对端口资源的占用,一个 TCP 连接至少消耗一个本地端口;

第二个危害是会造成严重的后果的,要知道,端口资源也是有限的,一般可以开启的端口为32768~61000,如果服务端 TIME_WAIT 状态过多,占满了所有端口资源,则会导致无法创建新连接。

如果已经建立了连接,但是客户端突然出现故障了怎么办?

TCP 有一个机制是保活机制。这个机制的原理是这样的:
定义一个时间段,在这个时间段内,如果没有任何连接相关的活动,TCP 保活机制会开始作用,每隔一个时间间隔,发送一个探测报文,该探测报文包含的数据非常少,如果连续几个探测报文都没有得到响应,则认为当前的 TCP 连接已经死亡,系统内核将错误信息通知给上层应用程序。

3.3.4.TCP窗口控制提高速度
  • TCP 以1个段(TCP中数据包的统称)为单位,每发送一个段进行一次确认应答的处理。这样的传输方式有一个缺点,就是包的往返时间越长通信性能就越低。
  • 为解决这个问题,TCP 引入了窗口这个概念。确认应答不再是以每个分段,而是以更大的单位进行确认,转发时间将会被大幅地缩短。也就是说,发送端主机,在发送了一个段以后不必要一直等待确认应答,而是继续发送。如下图所示:
    大数据复习之TCP/IP协议
  • 窗口大小就是指无需等待确认应答而可以继续发送数据的***值。上图中窗口大小为4个段。这个机制实现了使用大量的缓冲区,通过对多个段同时进行确认应答的功能。

滑动窗口控制

大数据复习之TCP/IP协议

  • 上图中的窗口内的数据即便没有收到确认应答也可以被发送出去。不过,在整个窗口的确认应答没有到达之前,如果其中部分数据出现丢包,那么发送端仍然要负责重传。为此,发送端主机需要设置缓存保留这些待被重传的数据,直到收到他们的确认应答。
  • 在滑动窗口以外的部分包括未发送的数据以及已经确认对端已收到的数据。当数据发出后若如期收到确认应答就可以不用再进行重发,此时数据就可以从缓存区清除。
  • 收到确认应答的情况下,将窗口滑动到确认应答中的***的位置。这样可以顺序地将多个段同时发送提高通信性能。这种机制也别称为滑动窗口控制。

窗口控制中的重发控制

在使用窗口控制中, 出现丢包一般分为两种情况:

  1. 确认应答未能返回的情况。在这种情况下,数据已经到达对端,是不需要再进行重发的,如下图:

大数据复习之TCP/IP协议

  1. 某个报文段丢失的情况。接收主机如果收到一个自己应该接收的***以外的数据时,会针对当前为止收到数据返回确认应答。如下图所示,当某一报文段丢失后,发送端会一直收到序号为1001的确认应答,因此,在窗口比较大,又出现报文段丢失的情况下,同一个***的确认应答将会被重复不断地返回。而发送端主机如果连续3次收到同一个确认应答,就会将其对应的数据进行重发。这种机制比超时管理更加高效,因此也被称为高速重发控制。
    大数据复习之TCP/IP协议
3.4.TCP和UDP的区别

大数据复习之TCP/IP协议大数据复习之TCP/IP协议

  1. 连接
  • TCP 是面向连接的传输层协议,传输数据前先要建立连接。
  • UDP 是不需要连接,即刻传输数据。
  1. 服务对象
  • TCP 是一对一的两点服务,即一条连接只有两个端点。
  • UDP 支持一对一、一对多、多对多的交互通信
  1. 可靠性
  • TCP 是可靠交付数据的,数据可以无差错、不丢失、不重复、按需到达。
  • UDP 是尽最大努力交付,不保证可靠交付数据。
  1. 拥塞控制、流量控制
  • TCP 有拥塞控制和流量控制机制,保证数据传输的安全性。
  • UDP 则没有,即使网络非常拥堵了,也不会影响 UDP 的发送速率。
  1. 首部开销
  • TCP 首部长度较长,会有一定的开销,首部在没有使用「选项」字段时是 20 个字节,如果使用了「选项」字段则会变长的。
  • UDP 首部只有 8 个字节,并且是固定不变的,开销较小。

4.网络层中的IP协议

  • 网络的下一层——数据链路层的主要作用是在互连同一种数据链路的节点之间进行包传递。而一旦跨越多种数据链路,就需要借助网络层。网络层可以跨越不同的数据链路,即使是在不同的数据链路上也能实现两端节点之间的数据包传输。
  • IP 大致分为三大作用模块,它们是 IP 寻址、路由(最终节点为止的转发)以及 IP 分包与组包。
4.1.IP地址
  • 如下图,网络标识在数据链路的每个段配置不同的值。网络标识必须保证相互连接的每个段的地址不相重复。而相同段内相连的主机必须有相同的网络地址。IP 地址的“主机标识”则不允许在同一个网段内重复出现。由此,可以通过设置网络地址和主机地址,在相互连接的整个网络中保证每台主机的 IP 地址都不会相互重叠。即 IP 地址具有了唯一性。

大数据复习之TCP/IP协议

  • 如下图,IP 包被转发到途中某个路由器时,正是利用目标 IP 地址的网络标识进行路由。因为即使不看主机标识,只要一见到网络标识就能判断出是否为该网段内的主机。
    大数据复习之TCP/IP协议
    IP 地址分为四个级别,分别为A类、B类、C类、D类。它根据 IP 地址中从第 1 位到第 4 位的比特列对其网络标识和主机标识进行区分,平时我们用的都是C类
  • A 类 IP 地址是首位以 “0” 开头的地址。从第 1 位到第 8 位是它的网络标识。用十进制表示的话,0.0.0.0~127.0.0.0 是 A 类的网络地址。A 类地址的后 24 位相当于主机标识。因此,一个网段内可容纳的主机地址上限为16,777,214个。
  • B 类 IP 地址是前两位 “10” 的地址。从第 1 位到第 16 位是它的网络标识。用十进制表示的话,128.0.0.0~191.255.0.0 是 B 类的网络地址。B 类地址的后 16 位相当于主机标识。因此,一个网段内可容纳的主机地址上限为65,534个。
    - C 类 IP 地址是前三位为 “110” 的地址。从第 1 位到第 24 位是它的网络标识。用十进制表示的话,192.0.0.0~223.255.255.0 是 C 类的网络地址。C 类地址的后 8 位相当于主机标识。因此,一个网段内可容纳的主机地址上限为254个。
  • D 类 IP 地址是前四位为 “1110” 的地址。从第 1 位到第 32 位是它的网络标识。用十进制表示的话,224.0.0.0~239.255.255.255 是 D 类的网络地址。D 类地址没有主机标识,常用于多播。
4.2.子网掩码
  • 现在一个 IP 地址的网络标识和主机标识已不再受限于该地址的类别,而是由一个叫做“子网掩码”的识别码通过子网网络地址细分出比 A 类、B 类、C 类更小粒度的网络。这种方式实际上就是将原来 A 类、B 类、C 类等分类中的主机地址部分用作子网地址,可以将原网络分为多个物理网络的一种机制。
  • 子网掩码用二进制方式表示的话,也是一个 32 位的数字。它对应 IP 地址网络标识部分的位全部为 “1”,对应 IP 地址主机标识的部分则全部为 “0”。由此,一个 IP 地址可以不再受限于自己的类别,而是可以用这样的子网掩码*地定位自己的网络标识长度。当然,子网掩码必须是 IP 地址的首位开始连续的 “1”。
  • 如:192.168.10.10 AND 255.255.255.0,结果为192.168.10.0,其表达的含义为:该IP地址属于 192.168.10.0这个网络,其主机号为10。
4.3.路由
  • 发送数据包时所使用的地址是网络层的地址,即 IP 地址。然而仅仅有 IP 地址还不足以实现将数据包发送到对端目标地址,在数据发送过程中还需要类似于“指明路由器或主机”的信息,以便真正发往目标地址。保存这种信息的就是路由控制表。
  • 该路由控制表的形成方式有两种:一种是管理员手动设置,另一种是路由器与其他路由器相互交换信息时自动刷新。前者也叫做静态路由控制,而后者叫做动态路由控制。
  • IP 协议始终认为路由表是正确的。然后,IP 本身并没有定义制作路由控制表的协议。即 IP 没有制作路由控制表的机制。该表示由一个叫做“路由协议”的协议制作而成。

路由控制的过程:

  1. IP 地址的网络地址部分用于进行路由控制。
  2. 路由控制表中记录着网络地址与下一步应该发送至路由器的地址。
  3. 在发送 IP 包时,首先要确定 IP 包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将 IP 包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择一个最为吻合的网络地址。
    大数据复习之TCP/IP协议
4.4.DNS

DNS(Domain Name System,域名系统),简单的说:就是把我们输入的网站域名翻译成IP地址的系统。
比如我们想访问百度,我们会在网页里键入www.baidu.com,但是电脑不会理解这串字符的含义。于是就把这串字符发送给DNS(域名解析系统),系统将地址解析119.75.217.109(实际上能理解的就是这个数字),并转向这个IP地址。于是我们就成功的打开了百度的网页,所以我们时候上网网页打开慢,有的时候并不是网络问题而DSN服务器的问题。