本文主要是介绍计算机网络(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
.....其余状态转换见图中
这篇关于计算机网络(8) Finite State Machines(有限状态机)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!