请你说一说TCP的模型,状态转移

TCP的模型,状态转移

tcp四层模型:
应用层
网络层
数据链路层
物理层

状态转移
服务端的状态转移:
服务端打开后处于listen,等待客户端的连接请求。当服务端接收到客户端发来的连接请求syn后,服务端进入synreceive状态,并回复syn和ack表示接受连接后,当服务端再次收到ack后。服务端认为连接已建立并进入establish状态。当服务端接收到fin=1后,表明客户端要关闭连接,这时服务端进入close_wait状态,此时,服务端不在接收数据,但是可以继续发送数据,当服务端数据发送完后,服务端会发送fin,并计入lask_ack状态,在lask_ack状态下,服务端收到客户端发来的fin和ack后,服务端关闭连接,处于close状态。

客户端的状态转移:
客户端发送syn = 1 后,会处于synsned状态,当收到服务端发来的syn和ack后,客户端会返回一个确认发送ack,发完之后会进入establish状态。客户端发送fin=1主动关闭连接,会处于fin_wait_1状态。
此状态下:
1.服务端会回复一个ack表示服务端还能发送数据,此时客户端会进入fin_wait_2状态,表明等待服务端关闭连接。
2.收到服务端发来的fin =1 ,此时客户端发送ack,进入closing状态。
3.收到服务端发来额fin+ack,此时客户端会发送ack进入time_wait状态,等到2MSL后,就会彻底关闭。

猜你喜欢

转载自blog.csdn.net/aaaqqq1234/article/details/108308234