TCP释放连接的四次挥手

简介: 记下加深印象

TCP的“四次挥手”

image.png

“四次挥手”详细过程

(1)客户端发起TCP连接释放,报文内容有FIN、ACK、seq、ack
(2)服务端收到客户端的释放请求,发送释放确认,报文内容有ACK、seq、ack
(3)客户端收到确认,进入等待关闭的状态,此时客户端到服务端的通道被关闭
(4)服务端继续发送未发送完的数据
(5)当未发送的数据发送完毕后,服务端发起TCP连接释放,报文内容有FIN、ACK、seq、ack
(6)客户端收到释放请求后,发送释放确认,报文内容有ACK、seq、ack,并进入时间等待状态
(7)服务端收到释放确认,正式关闭,进入close状态
(8)2MSL时间到,客户端正式关闭,进入close状态

加粗字段即为”四次挥手“

总结:

简单来说就是客户端先通知服务端,我不发数据了,服务端确认下,两次挥手。
服务端等未发送完的数据发送完,说我也不发了,客户端确认下,两次挥手

客户端为什么一定要等待2MSL

考虑到一种场景:
当客户端发送给服务端的释放确认报文缺失或者超时,如果不等待2MSL就关闭客户端,那么此时客户端无法进行超时重传,服务端也会收不到确认,一直给客户端发送释放,得不到确认
image.png

使用wireshark抓包分析四次挥手

  • 这边使用wireshark并通过条件过滤抓了一些包

红色框选的四条数据包即为挥手四次过程
image.png
点进第一条即可查看报文详细内容
image.png

参考

深入浅出计算机网络

上一篇

TCP建立连接的三次握手

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
缓存 网络协议 安全
TCP通信机制:三次握手、四次挥手、滑动窗口
TCP通信机制:三次握手、四次挥手、滑动窗口
798 1
TCP通信机制:三次握手、四次挥手、滑动窗口
|
缓存 网络协议 网络架构
四十、TCP协议的特点、TCP报文段格式和TCP的连接管理
四十、TCP协议的特点、TCP报文段格式和TCP的连接管理
四十、TCP协议的特点、TCP报文段格式和TCP的连接管理
|
缓存 网络协议 安全
TCP三次握手四次挥手及常见问题解决方案
TCP三次握手四次挥手及常见问题解决方案
TCP三次握手四次挥手及常见问题解决方案
|
网络协议
计算机网络学习27:TCP连接与连接释放
客户端和服务端都是先建立传输控制模块
计算机网络学习27:TCP连接与连接释放
|
网络协议 测试技术
|
网络协议 网络性能优化
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
|
缓存 网络协议 网络性能优化
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
|
缓存 网络协议 Java
在项目中使用Curator的Java 客户端搭建后进行长TCP连接和TCP权限配置【Zookeeper】
在项目中使用Curator的Java 客户端搭建后进行长TCP连接和TCP权限配置【Zookeeper】
299 0
在项目中使用Curator的Java 客户端搭建后进行长TCP连接和TCP权限配置【Zookeeper】
|
网络协议
Netty之第一次 TCP 连接时发生了什么
Netty之第一次 TCP 连接时发生了什么
180 0
|
网络协议
TCP/UDP相关-三次握手四次挥手以及为什么三次握手-如何实现可靠UDP传输
TCP/UDP相关-三次握手四次挥手以及为什么三次握手-如何实现可靠UDP传输
156 0