> 这个问题可以说是老生常谈了!大家面试时候是不是都被问过😀
> 当时大家都是怎么回答的呢?🤔
> 另外 本文的整理与总结如果有啥问题 欢迎大佬们指出!
本文中的回答参考了
- 小林的《图解网络》
- 极客时间 趣谈网络协议
- RFC793
- 知乎上大神的回答
感谢前辈们分享的知识!
另外以下内容也参杂着很多个人的理解 如果大家有其他想法 欢迎交流!!
感谢!!
面试官:“来聊聊计算机网络 为啥TCP连接是三次握手 不是两次/四次呢?”
我:“…”
这个经典问题吧~
之前看过图解网络中的内容
谢希仁的计算机网络 对应这部分的内容
也搜过知乎 看过大佬解读的RFC中的内容
先说下结论 分两个点(两次握手肯定是做不到以下两点咯)
- 避免重复连接造成的资源浪费
- 防止已经失效的连接请求报文段一段时间后又传到了服务端
- 避免历史连接造成的网络混乱
- 三次握手可以防止历史连接的发生(通过发送RST报文)
- TCP是可靠传输的 需要三次握手来约定、确定双方的初始序列号(seq——sequence numbers))