计算机网络(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

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

相关推荐
千码君20165 小时前
计算机网络:网络号和网络地址的区别
网络·计算机网络·子网掩码·网络地址·网络号·主机号
千码君20167 小时前
计算机网络:什么是任播
计算机网络·负载均衡·ddos·cdn·dns·任播·智能路由
青衫码上行8 小时前
【计算机网络 | 第2篇】计算机网络概述(下)
计算机网络
千码君201610 小时前
计算机网络:理解路由的下一跳
网络·计算机网络·智能路由器·路由表·网关地址·接口地址·相邻设备
易ლ拉罐1 天前
【计算机网络】Socket网络编程
服务器·网络·计算机网络
明月看潮生3 天前
编程与数学 03-002 计算机网络 19_网络新技术研究
计算机网络·青少年编程·编程与数学
明月看潮生3 天前
编程与数学 03-002 计算机网络 18_物联网与网络
物联网·计算机网络·青少年编程·编程与数学
心一信息3 天前
HCIE学习之路:一个NAT实验
学习·计算机网络·智能路由器
一念&3 天前
计算机网络中的socket是什么?编程语言中的socket编程又是什么?python的socket编程又该如何用?
python·计算机网络·php
明月看潮生3 天前
编程与数学 03-002 计算机网络 17_云计算与网络
计算机网络·青少年编程·云计算·编程与数学