作者:JAVA烂猪皮
链接:https://zhuanlan.zhihu.com/p/73467254
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
今天的这篇文章,重点是围绕着面试,我们应该掌握哪些比较重要的点,哪些是比较多被面试官给问到的,我觉得如果你能把我下面列举的一些点都记住、理解,我想就差不多了。
三次握手
当面试官问你为什么需要有三次握手、三次握手的作用、讲讲三次握手的时候,我想很多人会这样回答。
首先很多人会先讲下握手的过程:
- 第一次握手:客户端给服务器发送一个 SYN 报文。
- 第二次握手:服务器收到 SYN 报文之后,会应答一个 SYN+ACK 报文。
- 第三次握手:客户端收到 SYN+ACK 报文之后,会回应一个 ACK 报文。
- 服务器收到 ACK 报文之后,三次握手建立完成。
作用是为了确认双方的接收与发送能力是否正常。
这里我顺便解释一下为啥只有三次握手才能确认双方的接受与发送能力是否正常,而两次却不可以:
- 第一次握手:客户端发送网络包,服务端收到了。
这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
- 第二次握手:服务端发包,客户端收到了。
这样客户端就能得出结论:服务端的接收、发送能力