三次握手是TCP协议用于建立可靠连接的过程,保证数据能够正常传输。具体地,三次握手的流程如下:
举例来说,当我们通过浏览器访问一个网站时,浏览器和服务器之间就需要建立TCP连接。首先,浏览器向服务器发送一个SYN包,告诉服务器自己要发给对方一些数据,并将自己的初始化序列号seq以及一些其他信息发送过去。服务器接到这个SYN包后,如果可以处理浏览器请求,则返回一个SYN + ACK包,在其中再发送一个确认序列号ack,一般是指前面收到的客户端的seq+1,并存储起来以回答客户端。此时,服务器进入SYN_RECEIVED状态;当服务器发回SYN + ACK后,浏览器(客户端)接到响应包后会再次发送一个ACK报文,告诉服务器收到了它的请求,并存储这个确认序号。至此,连接已建立,双方就可以传输数据了。