提示:TCP建立连接和拆除连接过程是由TCP/IP协议栈自动完成的,不需要第三者的参与。


TCP三次握手

   三次握手(Three-way Handshake),意为TCP连接需要Client和Server共发三个包,主要目的是连接服务器制定端口,建立可靠链路,并同步双方序列号和确认号以及交换TCP窗口大小信息。

TCP三次握手及四次挥手详解_TCP


第一次握手

   客户端发送一个TCP的SYN标志位为1的包,指明客户端连接的服务里端口,以及初始序列号X,保存在包头的序列号(Sequnce Number)字段里


TCP三次握手及四次挥手详解_TCP_02

第二次握手

   Server发送确认包(ACK)应答,即SYN标志位和ACK标志位均为1,确认序列号(AcknowledgementNumber)设置为Client的SN+1  X+1

TCP三次握手及四次挥手详解_TCP_03

第三次握手

   Client发送确认包(ACK),SYN标志位为0,AKC标志位为1,确认序列号(AcknowledgementNumber)设置为Server的SN+1  Y+1  并在数据段X+1

TCP三次握手及四次挥手详解_TCP_04


TCP四次挥手

   TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作。

TCP三次握手及四次挥手详解_TCP_05