TCP 的有限状态机
2015-06-13 14:56
423 查看
TCP协议的操作可以使用一个具有11种状态的有限状态机(FiniteState
Machine)来表示,图1描述了TCP的有限状态机,图中的圆角矩形表示状态,箭头表示状态之间的转换,各状态的描述如表1所示。图中用粗线表示客户端主动和被动的服务器端建立连接的正常过程:客户端的状态变迁用红色粗实线,服务器端的状态变迁用蓝色粗虚线。细线用于不常见的序列,如复位、同时打开、同时关闭等。图中的每条状态变换线上均标有“事件/动作”:事件是指用户执行了系统调用(CONNECT、LISTEN、SEND或CLOSE)、收到一个报文段(SYN、FIN、ACK或RST)、或者是出现了超过两倍最大的分组生命期的情况;动作是指发送一个报文段(SYN、FIN或ACK)或什么也没有(用“-”表示)。每个连接均开始于CLOSED状态。当一方执行了被动的连接原语(LISTEN)或主动的连接原语(CONNECT)时,它便会脱离CLOSED状态。如果此时另一方执行了相对应的连接原语,连接便建立了,并且状态变为ESTABLISHED。任何一方均可以首先请求释放连接,当连接被释放后,状态又回到了CLOSED。
表1TCP状态表
状 态 | 描 述 |
CLOSED | 关闭状态,没有连接活动或正在进行 |
LISTEN | 监听状态,服务器正在等待连接进入 |
SYNRCVD | 收到一个连接请求,尚未确认 |
SYNSENT | 已经发出连接请求,等待确认 |
ESTABLISHED | 连接建立,正常数据传输状态 |
FINWAIT 1 | (主动关闭)已经发送关闭请求,等待确认 |
FINWAIT 2 | (主动关闭)收到对方关闭确认,等待对方关闭请求 |
TIMEDWAIT | 完成双向关闭,等待所有分组死掉 |
CLOSING | 双方同时尝试关闭,等待对方确认 |
CLOSEWAIT | (被动关闭)收到对方关闭请求,已经确认 |
LASTACK | (被动关闭)等待最后一个关闭确认,并等待所有分组死掉 |
相关文章推荐
- TCP连接的建立与释放
- 5种服务器网络编程模型讲解
- 基于第三代蜜罐网关ROO,简单搭建攻防网络环境。
- (转)HttpClient 4.3.6 教程 前言 【翻译】
- TCP头部解析
- JavaWeb_HTTP协议
- unity开发:TCP socket网络连接
- 网络层协议:IP(Internet Protocol)的分类与子网
- 虚拟机的网络配置
- Linux中基于apache httpd的svn服务器搭建与配置
- 网络流建模总结
- http协议和web本质
- 《TCP/IP入门经典》——TCP/IP的工作方式
- XTU 1207 Welcome to XTCPC (模拟)
- win10网络位置怎么设置 win10网络位置设置图文教程
- 浅析防御僵尸网络基于应用层的DDOS攻击
- 网络上的那些叫法 那些词
- coco2dx c++ HTTP实现
- ios网络学习------4 UIWebView的加载本地数据的三种方式
- 网络的两大模型