计算机网络(8) Finite State Machines(有限状态机)

一.建立连接(三次握手)

建立连接过程中的状态转换如下:

客户端:

发送SYN CLOSED >>>>>>>>>>>>>>SYN SENT(第一次握手)

接收SYN+ACK发送ACK SYN SENT>>>>>>>>>>>>>>ESTABLISHED(第三次握手)

服务端:

调用Listen() CLOSE>>>>>>>>>>>>>>>>LISTEN

接收SYN发送SYN+ACK LISTEN>>>>>>>>>>>>>>>>SYN RECEIVED(第二次握手)

收到ACK SYN RECEIVED>>>>>>>>>>>ESTABLISHED

二.关闭连接(四次挥手)

此阶段共有六个状态,可以分为主动关闭与被动关闭。主动关闭代表第一次主动发送FIN报文的一方的状态。被动关闭指最后关闭的连接通路(因为连接是双向的故而需要按照顺序关闭通道例如先关闭A->B再关闭B->A)。

主动关闭:

发送FIN ESTABLISHED>>>>>>>>>>>>>FIN WAIT 1

这时会出现三种情况,1)收到服务端FIN同时关闭2)只收到服务端ACK,此时服务端还可以向客户端传递消息,等待消息传输完毕3)收到服务端FIN+ACK,此时回应ACK

同时关闭 FIN WAIT 1>>>>>>>>>>>>CLOSING

收到ACK未收到FIN FIN WAIT 1>>>>>>>>>>>>FIN WAIT 2

.....其余状态转换见图中

相关推荐
.Ayang2 小时前
tomcat 后台部署 war 包 getshell
java·计算机网络·安全·web安全·网络安全·tomcat·网络攻击模型
云计算DevOps-韩老师4 小时前
【网络云计算】2024第48周-每日【2024/11/20】小测-理论题-计算机网络概述
计算机网络·网络设备
Hello Dam4 小时前
【计算机网络】物理层
计算机网络·物理层
_Power_Y6 小时前
计算机网络:应用层知识点概述及习题
计算机网络
co0t6 小时前
计算机网络(14)ip地址超详解
服务器·tcp/ip·计算机网络
C++忠实粉丝6 小时前
计算机网络socket编程(3)_UDP网络编程实现简单聊天室
linux·网络·c++·网络协议·计算机网络·udp
吃土少女古拉拉8 小时前
什么是计算机网络
计算机网络·学习笔记
C++忠实粉丝9 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
->yjy20 小时前
计算机网络(第一章)
网络·计算机网络·php
摘星星ʕ•̫͡•ʔ21 小时前
计算机网络 第三章:数据链路层(关于争用期的超详细内容)
网络·计算机网络