158文章网欢迎您
您的位置:158文章网 > 范文示例 > 三十三个计算机网络核心知识点

三十三个计算机网络核心知识点

作者:158文章网日期:

返回目录:范文示例

今天小编给各位分享计算机网络的发展史的知识,文中也会对其通过三十三个计算机网络核心知识点和计算机网络名词解释知识点简答题整理等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关注本站,现在进入正文!

内容导航:
  • 三十三个计算机网络核心知识点
  • 计算机网络名词解释知识点简答题整理
  • 计算机的知识点
  • 计算机基础知识点总结
  • 一、三十三个计算机网络核心知识点

    1.TCP和UDP的区别TCP是面向连接的,UDP是面向无连接的;TCP只能一对一通信,UDP支持一对一,一对多,多对一和多对多交互通信;TCP是面向字节流的,UDP是面向报文的;TCP是可靠传输,使用流量控制和拥塞控制;UDP是不可靠传输TCP首部最小20字节,最大60字节;UDP首部仅8字节。2.ISO七层模型及相关协议物理层:建立、维护、断开物理连接。数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路。网络层:进行逻辑地址寻址,实现不同网络之间的路径选择,协议有ICMP、IGMP、IP等。传输层:定义传输数据的协议端口号,以及流量控制和差错校验,协议有TCP、UDP。会话层:建立、管理、终止会话,指本地主机与远程主机正在进行的会话。表示层:确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。应用层:网络服务与最终用户的一个接口,常见的协议有:HTTP、FTP、SMTP、DNS。TCP/IP 四层模型网络接口层网际层传输层应用层五层体系结构物理层数据链路层网络层:IP网际协议、ARP地址转换协议、RIP路由信息协议传输层:TCP传输控制协议、UDP用户数据报文协议应用层:HTTP超文本传输协议、FTP文本传输协议、DNS域名系统3.如何理解HTTP协议是无状态的

    当浏览器第一次发送请求给服务器时,服务器响应了;

    如果同个浏览器发起第二次请求给服务器时,它还是会响应。但是呢,服务器不知道你就是刚才的那个浏览器。

    简而言之,服务器不会去记住你是谁,所以是无状态协议。

    4.简述从浏览器地址栏输入url到显示主页的过程DNS解析,查找域名对应的IP地址。与服务器通过三次握手,建立TCP连接。向服务器发送HTTP请求。服务器处理请求,返回网页内容。浏览器解析并渲染页面。TCP四次握手,连接结束。

    5.说下 HTTP/1.0,1.1,2.0 的区别

    HTTP/1.0

    默认使用短连接,每次请求都需要建立一个TCP连接。它可以设置Connection: keep-alive 这个字段,强制开启长连接。

    HTTP/1.1

    默认使用长连接,即TCP连接默认不关闭,可以被多个请求复用。分块传输编码,即服务端每产生一块数据,就发送一块,用“流模式”取代“缓存模式”。管道机制,即在同一个TCP连接里面,客户端可以同时发送多个请求。

    HTTP/2.0

    二进制协议,1.1版本的头信息是文本(ASCII编码),数据体可以是文本或二进制;2.0中,头信息和数据体都是二进制。完全多路复用,在一个连接里,客户端和服务器都可以同时发送多个请求或响应,而且不用按照顺序一一对应。报头压缩,HTTP协议不带有状态,每次请求都必须带上所有信息。HTTP/2.0引入了头信息压缩机制,使用gzip或compress压缩后再发送。服务端推送,允许服务器未经请求,主动向客户端发送资源。6.POST和GET有哪些区别

    7.HTTP 如何实现长连接?在什么时候会超时?

    什么是HTTP的长连接?

    HTTP分为长连接和短连接,本质上说的是TCP的长短连接。TCP连接是一个双向的通道,它是可以保持一段时间不关闭的,因此TCP连接才具有真正的长连接和短连接这一说法。TCP长连接可以复用一个TCP连接,来发起多次HTTP请求,这样就可以减少资源消耗,比如一次HTML请求,如果是短连接的话,可能还需要请求后续的JS/CSS。

    如何设置长连接?

    通过在请求头和响应头设置Connection字段指定为keep-alive,HTTP/1.0协议支持,但默认是关闭的,从HTTP/1.1以后,连接默认都是长连接。

    在什么时候会超时?

    HTTP一般会有httpd守护进程,里面可以设置keep-alive timeout,当tcp连接闲置超过这个时间就会关闭,也可以在HTTP的header里面设置超时时间。TCP 的keep-alive包含三个参数,支持在系统内核的net.ipv4里面设置;当 TCP 连接之后,闲置了tcp_keepalive_time,则会发生侦测包,如果没有收到对方的ACK,那么会每隔 tcp_keepalive_intvl 再发一次,直到发送了tcp_keepalive_probes,就会丢弃该连接。
    tcp_keepalive_intvl = 15tcp_keepalive_probes = 5tcp_keepalive_time = 1800123
    8.HTTP 与 HTTPS 的区别

    HTTP 即超文本传输协议,是一个基于TCP/IP通信协议来传递明文数据的协议。HTTP会存在这几个问题

    请求信息是明文传输,容易被窃听截取。没有验证对方身份,存在被冒充的风险。数据的完整性未校验,容易被中间人篡改。

    为了解决HTTP存在的问题,HTTPS出现啦。

    HTTPS是什么?

    HTTPS= HTTP+SSL/TLS,可以理解为 HTTPS 是身披 SSL(Secure Socket Layer,安全套接层)的HTTP。

    它们的主要区别如下:

    9.HTTPS的工作流程是怎样的?HTTPS = HTTP + SSL/TLS,也就是用SSL/TLS对数据进行加密和解密,用HTTP进行传输。SSL,即Secure Sockets Layer(安全套接层协议),是网络通信提供安全及数据完整性的一种安全协议。TLS,即Transport Layer Security(安全传输层协议),它是SSL3.0的后续版本。

    客户端发起HTTPS请求,连接到服务器的443端口。服务器必须要有一套数字证书(证书内容有公钥、证书颁发机构、失效日期等)。服务器将自己的数字证书发送给客户端(公钥在证书里面,私钥由服务器持有)。客户端收到数字证书之后,会验证证书的合法性。如果证书验证通过,就会生成一个随机的对称密钥,用证书的公钥加密。客户端将公钥加密后的密钥发送到服务器。服务器接收到客户端发来的密文密钥之后,用自己之前保留的私钥对其进行非对称解密,解密之后就得到客户端的密钥,然后用客户端密钥对返回数据进行对称加密,这样子传输的数据都是密文啦。服务器将加密后的密文返回到客户端。客户端收到后,用自己的密钥对其进行对称解密,就能得到服务器返回的数据。10.说说HTTP的状态码,301和302的区别?301:永久重定向,表示所请求的资源已经永久地转移到新的位置,这包含域名的改变或者是资源路径的改变。302:临时重定向,表示所请求的资源临时地转移到新的位置,一般是24到48小时以内的转移会用到302。11.说说什么是数字签名?什么是数字证书?

    数字证书构成:

    公钥和个人等信息,经过Hash算法加密,形成消息摘要;将消息摘要拿到拥有公信力的认证中心(CA),用它的私钥对消息摘要加密,形成数字签名。公钥和个人信息、数字签名共同构成数字证书。12.对称加密和非对称加密有什么区别

    对称加密:指加密和解密使用同一密钥,优点是运算速度较快,缺点是不能安全地将密钥传输给另一方。常见的对称加密算法有:DES、AES等。

    非对称加密:指的是加密和解密使用不同的密钥(即公钥和私钥)。公钥与私钥是成对存在的,如果用公钥对数据进行加密,只有对应的私钥才能解密。常见的非对称加密算法有 RSA。

    13.说说 DNS 的解析过程?

    DNS的解析过程如下图:

    假设你要查询的IP地址:浏览器 -> 本地DNS服务器 -> 根域名服务器 -> 顶级域名服务器 -> 权威域名服务器

    首先会查找浏览器的缓存,看看是否能找到对应的IP地址,找到就直接返回;否则进行下一步。将请求发往本地DNS服务器,如果查找到也直接返回,否则继续进行下一步;本地DNS服务器向根域名服务器发送请求,根域名服务器返回负责.com的顶级域名服务器的列表。本地DNS服务器再向其中一个顶级域名服务器发送一个请求,返回负责.baidu的权威域名服务器的列表。本地DNS服务器再向其中一个权威域名服务器发送一个请求,返回所对应的IP地址。14.说说 WebSocket与socket的区别

    Socket是一套标准,它完成了对TCP/IP的高度封装,屏蔽网络细节,以便开发者更好地进行网络编程。

    Socket等于IP地址 + 端口 + 协议

    WebSocket是一个持久化的协议,它是伴随H5而出的协议,用来解决HTTP不支持持久化连接的问题。

    Socket是一个网络编程的标准接口,而WebSocket则是应用层通信协议。

    15.HTTP请求的过程与原理

    HTTP是一个基于TCP/IP协议来传递数据的超文本传输协议,传输的数据类型有HTML、图片等。

    客户端进行DNS域名解析,得到对应的IP地址根据这个IP地址,找到对应的服务器建立TCP连接(三次握手)建立TCP连接后发起HTTP请求(一个完整的http请求报文)服务器响应HTTP请求,客户端得到html代码客户端解析html代码,用html代码中的资源(如 js、css、图片等等)渲染页面。服务器关闭TCP连接(四次挥手)16.forward和redirect的区别?

    是servlet中的两种主要跳转方式。forward:转发,redirect:重定向

    从地址栏显示来说

    forward是服务器内部的重定向,服务器直接访问目标地址,把里面的东西取出来,但是客户端并不知道,因此用forward的话,客户端浏览器的网址是不会发生变化的。

    redirect是服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新地址。

    从数据共享来说

    由于在整个转发的过程中使用的是同一个request,因此forward会将request信息带到被重定向的jsp或servlet中使用,即可以共享数据。

    redirect不能共享数据。

    从运用的地方来说

    forward一般用于用户登录时,根据角色转发到相应的模块

    redirect一般用于用户注销登录时返回主页面

    从本质上来说

    forward转发是服务器上的行为,redirect重定向是客户端的行为。

    从效率上来说

    forword效率高,而redirect效率低。

    从请求的次数来说

    forword只有一次请求,而redirect有两次请求。

    17.Session和Cookie的区别

    Cookie 是保存在客户端的一小块文本串的数据。客户端向服务器发起请求时,服务器会向客户端发送一个 Cookie,客户端就把 Cookie 保存起来。下次向同一服务器再发起请求时,Cookie 就被携带发送到服务器。服务器可以根据这个 Cookie 判断用户的身份和状态。

    Session 指的是服务器和客户端一次会话的过程。它是另一种记录客户端状态的机制。不同的是 Cookie 是保存在客户端浏览器中的,而 Session 是保存在服务器上的。客户端浏览器在访问服务器时,服务器会把客户端信息以某种形式记录在服务器上,这就是 Session。客户端浏览器再次访问时只需要从该 Session 中查找用户的状态。

    Session 和 Cookie 到底有什么不同呢?

    Session 和 Cookie 有什么关联呢?

    可以使用 Cookie 记录 Session 的唯一标识

    用户第一次请求服务器时,服务器根据用户提交的信息,创建对应的Session,请求返回时将此Session的唯一标识信息SessionID返回给浏览器,浏览器会将此SessionID信息存入Cookie中,同时Cookie记录此SessionID是属于哪个域名的。当用户第二次访问服务器时,请求会自动判断此域名下是否存在Cookie信息,如果存在,则自动将Cookie信息也发送给服务器,服务器会从Cookie中获取SessionID,再根据 SessionID 查找对应的 Session 信息,如果没有找到则说明用户没有登录或者登录失效,如果找到则证明用户已经登录可执行后面的操作。

    分布式环境下 Session 该怎么处理呢?

    分布式环境下,客户端请求经过负载均衡,可能会分配到不同的服务器上,假如一个用户的请求两次没有落到同一台服务器上,那么在新的服务器上就没有记录该用户状态对应的 Session。

    可以使用 Redis 等分布式缓存来存储 Session,保证在多台服务器间共享。

    客户端如果无法使用 Cookie 怎么办呢?

    有可能客户端无法使用 Cookie,比如浏览器禁用 Cookie,或者客户端是 安卓、IOS 设备等。

    这时候怎么办呢?SessionID 怎么存呢?怎么传给服务器呢?

    首先是 SessionID 的存储,可以使用客户端的本地存储,比如浏览器的 sessionStorage。

    接下来要怎么传呢?

    拼接到 URL:直接把 SessionID 作为 URL 的请求参数。放到请求头:把 SessionID 放到请求头里面,比较常用。18.详细说一下 TCP 的三次握手机制

    TCP 三次握手过程:

    最开始,客户端和服务端都处于 CLOSE(关闭)状态,服务端监听客户端的请求,进入 LISTEN(监听) 状态。客户端发送连接请求,进行第一次握手(同步位 SYN=1,序号字段 seq=x),发送完毕后,客户端就进入 SYN_SENT(同步已发送) 状态。服务端确认连接,进行第二次握手(同步位 SYN=1,确认位 ACK=1,序号字段 seq=y,确认号字段 ack=x+1), 发送完毕后,服务端就进入 SYN_RCV(同步已接收) 状态。客户端收到服务端的确认后,再次向服务端确认,进行第三次握手(确认位 ACK=1,确认号字段 ack=y+1),发送完毕后,客户端就进入 ESTABLISHED(连接已建立) 状态,当服务端接收到这个包时,也进入 ESTABLISHED(连接已建立) 状态。19.TCP 握手为什么是三次,为什么不能是两次?不能是四次?

    为什么不能是两次?

    防止已失效的连接请求报文段突然又传到服务端,因而产生错误

    客户端发送出去的第一个连接请求报文段并没有丢失,而是因为某些未知原因在某个网络节点上发生滞留,导致延迟到连接释放以后的某个时间点才到达服务端。本来这是一个早已失效的报文段,但是服务端收到此失效的报文段后,会误认为这是客户端再次发起的一个新的连接请求,于是服务端向客户端又发出确认报文,表示同意建立连接。如果不采用 “三次握手”,那么只要服务端发出确认报文后就会认为新的连接已经建立了,但是客户端并没有发出建立连接的请求,因此不会向服务端发送数据,服务端没有收到数据就会一直等待,这样服务端就会白白浪费掉很多资源。

    所以我们需要 “第三次握手” 来确认这个过程:

    通过第三次握手的数据来告诉服务端,客户端有没有收到服务端 “第二次握手” 时传过去的数据,以及这个连接的序号是不是有效的。若发送的这个数据是 “收到且没有问题” 的信息,服务端接收后就可以正常建立 TCP 连接,否则建立 TCP 连接失败,服务器关闭连接端口。由此减少服务器开销和接收到失效请求时发生的错误。

    为什么不是四次?

    简单来说,就是三次握手已经足够创建可靠的连接,没有必要再多一次握手导致花费更多的时间在建立连接上。

    20.三次握手中每一次没收到报文会发生什么情况?

    第一次握手服务端未收到 SYN 报文

    服务端不会进行任何的动作,而客户端由于一段时间内没有收到服务端发来的确认报文,等待一段时间后会重新发送 SYN 报文,

    如果仍然没有回应,会重复这个过程,直到发送次数超过最大重传次数,就会返回连接建立失败。

    第二次握手客户端未收到服务端响应的 ACK 报文

    因为第二次握手是包含对客户端第一次握手的 ACK 确认报文,所以如果客户端迟迟没有收到第二次握手,那么客户端就会觉得可能是自己的 SYN 报文(第一次握手)丢失了,于是客户端就会触发超时重传机制,重传 SYN 报文。

    然后,因为第二次握手是包含服务端的 SYN 报文,所以当客户端收到后,需要给服务端发送 ACK 确认报文(第三次握手),服务端才会认为该 SYN 报文被客户端收到了。

    那么,如果第二次握手丢失了,服务端就收不到第三次握手,于是服务端这边会触发超时重传机制,重传 SYN-ACK 报文。

    第三次握手服务端未收到客户端发送过来的 ACK 报文

    客户端收到服务端的 SYN-ACK 报文后,就会给服务端发送一个 ACK 报文,也就是第三次握手,此时客户端进入到 ESTABLISH(连接已建立) 状态。

    因为这个第三次握手的 ACK 是对第二次握手的 SYN 的确认报文,所以当第三次握手丢失了,如果服务端那一方迟迟收不到这个确认报文,就会触发超时重传机制,重传 SYN-ACK 报文,直到收到第三次握手,或者达到最大重传次数。

    21.第二次握手传回了 ACK,为什么还要传回 SYN?

    ACK 是为了告诉客户端传来的数据已经接收无误

    而传回 SYN 是为了告诉客户端,服务端响应的确实是客户端发送的报文。

    22.第三次握手可以携带数据吗?

    第三次握手是可以携带数据的。

    此时客户端已经处于连接已建立状态。对于客户端来说,它已经建立连接成功了,并且确认服务端的接收和发送能力是正常的。

    第一次握手不能携带数据是出于安全的考虑,因为如果允许携带数据,攻击者每次在 SYN 报文中携带大量数据,就会导致服务端消耗更多的时间和空间去处理这些报文,会造成CPU和内存的消耗。

    23.说说 TCP 四次挥手的过程?

    数据传输结束后,通信双方都可以主动发起断开连接请求,这里假定客户端发起。客户端发送释放连接报文,进行第一次挥手(FIN=1,ACK=1,seq=u,ack=v),发送完毕后,客户端进入 FIN_WAIT_1(终止等待1) 状态。服务端发送确认报文,进行第二次挥手(ACK=1,seq =v,ack=u+1),发送完毕后,服务端进入 CLOSE_WAIT(关闭等待) 状态,客户端收到这个确认包后,进入 FIN_WAIT_2(终止等待2) 状态。服务端发送释放连接报文,进行第三次挥手(FIN=1,ACK1,seq=w,ack=u+1),发送完毕后,服务端进入LAST_ACK(最后确认) 状态,等待来自客户端的最后一个 ACK 报文。客户端发送确认报文,进行第四次挥手(ACK=1,seq=u+1,ack=w+1),客户端收到来自服务端的关闭请求,发送一个确认包,并进入 TIME_WAIT(时间等待) 状态,服务端接收到这个确认包后,关闭连接,进入 CLOSED(关闭) 状态。客户端再经过 2MSL 后,也进入 CLOSED(关闭) 状态。

    客户端在发送完最后一个确认报文后,为什么不直接进入关闭状态 ? 而是要进入时间等待状态,2MSL 后才进入关闭状态,这是否有必要呢 ?

    服务端发送TCP连接释放报文段后进入最后确认状态。

    客户端收到该报文段后,发送普通的TCP确认报文段,并进入关闭状态而不是时间等待状态。然而,该TCP确认报文段丢失了。

    这必然会造成服务端对之前所发送的TCP连接释放报文段的超时重传,并仍处于最后确认状态。重传的TCP连接释放报文段到达客户端,由于客户端处于关闭状态,因此不理睬该报文段,这必然会造成服务端反复重传TCP连接释放报文段,并一直处于最后确认状态而无法进入关闭状态。

    因此时间等待状态以及处于该状态2MSL时长,可以确保服务端可以收到最后一个TCP确认报文段而进入关闭状态。

    另外,客户端在发送完最后一个TCP确认报文段后,再经过2MSL时长,就可以使本次连接持续时间内所产生的所有报文段都从网络中消失,这样就可以使下一个新的TCP连接中,不会出现旧连接中的报文段。

    为什么等待时间是2MSL?

    MSL 是报⽂最⼤⽣存时间,它是任何报⽂在⽹络上存在的最⻓时间,超过这个时间报⽂将被丢弃。

    TIME_WAIT 等待 2 倍的 MSL,是因为⽹络中可能存在来⾃发送⽅的数据包,当这些发送⽅的数据包被接收⽅处理后⼜会向对⽅发送响应,所以⼀来⼀回需要等待 2 倍的时间。

    ⽐如服务端如果没有收到客户端发送的TCP确认报文段,就会触发超时重传,重新发送TCP连接释放报文段,客户端收到后,会重发TCP确认报文段给服务端, ⼀来⼀去正好 2 个 MSL。

    24.TCP 挥手为什么需要四次呢?

    再来回顾下四次挥手双方发 FIN 包的过程,就能理解为什么需要四次了。

    关闭连接时,客户端向服务端发送 FIN 报文,仅仅表示客户端不再发送数据了但是还能接收数据。

    服务端收到客户端的 FIN 报文后,先返回一个 ACK 确认报文;而服务端可能还有数据需要处理和发送,等服务端不再发送数据了,再发送 FIN 报文给客户端来表示同意现在关闭连接。

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

    25.TCP 保活计时器有什么用?

    除了时间等待计时器外,TCP 还有一个保活计时器(keepalive timer)。

    设想这样的场景:

    TCP 双方已经建立了连接,后来,客户端的主机突然出现了故障。显然,服务端以后就不能再收到客户端发来的数据。因此,应当有措施使服务端不要再白白等待下去。这就需要使用保活计时器了。

    服务端每收到一次客户端的数据,就重新设置并启动保活计时器(2小时定时)。若定时周期内都没有收到客户端发来的数据,服务端就发送一个探测报文段,以后每隔 75 秒钟发送一次。若连续发送 10 个探测报文段后仍然无客户端的响应,服务端就认为客户端出了故障,接着就关闭这个连接。

    26.CLOSE-WAIT 的状态和意义?

    服务端收到客户端关闭连接的请求并确认之后,就会进入 CLOSE-WAIT 状态。

    此时服务端可能还有一些数据没有传输完成,因此不能立即关闭连接,而 CLOSE-WAIT 状态就是为了保证服务端在关闭连接之前将待发送的数据处理完。

    27.说说 TCP 报文首部有哪些字段?

    16位端口号:源端口号,标识发送该 TCP 报文段的应用进程;目的端口号,标识接收该 TCP 报文段的应用进程。32位序号:指出本 TCP 报文段数据载荷的第一个字节的序号。32位确认号:指出期望收到对方下一个 TCP 报文段的数据载荷的第一个字节的序号,同时也是对之前收到的所有数据的确认。若确认号 = n,则表明到序号 n-1 为止的所有数据都已正确接收,期望收到序号为 n 的数据。4位头部长度:指出 TCP 报文段的首部长度。6位标志位:确认标志位ACK:取值为1时确认号字段才有效,取值为0时确认号字段无效。TCP 规定,在连接建立后所有传送的 TCP 报文段都必须把 ACK 置为1。同步标志位SYN:在 TCP 连接建立时用来同步序号。终止标志位FIN:用来释放 TCP 连接。16位窗口大小:指出发送本报文段的一方的接收窗口。窗口值作为接收方让发送方设置其发送窗口的依据。这是以接收方的接收能力来控制发送方的发送能力,称为流量控制。发送窗口的大小还取决于拥塞窗口的大小,也就是应该从接收窗口和拥塞窗口中取小者。16位校验和:用来检查整个 TCP 报文段在传输过程中是否出现了误码。16位紧急指针:当发送方有紧急数据时,可将紧急数据插队到发送缓存的最前面,并立刻封装到一个 TCP 报文段中进行发送。紧急指针会指出本报文段的数据载荷部分包含了多长的紧急数据,紧急数据之后是普通数据。28.TCP 是如何保证可靠性的?

    TCP主要提供了 连接管理、校验和、序列号/确认应答、流量控制、最大消息长度、超时重传、拥塞控制等方式实现了可靠传输。

    连接管理:TCP 使用三次握手和四次挥手来保证可靠地建立连接和释放连接。校验和:用来检查整个 TCP 报文段在传输过程中是否出现了误码。序列号/确认应答:TCP 会给发送的每一个包进行编号,接收方会对收到的包进行应答,发送方就会知道接收方是否收到对应的包,如果发现没有收到,就会重发,这样就能保证数据的完整性了。流量控制:TCP 连接的每一方都有固定大小的缓冲空间,TCP 的接收端只允许发送端发送接收端缓冲区能接纳的数据大小。当接收方来不及处理发送方的数据时,能提示发送方降低发送的速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议。(TCP 利用滑动窗口实现流量控制)最大消息长度:在建立 TCP 连接的时候,双方约定一个最大的长度(MSS)作为发送的单位,重传的时候也是以这个单位来进行重传的。理想情况下是该长度的数据刚好不被网络层分块。超时重传:超时重传是指发送出去的数据包到接收到确认包之间的时间,如果超过了这个时间,就会被认为是丢包了,需要重传。拥塞控制:如果网络非常拥堵,此时再发送数据就会加重网络负担,那么发送的数据段很可能超过了最大生存时间也没有到达接收方,就会产生丢包问题。为此 TCP 引入了慢启动机制,先发出少量数据,就像探路一样,先摸清当前的网络拥堵状态后,再决定按照多大的速度传送数据。29.说说 TCP 的流量控制?

    TCP 提供了一种机制,可以让发送方根据接收方的实际接收能力控制发送的数据量,这就是流量控制

    TCP 通过「滑动窗口」来实现流量控制

    首先 TCP 双方进行三次握手,初始化各自的窗口大小,均为 400 字节。

    假如当前发送方给接收方发送了 200 字节,那么,发送方的SND.NXT会右移 200 字节,也就是说当前的可用窗口减少了 200 字节。接收方收到后,放到缓冲队列里面,REV.WND = 400-200=200 字节,所以 win=200 字节返回给发送方。接收方会在 ACK 的报文首部带上缩小后的滑动窗口 200 字节发送方又发送 200 字节过来,200 字节到达,继续放到缓冲队列里面。不过这时候,由于大量负载的原因,接收方处理不了这么多字节,只能处理 100 字节,剩余的 100 字节继续放到缓冲队列里面。这时候,REV.WND = 400-200-100=100 字节,即 win=100 字节返回给发送方。发送方继续发送 100 字节过来,这时候,接收窗口 win 变为 0。发送方停止发送,开启一个定时任务,每隔一段时间,就去询问接收方,直到 win 大于 0,才开始继续发送。30.详细说说 TCP 的滑动窗口?

    TCP 发送一个数据,如果需要收到确认应答才会发送下一个数据。这样的话就会有个缺点:效率会比较低。

    为了解决这个问题,TCP 引入了滑动窗口,它是操作系统开辟的一个缓存空间。窗口大小表示无需等待确认应答而可以继续发送数据的最大值。

    TCP 头部有个 16 位的窗口大小,它告诉对方本端的 TCP 接收缓冲区还能容纳多少字节的数据,这样对方就可以控制发送数据的速度,从而达到流量控制的目的。

    通俗点讲,就是接收方每次收到数据包,在发送确认报文的时候,同时告诉发送方,自己的接收缓冲区还有多少空闲空间,缓冲区的空闲空间,我们就称之为接收窗口大小。

    TCP 滑动窗口分为两种: 发送窗口和接收窗口。

    发送方的滑动窗口包含四个部分:

    已发送且已收到 ACK 确认已发送但未收到 ACK 确认未发送但可以发送未发送且不可发送

    虚线矩形框,就是发送窗口。SND.WND:表示发送窗口的大小,上图虚线框的格子数是 14 个,即发送窗口大小是 14。SND.NXT:下一个发送的位置,它指向未发送但可以发送的第一个字节的序列号。SND.UNA:一个绝对指针,它指向的是已发送但未收到确认的第一个字节的序列号。

    接收方的滑动窗口包含三个部分:

    已成功接收并确认未收到数据但可以接收未收到数据且不可以接收的数据

    虚线矩形框,就是接收窗口。REV.WND:表示接收窗口的大小,上图虚线框的格子数就是 9 个,即接收窗口的大小是 9。REV.NXT:下一个接收的位置,它指向未收到但可以接收的第一个字节的序列号。31.说说 TCP 的拥塞控制?

    什么是拥塞控制?不是有了流量控制吗?

    前⾯的流量控制是避免发送⽅的数据填满接收⽅的缓存,但是并不知道整个⽹络中发⽣了什么。

    ⼀般来说,计算机⽹络都处在⼀个共享的环境。因此也有可能会因为其他主机之间的通信使得⽹络出现拥堵。

    在⽹络出现拥堵时,如果继续发送⼤量数据包,可能会导致数据包延迟、丢失等,这时 TCP 就会重传数据,但是⼀重传就会导致⽹络的负担更重,于是会导致更⼤的延迟以及更多的丢包,这个情况就会进⼊恶性循环并且被不断地放⼤…

    所以,TCP 不能忽略整个网络中发⽣的事,它被设计成⼀个⽆私的协议,当⽹络发送拥塞时,TCP 会⾃我牺牲,降低发送的数据流。

    于是,就有了拥塞控制,拥塞控制的⽬的就是为了避免发送⽅的数据填满整个⽹络。

    就像是一个水管,不能让太多的水(数据流)流入水管,如果超过水管的承受能力,水管就会被撑爆(丢包)。

    发送方维护一个拥塞窗口 cwnd(congestion window) 的变量,调节所要发送数据的量。

    什么是拥塞窗⼝?和发送窗⼝有什么关系呢?

    拥塞窗⼝ **cwnd **是发送⽅维护的⼀个状态变量,它会根据⽹络的拥塞程度动态变化。

    发送窗⼝ swnd 和接收窗⼝ rwnd 是约等于的关系,那么由于加⼊了拥塞窗⼝的概念后,此时发送窗⼝的值 swnd = min(cwnd, rwnd),也就是取拥塞窗⼝和接收窗⼝中的最⼩值。

    拥塞窗⼝ cwnd 变化的规则:

    只要⽹络中没有出现拥塞, cwnd 就会增⼤但如果⽹络中出现了拥塞, cwnd 就会减小

    拥塞控制有哪些常用算法?

    慢启动

    慢启动算法,慢慢启动。

    它表示 TCP 建立连接完成后,一开始不要发送大量的数据,而是先探测一下网络的拥塞程度。由小到大逐渐增加拥塞窗口的大小,如果没有出现丢包,每收到一个 ACK,就将拥塞窗口 cwnd 的大小加 1(单位是 MSS)每轮次发送窗口增加一倍,呈指数增长,如果出现丢包,拥塞窗口就减半,进入拥塞避免阶段。

    举个例子:

    连接建⽴完成后,⼀开始初始化 cwnd = 1 ,表示可以传⼀个 MSS ⼤⼩的数据。当收到⼀个 ACK 确认应答后,cwnd 增加 1,于是⼀次性能够发送 2 个。当收到 2 个 ACK 确认应答后, cwnd 增加 2,于是就能⽐之前多发送 2 个,所以这⼀次能够发送 4 个。当这 4 个 ACK 确认到来的时候,每个确认 cwnd 增加 1, 4 个确认 cwnd 增加 4,于是就能⽐之前多发送 4 个,所以这⼀次能够发送 8 个。

    发送包的个数是呈指数性增⻓的。

    为了防止 cwnd 增长过大而引起网络拥塞,还需设置一个慢启动阀值 ssthresh(slow start threshold)的状态变量。当 cwnd 到达该阀值后,就好像水管被关小了水龙头一样,减少了拥塞状态。即当 cwnd > ssthresh 时,进入拥塞避免算法。

    拥塞避免

    一般来说,慢启动阀值 ssthresh 的大小是 65535 字节,cwnd 到达慢启动阀值

    每收到一个 ACK 时,cwnd = cwnd + 1/cwnd当每过一个 RTT 时,cwnd = cwnd + 1

    显然这是一个线性上升的算法,可以避免发送过快导致网络出现拥塞问题。

    接着上面慢启动的例子,假定 ssthresh 为 8:

    当 8 个 ACK 确认应答到来时,每个确认增加 1/8,8 个 ACK 确认后 cwnd ⼀共增加 1,于是这⼀次能够发送 9 个 MSS ⼤⼩的数据,变成了线性增⻓。

    拥塞发生

    当网络拥塞发生丢包时,会有两种情况:

    RTO 超时重传快速重传

    如果是发生了RTO 超时重传,就会使用「拥塞发生」算法

    慢启动阀值 sshthresh = cwnd/2cwnd 重置为 1进入新的慢启动过程

    这真的是辛辛苦苦几十年,一朝回到解放前。其实还有更好的处理方式,就是「快速重传」。当发送方收到 3 个连续的重复 ACK 时,就会快速地重传,不必等待 RTO超时 再重传。

    发⽣「快速重传」的拥塞发⽣算法:

    拥塞窗口大小 cwnd = cwnd/2慢启动阀值 ssthresh = cwnd进入快速恢复算法快速恢复

    快速重传和快速恢复算法一般是同时使用的。快速恢复算法认为,还能收到 3 个重复的 ACK,说明网络也没有那么糟糕,所以没必要像 RTO超时重传 那样强烈。

    正如前面所说的,进入快速恢复之前,cwnd 和 sshthresh 已被更新:

    cwnd = cwnd/2sshthresh = cwnd

    然后,真正进入「快速恢复」算法:

    cwnd = sshthresh + 3重传重复的那几个 ACK(即丢失的那几个数据包)如果再收到重复的 ACK,那么 cwnd = cwnd +1如果收到新数据的 ACK 后,cwnd = sshthresh。因为收到新数据的 ACK,表明恢复过程已经结束,可以再次进入「拥塞避免」算法了。

    32.说说 TCP 的重传机制?

    重传包括:超时重传快速重传带选择确认的重传(SACK)重复 SACK 四种。

    超时重传

    超时重传,是 TCP 协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个重传计时器,在一定时间内如果没有收到发送的数据报的 ACK 报文,那么就重新发送数据,直到收到 ACK 报文为止。

    超时时间应该设置为多少合适呢?

    RTT 就是数据完全发送完,到收到确认信号的时间,即数据包的一次往返时间

    超时重传时间,就是 RTO(Retransmission Timeout)。那么,RTO 应该设置多大呢?

    如果 RTO 设置很大,等了很久都没重发,这样肯定不行。如果 RTO 设置很小,那很可能数据都没有丢失,就开始重发了,这将会导致网络阻塞,从而发生恶性循环,导致更多的超时出现。

    一般来说,RTO 略微大于 RTT,效果是最佳的。

    超时重传并不是十分完美的重传方案,它有这些缺点:

    当一个报文丢失时,会等待一定的超时周期,才重传分组,增加了端到端的时延。当一个报文丢失时,在其等待超时的过程中,可能会出现这种情况:其后面的报文段已经被接收方接收了但却迟迟得不到确认,发送方会认为其后面的报文段也丢失了,从而引起不必要的重传,既浪费资源也浪费时间。快速重传

    快速重传可以用来解决超时重发的时间等待问题。

    它不以时间驱动,而是以数据驱动。它是基于接收方的反馈信息来引发重传的。

    快速重传的流程如下:

    发送方发送了 1,2,3,4,5,6 份数据:

    第一份 Seq=1 先送到了,于是 ACK 回2;第二份 Seq=2 也送到了,于是 ACK 回3;第三份 Seq=3 由于网络等某些原因,没送到;第四份 Seq=4 送到了,但是由于 Seq=3 没收到。因此 ACK 还是回3;后面的 Seq=5,6 也送到了,ACK 还是回复3,因为 Seq=3 没有收到。发送方连续收到三个重复冗余的 ACK=3 的确认(其实是4个哈,但是因为前面的一个是正常的ACK,后面三个才是重复冗余的),于是知道哪个报文段在传输过程中丢失了;发送方就在重传定时器过期之前,重传该报文段。最后,接收方收到了 Seq=3,此时因为 Seq=4,5,6 都收到了,于是它回 ACK=7。

    快速重传机制也有缺点:发送方并不知道到底是哪个报文丢失了,到底该重传多少个数据包?

    是只重传 Seq=3 ?还是重传 Seq=3、Seq=4、Seq=5、Seq=6 呢?因为发送方并不清楚这三个连续的 ACK=3 是谁传回来的。

    带选择确认的重传(SACK)

    为了解决应该重传多少个包的问题? TCP 提供了带选择确认的重传(即 SACK,Selective Acknowledgment)。

    SACK 机制就是,在快速重传的基础上,接收方返回最近收到报文段的序列号范围,这样发送方就知道接收方哪些数据包是没收到的。这样就很清楚应该重传哪些数据包。

    如上图中,发送⽅收到了三次同样的 ACK 确认报⽂,于是就会触发「快速重传」机制,通过 SACK 信息发现只有 200~299 这段数据丢失,则重发时,就只选择了这个 TCP 段进⾏重发。

    重复 SACK(D-SACK)

    D-SACK,英文是 Duplicate SACK,是在 SACK 的基础上做了一些扩展,主要用来告诉发送方,有哪些数据包,自己重复接受了。

    D-SACK 的目的是帮助发送方判断,是否发生了包失序、ACK 丢失、包重复或伪重传。让 TCP 可以更好的做网络流控。

    例如 ACK 丢包导致的数据包重复:

    接收⽅发给发送⽅的两个 ACK 确认应答都丢失了,所以发送⽅超时后,重传第⼀个数据包(3000 ~ 3499)接收⽅发现数据是重复收到的,于是回了⼀个 SACK = 3000~3500,告诉「发送⽅」 3000~3500的数据早已被接收了,因为 ACK 都到 4000 了,意味着 4000 之前的所有数据都已经收到了,所以这个 SACK 就代表着 D-SACK 。这样发送⽅就知道了,数据并没有丢,而是接收⽅的 ACK 确认报⽂丢了。33.说说 TCP 的粘包和拆包?

    什么是 TCP 粘包和拆包?

    TCP 是面向字节流,没有界限的一串数据。TCP 底层并不了解上层业务数据的具体含义,它会根据 TCP 缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被 TCP 拆分成多个包进行发送也有可能把多个小的包封装成一个大的数据包进行发送,这就是所谓的 TCP 粘包和拆包问题。

    为什么会产生粘包拆包呢?

    要发送的数据小于 TCP 发送缓冲区的大小,TCP 将多次写入缓冲区的数据一次性发送出去,将会发生粘包;接收方的应用层没有及时读取接收缓冲区的数据,将会发生粘包;要发送的数据大于 TCP 发送缓冲区剩余空间的大小,将会发生拆包;待发送的数据大于 MSS(最大报文长度),TCP 在传输前将会进行拆包。即 TCP报文长度 - TCP头部长度 > MSS。

    解决方案:

    发送方给每个数据包添加包首部,首部中应该至少包含数据包的长度,这样接收方在收到数据后,通过读取包首部的长度字段,便知道每一个数据包的实际长度了。发送方将每个数据包封装为固定长度(不够的可以通过补0填充),这样接收方每次从接收缓冲区中读取固定长度的数据,就自然而然的把每个数据包拆分开来。可以在数据包之间设置边界,如添加特殊符号,这样接收方通过这个边界就可以将不同的数据包拆分开来。

    一、计算机网络名词解释知识点简答题整理

    基带传输:比特流直接向电缆发送,无需调制到不同频段;

    基带信号:信源发出的没有经过调制的原始电信号;

    URL :统一资源定位符,标识万维网上的各种文档,全网范围唯一;

    传输时延:将分组的所有比特推向链路所需要的时间;

    协议:协议是通信设备通信前约定好的必须遵守的规则与约定,包括语法、语义、定时等。

    网络协议:对等层中对等实体间制定的规则和约定的集合;

    MODEM :调制解调器;

    起始(原始)服务器:对象最初存放并始终保持其拷贝的服务器;

    计算机网络:是用通信设备和线路将分散在不同地点的有独立功能的多个计算机系统互相连接起来,并通过网络协议进行数据通信,实现资源共享的计算机集合;

    解调:将模拟信号转换成数字信号;

    多路复用:在一条传输链路上同时建立多条连接,分别传输数据;

    默认路由器:与主机直接相连的一台路由器;

    LAN :局域网,是一个地理范围小的计算机网络;

    DNS :域名系统,完成主机名与 IP 地址的转换;

    ATM :异步传输模式,是建立在电路交换和分组交换基础上的一种面向连接的快速分组交换技术;

    Torrent :洪流,参与一个特定文件分发的所有对等方的集合;

    Cookie :为了辨别用户、用于 session 跟踪等而储存在用户本地终端的数据;

    SAP :服务访问点;

    n PDU : PDU 为协议数据单元,指对等层之间的数据传输单位;第 n 层的协议数据单元;

    PPP :点对点传输协议;

    Web caching :网页缓存技术;

    Web 缓存:代替起始服务器来满足 HTTP 请求的网络实体。

    Proxy server :代理服务器;

    Go-back-n :回退 n 流水线协议;允许发送方连续发送分组,无需等待确认,若出错,从出错的分组开始重发;接收方接收数据分组,若正确,发 ACK ,若出错,丢弃出错分组及其后面的分组,不发任何应答;

    Packet switching :分组交换技术;

    CDMA :码分多路复用技术;各站点使用不同的编码,然后可以混合发送,接收方可正确提取所需信息;

    TDM :时分多路复用,将链路的传输时间划分为若干时隙,每个连接轮流使用不同时隙进行传输;

    FDM :频分多路复用,将链路传输频段分成多个小的频段,分别用于不同连接信息的传送;

    OSI :开放系统互连模型,是计算机广域网体系结构的国际标准,把网络分为 7 层;

    CRC :循环冗余检测法,事先双方约定好生成多项式,发送节点在发送数据后附上冗余码,使得整个数据可以整除生成多项式,接收节点收到后,若能整除,则认为数据正确,否则,认为数据错误;

    RIP :路由信息协议;

    Socket (套接字):同一台主机内应用层和运输层的接口;

    转发表:交换设备内,从入端口到出端口建立起来的对应表,主要用来转发数据帧或 IP 分组;

    路由表:路由设备内,从源地址到目的地址建立起来的最佳路径表,主要用来转发 IP 分组;

    存储转发:分组先接收存储后,再转发出去;

    虚电路网络:能支持实现虚电路通信的网络;

    数据报网络:能支持实现数据报通信的网络;

    虚电路:源和目的主机之间建立的一条逻辑连接,创建这条逻辑连接时,将指派一个虚电路标识符 VC.ID ,相关设备为它运行中的连接维护状态信息;

    毒性逆转技术: DV 算法中,解决计数到无穷的技术,即告知从相邻路由器获得最短路径信息的相邻路由器到目的网络的距离为无穷大;

    加权公平排队 WFQ :排队策略为根据权值大小不同,将超出队列的数据包丢弃;

    服务原语:服务的实现形式,在相邻层通过服务原语建立交互关系,完服务与被服务的过程;

    透明传输:在无需用户干涉的情况下,可以传输任何数据的技术;

    自治系统 AS :由一组通常在相同管理者控制下的路由器组成,在相同的 AS 中,路由器可全部选用同样的选路算法,且拥有相互之间的信息;

    分组丢失:分组在传输过程中因为种种原因未能到达接收方的现象;

    隧道技术:在链路层或网络层通过对等协议建立起来的逻辑通信信道;

    移动接入:也称无线接入,是指那些常常是移动的端系统与网络的连接;

    面向连接服务:客户机程序和服务器程序发送实际数据的分组前,要彼此发送控制分组建立连接;

    无连接服务:客户机程序和服务器程序发送实际数据的分组前,无需彼此发送控制分组建立连接;

    MAC 地址:网卡或网络设备端口的物理地址;

    拥塞控制:当网络发生拥塞时,用响应的算法使网络恢复到正常工作的状态;

    流量控制:控制发送方发送数据的速率,使收发双方协调一致;

    Ad Hoc 网络:自主网络,无基站;

    往返时延:发送方发送数据分组到收到接收方应答所需要的时间;

    电路交换:通信节点之间采用面向连接方式,使用专用电路进行传输;

    ADSL :异步数字用户专线,采用不对称的上行与下行传输速率,常用于用户宽带接入。

    多播:组播,一对多通信;

    路由器的组成包括:输入端口、输出端口、交换结构、选路处理器;

    网络应用程序体系结构:客户机 / 服务器结构、对等共享、混合;

    集线器是物理层设备,交换机是数据链路层设备,网卡是数据链路层设备,路由器是网络层设备;

    双绞线连接设备的两种方法:直连线和交叉线,同种设备相连和计算机与路由器相连都使用交叉线;不同设备相连用直连线;

    MAC 地址 6 字节, IPv4 地址 4 字节, IPv6 地址 16 字节;

    有多种方法对载波波形进行调制,调频,调幅,调相;

    IEEE802.3 以太网采用的多路访问协议是 CSMA/CD ;

    自治系统 AS 内部的选路协议是 RIP 、 OSPF ;自治系统间的选路协议是 BGP ;

    多路访问协议:分三大类:信道划分协议、随机访问协议、轮流协议;

    信道划分协议包括:频分 FDM 、时分 TDM 、码分 CDMA ;

    随机访问协议包括: ALOHA 、 CSMA 、 CSMA/CD(802.3) 、 CSMA/CA(802.11) ;

    轮流协议包括:轮询协议、令牌传递协议

    ISO 和 OSI 分别是什么单词的缩写,中文意思是什么?用自己的理解写出 OSI 分成哪七层?每层要解决的问题和主要功能是什么?

    答:ISO:international standard organization 国际标准化组织;OSI:open system interconnection reference model 开放系统互连模型;

    OSI分为 应用层、表示层、会话层、传输层、网络层、数据链路层、物理层;

    层名称解决的问题主要功能

    应用层实现特定应用选择特定协议;针对特定应用规定协议、时序、表示等,进行封装。在端系统中用软件来实现,如HTTP;

    表示层压缩、加密等表示问题;规定数据的格式化表示,数据格式的转换等;

    会话层会话关系建立,会话时序控制等问题;规定通信的时序;数据交换的定界、同步、建立检查点等;

    传输层源端口到目的端口的传输问题;所有传输遗留问题:复用、流量、可靠;

    网络层路由、拥塞控制等网络问题;IP寻址,拥塞控制;

    数据链路层相邻节点无差错传输问题;实现检错与纠错,多路访问,寻址;

    物理层物理上可达;定义机械特性,电气特性,功能特性等;

    因特网协议栈分层模型及每层的功能。

    分层的优点:使复杂系统简化,易于维护和更新;

    分层的缺点:有些功能可能在不同层重复出现;

    ​​



    假设一个用户 ( 邮箱为: ) 使用 outlook 软件发送邮件到另一个用户 ( 邮箱为: ) ,且接收用户使用 IMAP 协议收取邮件,请给出此邮件的三个传输阶段,并给出每个阶段可能使用的应用层协议。

    用户 使用outlook软件发送邮件到 163 邮件服务器

    163邮件服务器将邮件发送给用户 的yahoo邮件服务器

    用户 使用IMAP协议从yahoo邮件服务器上拉取邮件

    第1、2阶段可以使用SMTP协议或者扩展的SMTP协议:MIME协议,第3阶段可以使用IMAP、POP3、HTTP协议

    三次握手的目的是什么?为什么要三次(二次为什么不行)?

    为了实现可靠数据传输,TCP协议的通信双方,都必须维护一个序列号,以标识发送出去的数据包中,哪些是已经被对方收到的。三次握手的过程即是通信双方相互告知序列号起始值,并确认对方已经收到了序列号起始值的必经步骤。

    如果只是两次握手,至多只有连接发起方的起始序列号能被确认,另一方选择的序列号则得不到确认。

    选择性重传 (SR) 协议中发送方窗口和接收方窗口何时移动?分别如何移动?

    发送方:当收到ACK确认分组后,若该分组的序号等于发送基序号时窗口发生移动;向前移动到未确认的最小序号的分组处;

    接收方:当收到分组的序号等于接收基序号时窗口移动;窗口按交付的分组数量向前移动;

    简述可靠传输协议 rdt1.0, rdt2.0, rdt2.1, rdt2.2 和 rdt3.0 在功能上的区别。

    rdt1.0:经可靠信道上的可靠数据传输,数据传送不出错不丢失,不需要反馈。

    rdt2.0(停等协议):比特差错信道上的可靠数据传输,认为信道传输的数据可能有比特差错,但不会丢包。接收方能进行差错检验,若数据出错,发送方接收到NAK之后进行重传。

    rdt2.1:在rdt2.0的基础上增加了处理重复分组的功能,收到重复分组后,再次发送ACK;

    rdt2.2:实现无NAK的可靠数据传输,接收方回发带确认号的ACK0/1,

    收到出错分组时,不发NAK,发送接收到的上一个分组的ACK;

    rdt3.0:实现了超时重发功能,由发送方检测丢包和恢复;

    电路交换和虚电路交换的区别?哪些网络使用电路交换、报文交换、虚电路交换和数据报交换?请各举一个例子。

    电路交换时整个物理线路由通讯双方独占;

    虚电路交换是在电路交换的基础上增加了分组机制,在一条物理线路上虚拟出多条通讯线路。

    电路交换:电话通信网

    报文交换:公用电报网

    虚电路交换:ATM

    数据报交换:Internet

    电路交换:面向连接,线路由通信双方独占;

    虚电路交换:面向连接,分组交换,各分组走统一路径,非独占链路;

    数据报交换:无连接,分组交换,各分组走不同路径;

    交换机逆向扩散式路径学习法的基本原理:

    交换表初始为空;

    当收到一个帧的目的地址不在交换表中时,将该帧发送到所有其他接口(除接收接口),并在表中记录下发送节点的信息,包括源MAC地址、发送到的接口,当前时间;

    如果每个节点都发送了一帧,每个节点的地址都会记录在表中;

    收到一个目的地址在表中的帧,将该帧发送到对应的接口;

    表自动更新:一段时间后,没有收到以表中某个地址为源地址的帧,从表中删除该地址;

    非持久 HTTP 连接和持久 HTTP 连接的不同:

    非持久HTTP连接:每个TCP连接只传输一个web对象,只传送一个请求/响应对,HTTP1.0使用;

    持久HTTP连接:每个TCP连接可以传送多个web对象,传送多个请求/响应对,HTTP1.1使用;

    Web 缓存的作用是什么?简述其工作过程:

    作用:代理原始服务器满足HTTP请求的网络实体;

    工作过程:

    浏览器:与web缓存建立一个TCP连接,向缓存发送一个该对象的HTTP请求;

    Web缓存:检查本地是否有该对象的拷贝;

    若有,就用HTTP响应报文向浏览器转发该对象;

    若没有,缓存与原始服务器建立TCP连接,向原始服务器发送一个该对象的HTTP请求,原始服务器收到请求后,用HTTP响应报文向web缓存发送该对象,web缓存收到响应,在本地存储一份,并通过HTTP响应报文向浏览器发送该对象;

    简要说明无线网络为什么要用 CSMA/CA 而不用 CSMA/CD ?

    无线网络用无线信号实施传输,现在的技术还无法检测冲突,因此无法使用带冲突检测的载波侦听多路访问协议CSMA/CD,而使用冲突避免的载波侦听多路访问协议CSMA/CA;

    简述各种交换结构优缺点,并解释线头 HOL 阻塞现象。

    内存交换结构:以内存为交换中心;

           优点:实现简单,成本低;

           缺点:不能并行,速度慢;

    总线交换结构:以共享总线为交换中心;

           优点:实现相对简单,成本低;

           缺点:不能并行,速度慢,不过比memory快;

    纵横制:以交叉阵列为交换中心;

           优点:能并行,速度快,比memory和总线都快;

           缺点:实现复杂,成本高;

    线头HOL阻塞:输入队列中后面的分组被位于线头的一个分组阻塞(即使输出端口是空闲的),等待交换结构发送;

    CSMA/CD 协议的中文全称,简述其工作原理。

    带冲突检测的载波侦听多路访问协议;

    在共享信道网络中,发送节点发送数据之前,先侦听链路是否空闲,若空闲,立即发送,否则随机推迟一段时间再侦听,在传输过程中,边传输边侦听,若发生冲突,以最快速度结束发送,并随机推迟一段时间再侦听;

    奇偶校验、二维奇偶校验、 CRC 校验三者比较:

    奇偶校验能检测出奇数个差错;

    二维奇偶校验能够检测出两个比特的错误,能够纠正一个比特的差错;

    CRC校验能检测小于等于r位的差错和任何奇数个差错;

    GBN 方法和 SR 方法的差异:

    GBN:一个定时器,超时,重发所有已发送未确认接收的分组,发送窗口不超过2的k次方-1,接收窗口大小为1,采用累计确认,接收方返回最后一个正确接受的分组的ACK;

    SR:多个定时器,超时,只重发超时定时器对应的分组,发送窗口和接收窗口大小都不超过2的k-1次方,非累计确认,接收方收到当前窗口或前一窗口内正确分组时返回对应的ACK;

    二、计算机的知识点

    电脑硬件基础知识
    1.了解电脑的基本组成
    一般我们看到的电脑都是由:主机(主要部分)、输出设备(显示器)、输入设备(键盘和鼠标)三大件组成。而主机是
    电脑的主体,在主机箱中有:主板、CPU、内存、电源、显卡、声卡、网卡、硬盘、软驱、光驱等硬件。
    从基本结构上来讲,电脑可以分为五大部分:运算器、存储器、控制器、输入设备、输出设备。
    2.了解电脑系统
    电脑系统分为硬件和软件两大部分,硬件相当于人的身体,而软件相当于人的灵魂。
    而硬件一般分为主机和外部设备,主机是一台电脑的核心部件,通常都是放在一个机箱里。而外部设备包括输入设备(如键盘、
    鼠标)和输出设备(如显示器、打印机)等。
    软件一般分为系统软件和应用软件。
    3.组装一台电脑需要选购哪些基本部件
    (1)、机箱,一般电脑的主要零件都放在这里。
    (2)、显示器,用来看电脑的工作过程,要不然,你都不知道电脑究竟在做什么。
    (3)、键盘和鼠标,向电脑输入有用的命令,让它去为我们工作。
    (4)、主板,这是一块很重要的东西,虽然它长得有点“丑”,这里是决定你这台电脑性能的重要零件之一哦。
    (5)、内存,当电脑工作时,电脑会在这里存上存储数据,相当于人的记忆。
    (6)、CPU,也称中央处理器,是电脑运算和控制的核心。
    (7)、显卡,电脑通过这个玩意传送给显示器。
    (8)、声卡,电脑通过这个玩意传送声音给音箱的哦。
    (9)、硬盘,平常人们常说我的硬盘有多少G多少G,就是指这个硬盘的容量,而G数越多能装的东西便越多。
    (10)、软驱,就是插软盘的玩意,现在一般都用3.5英寸的,古老年代用5.25英寸的,现在我们去买人家都不卖了。
    (11)、光驱,听CD当然少不了这个,有时候你要安装某些软件都是在光盘上的,所以这个用处太大。
    (12)、电源,主要用于将220V的外接电源转换为各种直流电源,供电脑的各个部件使用
    4. 如何评价一台电脑的好和坏
    当然,一台电脑的好坏,是要从多方面来衡量的,不能仅看其中某个或者几个性能指标。而一般评价一台电脑的好坏的
    性能指标有如下几种:
    (1)、CPU的类型和时钟频率
    这是电脑最主要的性能指标,它决定了一台电脑的最基本性能。以前我们常说的286、386、486、586、686等就是
    按CPU的型号来叫的。
    时钟频率是一台电脑按固定的节拍来工作的一种衡量方法吧,又称为主频,时钟频率越高,时钟周期就越短,它执行指令
    所需要的时间便越短,运算速度就越快。
    (2)、内存的容量
    内存的单位是MB,平常人们总说我的内存有多少多少MB就是指这个,如32MB、64MB、128MB、256MB等,一台电脑,
    它的内存容量越大,则电脑所能处理的任务可以越复杂,速度也会越快。
    (3)、外部设备的配置情况
    高档电脑一般都有软好的显示器、键盘、鼠标、音箱等等。
    (4)、运行速度
    一台电脑的运行速度主要是由CPU和内存的速度所决定的。
    (5)、总线类型
    总线位数越多,机器性能越高。
    (6)、兼容性
    是否具有广泛的兼容性,包括能否运行所有电脑上开发的各种应用软件和接受电脑各类扩展卡

    三、计算机基础知识点总结

    计算机基础知识点总结

      计算机应用基础满足普通高等院校培养“应用型人才”的教学宗旨,内容丰富,与时俱进,实用性强。下面是我整理的关于计算机基础知识点总结,欢迎大家参考!

      1. 计算机发展史中计算机诞生时间的三个第一

      世界上发明的第一台电子计算机 ENIA C 1946.2 美国

      世界上第一台按存储程序控制功能设计的计算机 EDVA C 1946 1950 美国

      世界上第一台投入运行的实现存储顺序控制功能的计算机 EDSA C 1947 1949.5 英国

      2. 计算机发展的四个阶段和计算机时代的开始

      ⑴计算机发展的分代按照不同的规范有不同的分法。

      通常是按计算机中硬件所采用的电子逻辑器件划分成电子管、晶体管、中小规模集成电路、大规模超大规模集成电路四个阶段;

      也有一种观点把计算机的发展大致分为四个时期,即大型机时期、小型机时期、 PC 时期(或客户 / 服务器、 PC/ 服务器)时期和 Internet 或以网络为中心)时期。

      ⑵通常 所说的计算机时代 ” 从何时开始?

      认为 1951 年,世界上第一台商品化批量生产的计算机 UNIVA C-I 投产,计算机从此从实验室走向社会,由单纯为军事服务进入为社会公众服务,被认为是计算机时代的真正开始。

      3. 计算机的特点

      从计算机的特点理解计算机的定义,要清楚计算机的实质是一种信息处理机

      计算机是一种能够输入信息,存储信息,并按照人们意志(这些意志就是顺序)对信息进行加工处理,最后输出人们所需要信息的自动执行的电子装置。

      计算机的特点:处置速度快、处置精度高、可存储、可进行逻辑判断、可靠性高、通用性强。

      4. 计算机的主要性能指标

      主频、字长、存储容量、存取周期、运行速度。

      运算速度是个综合性的指标, MIPS 含义。

      影响运算速度的因素,主要是主频和存取周期,字长和存储容量也有影响。

      正确理解 字长 概念。

      5. 计算机的主要应用领域

      科学计算

      信息处置

      过程控制

      辅助系统

      通信

      6. 计算机中为什么要采用二进制及二进制的基本运算规则

      计算机中采用二进制是由计算机所使用的逻辑器件所决定。这种逻辑器件是具有两种状态的电路(触发器)好处是

      运算简单

      实现方便

      利息低

      要清楚逻辑运算和算术运算规则的不同。

      7. 二进制数据与十进制、八进制、十六进制数据之间的转换

      要求:这几种进位计数制的数据,一定要会互相转换。

      清楚各种数制的表示。如: 1010BH

      什么进制

      的'数?十六进制数,不要答成二进制数。

      8. 计算机中字符数据的表示方式

      字符数据主要指西文的 A SCII 码和汉字,计算机内是用什么代码表示的

      A SCII 码:用 7 位二进制数表示的或用一个字节表示,最高位为 0 这是事实上的国际规范。

      汉字编码:用连续的两个字节表示,且规定最高位为 1 这是中国国家规范。

      9. 存储容量和地址

      存储容量是存储部件存储单元的总和;

      地址是存储单元的编号。

      要求:

      知道地址线,会求寻址空间

      知道存储容量和起始地址,会求末地址

      难点:

      地址总线,地址信号

      寻址、寻址空间

      存储容量和地址信号的关系

      10. 存储顺序和程序控制原理

      1945 年,冯 诺依曼提出的现代计算机的理论基础。现代计算机已经发展到第四代,但仍遵循着这个原理。

      存储顺序和程序控制原理的要点是顺序输入到计算机中,存储在内存储器中(存储原理)运行时,控制器按地址顺序取出存放在内存储器中的指令(按地址顺序访问指令)然后分析指令,执行指令的功能,遇到转移指令时,则转移到转移地址,再按地址顺序访问指令(顺序控制)

      11. 指令和程序

      指令是包括有操作码和地址码的一串二进制代码。其中操作码规定了操作的性质 什么样的操作 地址码表示了操作数和操作结果的存放地址。

      顺序是为解决某一问题而设计的一系列排列有序的指令或语句(顺序设计语言的语句实质包括了一系列指令)集合。

      12. 计算机硬件的组成及各组成部分的功能

      要理解以存储器为中心的计算机组成原理图

      运算器:对信息和数据进行运算和加工处理,运算包括算术运算和逻辑运算。

      控制器:实现计算机自身处置过程的自动化,指挥计算机各部件按照指令功能的要求进行所需要的操作。

      存储器:存储顺序和数据。

      输入部件:输入顺序和数据。

      输出部件:输出计算机的处置结果。

      13. CPU 微处理器的概念

      ⑴ CPU 即中央处理单元,计算机的核心部件,包括了运算器和控制器两大部件

      ⑵微处理器:微型机上使用的 CPU 利用大规模集成电路技术把运算器和控制器制作在一块集成电路中的芯片。

      ⑶微型计算机:以微处理器为核心,加上用大规模集成电路做成的 RA M 和 ROM 存储芯片、输入输出接口芯片等组成的计算机。

      ⑷计算机型号和 CPU 型号的关系:

      Intel80286 286 微机

      Intel80386 386 微机

      Intel80486 486 微机

      14. 构成内存储器的半导体存储部件 RA M 和 ROM 特性

      内存储器由两种半导体芯片构成。

      RA M 随机存取存储器,也叫读写存储器。用来存放用户输入的顺序和数据,断电后, RA M 中的信息随之丢失。为什么在输入文稿时要经常随时存盘)

      ROM 只读存储器,断电后, ROM 中的信息坚持不变,用来存放固定的顺序和信息。

      15. 内存和外存的区别

      内存和外存本质的区别是能否被中央处理器( CPU 直接访问。 CPU 不能直接执行外存中的顺序,处置外存中的数据。

      两者的主要区别是

      从原理上讲位置不同,主机内还是主机外

      构成资料不同,半导体还是磁介质(光介质)

      存储容量不同,内存小,外存大。

      价格不同:价格 / 每存储单元内存高,外存低

      存取速度不同:内存高,外存低。

      16. 显示系统的组成和性能指标

      显示系统包括显示器和显示适配器 显示卡 两部分 , 性能也由这两部分的性能决定。

      ①像素:即光点

      ②点距:像素光点圆心之间的距离,单位 mm 点距越小,显示质量就越好。目前, CRT 显示器光点点距有 0.28 0.31 和 0.39 等。

      ③分辨率:

      ④显示存储器:也叫显示内存、显存,显示卡上,显存容量大,显示质量高,特别是对图像。

      17. 打印机的分类

      ⑴击打式打印机:利用机械原理由打印头通过色带把字体或图形打印在打印纸上。

      点阵针式打印机 例如 EPSON LQ-1600K

      ⑵非击打式印字机:利用光、电、磁、喷墨等物理和化学的方法把字印出来。主要有激光打印机和喷墨打印机。

      喷墨打印机

      激光打印机:激光打印机是激光扫描技术和电子照相技术相结合的产物。页式打式打印机,具有很好的印刷质量和打印速度。

      18. 微机硬件系统的基本配置

      微机系统的基本结构包括系统单元主机箱、显示器、键盘和打印机。

      ⑴系统单元主机箱

      系统主板:内含 CPU 内存储器、接口电路、总线和扩展槽;

      外存储器:软盘驱动器、硬盘驱动器和光盘驱动器 CD-ROM

      开关电源几其它附件

      ⑵显示系统

      ⑶键盘和鼠标

      ⑷打印机

      19. 软件的含义和分类

      ⑴计算机软件的含义

      计算机软件:指能指挥计算机工作的顺序与程序运行时所需要的数据,以及与这些程序和数据有关的文字说明和图表资料,其中文字说明和图表资料又称文档。

      裸机的概念:不装备任何软件的计算机称为硬件计算机或裸机。

      计算机硬件与软件的关系:计算机软件随硬件技术的迅速发展而发展,软件的不时发展与完善,又促进了硬件的新发展。实际上计算机某些硬件的功能可以由软件来实现,而某些软件的功能也可以由硬件来实现。

      ⑵系统软件:系统软件是计算机系统必备的软件,主要功能是管理、监控和维护计算机资源 包括硬件和软件 以及开发应用软件。包括四个方面的软件:

      操作系统

      各种语言处置顺序

      系统支持和服务程序

      数据库管理系统

      ⑶应用软件

      应用软件是为解决计算机各类应用问题而编制的软件系统,具有很强的实用性。应用软件是由系统软件开发的可分为

      用户顺序:用户顺序是用户为了解决自己特定的具体问题而开 发的软件 , 系统软件和应 用软件包的支持下进行开发。

      应用软件包:应用软件包是为实现某种特殊功能或特殊计算,经过精心设计的独立软件系统,一套满足同类应用的许多用户需要的软件。

      20. 顺序设计语言的种类

      机器语言:就是二进制语言 , 计算机唯一能直接识别、直接执行的计算机语言,因不同的计算机指令系统不同,所以机器语言顺序没有通用性。

      汇编语言:汇编语言是机器语言的进化,和机器语言基本上是一一对应的但在表示方法上用一种助记符表示。

      汇编语言和机器语言都是面向机器的顺序设计语言,一般称为低级语言。

      高级语言

      21. 键盘和鼠标的作用

      s 键盘的作用:输入顺序和数据

      s 熟练掌握各种符号键的使用及常用控制键的功能( CapsLock Esc Shift A lt Ctrl PrintScreen NumLock 等的作用)

      s 鼠标的功能:鼠标是微机图形操作环境下常用的一种计算机命令输入装置。依照一般人的右手使用习惯,左键是正常选择和拖动,右键则用于显示环境菜单和特殊拖动。

      22. 计算机病毒的概念

      ⑴什么是计算机病毒?三个要点

      具有自我复制能力、对计算机系统工作造成干扰和破坏、人为编制的顺序。

      ⑵计算机病毒的特点:隐蔽性、污染性、潜伏性、破坏性

      ⑶防治方法:

      ①要树立正确的计算机病毒防治思想 预防为主,诊治结合

      ② 一旦发现计算机运行不正常,立即用杀毒软件检查或消毒。

      23. 计算机软件的知识产权维护知识

      ⑴总的评述:国政府对计算机软件产权维护非常重视,从 1990 年起,陆续出台了有关计算机软件知识产权维护的一系列政策法规, 1998 年,国立体交叉式的维护计算机软件的法律体系和执法体系已基本形成。

      ⑵ 《中华人民共和国著作权法》 1990.9.7 国首次把计算机软件作为一种知识产权(著作权)列入法律维护的范畴。计算机软件维护条例》 1991.10.1 公布与实施,对维护计算机软件著作权人的权益,鼓励计算机软件的开发和流通,促进计算机应用事业的发展起到重要的作用。

      24. 多媒体技术的基本概念和特点

      1 .什么是媒体和媒体的分类

      s 媒体:指信息表示和传播的载体。

      s 媒体的分类:感觉媒体、表示媒体、表示媒体、存储媒体和传输媒体。

      2 .什么是多媒体和多媒体技术

      s 多媒体:多种媒体的综合,而现在所指的多媒体即指多媒体技术。

      s 多媒体技术:把数字、文字、声音、图形、图像和动画等多种媒体有机组合起来,利用计算机、通信和广播电视技术,使它建立起逻辑联系,并能进行加工处理(包括对这些媒体的录入、压缩和解压缩、存储、显示和传输等)技术。

      3. 多媒体技术的特点

      s 信息载体的多样性

      s 多种信息的综合和集成处理

      s 多媒体系统是一个交互式系统

      25. 多媒体计算机的基本配置

      依照 MPC 联盟的规范,多媒体计算机包括 5 个基本单元:个人计算机、 CD-ROM 驱动器、音频卡、 Microsoft Windows3.X 以上操作系统及一组音响或耳机。

      现代 MPC 主要硬件配置必需包括 CD-ROM  音频卡和视频卡 , 这三方面既是构成现代 MPC 重要组成局部,也是衡量一台 MPC 功能强弱的基本标志。

    ;

    关于计算机网络的发展史的问题,通过《计算机的知识点》、《计算机基础知识点总结》等文章的解答希望已经帮助到您了!如您想了解更多关于计算机网络的发展史的相关信息,请到本站进行查找!

    相关阅读

    • 三十三个计算机网络核心知识点

    • 158文章网范文示例
    • 今天小编给各位分享计算机网络的发展史的知识,文中也会对其通过三十三个计算机网络核心知识点和计算机网络名词解释知识点简答题整理等多篇文章进行知识讲解,如果文章内容对
    关键词不能为空

    范文示例_作文写作_作文欣赏_故事分享_158文章网