TCP三次握手及原因
三次握手过程
一开始客户端处于closed状态,服务器处于listen状态
- 第一次握手:客户端向服务器发送一个SYN报文,并指明客户端的初始化序列号isn_client,此时客户端处于SYN_SENT状态;
- 第二次握手:服务器收到客户端的SYN报文后,会返回SYN+ACK报文,其中SYN指明服务器的初始化序列号isn_server,ACK的值是客户端的初始化序列号ISN_client+1,表明已经收到了来自客户端的syn报文,此时服务器处于SYN_RCVD状态;
- 第三次握手:客户端收到服务器的报文后,会返回一个ACK报文,它的值是isn_server+1,之后客户端进入established状态,服务器收到ACK报文后,也进入established状态,此时双方已建立好连接。
三次握手过程中,第一次和第二次不能携带数据,第三次可以。
三次握手的原因
- 三次握手才可以阻止重复历史连接的初始化(主要原因)
- 同步双方的初始序列号
序列号是保证可靠传输的一个关键因素,两次握手只能保证一方的初始序列号可以被对方成功接收。
- 避免浪费资源
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY