TCP的三次握手和四次挥手
一、TCP连接的建立(三次握手,即Three-Way Handshake)
建立一个TCP连接,需要客户端和服务器总共发送3个数据包用来确认连接的建立,流程如下图:
TCP报文格式:
字段解释:
(1)序号:Seq序号(Sequence number),占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
(2)确认序号:ack序号( Acknowledge number),占32位,只有ACK标志位为1时,确认序号字段才有效,ack=Seq+1。
(3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:
(A)URG:(urgent pointer)紧急指针有效。
(B)ACK:(acknowledgement)确认序号有效。
(C)PSH:(push)接收方应该尽快将这个报文交给应用层。
(D)RST:(reset)重置连接。
(E)SYN:(synchronous)发起一个新连接。
(F)FIN:(finish)释放一个连接。
(注意:1.区分确认序号ack和标志位ACK
2.接收方的ack=发送方的seq+1)
二、TCP的断开(四次挥手即Four-Way Wavehand)
TCP连接的断开,需要服务端和客户端总共发送4个数据包用来确认连接的断开,流程如下图: