TCP三次握手建立连接和两次FIN关闭连接步骤简述

TCP三次握手建立连接步骤简述:
步骤1、客户端向服务器发送特殊的TCP segment,该segment的SYN位是1,客户端生成initial sequence number(client_isn),放到segment的sequence number字段中。随机选择的client_isn为了防止网络攻击。
步骤2、服务器收到客户端的TCP SYN segment之后,allocates the TCP buffers and variables to the connection,然后发送一个connection-granted segment给客户端,该segment中SYN位是1,acknowledgmet field 是 client_isn + 1,服务器选择自己的initial sequence number(server_isn)然后放到sequence number段中。这个segment也叫SYNACK segment。
步骤3、客户端收到SYNACK后,客户端也allocates buffers and variable to the connection,然后发送一个segment:是对SYNACK segment的回应ACK,所以acknowlegment段是server_isn + 1,SYN位设为0(在后面数据的传送时SYN都是0),并且可以携带数据。


TCP两次FIN关闭连接步骤简述:(以客户端的角度来描述,服务器角度也一样)
步骤1、客户端发起关闭,也就是发送一个segment,FIN位设为1,进入FIN_WAIT_1状态,等待ACK。
步骤2、服务器收到该FIN segment,返回ACK,客户端收到ACK,进入FIN_WAIT_2状态,等待服务器发来的FIN segment。
步骤3、服务器发送FIN segment,客户端收到后返回ACK,然后进入TIME_WAIT状态,等待30秒或1分钟或2分钟,以便把未ack的都发出去,之后正式关闭连接,客户端所有资源包括socket都释放。

posted @ 2021-11-04 09:41  daniel57  阅读(558)  评论(0)    收藏  举报