为什么要三次握手
(1)确认双方的接受能力和发送能力正常
(2)指定自己的初始化序列号,为后续的可靠传输做准备
(3)如果是https协议,三次握手这个过程,还会进行数字证书的验证以及加密密钥的生成。
三次握手需要确认的事情
client要与server建立TCP连接,需要通过握手确认这四件事情
1.server需要确认它可以从client接收数据包;
2.client需要确认它可以从server接收数据包;
3.client需要确认一件事:server可以从client接收数据包;
4.server需要确认一件事:client可以从server接收数据包。
为什么两次不行
第一次握手 server确认自己可以接收client接收数据包
第二次握手 client确认自己可以接收、发送数据包
第三次握手 server确认client可以接收server的数据。
(1)阻止重复历史连接的初始化
在网络状况差或者复杂时,如果一个已经发送的连接请求在超时时间内没有收到确认,发送方连续发送多次建立连接的请求。想象一下,如果TCP建立连接仅有两次握手,那么双方会建立错误的连接,因为接收方接收到连接请求时并不清楚这是由于网络拥塞而早已过期的连接。
使用确认号为ack+1来由发送端判断是不是历史连接。
(2)对通信双方的初始序列号进行初始化
另一个使用三次握手的重要的原因就是通信双方都需要获得一个用于发送信息的