向时间敏感网络集成MQTT的探索

论文标题:Towards Integrating MQTT with Time-Sensitive Networking

中文标题:向时间敏感网络集成MQTT的探索

作者信息:

  • Giuseppe Testa
  • Luca Leonardi
  • Lucia Lo Bello
  • Gaetano Patti 他们均来自意大利卡塔尼亚大学电气、电子与计算机工程系。作者的电子邮件地址分别是:
  • Giuseppe Testa: giuseppe.testa@phd.unict.it
  • Luca Leonardi: luca.leonardi@unict.it
  • Lucia Lo Bello: lobello@unict.it
  • Gaetano Patti: gaetano.patti@unict.it

论文出处:2024年IEEE第29届新兴技术和工厂自动化国际会议(ETFA)

摘要: MQTT协议在物联网(IoT)应用中得到了广泛的采用,但由于缺乏对时间关键传输的支持,其在工业物联网(IIoT)中的应用受到了限制。为了解决这一问题,最近的研究提出了优先级MQTT(PrioMQTT)协议,这是一个MQTT的扩展,它引入了消息优先级,并根据消息的优先级(反映了它们的时间约束)来调度消息。PrioMQTT成功地降低了时间关键消息的延迟,但它不能保证有界的延迟,因为底层网络级别没有使用消息优先级。因此,本工作探索了将PrioMQTT与时间敏感网络(TSN)系列标准集成的可能性,特别是与IEEE 802.1Q-2022标准集成,以处理具有不同实时要求的多个流。该工作还介绍了在商业现成设备上的初步实验评估。

第一节 引言和相关工作 在工业物联网(IIoT)生态系统中,设备之间的通信,如机器人、传感器、执行器等,在实现高效可靠的生产流程中起着关键作用。IIoT中的工业通信需要融合网络,即能够在同一信道上支持时间关键和非时间关键的流量。然而,这一能力并不是由传统IoT领域采用的通信技术所提供的。因此,提出了多种对传统IoT协议的扩展,以满足IIoT应用的要求。MQTT是IoT中最受欢迎的应用层协议之一,它是一个轻量级、高效且可靠的发布/订阅协议,其中一定数量的发布者向代理节点发送消息。这些特性使得该协议成为IIoT应用的良好候选者。然而,MQTT没有实现消息优先级,因此它不能为时间关键消息和非时间关键消息提供不同的服务质量(QoS)类别。此外,MQTT旨在通过TCP传输协议工作,这降低了通信的可预测性。因此,MQTT不适用于需要保证有界延迟的时间关键消息的IIoT场景。文献中的一些工作提出了在基于MQTT的网络上启用时间关键通信的解决方案。例如,[11]、[12]的工作提出了一种修改版的MQTT,它在代理上实现了基于TCP协议的消息优先级。然而,[11]、[12]的方法存在一些局限性,例如,优先级数量少和缺乏对多对多通信的支持。一些工作提出了将MQTT与软件定义网络(SDN)结合的方法来处理实时流量,但这些方法需要使用特殊硬件,这可能很昂贵。最近的工作[16]引入了一个修改版和IIoT启用的MQTT版本,称为优先级MQTT(PrioMQTT),它在UDP协议之上运行,支持消息优先级,并保持与标准MQTT的互操作性。PrioMQTT可以在不需要硬件修改的低成本工业级IIoT设备上实现。PrioMQTT的局限性在于它在应用层工作,因此底层网络级别看不到消息优先级。例如,数据链路层不能使用应用层优先级,不能区分时间关键流和尽力而为的流。因此,数据链路层不能以不同于尽力而为的方式处理时间关键流,也不能为时间关键流提供有保证的有界端到端延迟。本工作探讨了将PrioMQTT与时间敏感网络(TSN)标准[17]、[18]集成的可能性,以处理具有不同实时要求的多个流。目标是使PrioMQTT能够在典型的工业和汽车场景中采用,这些场景的时间关键通信需要有界延迟。本文的其余部分安排如下。第二节概述了PrioMQTT。第三节讨论了与TSN集成的主要概念。第四节使用商业现成(COTS)设备进行了初步评估。最后,第五节对正在进行的工作提供了见解。

