三次握手与四次挥手
三次握手
握手前双方都处于close态
服务器主动监听进入LISTEN
状态
假设客户端要建立连接
第一次握手
客户端随机初始化序号client_isn
发送SYN报文进入SYN-SENT
状态
第二次握手
服务端接收 SYN
报文后随机初始化序号序号server_isn
把确认应答填为 client_isn + 1
开启 SYN
和 ACK
位服务器处于 SYN-RCVD
状态。
第三次握手
客户端向服务端回应 ACK
标志位置为 1
其次「确认应答号」字段填入 server_isn + 1
,客户端进入 ESTABLISHED
状态
服务端收到客户端的应答报文后,也进入 ESTABLISHED
状态。
四次挥手
假设客户端要断开连接
第一次挥手
客户端将FIN和ACK位置为1,发送报文,进入FIN_WAIT_1状态
第二次挥手
服务端发送ACK回应序号位对方的确认号,确认号为对方序号加一 进入CLOSE_WAIT
状态
第三次挥手
服务端发送完数据让把FIN和ACK位置一,确认号和序号不变进入 FIN_WAIT_2
状态
第四次挥手
客户端将ACK位置1,序号用对方的确认号,确认号用对方的序号加一进入 LAST_ACK
状态。
服务端接收该报文后进入 CLOSE
状态
客户端在两个最长路由周期后进入CLOSE
状态
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!