TCP的三次握手和四次挥手

一、TCP连接的建立(三次握手,即Three-Way Handshake)

建立一个TCP连接,需要客户端和服务器总共发送3个数据包用来确认连接的建立,流程如下图:

TCP的三次握手和四次挥手

TCP报文格式:

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个数据包用来确认连接的断开,流程如下图:

TCP的三次握手和四次挥手