第二节 PrioMQTT的背景 PrioMQTT是MQTT协议的一个扩展,它支持消息优先级。与在TCP协议上工作的MQTT不同,PrioMQTT旨在在不同的传输协议上工作。特别是,PrioMQTT使用UDP协议来支持需要低延迟的时间关键传输。与纯MQTT一样,PrioMQTT的特点是有两种类型的节点,即代理和客户端。代理处理客户端之间的所有连接和通信。它充当客户端之间的中介,不允许它们之间直接交换消息。这样,客户端之间的通信是异步和解耦的。客户端在应用层连接到代理,并且根据它们是发布者还是订阅者,它们发布数据或订阅特定主题。在MQTT和PrioMQTT中,主题被定义为用于过滤和转发消息的字符串。发布者将消息发送到特定主题,订阅者在订阅了对这些特定主题的消息的兴趣后,从主题接收消息。为了在保持与标准MQTT协议的兼容性的同时支持不同的消息优先级,在PrioMQTT中,消息优先级在MQTT发布消息的“用户属性”字段中定义。当消息被代理接收时,它们被排队到一个传输队列(图1a中的Prio Tx队列)中,并根据它们的优先级进行排序。非时间关键消息具有最低的优先级。

51fee10e04604b60b87db0b7b27b9ee9.png

第三节 集成概念概述 如第一节所讨论的,PrioMQTT仅在应用层优先级流量,因此它不能在没有底层实时网络栈的支持下支持实时传输。因此,本工作提出了一种将PrioMQTT与TSN系列标准集成的策略。目标是通过利用不同主题的优先级,在协议栈的所有层上保证时间关键流的有界延迟。为了实现这一点,这里将PrioMQTT时间关键流量映射到IEEE 802.1Q标准[19]中定义的流预留(SR)类别A和B,并且使用基于信用的整形器(CBS)来提供有界延迟。为了使PrioMQTT传输能够在SR类别上进行,必须做出以下设计选择:

  1. 如何将PrioMQTT传输映射到SR A、SR B和最佳努力(BE)类别,以反映PrioMQTT消息的优先级。
  2. 如何在遵循为SR类别定义的约束的情况下,将SR流量传输到以太网端口。根据IEEE 802.1Q标准,当一个节点传输多个SR流量时,属于同一流量的帧必须以每个类别定义的间隔传输到以太网端口,即对于SR类别A为125微秒,对于SR类别B为250微秒。

A. 将PrioMQTT流量映射到TSN流量类别 根据IEEE 802.1Q标准,SR流量与以太网端口的最高优先级传输队列相关联。特别是,SR类别A保证了在7跳上的最大延迟为2毫秒,而SR类别B保证了在7跳上的最大延迟为50毫秒。以太网帧根据每个以太网帧的VLAN标签中编码的优先级代码点(PCP)值被排队到传输队列中。在这项工作中,开发了一个额外的软件模块,该模块在PrioMQTT协议和通信栈的底层之间工作。该模块在PrioMQTT客户端和代理中实现,图1b显示了代理的传输器模块。该模块将消息映射到三个不同的套接字,根据预分配的流量映射,使用定义的VLAN ID和PCP传输帧。这种映射可以直接通过配置网络栈来完成。例如,在Linux操作系统中,可以采用Linux流量控制子系统。

B. 符合SR流量约束的传输消息 在IEEE 802.1Q标准中定义的流预留协议允许为每个SR流量预留带宽,根据参数idleSlope,这是CBS使用的。每个流量的idleSlope是当至少有一个数据包等待传输时累积的信用率。idleSlope表示将由SR流量消耗的带宽,并使用以下公式计算: idleSlope = (MFS + PFO) × MIF CMI (1) 其中MFS是为类别配置的最大以太网帧大小,PFO是每帧开销,MIF表示在一个classMeasurementInterval(CMI)内可以传输的一个流量的最大帧数。根据IEEE 802.1Q标准,SR类别A和SR类别B的classMeasurementInterval值分别为125微秒和250微秒。因此,类别SR A流量应以等于或多于8000帧/秒的速率传输帧,而类别SR B流量应以等于或多于4000帧/秒的速率传输帧。即使在较低的消息传输速率下,也必须按照公式(1)预留带宽,从而导致过度预留。为了限制

过度预留,可以将应用级消息分割成多个帧以获得较低的idleSlope值。在这项工作中,消息分片是利用IP分片功能实现的,即让IP层将消息分割成可以在具有比原始消息大小更短的最大传输单元(MTU)的网络上传输的多个较短帧。然后,这些片段由目的地的IP层重新组装。在这项工作中,这是通过将IP级别的MTU设置为低于默认值来实现的,即1500字节。最后,属于同一流量的帧之间的传输间隔由传输器模块处理。这可以通过利用网络栈来完成,如果操作系统提供此功能(例如,Linux流量控制子系统),或者通过在传输器模块上运行的简单帧间隔算法来完成。

