TCP 笔记 建立连接 为什么需要三次握手
20200815 添加:
TCP三次握手简单Q&A:
Q1:三次握手的“防超时”细节,和双方交换的 sequence num(seq num)息息相关
A1:估计很多接触 TCP 不是很长时间的童鞋都会忘记一个小细节:TCP 握手前两次已经让 client 和 server 双方交换了seq num。所以第三次握手中由 client 发出的 ACK包里面会包含 seq=X+1,server 判断收到的包是超时到达的第一次握手包还是第三次握手包就是依靠 seq。如果 seq = X+1,说明是第三次握手包到达了;如果 seq = X,说明这是在网络中“游历”并超时到达的第一次握手包。
有了超时判断的依据,最终统计得到正确建立一条TCP连接最少需要三次握手就可以了。所以三次握手是这么来的。
补三次握手图 from 《一文详解TCP》:https://blog.csdn.net/u013256816/article/details/84001583
以上是 TCP 建立连接 三次握手的笔记整理。