TCP协议的11种状态及其变化过程?传输的内容又是什么?

在TCP的11种状态变迁中,我们需要用到TCP头部的三个标志位:

1.SYN,SYN=1表示这是一个连接请求报文或者连接接受报文

2.ACK,ACK=1,表示确认号生效

3.FIN,FIN=1表示发送方数据已经发送完毕,并要求释放连接

假设连接的请求和释放都是由客户端主动发起的!

CLOSED状态:初始状态,表示TCP连接是“关闭的”或者“未打开的”

LISTEN状态:表示服务端的某个端口正处于监听状态,正在等待客户端连接的到来

SYN_SENT状态:当客户端发送SYN请求建立连接之后,客户端处于SYN_SENT状态,等待服务器发送SYN+ACK

SYN_RCVD状态:当服务器收到来自客户端的连接请求SYN之后,服务器处于SYN_RCVD状态,在接收到SYN请求之后会向客户端回复一个SYN+ACK的确认报文

ESTABLISED状态:当客户端回复服务器一个ACK和服务器收到该ACK(TCP最后一次握手)之后,服务器和客户端都处于该状态,表示TCP连接已经成功建立

FIN_WAIT_1状态:当数据传输期间当客户端想断开连接,向服务器发送了一个FIN之后,客户端处于该状态

FIN_WAIT_2状态:当客户端收到服务器发送的连接断开确认ACK之后,客户端处于该状态

CLOSE_WAIT状态:当服务器发送连接断开确认ACK之后但是还没有发送自己的FIN之前的这段时间,服务器处于该状态

TIME_WAIT状态:当客户端收到了服务器发送的FIN并且发送了自己的ACK之后,客户端处于该状态,关于TIME_WAIT状态在整个TCP体系中的作用,请参考:https://www.cnblogs.com/yinbiao/p/10945836.html

LAST_ACK状态:表示被动关闭的一方(比如服务器)在发送FIN之后,等待对方的ACK报文时,就处于该状态

CLOSING状态:连接断开期间,一般是客户端发送一个FIN,然后服务器回复一个ACK,然后服务器发送完数据后再回复一个FIN,当客户端和服务器同时接受到FIN时,客户端和服务器处于CLOSING状态,也就是此时双方都正在关闭同一个连接

TCP状态变迁中传输的内容:

 

posted @ 2019-06-13 11:11  西*风  阅读(1242)  评论(0编辑  收藏  举报