TCP的四次挥手(TCP的连接释放)
来源:互联网 发布:淘宝直通车规则 编辑:程序博客网 时间:2024/06/06 03:57
在上一篇博客中,我们已经解析过TCP的连接建立(TCP的三次握手),今天我们说说TCP建立之后的释放
通信的双方都可以启动释放连接,即客户或者服务器哪一方都可以启动释放连接
假设客户的应用进程主动启动释放连接,客户的应用进程先向其TCP发出释放连接报文段,并停止发送数据,主动关闭TCP连接
第一步:客户给服务器发送报文
客户把连接释放报文段的首部的FIN=1,其序号seq=u,等待B的确认
第二步:服务器给客户发送报文
服务器收到客户发来的报文段后,给客户发出确认,在确认报文段中应使ACK=1,自己选择的序号seq=v,其确认号ack=u+1注意:客户到服务器方向的数据传送,已经关闭,此时TCP连接处于半关闭状态但是,如果服务器还要给客户传送数据,还是可以的,所以,在本阶段中服务器还可以给客户发送数据
第三步:服务器给客户发送报文
若服务器没有要给客户传送的数据,其应用进程就通知TCP释放连接发送报文,在报文中使ACK=1,FIN=1,确认号ack=u+1,自己选择的序号seq=w
第四步:客户给服务器发送报文
客户收到服务器发来的报文后,再给服务器发送确认报文,在报文中使FIN=1,自己选择的序号seq=u+1,确认号ack=w+1
TCP连接必须经过2MSL的时间后才真正释放掉
TCP连接释放的过程:
A:我不想跟你联系了
B:好的,但是我还想给你送个礼物
B:礼物送完了,我们断了联系吧
A :好的,我们以后都不要再联系啦!
哈哈哈,致此TCP的连接释放都已经解析完了,TCP的连接在上一篇文章中:http://blog.csdn.net/dangzhangjing97/article/details/78407031
解释
FIN和ACK都是TCP首部的内容FIN 终止FIN,用来释放一个连接,FIN=1,表明此报文段的发送端的数据已经发送完毕,并要求释放连接。ACK 确认ACK,只有当ACK=1时,确认号字段才有效,当ACK=0时,确认号无效
阅读全文
0 0
- TCP的四次挥手(TCP的连接释放)
- TCP连接释放的四次挥手过程?
- TCP学习(3)--TCP释放连接的过程(四次挥手)
- TCP四次挥手释放连接
- socket中TCP的四次挥手释放连接详解
- TCP连接的四次挥手
- (运输层)TCP的连接建立(三次握手)和连接释放(四次挥手)
- TCP连接的建立(三次握手)和释放(四次挥手)
- TCP的连接(三次握手)和释放(四次挥手)
- TCP建立连接(三次握手)和释放(四次挥手)的详细解释
- 简述TCP连接的建立与释放(三次握手、四次挥手)
- TCP连接的建立和释放(三次握手和四次挥手)
- tcp/ip四次挥手释放连接详解
- TCP的四次挥手
- tcp关闭连接时的四次挥手
- tcp断开连接时的四次挥手
- TCP连接的三次握手,四次挥手
- TCP的三次连接和四次挥手
- 好用的K8S1.8.4 集群二进制安装指南
- 【程序人生】那些争议最大的编程观点
- 怎样从0一步一步搭建用户激励体系
- 指针与函数_比较函数指针
- navicat连接oracle的错误:ora-12737:instant client light :unsupport server charater set ZHS16GBK解决办法。
- TCP的四次挥手(TCP的连接释放)
- 技术思维解决“现金贷”危机——如何让互联网金融更加“互联网”?
- ADO.NET相关操作
- QT QTextBrowser 添加HTML格式图片文字混合QString后换行问题
- 以实例讲产品改版(下):需求与设计
- 【原创干货】用户标签/用户分群在DMP(数据管理平台)中的应用 | SG小组第一期
- 技术型产品经理与系统设计
- 解决boost::asio的WinSock.h has already been included
- 蚂蜂窝 VP 都斌:1.2 亿用户背后的数据驱动