多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 三次握手 ![](https://img.kancloud.cn/eb/84/eb8482223db5e6623b3c38b5733a6190_1229x422.png) ## 三次握手的状态变化 ![](https://img.kancloud.cn/44/d2/44d2a01548efea0bd4ad361bd9ee025e_1578x984.png) 为什么 SYN 段不携带数据却要消耗一个序列号呢? 不占用序列号的段是不需要确认的,比如 ACK 段。SYN 段需要对方的确认,需要占用一个序列号。 凡是消耗序列号的 TCP 报文段,一定需要对端确认。如果这个段没有收到确认,会一直重传直到达到指定的次数为止。 除了交换彼此的初始序列号,三次握手的另一个重要作用是交换一些辅助信息,比如最大段大小(MSS)、窗口大小(Win)、窗口缩放因子(WS)、是否支持选择确认(SACK_PERM)等,这些都会在后面的文章中重点介绍。