TCP 的连接状态查看,在 Linux 可以通过
netstat -napt
命令查看
- 第一次握手:
SYN
报文 - 第二次握手:
SYN+ACK
报文 - 第三次握手:
ACK
报文
为什么需要三次握手?为什么不是四次握⼿? 为什么不能两次握⼿?
因为三次握⼿才能保证双⽅具有接收和发送的能⼒。 两次握⼿可能导致资源的浪费,由于没有第三次握⼿,服务端就⽆法确认客户端是否收到了⾃⼰的回复,所以每收到⼀个SYN,服务器都会主动去建⽴⼀个连接, ⽽四次握⼿可以优化为三次。三次握手才能保证双方需要接收和发送能力。
-
三次握手才能阻止重复历史连接的初始化 (主要原因)
-
三次握手才能同步双方的初始序列号
-
三次握手才能避免资源浪费
TCP 重传机制:超时重传、快速重传、SACK、D-SACK | 👉 跳转链接
滑动窗口:发送窗口、接收窗口 | 👉 跳转链接