TCP有限状态机简述
2015-04-20 14:40
113 查看
状态机简述计算机里讲的是有限状态机(Finite-state machine)。人生就是一个有限状态机,出生即open,死亡即close。当然人是一个复杂的有限状态机,在人的一生当中可以有很多个状态转换。比如你有一个(男)女朋友,和(他)她吵架即输入动作,分手成单身了即结果状态。当然也有动作的结果是不会让现有状态发生发生迁移的,取而代之的是同一状态的变化。比如和(男)女友吵架的这一动作虽没有造成分手,即还是非单身的状态,但你的心境可能发生了变化...简而言之,有始有终,有有限次状态迁移即为有限状态机。参考 http://en.wikipedia.org/wiki/Finite-state_machineTCP的三次握手和四次断开建立TCP连接的三次握手:我:你好!MM:呵呵,你好!我:呵呵断开TCP连接的四次握手:我:再见!MM:呵呵MM:再见!我:呵呵而所谓的状态机是指MM等待有人搭话,搭话已发送,等待MM回复,收到回复,已说再见,等MM说再见。。。。这些状态而已。TCP有效状态机简述tcp有效状态机根据上图,红色虚线箭头代表服务器端的状态,而绿色实现箭头代表客户端的状态。CLOSED状态:服务器端跟客户端均关闭,处于CLOSED状态。其实开始并未规定谁是服务器端,谁是客户端,根据需求而定;LISTEN状态:由于某些情况,其中一个端口被动打开处于监听状态(LISTEN),而另外一个向监听端发起会话请求,TCP三次握手开始。(ps 被动打开:指系统的应用程序需要打开一个端口,希望建立一个传人的链接,接受外部的请求,所以需要打开一个套接字监督该端口。);SYN_SENT状态:客户端有连接需求,需要于服务器端第一次建立链接,这时候向服务器端发送请求,SYN=1,客户端处于SYN_SENT状态;SYNRECVD状态:服务器端收到SYN请求后,自身处于SYNRECVD状态;ESTABLISHED状态:服务器端发送SYN ACK=1回馈请求之后,转换为ESTABLISHED态, SYN_SENT在收到SYN ACK,发送ACK,状态为ESTABLISHED。双方连接建立完成;FIN_WAIT_1状态:当双方通信完成,客户端向服务器发送FIN信号,准备断开连接,自身从ESTABLISHED状态转换为FIN_WAIT_1状态;CLOSE_WAIT状态:服务器端在收到FIN后,发送ACK确认,状态为CLOSE_WAIT状态,等待关闭;LAST_ACK状态:等待数据传输完成之后,服务器端发送FIN,自身状态变为LAST_ACK状态;FIN_WAIT_2状态:客户端只收到服务器端得ACK信号,并没有收到FIN信号;说明服务器端还有数据传输,那么此时为半连接;TIME_WAIT状态:有两种方式进入 该状态:1、FIN_WAIT_1进入:此时应用程序端口收到FIN+ACK(而不是像FIN_WAIT_2那样只收到ACK,说明数据已经发送完毕)并向服务器端口发送ACK;2、FIN_WAIT_2进入:此时应用程序端口收到了FIN,然后向服务器端发送ACK;TIME_WAIT是为了实现TCP 全双工连接的可靠性关闭,用来重发可能丢失的ACK报文;需要持续2个MSL(最大报文生存时间):假设应用程序端口在进入TIME_WAIT后,2个 MSL时间内并没有收到FIN,说明应用程序最后发出的ACK已经收到了;否则,会在2个MSL内在此收到ACK报文;码字很辛苦,转载请注明来自http://www.zaizai.org.cn的《TCP有效状态机简述 》
相关文章推荐
- TCP有限状态机
- TCP演进简述
- 简述TCP连接的建立与释放(三次握手、四次挥手)
- 简述tcp三次握手、四次挥手
- Socket编程实践(1) --TCP/IP简述
- TCP,IP,HTTP,SOCKET简述区别和联系
- 简述TCP三次握手过程
- 简述TCP连接的建立与释放(三次握手、四次挥手)
- 简述OSI七层协议模型、TCP/IP四层模型和五层协议之间的关系
- TCP有限状态机
- OSI[七层]与TCP/IP[四层]模型简述简图
- TCP 的有限状态机
- tcp有限状态机分析
- JavaAPI之网络编程UDP/TCP简述及示例
- TCP/IP 协议族简述
- 各协议(TCP/IP、UDP、HTTP、socket)内与外简述
- 简述TCP/IP四层体系结构及每层作用
- 简述Socket,IP,TCP三次握手,HTTP协议(有助于理解、记忆和学习)
- 简述TCP协议的六个标志位和三次握手与四次挥手的过程及原理
- 简述TCP/IP四层体系结构及每层作用