C. 将PrioMQTT代理与TSN集成 在PrioMQTT中,代理处理客户端之间的所有通信,并在UDP/TCP网络栈上工作(图1a)。虽然原始PrioMQTT中的传输器仅传输从Prio Tx队列中提取的MQTT消息,反映传输顺序中的应用程序级优先级,但在这里(图1b)传输器包括一个新的子模块,即流映射,它增加了对底层层的支持,将从Prio Tx队列中提取的PrioMQTT消息的优先级映射到相关的IEEE 802.1Q类别。当消息到达传输器时,流映射读取消息优先级,并根据预先设定的离线标准,将消息映射到SR类别A、SR类别B或BE。这种映射,结合在消息源和目的地之间的TSN交换机的适当配置,确保了时间关键消息将根据公式(1)预留带宽,对于最高优先级的消息使用SR类别A参数,对于要求不那么严格的那些消息使用SR类别B参数。两个SR类别都保证了有界消息延迟。相反,非时间关键的最低优先级消息将作为BE流量处理,没有带宽或保证的延迟。在这里,根据IEEE 802.1Q标准,25%的带宽可用于BE流量。

D. 关于端到端延迟计算的推理 将PrioMQTT与IEEE 802.1Q标准集成,可以计算时间关键消息的端到端延迟的上限。事实上,消息延迟取决于多个时间组成部分,例如D1:在发布者侧,PrioMQTT消息被分割成的以太网帧数乘以CMI,即以相关SR类别定义的间隔将所有帧传输到以太网端口所需的时间; D2:SR流量的最大保证延迟的两倍,以考虑从发布者到代理和从代理到订阅者的最后一个消息帧的延迟,即对于SR类别A为2 × 2ms,对于SR类别B为2 × 50ms,根据[19]; D3:代理处理时间,包括在IP层重新组装PrioMQTT消息所需的时间,如果使用实时操作系统,则有界; D4:PrioMQTT消息在Prio Tx队列中的排队时间。最大时间可以使用最坏情况响应时间分析来计算; D5:在代理侧,将PrioMQTT消息的所有帧传输到以太网端口所需的时间与相关SR类别定义的间隔D1的乘积,以及订阅者数量ST,即D1 × ST。为了节省空间,这里没有给出延迟组成部分的详细计算,留给未来的工作。

第四节 初步评估 本节介绍了对PrioMQTT与TSN标准之间提出的集成的初步性能评估,旨在证明在COTS设备上的集成的可行性。评估的场景(图2)受到[20]中的启发,包括一个控制器、代理和六个输入/输出(IO)模块,即传感器A(SA)、传感器B(SB)、...、传感器F(SF),它们代表工厂的传感器。代理在配备有16GB RAM的5GHz 6核Intel i7-10750H CPU上运行,并运行Linux Ubuntu 20.04操作系统。每个客户端节点,即控制器和IO模块,在运行Ubuntu 22.04操作系统的Raspberry Pi 4上运行。采用了两个Soc-e MTSN[21]交换机,并配置为使用CBS。每个以太网端口的idleSlope根据公式(1)设置。网络以1Gbps的速度运行。

实验设置基于[22]采用的设置。每个传感器模块与一对主题相关联,用于将数据传输给控制器和从控制器接收命令。如表I所示,每个传感器与特定主题相关联,用于数据传输和接收命令。控制器订阅了每个主题。在这次评估中,PrioMQTT优先级被静态分配给主题。表I显示了每个主题的配置。在评估的场景中,节点发布1000字节长的消息,而MTU设置为250字节,以便每个消息被分割成五个以太网帧。每个主题的传输周期为100毫秒。在这次评估中使用的绩效指标是往返时间(RTT)。特别是,考虑到模块SA和控制器之间的消息交换,根据方程2计算RTT,RTT = (T4 − T1) − (T3 − T2)(2),其中T1是SA发布消息到主题TA的时间,T2是控制器从代理接收主题TA消息的时间,T3是控制器发布回复消息到主题TA Resp的时间,T4是SA从代理接收主题TA Resp消息的时间。如表I所示,优先级为10和20的流分别根据SR类别A和SR类别B预留带宽,而优先级为50的流作为BE流量处理。收集了大约6000个样本来评估性能。图3显示了所有流量的累积RTT百分比分布。测量的RTT值总是低于11毫秒。这个值与第三节D部分讨论的时间界限一致。此外,对于SR A流量,RTT值低于SR B流量的值。这个结果是预期的,因为它源于根据IEEE 802.1Q标准,与SR B类别相比,SR A类别流量的延迟界限更低。图3还显示,BE流量获得了非常低的RTT值,因为它们利用了SR流量留下的所有带宽。

第五节 结论和未来的工作 这项工作提出了将PrioMQTT与TSN(即IEEE 802.1Q-2022标准)集成,以支持实时流量。概念验证实现显示了在COTS设备上的可行性。初步的性能评估表明,时间关键流量的RTT结果与IEEE 802.1Q标准一致。下一步将解决详细的端到端延迟计算和在多个汽车和工业场景中的广泛模拟。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神一样的老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值