第一次握手做什么? 请求端(客户端)会向服务端(被请求端)发送一个tcp报文,申请打开某一个端口。因为没有数据,所以这个报文仅包含一个tcp头。其中: SYN=1;当建立一个新的连接时, SYN标志变1。 序号;序号用来标识从客户端向服务端发送的数据字节流。 此时客户端进入SYN_SENT状态。 第二次握手做什么? 服务端收到客户端的SYN包,也会发一个只包含tcp头的报文给客户端。 ACK=1;服务端确认收到信息 确认序号;客户端序号+1,作为应答 SYN=1;因为tcp的连接是双向的,服务端作为应答的同时请求建立连接。 此时服务端进入SYN_RECV状态 第三次握手做什么? ACK=1;客户端确认收到信息 确认序号;服务端序号+1,作为应答 此时客户端进入ESTABLISHED状态,服务端收到ACK后也会进入此状态 可见,客户端和服务端都保留了对方的序号,这三次握手缺少任何一步都无法实现这一目标。在三次握手过程中,出现了一些中间状态。