今天又重新看了看计算机网络,加深了对三次握手的理解。
当两台主机用tcp协议通信时,在交换数据前需要建立连接,有三个步骤。如下图。
步骤1:客户端向服务器发送包含SYN(同步序列号)的数据段,开启连接,seq为顺序号(随机值),设为x。
步骤2:服务器为了确认收到了该数据段,向客户端发送含有ack(确认号,值为客户端初始序列号加1)的数据段,并随机产生一个顺序号,设为y,发送给客户端。
步骤3:客户端检查服务器发来的ack是否正确,如果正确,客户端再向服务器发送一个包含ack的数据段,seq为步骤1客户端产生的seq+1.服务器收到后,建立连接完成。
ACK和SYN字段用作标志,只有两个值:1或0.当值为1时,表示数据段中包含控制信息。
如果你想直观的看tcp的三次握手,可以用抓包工具wireshark。