关于tcp三次握手四次挥手相关的问题,面试经常问,所以临阵磨枪,稍微整理一下。
tcp协议漫谈
tcp是传输层协议,该协议的设计目标为通信双发提供可靠的字节流传输服务。
一个消息可能很大,所以一般需要把消息拆分为较小的报文分批发送。如此以来,就有了下面这些问题:
- 如果保证发送的消息不丢失?
- 如何保证接收方接收的消息顺序与发送方一致?
- 如何处理网络拥堵与对方处理速度过慢的问题?
问题1.的解决方案是请求确认机制。
问题2.的解决方案是问发送的每条消息编号,同时1.中的确认机制也基于这个发送的消息的序号(ACK=SYN+1)。
问题3.的方法是滑动窗口。
一次完整tcp事务包括:
- 建立连接
- 在双方传输数据
- 关闭连接
三次握手
靡不有初,鲜克有终。建立连接是为可靠的数据传输做好准备工作。由于网络状况复杂,所以双发首先需要确定自己收发消息的链路都是OK的。这就有了三次握手。

为什么是三次握手呢?两次不可以吗?如果是两次的话,假设只有最先的两次握手,那么A是可以去确认自己的收发都是没有问题的。但是B却不能确定自己发送给A的消息是否可以收到。有了第三次握手就不同了,第三次握手相当于A对B的应答

本文详细介绍了TCP协议的三次握手和四次挥手过程,旨在解决面试中常遇到的问题。三次握手确保了连接的可靠性,协商了序号和窗口大小;四次挥手则确保了双方在关闭连接前完成所有消息的处理。
最低0.47元/天 解锁文章
38万+

被折叠的 条评论
为什么被折叠?



