理解 TCP 和 UDP(四)TCP 状态流转
来源:互联网 发布:java以什么编码 编辑:程序博客网 时间:2024/06/11 18:54
https://github.com/JerryC8080/understand-tcp-udp/blob/master/chapter4.md
状态流转
无论客户端还是服务器,在双方 TCP 通讯的过程中,都会有着一个「状态」的概念,状态会随着 TCP 通讯的不同阶段而变化。
TCP 状态流转图
各种状态表示的意思
CLOSED:表示初始状态
LISTEN:表示服务器端的某个 socket 处于监听状态,可以接受连接
SYN_SENT:在服务端监听后,客户端 socket 执行 CONNECT 连接时,客户端发送 SYN 报文,此时客户端就进入 SYN_SENT 状态,等待服务端确认。
SYN_RCVD:表示服务端接收到了 SYN 报文。
ESTABLISHED:表示连接已经建立了。
FIN_WAIT_1:其中一方请求终止连接,等待对方的 FIN 报文。
FIN_WAIT_2:在 FIN_WAIT_2 之后, 当对方回应 ACK 报文之后,进入该状态。
TIME_WAIT:表示收到了对方的 FIN 报文,并发送出了 ACK 报文,就等 2MSL 之后即可回到 CLOSED 状态。
CLOSING:一种罕见状态,发生在发送 FIN 报文之后,本应是先收到 ACK 报文,却先收到对方的 FIN 报文,那么就从 FIN_WAIT_1 的状态进入 CLOSING 状态。
CLOSE_WAIT:表示等待关闭,在 ESTABLISHED 过渡到 LAST_ACK 的一个过渡阶段,该阶段需要考虑是否还有数据发送给对方,如果没有,就可以关闭连接,发送 FIN 报文,然后进入 LAST_ACK 状态。
LAST_ACK:被动关闭一方发送 FIN 报文之后,最后等待对方的 ACK 报文所处的状态。
CLOSED:当收到 ACK 保温后,就可以进入 CLOSED 状态了。
- 理解 TCP 和 UDP(四)TCP 状态流转
- 理解 TCP 和 UDP(七)UDP
- 理解 TCP 和 UDP (一)TCP 端口
- 理解 TCP 和 UDP (二)TCP 报文结构
- 理解 TCP 和 UDP(六)TCP 网络编程接口
- 总结四(TCP、UDP)
- TCP/IP和UDP的基础理解(1)
- 对TCP和UDP的理解
- TCP和UDP区别通俗理解
- 真正理解 TCP /UDP!
- TCP/UDP部分理解
- TCP/UDP深入理解
- TCP/UDP简单理解
- TCP/IP的初步理解,TCP和UDP的区别
- 理解 TCP 和 UDP(三)TCP 连接的建立和释放
- UDP和TCP(1)
- tcp和udp(二)
- 理解 TCP 和 UDP(五)TCP 可靠性交付的实现
- UML 类图
- Android中使用findViewByMe提升组件查找效率
- Unity自带寻路Navmesh入门教程(三)
- ZCMU—G
- Android Studio使用指南
- 理解 TCP 和 UDP(四)TCP 状态流转
- 《机器学习》(周志华) 习题3.1-3.3个人笔记
- 类的继承与多态
- C++运算符重载、友元函数重载
- Spring框架IOC容器和AOP解析
- 解决pip install下载速度慢的问题
- 3伸缩布局-携程旅行
- 浅谈DNS域名解析
- hdu2586 lca