TCP的三次握手和四次挥手
TCP建立连接需要三次握手:
(1)客户端发送syn请求
(2)服务端收到请求后,发送syn+ack回复
(3)客户端回复ack请求
好比两个人隔着50米在大雾中对话。老黄看见50米处的老王,向他微笑(syn)。老王看见老黄的微笑,向老黄的方向挥了挥手(ack),表示自己已经看到
他了,并且对老黄微笑(syn)。老黄看到老王的挥手,知道老王看到他的微笑了,他挥了挥手(ack),表示自己看到了老王了。
于是两个好友见面了。
在这个过程中,一共产生四个动作,包括客户端的syn1和ack1,以及服务端的syn2和ack2。服务端的ack1+syn2是放在一条信息里的,
所以客户端主动发起两个,服务端被动发起一个。共有三次信息发送。
TCP解除连接的四次握手:
(1)客户端主动发起fin请求
(2)服务端回复ack,客户端收到后处于半关闭状态,不能释放资源
(3)服务端发起fin请求
(4)客户端回复ack,此时释放资源。
为什么接触连接需要四次握手,因为客户端收到回复后是处于半关闭状态的。并没有释放资源。
在客户端处于半关闭状态的时间里,大概是4分钟,也就是2个MSL(maximium segment lifetime),MSL是报文最大存活时间,2分钟,具体为什么
是两分钟还没有得到很好的解释。在这个过程中,网络中残留的传输失败的报文会消散,以免影响网速。
人前不露怯,
远足不露财,
内外当整洁,
自奉须俭约。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理