技术文摘
HTTP 3.0为何彻底舍弃 TCP ?TCP 之过何在 ?
HTTP 3.0 为何彻底舍弃 TCP ?TCP 之过何在 ?
在网络通信的不断演进中,HTTP 3.0 做出了一个重大决策——彻底舍弃 TCP。这一举措引发了广泛的关注和讨论,那么究竟是什么原因让 HTTP 3.0 与 TCP 分道扬镳,TCP 的“过错”又在哪里呢?
TCP 作为传统的传输层协议,在可靠性方面表现出色,但也存在一些局限性。其中一个主要问题是队头阻塞。当数据包在传输过程中丢失或出现错误时,TCP 会等待丢失的数据包重新传输,这就导致后续的数据包即使已经到达,也必须等待,从而造成了延迟。在当今对实时性和低延迟要求极高的网络环境中,这种队头阻塞问题显得尤为突出。
另外,TCP 的三次握手建立连接过程也增加了额外的开销。在每次建立连接时,都需要进行三次数据包的交互,这在短连接频繁的场景下,会消耗大量的时间和资源,影响了网络传输的效率。
而 HTTP 3.0 选择的新协议 QUIC 则有效地解决了这些问题。QUIC 基于 UDP 协议,实现了类似 TCP 的可靠性,但避免了 TCP 的队头阻塞。它能够在单个连接上多路复用多个数据流,即使其中一个数据流出现问题,也不会影响其他数据流的传输。
QUIC 的连接建立过程也得到了极大的优化。它减少了握手次数,并且支持 0-RTT 连接恢复,即在之前连接的基础上,能够快速恢复连接,无需再次进行完整的握手过程,大大提高了连接建立的速度。
HTTP 3.0 舍弃 TCP 并非是对 TCP 的全盘否定,而是在技术发展的浪潮中,为了更好地适应新的网络应用需求和挑战做出的战略选择。随着互联网的不断发展,对于低延迟、高并发和高效传输的需求日益增长,HTTP 3.0 的出现正是对这些需求的有力回应。
TCP 在过去为网络通信的稳定可靠做出了重要贡献,但在新的技术环境下,其局限性逐渐显现。HTTP 3.0 勇敢地迈出了舍弃 TCP 的一步,开启了网络传输的新篇章,为未来更优质的网络体验奠定了基础。
- 每日算法之旋转矩阵
- Python 脚本编写:此元素必不可少
- Python 实现简单规则聊天机器人的创建
- 前端测试反模式之浅析
- 每日算法之螺旋矩阵
- Vue 3 极速上手之 Teleport 传送门组件
- Windows 10 远程软件推荐:两款必备,值得收藏!
- JMeter 进阶:深入剖析 Java sampler 设计之道(附源码)
- Java 从零手写 RPC 的超时处理
- Python 实战:获取 B 站视频与本地弹幕播放功能教程
- Spring 事务的别样管理之道
- 四大流行 Java JSON 库的终极对比:JSON.simple、GSON、Jackson 与 JSONP
- 必知的消息推拉机制
- 15 分钟让你知晓前端工程师必懂的 Javascript 设计模式(含详细思维导图与源码)
- SpringBoot 中静态变量注入的全面方案