三次握手是为了建立链接.如图所示:
第一次握手是Client为了给服务端发送一个带有syn标志的包
第二次是服务端返回一个带有SYN/ACK 标志的包表示我收到了
第三次是Client返回一个ACK表示我知道了 握手结束.
详细说明:
1 客户端发送建立TCP连接的请求报文,其中报文中包含seq序列号x,是随机生成的,SYN=1表示需要建立TCP连接。(SYN=1,seq=x,x为随机生成数值);
2、服务端回复客户端发送的TCP连接请求报文,其中包含seq序列号,是随机生成的,并且将SYN置为1,而且会产生ACK字段,ACK字段数值是在客户端发送过来的序列号seq的基础上加1进行回复,以便客户端收到信息时,知晓自己的TCP建立请求已得到验证。(SYN=1,ACK=x+1,seq=y,y为随机生成数值)这里的ack加1可以理解为是确认和谁建立连接;
3、客户端收到服务端发送的TCP建立验证请求后,会使自己的序列号加1表示,并且再次回复ACK验证请求,在服务端发过来的seq上加1进行回复。(SYN=1,ACK=y+1,seq=x+1)。