用于网络中数据帧的流量整形的方法及其装置和计算机程序产品与流程

文档序号:11455681阅读:519来源:国知局
用于网络中数据帧的流量整形的方法及其装置和计算机程序产品与流程

本发明涉及诸如以太网的包交换网络。



背景技术:

这种网络越来越多地用于除了数据通信之外的域中。工业网络是当前该用途的示例(例如,关于冗余的工业以太网标准、iec标准:hsr、prp、mrp)。

由这些技术引入的演进主要聚焦于改进这些网络的弹性:进行保护使得单一故障不影响数据传输。

然而,诸如数据传输的严格时间特性的强制这样的其他约束无法使用标准以太网来实施。更具体地,没有适当解决需要严格有界限的时延和/或抖动的控制/命令消息的传输。

运输领域中(主要在航空业中)已经开发并标准化多个解决方案:航空电子全双工交换以太网(afdx,协议arinc664,部分7)和技术ttethernet(saeas6802)。这两个解决方案都依赖向包复用的组织添加定时特性。

作为示例,afdx定义了带宽分配间隙(bag),其固定给定流的数据可以被发送的最大保证速率:如可以在图1上看到的,bag设置流在固定时间间隔内可以传输的数据量,图1示出了根据bag的afdx流量整形的两个示例。在对于各流设置bag速率时,注意为其他流提供足够的带宽,并且总比特率不能超过链路容量。根据bag的整形仅在源中执行,并且然后在下游节点中非同步地执行复用。该技术不对抖动和传递延迟提供严格界限。

作为第二示例,ttethernet基于网络节点的严格同步,并且定义了三种类型的流量:时间触发的(tt)、速率约束的(rc)以及尽力而为的(be)。

tt消息根据利用域宽同步的时钟的预定义静态计划来通过网络来发送。它们优先于所有其他消息类型。计划针对其中传输tt帧的各开关输出端口限定一组tt窗口。时间触发消息的发生、时间延迟以及精度被预限定并保证。

rc消息用于具有不那么苛刻的决定和实时要求的用途。tt窗口和宽域同步时钟用作用于控制rc流量的整形算法的输入。该算法检查在下一tt窗口开始之前是否可以完成各帧传输。如果没有帧适合,则发送方保持空闲,直到下一计划的tt帧的传输开始为止。该空闲时间(被称为“防护带”)保证rc帧(以及be帧,如下面说明的)从来不干扰tt帧。这些消息保证对于各用途预定义带宽,并且延迟和时间偏差具有有界的限制。

be消息遵循通常的以太网策略,并且使用上面描述的干扰避免机制来在剩余tt窗口中传输。这些消息是否以及何时可以传输、什么延迟发生且消息是否到达接收者不存在保证。

如可以在示出了ttethernet流计划的图2上看到的,这三种类型的流量根据tdma(时分多址)方案被分配时隙,该tdma方案在被细分成子循环(基本周期)的反复循环中组织传输复用。被分配给各流量类型的时隙对应于每个基本周期的数据量,并且它们的(时间)位置在整个网络上是固定的。

包根据预先限定的通信计划来中继。因此,随着同步本地时钟,同步执行通信计划,并且避免网络处的竞争。因此,因为可以通过设计来排除两个或更多个通信参与方在同一时间点访问网络的可能性,所以时间触发的通信提供强时间分割。

为了在基于标准以太网的网络上提供用于支持tt流量的框架,ieee(802.1tsn工作组)当前正在标准化被称为“时间意识计划器”的传输选择机制。该规范是被称为“802.1qbv-enhancementsforscheduledtraffic”的802.1q标准的修订的目的。该传输选择机制依赖与各流量类队列关联的传输门:如果传输门处于关闭状态或者如果在与流量类队列关联的下一门关闭事件之前不存在可用于传输该流量类队列上的整个帧的足够时间,则该帧不可用于传输。每流量类队列“queuemaxsdu”参数限定用于各队列的最大服务数据单元大小。丢弃超过队列最大大小的帧。

