技术文摘
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 的一步,开启了网络传输的新篇章,为未来更优质的网络体验奠定了基础。
- 哪些事件无法冒泡
- 清除浮动的5种方式
- js冒泡事件是什么
- 如何用 only-of-type 伪类选择器为父元素中唯一同类型元素选取 CSS 样式
- 支持事件冒泡的事件有哪些
- CSS :nth-child(even)伪类选择器的多场景应用
- CSS ::after伪元素选择器的多种应用场景实现
- 不闭包的后果是什么
- 利用:nth-of-type伪类选择器设定同类型元素特定位置样式
- CSS中用:first-child伪类选择器选取首个子元素样式
- 用:first-letter伪元素选择器更改段落首字母样式
- CSS ::before伪元素选择器应用与实现效果
- CSS过渡:实现元素淡入淡出效果的方法
- CSS 中如何用:last-of-type 伪类选择器选取同类型元素的最后一个并设置样式
- CSS样式:用:nth-child伪类选择器选取特定位置子元素