tcp协议详解
Posted xcb-1024day
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tcp协议详解相关的知识,希望对你有一定的参考价值。
tcp状态转移
1.CLOSED:起始点,在超时或者连接关闭时候进入此状态。
2.LISTEN:ser端在等待连接过来时候的状态,ser端为此要调用socket,bind,listen函数,就能进入此状态。此称为应用程序被动打开(等待客户端来连接)。
3.SYN_SENT:客户端发起连接,发送SYN给服务器端。如果服务器端不能连接,则直接进入CLOSED状态。
4.SYN_RCVD:服务器端接受客户端的SYN请求,服务器端由LISTEN状态进入SYN_RCVD状态。并且回应一个ACK报文和SYN报文给客户端;客户端在接收到服务器端回复的SYN请求后,客户端就会由SYN_SENT到SYN_RCVD状态。
5.ESTABLISHED:服务器端和客户端完成3次握手。
四次挥手:(默认客户端主动断开连接)
6.FIN_WAIT_1:客户端由ESTABLISHED(完成连接时的状态)进入此状态。并且发送FIN给对方。
7.CLOSE_WAIT:服务器接收到FIN以后,服务器进入close_wait状态。并且发送ACK给客户端。(此时进入半连接状态,服务器还可以发送数据给客户端)
8.LAST_ACK:当服务器想断开连接时,发送FIN给客户端,服务器进入LAST_ACK状态(等待客户端确认收到了FIN请求)
9.FIN_WAIT_2:客户端接收到对方的ACK进入FIN_WAIT_2。
10.TIME_WAIT:客户端接收到对方的FIN进入TIME_WAIT。并且发送ACK给服务器(回应服务器的关闭请求)
TIME_WAIT状态的意义:2MSL(两个最大报文段的生存时间)
1.可靠的终止tcp连接。
2.保证让迟来的tcp报文段有足够的时间被识别并丢弃。
以上是关于tcp协议详解的主要内容,如果未能解决你的问题,请参考以下文章