与各端口关联的门控制列表改变与各端口的流量类队列(图3的#7,#6,…,#0)关联的门的传输门状态。在不支持对所计划流量的加强的实施方案中,假定所有门永久处于打开状态。状态机如可以在图3上看到的负责控制每个队列门状态的转换,图3示出了根据ieee802.1qbv的传输选择的原理。

然而,用于复用的组织的固定计划的引入在对媒体的访问中引起某些不公平:rc和be流的帧仅可以被插在足够长以包括整个帧的时隙中,然而,该长度是可变的。这导致rc帧的传输中的另外(不总是必要的)延迟和抖动以及链路上的带宽浪费。

为了解决该问题,ieee802.3br(对802.3的修订:“specificationandmanagementparametersforinterspersingexpresstraffic”)限定了所谓“正常帧”(具有较低优先级的帧,通常为rc和be帧)的抢先机制,其保证在计划传输所谓的“便捷帧”(具有保证的低时延的帧,通常为tt帧)时,没有冲突发生且不导致针对便捷流量的添加时延。

该机制允许具有用于便捷流量的计划的mac客户在所计划的便捷流量到达之前抢先正常帧(如可以在示出便捷和正常流量数据路径的图4上看到的)。当所计划的帧到达时,可以立即传输帧。

另外,802.3br规范限定了每跳分割和再组装方案,该方案允许停止正常帧的传输,以给予便捷帧传输机会。如与ieee802.3br帧和片段格式有关的图5中所示,正常帧片段和便捷帧由它们的前导码长度和所谓的“起始帧分界符”(sfd)字段来区分。这允许非便捷帧(正常帧)不等待足够长的时隙来传输,这得到对于正常流的有限的增加时延和以及链路容量的较好使用。

要注意,在任意时间仅可以分割单个正常帧,即,传输时间跨度覆盖一个或多个个tt窗口的帧。在图5中,mfcs是非最终片段的crc(循环冗余校验)。这里,其值与帧八比特组传输的xorffff0000的fcs(帧检验顺序)相同。smd-ix指示正常帧的开始,诸如该帧的第一片段(初始片段),而smd-cx指示该帧的非初始片段。为了说明的完整,macda和macsa分别是目的地和源mac地址。“以太类型(ethertype)”意味着以太网类型长度字段。然后,图5的上部示出没有被分割的便捷和正常帧,并且图5的下部示出了正常帧的连续片段。

最小抢先的片段大小是64个字节。因此,不能抢先具有少于128个字节的长度的包。非最终片段具有为8个字节倍数的长度。

然而,上面描述的复用机制不保证:

正常帧相对于便捷帧对媒体的公平访问,

属于给定流的正常帧相对于其他正常流对媒体的公平访问,

正常帧或片段根据ieee802.1qbv在它们的分配时隙期间可以被插入复用中,

正常帧可以根据ieee802.3br来分割。



技术实现要素:

本发明目的在于改善该情形。

为此,首先提出了一种用于要在通信网络中传输的数据帧的流量整形的方法,对要传输的帧在需要在所述预定时间窗口内发送(下面评论的图9的步骤b))的便捷帧与希望在时间窗口之外的时间发送的正常帧之间进行区分。

更具体地,对于当前正常帧,方法包括以下步骤:

确定所述正常帧是否可以被分割(图9的步骤c)),并且如果是:

则确定到下一时间窗口开口的剩余时间是否足以传输所述正常帧的一个或多个片段,并且如果是:

则传输所述一个或多个片段。

在特定实施方式中,正常帧和在存在的情况下从之前正常帧处理剩余的一个或多个片段在存储器中排队,并且被分配相应处理时刻,并且其中,将当前时间与最小处理时刻进行比较(图9的步骤a)),以在当前时间大于最小处理时刻时实施步骤。

在本发明的特定实施方式中,其中,处理多个流,并且各流包括连续的正常帧和在存在的情况下从之前正常帧处理剩余的一个或多个片段。各流的这些正常帧和/或片段分别在存储器中排队,并且被分配相应处理时刻。然后,将当前时间与各流的所有队列中的最小处理时刻进行比较(图9的步骤a)),以在当前时间大于所述最小处理时刻时实施步骤。

