TCP为什么需要3次握手?

一、3次握手过程

客户端向服务端发送一个表示建立连接的SYN报文段,服务端从IP数据报中提取出TCP SYN报文段,为该TCP连接分配需要的缓存和变量,并向客户端发送表示允许连接的报文段ACK。客户端在收到ACK报文段之后,也要给该连接分配缓存和变量,客户端向服务器再发送一个报文段ACK,表示对允许连接的报文段进行了确认。

自此完成一次TCP连接。

二、3次握手的必要性

1.确认双方的发送和接收能力:通过3次握手,客户端和服务器可以确认彼此都具备发送和接收数据的能力。这是建立可靠连接的基础。

2.同步初始序列号:TCP协议通过序列号来标识发送的数据包,确保数据的顺序性和完整性。在3次握手过程中,双方会交换初始序列号,以便后续的数据传输能够正确地进行。

3.避免已失效的连接请求报文段突然又传送到了服务端:这种情况可能发生在网络拥堵或者延迟较大的情况下。通过3次握手,服务端可以确认客户端的请求是有效的,而不是一个过时的请求。

第3次握手可以避免由于客户端延迟的连接请求,使得服务端无故再次建立连接。


致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享。

若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢。您的支持是我们为您提供帮助的最大动力。

相关推荐
GetcharZp18 小时前
拒绝低效!这款神器,让你的终端效率起飞 | 深度解析 fzf 终极指南
后端
自珍JAVA19 小时前
高效处理Long列表与集合运算:基于RoaringBitmap的工具类解析与应用场景
后端
小码哥_常19 小时前
Spring Boot项目上线秘籍:日志、监控、异常处理全攻略
后端
GreenTea20 小时前
AI 时代,工程师的不可替代性在哪里
前端·人工智能·后端
Lucis__20 小时前
一文读懂TCP通信机制:基于相关API构建可靠性连接
linux·网络·tcp/ip
朦胧之20 小时前
AI 编程开发思维
前端·后端·ai编程
你的保护色21 小时前
ensp 路由器启动失败 解决方案
网络
PinTrust SSL证书21 小时前
IP地址访问网站,怎么去除不安全提示?
网络协议·tcp/ip·安全·网络安全·https·ssl
2501_913061341 天前
网络原理知识
java·网络
希望永不加班1 天前
Spring AOP 代理模式:CGLIB 与 JDK 动态代理区别
java·开发语言·后端·spring·代理模式