在通过 TCP 传输数据时,第一步就是要先建立一个连接。TCP 建立连接的过程,就是我们常说的三次握手。
我们经常将三次握手,描述成「请求 → 应答 → 应答之应答」。
至于 TCP 握手为什么是三次,其实就是要让双端都经历一次「请求 → 应答」的过程,来确认对方还在。网络情况是多变的,双端都需要一次自己主动发起的请求和对方回复的应答过程,来确保对方和网络是正常的。
下面这张图,是比较经典的 TCP 三次握手的消息和双端状态的变化。
我们先来解释一下这张图:
正常的三次握手之后,双端都进入 ESTABLISHED 状态,在此之后,就是正常的数据传输过程。