在特定实施方式中,如果所述当前正常帧不能够被分割,则确定到下一时间窗口开口的剩余时间是否足以传输整个当前正常帧,以及:

如果是,则传输所述整个当前正常帧,

否则,应用拖延(temporization)步骤,直到下一当前时间为止。

在特定实施方式中,如果所述当前正常帧可以被分割,则确定到下一时间窗口开口的剩余时间是否足以传输至少一个片段,以及:

如果是,则传输至少一个片段,

否则,应用拖延步骤,直到下一当前时间为止。

更具体地,如果当前正常帧可以被分割,则进一步确定直到下一时间窗口开口为止的剩余时间是否足以传输正常完整帧的剩余部分,以及:

如果是,则传输所述正常完整帧的剩余部分的对应片段,

否则,传输一个或多个片段,所述一个或多个片段对应于短于直到下一窗口开口为止的剩余时间的总持续时间。

在特定实施方式中,将直到下一窗口开口为止的前述剩余时间与基于传输所述片段或帧的链路的容量来估计的用于传输片段或整个正常帧花费的时间进行比较。

而且,(被分配给排队的帧和/或片段的)前述处理时刻优选地在帧或片段的各所计划的传输时由基于传输流比特率估计的计划传输的持续时间来更新。

在实施方式中,正常帧在其总长度是最小片段大小的长度的至少两倍时被认为能够被分割。

优选地,正常帧的该总长度用其尚未传输的剩余片段来更新(这种帧长度更新步骤在图9上被标记为s15和s18)。

在实施方式中,前述时间窗口在循环时间表中连续限定(如图8的实施方式的示例所述)。

本发明的目的还在于一种装置,该装置具有用于执行根据本发明的方法的流量整形单元(诸如处理器和至少一个存储器)。

本发明的目的还在于一种计算机程序产品,该计算机程序产品包括指令,该指令用于在由处理器运行时执行根据本发明的方法。

附图的图中以示例的方式且不以限制的方式例示了本发明,在附图中,同样的附图标记提及类似的元件。

附图说明

[图1]图1示出了根据bag的afdx流量整形的两个示例,

[图2]图2示出了ttethernet流计划,

[图3]图3示出了根据ieee802.1qbv的传输选择的原理,

[图4]图4示出了便捷和正常流量数据路径,

[图5]图5示出了未分割的便捷和正常帧以及正常帧的连续片段(下部),

[图6]图6示出了包括可以包括根据本发明的装置的元件的系统,

[图7]图7示出了包括流量整形单元以执行根据本发明的方法的、根据本发明的装置的结构的示例,

[图8]图8示出了限定前述时间窗口的循环时间表的示例,

[图9]图9示出了根据本发明的实施方式的示例的方法的步骤。

具体实施方式

在以下的本规范中,“便捷流量”(或便捷帧)表示低时延、经计划或tt(“时间触发的”)流量(或帧),而“正常流量”(或“正常帧”)表示速率受限(rc)流量或尽力而为(be)流量或任何其他非便捷流量(或帧)。

本发明提出了使得可以保证上面列出的条件的组合帧计划和分割机制。

参照图6,计划功能可以针对对于网络net的开关sw的各输出端口设置的装置d中,或者还可以位于在用于从终端t1、t2传输数据或语音数据的终端站(t1、t2)中具有帧传输功能的装置d中。如图7上所示,借助装置d的输入接口in接收的各流(f1,...,fi,...,fm)的进入帧以fifo(“先入先出”)的顺序在工作存储器中存储在独立队列(流i对于qi)中。装置d还包括用于用同步时钟数据clk(该数据从网络或从经同步的内部时钟获得)执行本发明的方法的处理器proc。此外,装置d包括存储在图8上详述的用于向要传输的帧或片段(fr)分配时隙的时间表tst的存储器memb(其可以在与工作存储器mema相同或不同的存储器单元中)。最后,由于如参照图9在下面详述的本发明的实施,以方便的顺序在装置的输出接口out中接收要传输的帧或片段(图7中标记为fr)。当然,装置d还可以具有用于存储要由处理器proc运行以实施本发明的方法的计算机程序代码指令(inst)的第三存储器memc(在与mema和memb相同或不同的存储器单元中)。

