博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tcp断开的4次挥手
阅读量:5057 次
发布时间:2019-06-12

本文共 738 字,大约阅读时间需要 2 分钟。

由于TCP连 接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

 (1) TCP客 户端发送一个FIN,用来关闭客户到服务器的数据传送(报文段4)。
 (2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。
 (3) 服务器关闭客户端的连接,发送一个FIN给客户端(报文段6)。
 (4) 客户段发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。

 

 

关闭TCP连接:改进的三次握手编辑

对于一个已经建立的连接,TCP使用改进的三次握手来释放连接(使用一个带有FIN附加标记的报文段)。TCP关闭连接的步骤如下:
第一步,当主机A的应用程序通知TCP数据已经发送完毕时,TCP向主机B发送一个带有FIN附加标记的报文段(FIN表示英文finish)。
第二步,主机B收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接(先发送ACK的目的是为了防止在这段时间内,对方重传FIN报文段)。
第三步,主机B的应用程序告诉TCP:我要彻底的关闭连接,TCP向主机A送一个FIN报文段。
第四步,主机A收到这个FIN报文段后,向主机B发送一个ACK表示连接彻底释放。

 

客户端主动断开连接

转载于:https://www.cnblogs.com/chucklu/p/4900878.html

你可能感兴趣的文章
纯CSS写三角形-border法[晋级篇01]
查看>>
类前缀
查看>>
MySQL ALTER命令
查看>>
MySQL SQL 注入
查看>>
复杂密码生成工具apg
查看>>
Linux下动态库的使用
查看>>
Flex AIR自定义Mobile的弹出框组件
查看>>
BZOJ3226: [Sdoi2008]校门外的区间
查看>>
linux终端下一些“风骚”的按键操作及Linux终端命令
查看>>
Luogu4423 BJWC2011 最小三角形 平面最近点对
查看>>
CF1039D You Are Given a Tree 根号分治、二分、贪心
查看>>
(十四)WebGIS中地图放大缩小的设计和实现
查看>>
团队-UML
查看>>
SharePoint 2013 引发类型为“System.ArgumentException”的异常。 參数名: encodedValue
查看>>
谈谈单元測试之(二):測试工具 JUnit 3
查看>>
ASP.NET MVC Model绑定(五)
查看>>
orale 查询每年、每月、每日统计量的sql语句
查看>>
Android内核sysfs中switch类使用实例
查看>>
POJ2288 Islands and Bridges(TSP:状压DP)
查看>>
POJ3250 Bad Hair Day(单调栈)
查看>>