概念:三次握手即 three-way handshake,将他理解为三步握手,是一次握手分三个步骤进行,而不是一共握三次手。
首先为什么要握手?tcp是可靠的全双工的一个双向通信传输协议,体现在就是通信的双方都需要确认对方是否收到了自己发的数据包是完整有序无差错的,如果不是就需要重发。
其次为什么要握手三次?简单来说,两次不可靠四次不高效。先搞清楚1:tcp连接握手握的是啥?是通信双方数据原点的序列号(SN sequence number)。tcp是全双工的一个双向通信,为了可靠传输,始终都需要同步(SYNchronize)信号。初始双方的序号都是随机的。所以刚开始通信双方都产生一个初始的随机序列号ISN(相当于一个身份标识)。
2:三次握手的过程。
拿你我作比方就是,我生成初始序列号ISN(initial sequence number)后加上同步信号SYN发给你,你收到之其加1后命名为你自己的ACKsequence number确认序列号,然后你自己的ISN和同步信号SYN发给我,这是第二次握手。第三次握手就是我确认收到你的同步信号,并把你的ISN号记录到到本地并命名为我的ACK确认序号。
为什么两次不可靠?因为没有第三步的同步信号&#