装置d可以被实施为自主装置(诸如终端t1、t2的独立芯片或开关sw的独立芯片),或者另选地可以使用这种终端或开关(或更广泛地,网络的任意元件)的硬件资源(逐出处理器和/或存储器单元)。

参照图8,时间表tst如下使用。

时间用对应于附接到输出端口的传输链路上1比特的持续时间的单位来表达。网络中的所有节点优选地以相同时钟来同步且具有当前时间clk的相同镜像。时间的当前值在下文中被表示为t。

被表示为ri的比特率与各流i(不管是正常还是便捷的)关联:

在便捷流的反复传输窗口中传输的数据量允许限定该流的流率,正常流可以被分配有比特率(最大,不管是否强制)。

所有比特率ri的和不是必须大于链路的总能力容量。为了简单,所有链路优选地(但可选地)具有相同的容量(下文中被表示为ρ)。

各便捷流的帧的传输遵循周期模式。表tst(具有有限长度)可以包含所有计划便捷流的所有连续传输窗打开和关闭时间(分别为tok和tck)。这意味着便捷帧或片段在时间间隔[tok,tck]内传输而正常帧或片段相反在剩余的时间间隔[tck,tok+1](k以n为模)中传输。还进行以下假设:预先计算各窗口的持续时间,使得在被打开时,窗口可以允许传输针对其提供窗口的便捷帧。所有便捷窗口开口和关闭时间存储在循环表tst(具有由图8上的圆形箭头circ示出的k[n])。实际上,表的各条目是分别表示窗口k的打开时间和关系时间的对(tok,tck)。在每次表的读取指针绕回表的第一元素时,向条目增加对应于表深度的偏移。读取指针将时间的当前值t考虑在内。

至于正常帧,存储在各流队列头部的各正常帧与理论传输时间(tti)关联,其对应于假设用于传输帧的第一比特的理论时间。tti以递增顺序来存储,并且具有最小tti(图9中标记为(tti),)的正常帧或片段是用于插在复用上的下一正常帧或片段候选。

现在参照图9:

s是要传输的当前正常帧或片段的大小,

minfs是如由ieee802.3br限定的最小片段大小(根据该规范中的该值的符号为“minfrag”)。

ri是流i的比特率,

ρ(在这里描述的示例中)是链路的平均能力,

δt是拖延步骤s2期间的时间增量(例如,一个比特传输的持续时间),

tti是在根据本发明的方法的计算之前假设传输队列qi中的帧或片段的第一比特的理论时间。

正常帧或片段至少在满足以下条件时插在复用上(实际传输的):

a)t≥min(tti)(从图9上的测试a)开始的箭头“ok”),和

b)t不被包括在当前的(tok,tck)窗口中(从图9上的测试b)开始的箭头“ko”),以及

c)s≥2*minfs(从图9上的测试c)开始的箭头“ok”)。

条件a)意味着当前时间t已经开始考虑正常帧。如果系统地验证条件a),则系统保证各正常流不以大于ri的速率来传输。应注意,如果相对于由rc流的相应比特率ri表示的权重将实现仅在rc流之间的公平性,则可以使得条件a)为可选的。

条件b)意味着检查当前时间t是否在时间窗k内(例如,在时间窗的打开时间tok与它的关闭时间tck之间),以在该情况下给予便捷帧的传输优先级。

条件c)意味着(如果满足上述条件a)和b))检查是否可以分割正常帧。如果正常帧不能被分割(测试c的输出处的箭头ko),那么执行拖延步骤s2,直到持续时间[tck,tok+1](k[n]表示k以n为模)长至足以传输该不可分割的正常帧为止。如果正常帧可以分割(测试c的输出处的箭头ok),那么如下面详述的实施另外的测试和步骤,以在良好且公平的条件下执行分割。

