TCP/IP协议几乎是运维,SRE,技术支持,后端研发特别是从事网络相关研发的部门,必考的题目,建议都背一下,命中率很高
原文链接: TCP三次握手能改成两次吗?TCP三次握手三次握手优化如果碰上这个面试题,可以通过以下三个答案来回答,别说改成两次了,0次都可以哦。答案1:TCP三次握手能从三次变成两次吗?这个问题,我们在之前的内容中讨论中,面试碰到此问题,我们回答不可以。这或许是大部分同学的答案,原因有三个点:避免一接收到SYN包,服务端就分配资源,建立连接而造成资源浪费防止旧的重复连接初始化造成混乱同步双方的初始序列号详细解析参见:字节面试真题--TCP建立连接为什么要三次握手?为什么不是两次或者四次?今天小编给你们一个不一样回答,拒绝千篇一律答案2:TCP握手两次也是可以的?如上图,在客户端发送SYN包之后,服务端发送SYN+ACK后进入SYN_RECV状态之后,客户端实际上在RFC 793中规定了在最后一个ACK是可以携带数据的,或者说可以在传输数据的保重携带控制信息。最后一次握手的ACK数据包,是可以同数据一同发送给服务端,服务端在SYN_RECV状态时,只要接收到带有ACK标记的数据,就会进入ESTABLISHED状态。详细信息可以参见:TCP三次握手最后一个ACK数据包丢失会发生什么?因为在第三次握手包中,就已经发送了数据了,相当于最后一个单纯的ACK握手包就不再需要了。也就相当于只有两次握手。答案3:TCP握手优化之TFO,SYN包直接带数据,就跟0次一样TCP三次握手之TCP FastOpen总结TCP的三次握手是否可以改成两次,在面试过程中,按照答案1回答也算是标准答案,但是每个同学都这样回答,是不是就没有特点了,那可以尝试一下按照答案2,答案3,再补充回答,或许能给面试官留下不一样的印象。
点赞 14
评论 3
全部评论

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务