对网络技术进行一些研究的学生必须知道自己是基于它的。在许多学生的印象中,它属于非常低的协议:传输是不可靠的,没有拥塞机制。在准确可靠的wanwei.com传输中使用它是一件难以想象的事情。
但这真的是这样吗?让我们先看看惊喜的口,看看为什么HTTP/3可以基于UDP,这仍然是一个非常明智的选择。
要了解这个选择,我们必须首先消除误解。
实际上,UDP并不像每个人想象的那样可信。仅仅是因为您就具有这种认知。从另一个角度来看,它实际上是最纯粹的传输层协议。
那么网络传输中的UDP在哪里?我们需要简要介绍典型的网络分层。
目前,网络数据包无法从LAN逃脱。如果要传输更大的规模,则需要网络层的帮助。
为了使这些地址有意义,它已添加,并且目标机是通过IP地址定位的。最后,通过路由器的转换,连接层负责特定信息的传输。例如,我在下面抓住了此Wireshark。
如果您输入IP的消息,您会发现其格式非常奇怪。当中间节点运行时,需要解开包装然后包装的过程。这是因为IP协议是网络层协议。它的头部信息(例如IP地址)实际上是连接图层协议的海报(PLALOAD)。
通过IP协议,我们非常接近UDP。
IP协议仅解决计算机之间的通信问题,但是每台计算机上都会有不同的过程。我们如何区分它们?这就是协议要做的。
UDP和TCP协议通过添加端口号来识别某个过程。IP地址加上端口号是我们需要面对代码的套接字。大多数网络通信,包括HTTP/1,HTTP/2等TCP。
从协议的角度来看,UDP实际上是最清洁的协议,它完全揭示了IP协议的所有内容。C.com与IP协议相比,它只有一个端口号,因此UDP协议具有该特征的所有特征IP协议。例如,无序,不能保证可靠性。作为拥塞机制的更高级的交通谈判控制,UDP根本不在乎它。
UDP没有特征性的特征,使应用表面表面比TCP窄得多。我们通常会引入整个协议,因此我们忽略了最原始和最纯净的UDP协议。
让我们看一下典型的UDP协议。如上图所示,与IP协议相比,UDP协议只有两个端口,一个长度和一个校验和一个校验和一个校验和,这确实是无与伦比的。
您可能会问,TCP和UDP都是传输层协议。那么,为什么HTTP/3不基于TCP?那是因为TCP本身已经非常复杂,并且历史上剩下的负担太多了。
为了确保信息的可靠传输,顺序传输和同时考虑到吞吐量,TCP对UDP进行了很多工作,我们可以看到TCP协议中的更多内容。图,这是Wireshark捕获的典型TCP协议软件包。
我们经常说三个握手(四次合并为三次),四个波是标志和序列号逻辑组合的组合。如果添加了TLS安全协议,则此握手过程将更长。
建立连接后,由于一个问题和一个答案的ACK确认模式,TCP的效率实际上不是很高,它必须传输大量无用的信息并等待。
为了提高网络传输的效率,TCP使用滑动窗口来求解批处理发送,同时解决顺序问题。在解决网络拥塞的过程中,TCP使用了诸如启动缓慢,避免拥堵,快速的重新传输和快速的转移和诸如等机制快速恢复,使网络吞吐量保持在一定层面。
我们可以查看Wikipedia上TCP协议的详细地图。在“ TCP/IP详细说明卷1:协议”中,它引入了此非常详细的简介。您可以看到有很多细节。
那么协议是什么?协议是规定每个人都遵守的标准,所有协议都是利益社区共同同意的结果。例如,我的分布式数据库使用MySQL访问层协议,然后必须它遵循由MySQL协议制定的一系列标准,否则将无法运行。
**协议越低,稳定性要求越高。** TCP协议现已编码为操作系统。无论是协议升级还是错误维修,都会伤害肌肉。
为了搁置历史负担,选择主要是解决相反的问题的问题。基础协议是著名的,在传输层(或应用程序层)上运行的协议。操作系统核心的硬码,但在用户空间中完全运行。默认情况下集成了TLS。
如上图所示,HTTP/3基于QUIC,而Quic完全是UDP。
但是,UDP不称为无连接吗?如何实现一些其他功能,例如可靠性?
实际上,这个词是一个虚拟概念。网络中没有这样的行,只是为了促进您的逻辑理解。考虑到当前的客户端服务器是客户端,服务器是服务器。然后可能有以下客户端和服务器数据包的步行路径。
当没有数据交互时,服务器和客户端只有两个点。
UDP声称实际上没有连接与TCP的连接没有什么不同。唯一的区别是,在UDP发送数据包后,这并不重要。可以收到或未收到此信息。每次确认发送数据时,它将变成TCP。
至于确认代码的这一部分是放置在传输层还是在应用层上,这与此无关;但是是操作系统中的代码,也可以独立升级,并且关系很棒。
Quic可以独立发放到操作系统,避免操作系统的缓慢更新。您可以认为它是TCP,但与TCP基本不同。
这些差异,我们比较了HTTP的各种版本,并且将知道数据传输的性能。
在理解上述内容之后,我相信您将能够得出结论:HTTP/3基于UDP,这是非常可靠的。它不仅可以实现可靠性传输,而且可以改善绩效的改善。LET的总结总结了QUIC的这些改进:
QUIC的原因主要是由TCP的限制引起的。连接是一种非常宝贵的资源,在其上创建,销毁和传播的时间非常耗时。TCP的可靠性机制在早期的早期确实非常有效。计算机网络开发,但是随着硬件的升级,其ACK传输模式限制了效率上更高性能的发展。由于TCP标准的概念深深地植根于心脏,其代码甚至直接存在于内核,很难升级协议。
随着网络基础架构的改善,这种可靠的传输模式TCP已变得限制。如果我们的信息处理已处理,则可以在一个连接上完成,这很棒。这样,在某些密集的资源传输中,例如批处理小图片,,按需和网络传输薄弱的视频,它不会受到RTT的影响,此外,我的数据缓存和拥塞控制将更加灵活。在极端的例子中,我的内存足以缓存流。我什至可以忍受一个1MB大小的文件。10秒后(因为它仅限于TCP窗口)。
为什么要这样做?这仍然要归功于UDP的纯属性。它只是IP协议的编程接口。这确实是一张白皮书,什么也没有。。
作者:姐妹口味小姐(微信公共帐户ID:XJJDOG)