当前位置:网站首页>MQTT over QUIC:下一代物联网标准协议为消息传输场景注入新动力
MQTT over QUIC:下一代物联网标准协议为消息传输场景注入新动力
2022-07-28 17:04:00 【InfoQ】
引言:首个将QUIC引入MQTT的开创性产品
什么是QUIC
- 快速建立低延迟连接(1 RTT或者0 RTT)
- 端到端加密,握手通过TLS 1.3进行身份验证
- 避免队头阻塞的多路复用
- 改进的拥塞控制,可插拔的拥塞控制策略
- 多路径支持,连接平滑迁移
- 无状态负载均衡
- 现有网络无需改造升级即可支持
QUIC在MQTT通信场景中的应用前景
- 网络切换导致经常性连接中断
- 断网后重新建立连接困难:断网后操作系统释放资源较慢,且应用层无法及时感知断开状态,重连时Server/Client开销较大
- 弱网环境下数据传输受限于拥塞、丢包侦测和重传机制
EMQX 5.0的MQTT over QUIC实现

- 更高级的拥塞控制:有效降低数据丢包率,在测试中在网络波动的情况下仍能持续稳定传输数据
- 运维友好:减少大规模重连导致的开销(时间开销、客户端/服务器性能开销),减少不必要的应用层状态迁移而引发的系统过载(0 RTT)
- 更灵活的架构创新:比如Direct server return(DSR,服务器直接返回模式),只有入口/请求流量经过LB,出口和响应流量绕过LB直接回到客户端,减少LB的瓶颈
- 减少握手延迟(1 RTT)
- 多路径支持,连接平滑迁移:从4G切换到WIFI,或者因为NAT Rebinding导致五元组发生变化,QUIC依然可以在新的五元组上继续进行连接状态,尤其适用于网络经常性变化的移动设备
- 更敏捷的开发部署:协议栈的实现在userspace,能够开发快速迭代
- 端到端加密:未加密的包头带有极少信息,减少传输路径中中间节点的影响,带来更好的安全性和更可控的用户体验
- 不同主题的流:对于独立主题,每个主题可以有独立的Streams以消除其他主题长阻塞带来的影响,比如接收端长阻塞或流量控制,亦可以实现优先级主题功能。
- 不同QoS的流:比如在「流量控制」中,QoS 0传输应该让位给高QoS传输。
- 将控制消息分成不同的流:MQTT控制消息可以单向或双向发送。如客⼾端可以通过「控制流」异步发送UNSUBSCRIBE请求,以要求服务器端停⽌发送不再感兴趣的数据。
- 更细粒度的收发端协同流量控制:面对每一个流进行流控且对整个连接进行流控,实现更细粒度的流量控制。
QUIC vs TCP/TLS测试对比
- 测试平台:EMQX 5.0单节点
- 服务器规格:AWS EC2 M4.2xlarge(8核32GB)
- 操作系统:Ubuntu 20.04
- 客户端数:5000
- loadgen并行数:8
- latency取值:P95
客户端连接时延



0 RTT重连时延


连接/重连时服务器资源使用


客户端地址迁移

网络丢包测试


更便捷的使用:MQTT over QUIC SDK

未来的EMQX QUIC

结语
本系列中的其它文章
- EMQX 5.0 产品解读 01 | Mria + RLOG 新架构下的 EMQX 5.0 如何实现 1 亿 MQTT 连接
边栏推荐
- Cloud container and cloud native
- C WPF normal project suddenly prompts that the name "initializecomponent" does not exist in the current context
- Overflow failure of mobile terminal
- 计算机组成原理核心知识点总结&面试笔试要点[通俗易懂]
- ADS仿真 之 直流仿真示例
- LeetCode79题 方法一:深度搜索
- 视频号直播支持商品回放
- 矢量网络分析仪(矢网)的校准
- The difference between probability function p (x), probability distribution function f (x) and probability density function f (x)
- Openmv (V) -- STM32 to realize face recognition
猜你喜欢

"Cloud strategy" will become an important pillar of enterprise digital transformation

Digital filter (V) -- design IIR filter

How to sharpen a knife simply by yourself

物联网在智慧城市的应用

网络RJ45接口详解

Flutter:异常处理

食品安全 | 面包含盐量也会超标?几招教你正确吃面包!

Openmv (V) -- STM32 to realize face recognition

频谱仪原理简介二

Personal production: ad library, component library, packaging library and 3D model, free of charge
随机推荐
马斯克利用活猪展示全新脑机接口技术:可实时读取猪脑信息
Tips -- tips in SCI thesis writing
互联智能,如何定义下一代网络变革
天线的原理、分类及要求
如何简简单单地自己动手磨刀
计算机组成原理核心知识点总结&面试笔试要点[通俗易懂]
VMware virtual machine networking settings (win10 comes with virtual machine installation win7)
高温天气户外活动有讲究!市民盛夏健身安全指引来了
iptables 配置
Iptables configuration
How does the video Number import the public domain traffic to the private domain
矢量网络分析仪(矢网)组成和原理简介
横向listview的最佳实现——RecycleView
Yu Chengdong: Huawei is trying to cope with the US chip ban
云容器与云原生
[dry goods] how to establish a close relationship between support and products?
ADS仿真 之 交流仿真和S参数仿真示例
There is a special cryptology language called asn.1
中芯国际上半年净利13.86亿元,N+1工艺已进入客户产品验证阶段
solidity转账函数的实现(基于transfer)