处理以以下第一步骤s1开始:

考虑要传输的正常帧或片段(算法指向专用于要处理以便传输的正常帧和片段的例程-为了传输整个帧或片段,例程的共有步骤用于算法优化),

然后,在各队列中计算tti,

参照表tst,以确定具有当前索引k的当前时间窗,

参照时钟,以确定当前时间值t。

然后,执行步骤a):如果当前t到来以开始传输正常帧或片段,则验证:考虑当前时间窗索引k,当前时间是否落在关闭该时间窗k之后(从测试t3开始的箭头ok),则这意味着需要更新窗口索引k(步骤s4用k[n]进行的递增)。然后,执行步骤b),以确定是否将优先级给予便捷帧。否则(从测试b)开始的箭头ko),确定正常帧是否可以被分割。如果否定(从测试c)开始的箭头ko),则可以随着无法分割帧的信息(从测试c)开始的虚线箭头线ko)来执行测试t6。在测试t6中,在将到下一窗口开口的剩余时间t和链路容量ρ考虑在内的同时,确定是否可以传输整个完整帧。如果可以(从测试t6开始的箭头ok),则在步骤s7处传输帧fr。在将用于传输具有大小s的新帧的流比特率ri考虑在内的同时,在步骤s8处更新计划用于传输下一帧(或如将在稍后看到的片段)的下一时间tti。进一步执行测试t9,以读取要在步骤s7处传输的最近片段(通常为信头),以确定该片段是否是帧的末尾。在遵循算法的本分支中,由于在步骤s7处发送完整帧,所以测试t9的输出应为“ok”,并且考虑下一候选帧(步骤s10)以返回参照步骤s1进行处理。

如果根据测试t6无法传输整个完整帧(从测试t6开始的虚线箭头线ko,伴随着无法分割片段的信息),那么在步骤s2中执行拖延步骤,以等待长至足以传输整个帧的新时间间隔[tck,tok+1]]。

如果可以分割帧(从步骤c)开始的箭头ok),则预期分割,并且在测试t5中,检查直到下一窗口开口剩余的时间是否长至足以传输具有持续时间minfs的片段。如果是(从测试t5开始的箭头ok),则进一步检查是否可以传输整个帧(上面说明的测试t6处)。如果仅可以传输片段(从测试t6开始的箭头ko,伴随可以分割帧的信息),则在测试t12处检查直到下一窗口开口为止的剩余时间是否足以传输完整帧的剩余部分(测试t12的箭头“ko”,该条件还可以被写为:(tok–t)ρ≥s–minfs,那么这意味着具有长度s-minfs的至少一个片段(补充构建完整帧))可以在不干扰下一传输帧或片段的情况下可以在步骤s13处被创建被发送。然后,因此在步骤s14处更新计划时间tti,以在步骤s15处考虑下一帧长度。然后,可以检查该片段是否是帧的末尾(测试t9)。通常应当是。然而因为最后一步(图9上未示出)可能坚持计算fcs(帧检查序列),以添加在要传输的帧的末尾处,所以优选地在所示示例中进行检查。

如果(tok–t)ρ≤s–minfs(从测试12开始的箭头ok,同时在测试t5中(tok-t)*ρ≥minfs),则这意味着在步骤s16处可以创建并传输至少一个片段(但不是终止帧的最后片段)。在步骤s16中由(tok-t)*ρ给出片段的长度。然后,因此在步骤s17处更新计划时间tti,以在步骤s18处考虑下一帧长度。然后,可以检查该片段是否是帧的末尾(测试t9)。这里,该片段可以是或不是。如果不是(从测试t9开始的箭头ko),那么在步骤s11中考虑下一片段,在用下一片段再次实施步骤s1。

应注意,当再次实施步骤s1时,(不同流f1,…,fm的)队列q1,…,qm中的各时间tti已经在步骤s8、s14以及s17中的一个中更新,并且当前时间t也已经在步骤s7、s13、s16中的一个中片段或帧的传输期间前进。因此,这些参数tti和t被自然更新且准备在步骤s1处使用(具有也可以在步骤s4处更新的当前窗口索引k)。

