TCP状态描述

TCP的有限状态机用来管理一个连接,当第一次运行时,连接从一个初始状态CLOSED开始,当两个应用程序开始通信时,经过一系列的TCP段交换和状态变迁,直到成功建立连接,两端都处于ESTABLISHED状态,正常的数据发送和接收都发生在这一状态。TCP的大部分时间也处于这一状态,当发生错误或程序退出通信时,关闭连接,经历一系列相关的状态变迁,返回到最初的CLOSED状态。

标准给出了在TCP连接的各个状态中,发生某些事件要执行的动作和状态转移行为。下表对TCP各个状态进行简单的描述。

状态

描述

CLOSED

连接的起始状态,这是一个“虚构”的状态,实际上此时还没有连接存在,也没有传输控制块(TCB)

LISTEN

等待客户端的连接请求,只有服务器才会处于这个状态

SYN-SENT

主机已经发起了一个连接请求,发送了SYN报文,正在等待与之匹配的连接确认,即对方发来的SYN和ACK

SYN-RECEIVED

主机接收了对方的连接请求,带有SYN的报文,并向对方回应了SYN和ACK。正在等待对方的确认,一旦收到相应的ACK,连接就建立成功

ESTABLISHED

成功建立连接,双方可以自由交换数据,收到的数据可以提交给应用程序

FIN-WAIT-1

应用程序主动关闭连接,发送了FIN,正在等待对方对FIN的确认或对方的终止连接请求FIN

FIN-WAIT-2

收到了主机关闭连接请求FIN的确认ACK,正在等待对方终止连接请求FIN

CLOSE-WAIT

已经收到对方关闭连接的请求FIN,并发送了ACK,正在等待本地应用程序关闭连接

CLOSING

已经发送了FIN,并且收到了对方发来的终止连接请求FIN,向对方发送ACK,双方同时关闭了连接,正在等待对方确认本机发送的连接关闭请求

LAST-ACK

本地应用程序已经关闭了连接,发送了FIN,正在等待对方对FIN的ACK

TIME-WAIT

双方都已经关闭了连接,本机发送的最后一个报文是ACK,这个状态要等待2倍的MSL(Maximum Segment Lifetime)时间,确保对方收到了ACK,防止与新连接发生重叠

TCP的状态机比较复杂,它是整个TCP工作的基础,理解TCP的状态机,对掌握TCP协议很有用处。

【学习资料】 《Winsock网络编程经络》

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP(传输控制协议)是一种可靠的面向连接的协议,它采用状态机机制进行连接的建立、数据传输和连接的终止。下面是TCP状态机的简单描述: 1. CLOSED:初始状态,表示连接未建立或已经终止。 2. LISTEN:表示服务器端正在等待客户端的连接请求。 3. SYN-SENT:表示客户端已经向服务器端发送了连接请求,但是还没有收到服务器端的确认。 4. SYN-RECEIVED:表示服务器端已经收到了客户端的连接请求,并向客户端发送了确认请求。 5. ESTABLISHED:表示连接已经建立,数据传输可以进行。 6. FIN-WAIT-1:表示客户端已经发送了连接终止请求,等待服务器端的确认。 7. FIN-WAIT-2:表示客户端已经收到了服务器端的确认,等待服务器端发送连接终止请求。 8. CLOSE-WAIT:表示服务器端已经收到了客户端的连接终止请求,但是还有数据需要传输。 9. CLOSING:表示服务器端正在等待最后一个数据包的确认,同时也向客户端发送连接终止请求。 10. LAST-ACK:表示服务器端已经发送了连接终止请求,并等待客户端的确认。 11. TIME-WAIT:表示连接已经终止,但是仍然需要等待一段时间,以确保最后一个确认已经传输到对方。 12. CLOSED:表示连接已经完全终止,可以重新开始新的连接建立过程。 以上是TCP状态机的简单描述。在实际应用中,TCP还有很多细节和特殊情况需要考虑,例如超时重传机制、拥塞控制等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值