QUIC协议是一种基于基于UDP的传输协议的新通信协议,并希望最终替换所有基于TCP的HTTP请求。通常会丢失,分类,重复等等。这是使用Quic的地方。
本文简要介绍了什么是Quic,Nodejs实现了一个简单的示例GitHub仓库。
让我们先回顾UDP。UDP(用户数据新闻协议)是ISO参考模型中未连接的传输层协议,为交易方面提供简单且不可靠的信息传输服务。UDP协议基本上是IP协议和上层协议之间的接口。
QUIC协议在UDP上定义。该层引入UDP错误,可靠性,流量控制和构建的安全性(通过TLS 1.3)。实际上,它重新列出了UDP上的大多数TCP功能,但是有一个关键区别:与TCP不同,它仍然可以仍然可以按顺序传输数据包。
Quic通过在加密信件中重新计算基本传输服务来解决此问题操作系统或操作系统更新计划。
Google Quic为Chrome提供了许多性能优势,其他公司也开始为该协议做出贡献。
Quic连接的多个流之间没有依赖关系。它们是独立的,对基础协议没有任何限制。包装损耗发生在某个流中,这只会影响流。其他流不受影响。相反的头部块是什么,您可以参考
Quic介绍了许多其他重要功能:
加密的传输协议对工程师选择传输协议和在线操作员的监视活动有影响。
QUIC传输协议的适用性描述了可能需要使用QUIC作为传输层的应用程序协议的预防措施。QUIC的特征与TCP的特征不同,在一些有趣而微妙的方面,例如握手来完成以前的数据的可用性或同时提供多个流的可用性。
QUIC传输协议的管理性描述了加密传输层对网络监控和管理的影响。许多网络假设可以检查TCP的状态,以找到发现网络问题的迹象(性能差,高数据包损失率)或滥用的迹象流量(数据泄漏和攻击)。
六年前,Google向IETF介绍了Quic,以启动标准过程。IETF贡献者说,他们有兴趣从实验协议中开发新的传播。”
IETF使用Google实现Web并将其调整为一般传输协议,于2016年建立了一个Quic工作组。就像这样,它将其用作传输。
因此,在考虑浏览器的支持时,它基于HTTP3的支持:
在意识到新的Quic支持时,您需要使用新的顶级内置模块打开API,但是您需要自己进行编译。为了避免对您自己的开发环境的影响,建议使用Docker。如果您有兴趣的Complete代码和Docker运行。
该模块披露了一个可以创建可以用作QUIC服务器或客户端的对象实例的函数。
让我们创建下面的服务器,如下所示:
接下来,创建一个客户端。这是同一文件中的仿真客户端请求,如下所示:
如果本地nodejs版本支持QUIC,则可以直接启动:
如果不支持,建议从Dokcer开始,如下:
运行效果如下: