http3不再使用tcp协议的原因

简介: http3不再使用tcp协议的原因

http3不再使用tcp协议的原因

上一篇文章整理了http0.9-http3的整个变化过程,但是说的不是很详细。比如浏览器是如何利用http1.1的,多个请求如何处理?http2到http3的底层协议特点以及对应的改变背景都没有说清楚。

今天就专门针对http3不再使用底层的tcp协议这个问题作为引子,详细阐述下对应的改变原因。

首先说我们经常提到的TCP协议

TCP协议通过数据分片、到达确认、超时重发、滑动窗口、失序处理、重复处理、数据校验等规定,为使用TCP连接的双方提供一个面向连接、可靠的字节流服务。

但是TCP连接这个概念还是比较抽象。

我们可以这么理解,电话两端有两个接线员,电话之间通过电话线进行连接。在正式通话时,电话员A向接线员B拨号并说了这么一句话:有人吗?接线员B回了一句:我在!接线员A又说道:ok我知道了。这相当于TCP连接建立时的三次握手,用来确定双方状态。之后两边电话员就可以正常你来我往的通话了。

同时为了避免两个人的沟通内容有缺失等问题,两边还规定了如何交流,信号中断了如何处理等等。

TCP断开时则需要进行四次挥手过程,这个就没必要细说了。至于为什么是前三后四,这是因为校验太多了也没用,所以就采取了最少验证次数。

接下来聊聊UDP协议

我们要知道,它最大的特点是无连接。也就是信息在传输数据之前不需要建立连接,当想要发送数据时,就把数据包尽可能快地扔到网络上,至于收没收到,就不管了(虽然这很重要)

那么,既然UDP协议这么不可靠,HTTP3为何还要使用UDP协议?

我们在上一篇文章中也讲到了HTTP2的一些问题,其中基于TCP协议的HTTP协议永远无法解决队头阻塞的问题,这样的话,数据传输速度无法进一步加快。

HTTP3是基于UDP协议的,它同时还做了一些其他处理,比如增加数据包重传、拥塞控、调整传输节奏等等。其其核心思想是将TCP协议在内核实现的诸如可靠传输、流量控制、拥塞控制等功能转移到用户态来实现,同时在加密传输方向的尝试也推动了TLS1.3的发展。

至于说http3的缺点,那就是后话了,等五年后有兴趣了我再来补充!

相关文章
|
8天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
34 13
|
5天前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
5天前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】
|
5天前
|
缓存 安全 前端开发
HTTP 协议的请求方法在实际应用中有哪些注意事项?
【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。
|
8天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
9天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
9天前
|
网络协议 前端开发 API
HTTP 和 TCP 协议的应用场景有哪些不同
【10月更文挑战第25天】HTTP(超文本传输协议)和 TCP(传输控制协议)处于网络协议栈的不同层次,各自具有独特的功能和特点,因此它们的应用场景也存在明显的差异。
|
9天前
|
安全 前端开发 JavaScript
利用HTTP协议进行文件上传和下载的常见方法
【10月更文挑战第25天】可以利用HTTP协议方便地实现文件的上传和下载功能,满足不同应用场景下的需求。在实际应用中,还可以根据具体的业务需求和安全要求,对文件上传和下载的过程进行进一步的优化和安全处理。
|
9天前
|
网络协议 API 数据格式
HTTP 和 TCP 协议的主要区别
【10月更文挑战第25天】HTTP 和 TCP 在网络通信中扮演着不同的角色,各自具有独特的功能和特点,它们相互配合,共同为实现网络应用的各种需求提供了基础支持。
|
1天前
|
传感器 缓存 网络协议
CoAP 协议与 HTTP 协议的区别
CoAP(Constrained Application Protocol)协议是为资源受限的设备设计的轻量级协议,适用于物联网场景。相比HTTP,CoAP具有低功耗、低带宽占用和简单易实现的特点,支持多播通信和无连接的交互模式。
下一篇
无影云桌面