本发明涉及一种在实时网络中配置节点的方法,实时网络的节点利用链路直接地或者通过其他节点间接地互连,并且利用所述链路通过交换帧互相通信,其中至少一个节点使至少一个队列与至少一个链路关联,其中所述至少一个节点连接到所述至少一个队列,并且其中所述至少一个节点将帧放入所述至少一个队列中,以在关联链路上传输,并且其中所述至少一个队列与能够处于打开状态或关闭状态的门电路关联,并且其中如果与所述队列关联的门电路的状态处于打开状态,则所述至少一个节点从被放入在与所述队列关联的至少一个链路上,所述至少一个节点选择被放入的所述至少一个队列中选择帧以进行传输,并且当所述门电路处于关闭状态时,不从所述链路上的队列中选择帧进行传输;并且其中所述门电路使状态随着时间的推移从打开变更为关闭和从关闭变更为打开,从而形成窗口,如配置数据所示。
此外,本发明还涉及一种如上所述在实时网络中配置节点的设备。
最后,本发明涉及一种实时网络,该实时网络包括至少一个根据本发明配置节点的设备。
本发明涉及在保证实时的情况下产生网络配置数据。例如,这种实时网络可以实现ieee802.1qbv[1],ieee802.1qbv定义传输已排程帧的时间意识形成机制(time-awareshapingmechanism)。时间意识形成器是在队列的出口侧执行的门控机制(gatingmechanism)。该门控机制动态地开启或停用基于预定配置数据从各自队列选择帧。在ieee802.1qbv的示例中,该配置数据gcl被称为门控列表(gatecontrollist)。
背景技术:
特别是,ieee802.1qbv定义出口端口的每个队列的门电路,在给定时间,该门电路能够处于两个定义状态中的一个:打开或关闭。当门电路处于打开状态时,可以从各自队列中选择帧,从而以先进先出顺序传输到物理链路。如果该门电路处于关闭状态,则不从各自队列选择帧。在相对于网络中的同步时间工作时,离线估算状态变更的时间点,并且然后执行状态变更。
技术实现要素:
本发明的目的在于简化实时网络的配置并且改善产生配置数据的性能。
该目的由上面描述的方法实现,其特征在于,所述配置数据由一工具产生,其中所述工具能够解算阵列理论中的约束,并且其中所述工具接受输入,该输入公式化为阵列理论中的约束,并且其中利用人手用户的输入和/或来自实时网络中的一个、两个、或多个节点的通信请求,所述输入提供给所述工具,并且其中所述配置数据传送到实时网络中的一个、两个或多个节点,节点或各节点将至少部分所述配置数据或所述配置数据用作本地配置。
此外,该目的由上面描述的设备实现,其特征在于,该设备能够通过执行工具产生配置数据,其中所述工具能够解算阵列理论中的约束,并且其中所述工具配置成接受输入,该输入公式化为阵列理论中的约束,其中利用人手用户的输入和/或来自实时网络中的一个、两个、或多个节点的通信请求,所述输入提供给所述工具,并且其中该设备配置成将所述配置数据传送到实时网络中的一个、两个或多个节点,该一个、两个或多个节点将至少部分所述配置数据用作本地配置。
最后,该目的由技术领域中描述的实时网络实现,其中该实时网络包括上面描述的至少一个设备,用于配置该实时网络的节点。
公开了一种配置方法:通过对一些约束的公式化,对尤其表示已排程窗口的打开时间瞬时和关闭时间瞬时的变量之间的依赖性及对特定窗口分配已传递的帧进行编码。可以不同方式公式化这些约束的编码,使得使用类似专门解算器的工具能够找到满意的解决办法。我们特提议将阵列的一阶理论(在本申请中亦称为阵列的理论或阵列理论)[2]的适当性作为对由排程问题产生的约束进行编码的适当方式,然后,该排程问题就能够由类似smt解算器的通用工具解算。
围绕两个解释功能码元构建阵列的一阶理论
i=j>a<i<x>[j]=x
i≠j→a<i←x>[j]=a[j]
这些与线性整数运算的公理一起形成整数索引阵列
下面将详细描述上面描述的方法、设备和实时网络的有利实施例:
●阵列理论中的一些约束可以是格式正确的窗口约束和/或队列分配约束和/或串流实例约束和/或有序窗口约束和/或帧-窗口分配约束和/或窗口大小约束和/或串流约束和/或串流隔离约束。
●smt解算器可用作能够解算阵列理论中的表达式的所述工具。
●opc/ua和/或dds和/或netconf/yang和/或snmp和/或ftp用于或可用于将通信要求传送到所述工具并且/或者将配置数据传送到节点。
●实时网络的每个节点可以是由以太网交换机、路由器和端站组成的组中选出。
●可根据ieee802.1qbv标准执行从打开变更为关闭和从关闭变更为打开的状态变更。
●优选地,利用ieee1588标准和/或ieee802.1as标准和/或saeas6802标准或所述标准的任一版本,可在节点中建立同步时间。
附图说明
下面为了进一步说明本发明,讨论如图所示的说明性的非限制性实施例。附图中:
图1示出根据现有技术的实时网络的示例,
图2示出根据现有技术的串流和帧的示例,
图3示出根据现有技术的节点的示例性实现,
图4示出根据现有技术的通信状况的示例,
图5示出根据本发明的方法的示例的流程图,
图6示出根据本发明的方法中采用的阵列理论的约束,以及
图7示出根据本发明用于在实时网络中对节点产生配置的设备。
具体实施方式
接着,我们将讨论本发明的许多实施中的一些实施。如果未另外说明,则对特定示例描述的所有细节不仅对该示例有效,而且适用于本发明的整个保护范围。
图1示出包括利用链路e1a、......、e8a、e1b、......、e8b互相连接的8个节点v1、......、v8的实时网络的示例。通常,网络建模为图
节点互相以串流和帧的概念通信。串流(或流)是从一个发送器(发送机)到一个或者多个收听器(接收机)的周期性多点传播数据传输。我们用
我们假定对于每个串流,已知发送机节点和接收机节点v1、vn以及将其连接的已划定通信通路。
串流
路由通过链路e∈ε的串流
图2示出图1所示示例性实时网络中的示例性串流和帧的示例。在该例中,示出串流s1,其中节点v1是发送机,而v7和v8是接收机节点。以帧的形式执行串流的通信,帧被示为f1、f2、f3、和f4。在一种实现中,所传送的帧是以太网帧。
图3示出节点的内部结构的一种可能实现的示例。该示例可以是图1所示示例性网络中的节点v4的实现。该节点在其输入链路e1a、e2a、e3a中接收帧。交换逻辑sw1判定必须使帧对哪个输出链路e5a接入和需要将帧置于与各自的输出链路e5a关联的一组队列q1、q2、q3中的哪个队列中。此外,该图还示出与队列q1、q2、q3关联的门电路g1、g2、g3。这些门电路或者处于打开状态,或者处于关闭状态,如配置数据gcl所示,并且随着时间发展,如本地时钟c1所示。节点还保持传输选择块ts,该传输选择块ts从队列q1、q2、q3中选择下一个帧进行传输。如果关联门电路g1、g2、g3处于打开状态,则传输选择块ts仅从给定队列q1、q2、q3中选择帧。
图4示出图2所示示例性串流s1的帧f1至f4在图1所示示例性网络中是如何排程和通信的示例。门电路的状态从关闭变更为打开和从打开变更为关闭的连续事件定义窗口w1至w4。阵列
为了在
图5示出根据本发明的配置方法的流程图。该流程图包括采集通信要求的第一步req。这能够例如由人手用户输入或由来自网络中的元素的自主请求实现。在一种实现中,opc统一架构(opcunifiedarchitecture)opc/ua[3]用于公式化这些请求。在另一种实现中,网络配置协议(networkconfigurationprotocol)(netconf)[4]和yang[5]用于公式化这些请求。在另一种实现中,数据分布服务(datadistributionservice)(dds)[6]用于公式化这些请求。在另一种实现中,简单网络管理协议(simplenetworkmanagementprotocol)(snmp)[7]用于公式化这些请求。通信请求一被采集到,就在第二步con将其公式化为阵列理论中的约束。在第三步tool,将阵列理论中的约束提供给工具,该工具能够解算阵列理论公式化的约束。在第四步conf,该工具返回满足来自第二步con的阵列理论约束的配置数据。在第五步dist,至少一些配置数据分布于网络中,并且网络中的至少一些节点将至少一些配置数据改编作其本地配置。这种分布可由类似opc/ua、dds、netconf/yang、snmp等的协议执行。
图6示出阵列理论中的约束。通常,下面出现的所有约束都是必需的,然而,在特定应用中,仅提供下面公式化的一个或一些约束。
●格式正确的窗口约束:
我们首先对出口端口的所有窗口形式化逻辑约束。由于每个物理链路将一个出口端口连接到一个进口端口,所以我们假定出口端口与所连接的有向边(物理链路)在形式论(formalism)中相等。我们将该链路上定义的每个窗口的打开和关闭的事件限制为大于或者等于0并且小于或者等于网络中的所有串流的排程循环。因此,我们有约束con-wellformed:
(φe[k]≥0)∧(τe[k]<ts)
其中如上所定义的,ts是网络中所有通信串流的排程循环(超周期)。
●队列分配约束
每个窗口分配到在范围[0..max]中排程的外出队列,因此,我们对队列分配阵列con-queueass增加界限:
0≤κe[k]<max
●串流实例约束
如上所述,网络部署中的通信很少表现标准化周期。相反,串流以多个速率发生,这样导致超周期,该超周期将排程表的长度定义为至少是所包括的所有周期的最小公倍数。帧的分配是,并且因此每个窗口的长度也是排程器的结果。具有不同周期、路由通过同一个链路的串流将贡献许多帧例,在超周期之前出现的每个周期例内排程每个帧例。因此,每个窗口的打开和关闭界限是设定窗口的进一步约束。
对于路由通过e的每个串流si,我们建立下面的约束con-streaminst:
●有序窗口约束
确定论(determination)必需的约束是不会将两个帧排程通过同一个外出链路发送,以致在时域中发生重叠。此外,我们明确禁止多个窗口同时保持打开,以避免争用引起的不确定论。
从理论上说,该约束的公式化不允许任何两个窗口于同一个链路上而重叠,我们将此定义为con-ordwind1:
(τe[i]≤φe[j])v(τe[j]≤φe[i])
请注意,该公式化产生大量带析取运算符(disjunctionoperator)的确证,已经证明该确证是计算密集型的。然而,由于不事先限制窗口的分配帧,并且任意帧可以分配到任意窗口,所以如果窗口在每个链路上的顺序被离线预定,因此,将其各自的打开和关闭事件设定为有序,我们就能够简化该约束。因此,可以使用下面的另一公式化con-ordwind2:
τe[i]≤φe[i+1]
●帧-窗口分配约束
帧-窗口分配变量定义各自出口端口的三个阵列(打开、关闭、和队列分配)中的索引。因此,我们将该变量限制到不大于每个端口的可配置最大的窗口数目con-frtowind:
●窗口大小约束
由于排程器对窗口分配帧,即,其事先不知道,所以窗口的大小由对其分配的全部帧的时长的累积和获得。因此,我们必须确保每个窗口的关闭事件允许有足够的时间发送一组分配帧。我们注意到该约束是在我们的形式论中要求阵列理论的存储操作的唯一的第一约束。
我们通过将每个打开变量的未经解释的项存储于关闭阵列的各自位置来开始con-windsize1:
τe<k←φe[k]>
这等于将全部打开事件于相同索引设定为等同关闭事件,因此,将窗口的长度初始化为0。请注意,这样,所有没有分配帧的窗口的关闭事件将保持等于各自的打开事件。
现在,我们利用帧-窗口分配索引在关闭阵列的每个位置处建立对该窗口分配的全部的帧的时长的和con-windsize2:
该构造对全部帧反复将帧时长加到该帧分配到的窗口的关闭事件的之前的未解释的值,并且以相同索引将该结果存储为新的未解释的表达。
●串流约束
串流约束描述从发送器到收听器的通信的有序性质。一般条件是属于同一个串流的帧必须沿路由选择的通信路径根据时间顺序地排程。因此,我们有con-stream:
其中δ是表示网络精度的恒定值。
换句话说,串流的帧的传播沿路径遵循顺序次序。因此,每个帧的窗口打开事件必须大于或者等于对前任的帧分配的窗口关闭事件,加网络精度常数以补偿两个跳线(hops)之间的时钟差。
●串流隔离约束
在运行时,网络似乎可能遭受帧丢失或串流在其周期性有用负载(payload)大小方面表现出差异。因此,为了确保运行时执行排程符合离线规划,我们需要计算在任何给定时间瞬时保证每个队列的确定性状态的排程。
考虑在设备a上分别从不同链路ex和ey收到两个串流si和sj并且通过链路ea将二者转发到同一个出口端口的情况。如果将其所述帧放入同一个队列中,则在运行时,帧在该队列中的顺序可根据确切到达顺序的最小变化或交换机结构中的进口端口的处理机制而不同。此外,一个或者另一个串流中的帧的丢失同样可以在每个周期实例处导致队列状态产生差异。因此,外出队列的离线排程打开和关闭可在运行时由队列的非确定性状态导致有效发生不同的行为。
保证确定论意味全部帧遵守其在整个网络的操作中计算过的窗口分配。为此,我们需要将上述示例中的两个串流各自的帧分配给同一个窗口,或者在时域中隔离它们,在另一个串流的帧被排程输出之前,限制收到第二串流的帧。作为另一种选择,如果多个队列可用于排程业务,则我们能够将不同队列的窗口中的两个帧隔离,在这种情况下,这两个帧也在重叠间隔内被接收,而不改变运行时的行为。
因此,对于通过链路ea,b传递的串流si和sj,我们将串流隔离条件公式化为con-streamisol:
其中该3个析取条件保证:或者当两个帧中的一个帧在接收时另一个已经被转发(通过将对每个帧分配的窗口各自的打开事件和关闭事件的顺序进行比较),或者每个帧被分配到不同的队列(并且因此,分配到不同的窗口);或者两个帧都被分配到同一个窗口(并且因此,分配到同一个队列)。
图7示出与图1所示网络类似的实时网络,然而,在根据本发明的网络的该示例中,使用额外节点v9。该节点v9实现设备cnc,其中所述工具能够解算阵列理论中的约束。例如,通过用户接口,人手用户能够将通信要求传送到设备cnc。在另一种实现中,例如,通信要求能够由网络中的节点v1至v8中的一些节点利用诸如opc/ua、dds、netconf/yang、snmp等的标准网络协议和数据模型自主提供。在另一种实现中,节点v9可以常驻于云基础设施中,并且链路e9a和e9b可以是互联网连接(可包括许多以太网链路、交换机和路由器)。
参考资料
[1]instituteofelectricalandelectronicsengineers,″802.1qbv-enhancementsforscheduledtraffic,″2017.[online].可取:http://www.ieee802.org/1/pages/802.1bv.html.
[2]a.r.bradley,z.mannaandh.b.sipma,″what′sdecidableaboutarrays?,″在vmcai,2006.
[3]opcunifiedarchitecture,可取自https://opcfoundation.org/about/opc-technologies/opc-ua/
[4]networkconfigurationprotocol(netconf)ietfrfc6241,可取自https://tools.ietf.org/html/rfc6241
[5]yang-adatamodelinglanguageforthenetworkconfigurationprotocol(netconf)ietfrfc6020,可取自https://tools.ietf.org/html/rfc6020
[6]datadistributionservice(dds)可取自http://www.omg.org/spec/dds/1.4
[7]simplenetworkmanagementprotocol(snmp)e.g.,version3ietfrfc3411-3418,可取自https://www.ietf.org/rfc.html