当前位置: 首页 >应用方案 >科普视频 >

【物联科普】TCP链接三次握手和四次挥手详解




这么解释就懂了!TCP三次握手和四次挥手

TCP连接的建立和释放分别通过“三次握手”和“四次挥手”来完成。

TCP三次握手(SYN → SYN+ACK → ACK)

第一次握手(SYN):

客户端拨通服务器的电话,说“喂?听得到吗?”(发送SYN信号,携带初始编号x:SYN=1,seq=x)。

进入“等待回应”状态(SYN_SENT)。

第二次握手(SYN-ACK):

服务器听到后回答:“听得到!你那边OK吗?”(发送SYN+ACK信号,确认收到x并携带自己的编号y:SYN=1,seq=y,ACK=1,ack=x+1)。

进入“准备接收”状态(SYN_RECV)。

第三次握手(ACK):

客户端确认:“没问题,开始聊吧!”(发送ACK信号,确认收到y:ACK=1,seq=x+1,ack=y+1)。

双方都进入“正常聊天”状态(ESTABLISHED),可以开始传输数据。

三次握手完成后,TCP 连接正式建立。


TCP四次挥手(FIN → ACK → FIN → ACK)

第一次挥手(FIN):

客户端说:“我讲完了,先挂了”(发送FIN信号,关闭发送通道。FIN=1,seq=m)。

进入“等待确认”状态(FIN_WAIT_1)。

第二次挥手(ACK):

服务器回应:“收到,我还在处理消息”(发送ACK信号,确认收到FIN。ACK=1,seq=n,ack=m+1)。

进入“准备关闭”状态(CLOSE_WAIT),但可能还有数据要发给客户端。

第三次挥手(FIN):

服务器处理完数据后说:“我也讲完了”(发送FIN信号,关闭发送通道:FIN=1,ACK=1,seq=k,ack=m+1)。

进入“等待最终确认”状态(LAST_ACK)。

第四次挥手(ACK):

客户端确认:“好的,再见!”(发送ACK信号,确认收到FIN:ACK=1,seq=m+1,ack=k+1)。

进入“彻底关闭”状态(TIME_WAIT),等待2MSL(最长报文存活时间)后彻底断开;服务器收到ACK后立即关闭。

TCP链接第四次握手

至此,四次挥手完成后,TCP连接正式关闭。


今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多以太网模组产品和无线通信技术资料,感兴趣的小伙伴可以登录我们的亿佰特官网和企业公众号(微信号:cdebyte进行了解,也可以直接拨打400电话咨询技术专员!



相关阅读:

1、TCP粘包怎么产生的以及TCP粘包问题解决方案

2、什么是TCP协议粘包以及如何解决TCP粘包问题

3、关于TCP keep-alive(保活)机制详解

4、分布式IO模块与西门子200smart PLC设备TCP连接例程



点击拨打: 亿佰特官网 4000-330-990