下面列出了图9上示出的算法的主要步骤:

a)如果t≥min(tti),并且

b)如果t未被包括在当前(tok,tck)窗中,并且

c)如果s≥2*minfs,

如果(tok-t)*ρ≥minfs

如果(tok-t)*ρ≥s

发送帧或最后片段

tti=tti+(s/ri)

选择要传输的下一帧或片段候选

否则

如果(t+s/ρ)-tok>=minfs/ρ

创建并发送长度为(tok-t)*ρ的片段

tti=tti+((tok-t)*ρ/ri)

s=s-(tok-t)*ρ

选择用于传输的下一片段或帧候选

否则

创建并发送长度为(s-minfs)的片段

tti=tti+((s-minfs)/ri)

s=minfs

选择用于传输的下一片段或帧候选

endif

endif

endif

否则

如果(t+s/ρ)<tok

发送帧或最后片段

tti=tti+(s/ri)

选择用于传输的下一帧或片段候选

endif

endif

本发明可以应用于作业量(计算时间、过程计划等)必须在时间上共享的领域。在这些情况下,不进行特别变化。

本发明可以应用于支持具有各种时间限制(在从强实时(例如,关键控制环路)到较宽松的时延和同步(音频-视频传输)以及尽力而为的范围内)的用途的混合。

本发明例如可以在时间敏感控制网络(或者诸如在工厂自动化或汽车或公共设施或火车中的任意网络)中实施。

本发明解决了标准实施问题,但可以用作用于ieee802.1tsn内的任意其他“传输选择”机制的标准化的支持,然后提供具有超低时延和网络负载共享优化的网络流量整形。

上面已经如图7上所示的具体描述了并行队列(q1,…,qm)中的多个流的处理。然而,本发明还可以用单个流的单个队列来执行。然而,队列的各帧或片段具有处理时间tti,该时间可以在图9上所示的步骤的各实施时更新并重新排列,以确定在这些步骤的下一实现中要处理哪一个片段或帧。

本发明可以嵌入在计算机程序产品中,该计算机程序产品包括使得能够实施这里描述的方法的所有特征,当计算机程序产品被加载在信息处理系统(例如,用户设备或网络元件)时,使得信息处理系统实施本发明。本语境中的计算机程序单元或计算机程序意指旨在使得具有信息处理能力的系统直接或在转换成另一种语言之后执行特定功能的一组指令的、使用任意语言、代码或符号的表达。这种计算机程序可以存储在计算机或机器可读介质上,该介质允许从介质读取数据、指令、消息或消息包以及其他机器可读信息。计算机或机器可读介质可以包括非易失性存储器(诸如rom、闪存、硬盘驱动器存储器、cd-rom以及其他永久储存器)。另外,计算机或机器可读介质例如可以包括易失性储存器(诸如ram、缓冲器、高速缓冲存储器以及网络电路)。此外,计算机或机器可读介质可以包括暂时状态介质(诸如包括有线网络或无线网络的网络链路和/或网络接口)中的计算机或机器可读信息,该暂时状态介质允许装置读取这种计算机或机器可读信息。

虽然已经例示并描述了目前被认为是本发明的优选实施方式的内容,但本领域技术人员将理解,可以在不偏离本发明的真实范围的情况下进行各种其他修改并可以替换等同物。另外,可以在不偏离这里描述的中心发明概念的情况下进行许多修改,以使得特定情形适应本发明的示教。此外,本发明的实施方式可以不包括上述的所有特征。因此,旨在本发明不限于所公开的特定实施方式,而是本发明包括落在如上面广泛限定的本发明的范围内的所有实施方式。

本领域技术人员将容易地理解,可以在不偏离本发明的范围的情况下对说明书中公开的各种参数进行修改并对所公开和/或要求保护的各种实施方式进行组合。

工业应用性

本发明可应用于多种领域中的网络。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1