42道计算机网络面试高频题
Posted vx-cg248805770
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了42道计算机网络面试高频题相关的知识,希望对你有一定的参考价值。
1、谈下你对五层网络协议体系结构的理解?
2、简单说下五层网络体系中每一层对应的网络协议有哪些?
3、ARP 协议的工作原理?
4、谈下你对 IP 地址分类的理解?
5、TCP 的主要特点是什么?
6、UDP 的主要特点是什么?
7、TCP 和 UDP 的区别?
8、TCP 和 UDP 分别对应的常见应用层协议有哪些?
9、详细说下 TCP 三次握手的过程?
10、为什么两次握手不可以呢?
11、为什么不需要四次握手?
12、Server 端收到 Client 端的 SYN 后,为什么还要传回 SYN?
13、传了 SYN,为什么还要传 ACK?
14、详细说下 TCP 四次挥手的过程?
15、为什么 TIME-WAIT 状态必须等待 2MSL 的时间呢?
16、为什么第二次跟第三次不能合并, 第二次和第三次之间的等待是什么?
17、保活计时器的作用?
18、TCP 协议是如何保证可靠传输的?
19、谈谈你对停止等待协议的理解?
20、谈谈你对 ARQ 协议的理解?
21、谈谈你对滑动窗口的了解?
22、谈下你对流量控制的理解?
23、谈下你对 TCP 拥塞控制的理解?使用了哪些算法?
24、什么是粘包?
在进行 Java NIO 学习时,可能会发现:如果客户端连续不断的向服务端发送数据包时,服务端接收的数据会出现两个数据包粘在一起的情况。 1. TCP 是基于字节流的,虽然应用层和 TCP 传输层之间的数据交互是大小不等的数据块,但是 TCP 把这些数据块仅仅看成一连串无结构的字节流,没有边界; 2. 从 TCP 的帧结构也可以看出,在 TCP 的首部没有表示数据长度的字段。 基于上面两点,在使用 TCP 传输数据时,才有粘包或者拆包现象发生的可能。一个数据包中包含了发送端发送的两个数据包的信息,这种现象即为粘包。 接收端收到了两个数据包,但是这两个数据包要么是不完整的,要么就是多出来一块,这种情况即发生了拆包和粘包。拆包和粘包的问题导致接收端在处理的时候会非常困难,因为无法区分一个完整的数据包。
25、TCP 黏包是怎么产生的?
- 发送方产生粘包
采用 TCP 协议传输数据的客户端与服务器经常是保持一个长连接的状态(一次连接发一次数据不存在粘包),双方在连接不断开的情况下,可以一直传输数据。但当发送的数据包过于的小时,那么 TCP 协议默认的会启用 Nagle 算法,将这些较小的数据包进行合并发送(缓冲区数据发送是一个堆压的过程);这个合并过程就是在发送缓冲区中进行的,也就是说数据发送出来它已经是粘包的状态了。
- 接收方产生粘包
接收方采用 TCP 协议接收数据时的过程是这样的:数据到接收方,从网络模型的下方传递至传输层,传输层的 TCP 协议处理是将其放置接收缓冲区,然后由应用层来主动获取(C 语言用 recv、read 等函数);这时会出现一个问题,就是我们在程序中调用的读取数据函数不能及时的把缓冲区中的数据拿出来,而下一个数据又到来并有一部分放入的缓冲区末尾,等我们读取数据时就是一个粘包。(放数据的速度 > 应用层拿数据速度)
26、怎么解决拆包和粘包?
27、你对 HTTP 状态码有了解吗?
28、HTTP 状态码 301 和 302 代表的是什么?有什么区别?
29、forward 和 redirect 的区别?
30、HTTP 方法有哪些?
31、说下 GET 和 POST 的区别?
32、在浏览器中输入 URL 地址到显示主页的过程?
33、DNS 的解析过程?
34、谈谈你对域名缓存的了解?
35、谈下你对 HTTP 长连接和短连接的理解?分别应用于哪些场景?
36、谈下 HTTP 1.0 和 1.1、1.2 的主要变化?
37、HTTPS 的工作过程?
38、HTTP 和 HTTPS 的区别?
39、HTTPS 的优缺点?
40、什么是数字签名?
41、什么是数字证书?
42、什么是对称加密和非对称加密?
以上是关于42道计算机网络面试高频题的主要内容,如果未能解决你的问题,请参考以下文章