基于工业以太网的工控领域流量管控设计

2017-07-10 21:12张根宝张乃方
电脑知识与技术 2017年14期

张根宝 张乃方

摘要:针对目前工业以太网有向下延伸进入控制层的趋势,加之工业控制网络“一网到底”理念的出现,在此提出一种面对工业以太网贯穿办公管理层、数据通信层和设备层的企业级管控一体化全开放网络的流量管控设计。该设计基于令牌桶算法和漏桶算法,对其加以改进,添加调度模块和再分配模块等,以此达到尽可能将令牌都用于传输数据的目的,并添加面对数据流突发时的应对措施。

关键词:一网到底;工业以太网;流量管控;令牌桶;漏桶

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)14-0029-04

1背景

目前,工控领域大多采用分层的控制网络,其标准形式为三层,从上到下依次为办公管理层(多采用商业以太网)、数据通信层(多采用工业以太网)和设备层(多采用现场总线)。随着工业以及自动化产业的发展,控制系统规模越来越大,且以管理与控制一体化为目标,要求有更多的信息参与到工厂管理中去。在众多的信息网络技术中,工业以太网脱颖而出,日益表现出其在控制网络中的优势,并且有逐渐向下延伸进入控制层的趋势,也成为统一现场总线的希望,致使出现“一网到底”的曙光。故在此提出一种基于改进的令牌桶算法的流量管控设计,其能将各不同优先级的各分组类型的多余令牌重新分配,尽量避免带宽浪费现象;同时增加调度模块,在保证重要流量正常发送的同时用以完成有数据流突发情况时的令牌调用功能。

2流量管控设计

流量管控总体设计如图1所示。

其基本组成如下:

1)流分类器:根据报文头部类型信息或其特征字段对不同报文进行分类。

21令牌生成器:以一定速度生成令牌。

3)调度模块:当有数据流突发时用于调度令牌,根据不同情况完成不同调度策略的令牌调度工作。

4)再分配模块:把各个令牌桶中多余出来的令牌按再分配规则进行分配。

5)漏桶模块:限制某类数据流最终带宽占用,即防止过度占用带宽。

2.1再分配模块

该流量管控设计打破以往令牌桶算法的传统模型,把其令牌桶和令牌生成器分开,在两者之间加入调度模块和再分配模块。再分配模块用于再度分配令牌,当某些令牌桶未满或其内令牌数低于某个设定值时,新产生的令牌全部被放入相应令牌桶中,以防此类令牌桶对应类型的数据可能突发的情形;当某些令牌桶已装满或其内令牌数高于某设定值时,新生成的令牌不会因溢出而被丢弃,而是被再分配模块重新分配到其他令牌不足的令牌桶。这样就能很好地避免新生成令牌的浪费,尽可能地将所有令牌都用于传输数据。

再分配流程如图2所示。

再分配流程如下:

1)某令牌生成器新生成一个令牌,若其对应的令牌桶不满或其内令牌数低于某设定值,则把该令牌放进对应令牌桶;若其对应的令牌桶已满或其内令牌数高于某设定值,则把该令牌在同级同类分配器中进行再分配。

2)同级同类分配器负责管控同一优先级下相同类型的不同数据流总流量,扫描其下所管控的所有其他令牌桶,看是否有令牌不满或其内令牌数低于某设定值的令牌桶。若有,则可按一定规则分配给其中一个满足条件的令牌桶,再分配过程结束;若没有,则把令牌交给同级分配器。

3)同级分配器负责管控同一优先级下不同类型的数据流总流量,扫描其下所管控的其他类型的同级同类分配器,看是否有令牌不满或其内令牌数低于某设定值的令牌桶。若有,则可按一定规则分配给对应同级同类分配器,转至2);若没有,则把令牌交给跨级分配器。

4)跨级分配器负责管控不同优先级的数据流总流量,扫描其下所管控的其它优先级的同级分配器,看是否有令牌不满或其内令牌数低于某设定值的令牌桶。若有,则可按一定规则分配给其对应的同级分配器,转至3);若没有,则丢弃令牌。

2.2调度模块

再分配模块的目的在于尽力避免新生成令牌的浪费,将原本可能因溢出而丢弃的令牌通过再分配放进不满的令牌桶,而调度模块则是完成令牌调度工作。当某数据流有突发时,可能会出现耗尽其令牌桶内所有令牌的情况,即分配给该数据流的令牌暂时出现供不应求的现象。当发生这样的情况时,可以通过从其他数据流对应的令牌桶中抽调令牌以解“燃眉之急”。

为了保证高优先级的数据流正常收发,当高优先级抽调低优先级数据流的令牌时,可以采取附加较小限制或不加限制的措施;对于低优先级的数据流,当其向高优先级抽掉令牌时,可以采取附加适当限制的措施或直接不允许数据流向比它优先级高的数据流抽调令牌。经综合考虑,为了避免循环嵌套抽调现象的发生,以及为了降低实现复杂度,在此设定不允许低优先级向高优先级抽调令牌。为了对令牌抽调加以限制,引入参数:令牌借用阈值Y、令牌借用数J和更新周期t。Y为大于零的固定值,J为初始值为零的动态参数,每过时间t参数J被清零。某数据流抽掉一次令牌,其对应J值加一,当其J值大于Y值时,将无法再抽掉令牌,需等待其,值再次被清零。调度流程如图3所示。

调度流程如下:

1)某数据流的令牌桶T耗尽其所分配的令牌,调度模块扫描同优先级同类型其他数据流的令牌桶,看是否存在剩余令牌数大于某设定值的同优先级同类型令牌桶。

2)若存在符合条件的令牌桶,看该令牌桶的参数是否满足TY-TJ>0。若满足,转至5);若不满足,转至6)。

3)若不存在剩余令牌数大于某设定值的同优先级同类型令牌桶,调度模块扫描同优先级不同类型的其他数据流的令牌桶,看是否存在剩余令牌数大于某设定值的同优先级不同类型令牌桶。若存在,轉至2)。

4)若不存在剩余令牌数大于某设定值的同优先级不同类型令牌桶,调度模块扫描低优先级数据流的令牌桶,看是否存在剩余令牌数大于某设定值的低优先级令牌桶。若存在,转至2);若不存在,转至6)。

5)抽掉令牌。

6)结束调度。

2.3漏桶模块

漏桶算法不同于令牌桶算法之处在于令牌桶算法输出速度主要取决于令牌产生速度或当前桶内令牌数,而漏桶算法输出速度是固定的,取决于桶底小孔的大小。通过将漏桶放置于令牌桶后面起到降低某段时间内的峰值速率。同一类型的所有令牌桶后放置一个漏桶,漏桶控制同一类型所有数据流的最高速率之和。

3模拟仿真

本流量管控设计意在面向有“一网到底”趋势的工业以太网,对“一网到底”情形下整个网络的流量加以合理管控。工业以太网凭借其良好的兼容性和广泛的开放性,当“一网到底”于企业网络中实现时,其网络环境及实际使用情况必定十分复杂,对其整个网络进行系统网络仿真难度可想而知,故在此只作简单的性能模拟,重点在于对算法设计的验证。NS2是一种面向对象的网络仿真器,由UC Berkeley开发而成,本质上是一个事件驱动的网络仿真软件。

假设在整网中有三个优先级a、b、c(优先级从高到低依次为a、b、c)。优先级a对应两种数据类型,其中类型1有两条数据流,分别为a11和a12,类型2有一条数据流a21;优先级b有一种数据类型,其中类型1有一条数据流b11,类型2有一条数据流b21;优先级c有一种数据类型,其中类型1有一条数据流e11。整个网络总带宽为100M,通过不同优先级不同类型令牌桶后的漏桶模块限制某类数据的最大使用带宽,设定优先级a类型1的漏桶最大通过30MB/s,优先级a类型2的漏桶最大通过30MB/s,优先级b类型1的漏桶最大通过25MB/s,优先级b类型2的漏桶最大通过10MB/s,优先级c类型1的漏桶最大通过5MB/s。假定a11的额定输出速度为15M/s,a12的额定输出速度为15MB/s,a21的额定输出速度为20MB/s,b11的额定输出速度为20MB/s,b21的额定输出速度为10MB/s,c11的额定输出速度为5MB/s。

3.1模拟测试1

当发送a11为5MB/s的数据流,逐渐增加a21数据流至25MB/s、b11数据流至25MB/s,其他数据流均按额定速度发送时,各数据流情况如下表1所示。

由于发送a11为5MB/s的数据流,而a11额定发送速率为15MB/s,故多出10M带宽可分配。假定a21和b11发生数据流突发情况发送速度增至25MB/s,而a21和b11额定输出速度均为20MB/s,此时a21和b11可以暂时使用a11空闲的10M带宽,当使用多出的10M带宽后其通行速度均为25MB/s,都未超過其后漏桶模块的最大限速,故a21和b11最终通行速度为25MB/s。由于优先级c类型1后的漏桶限流为5MB/s,故c11数据流单位时间通行速度为5MB/s,其他数据流均按额定速度发送,按额定速度正常通行。

3.2模拟测试2

当发送a11为5MB/s的数据流,逐渐增加a21数据流至27MB/s、b11数据流至25MB/s,减少c11数据流至5MB/s,其他数据流均按额定速度发送时,各数据流情况如下表2所示。

由于发送a11为5MB/s的数据流,而a11额定发送速度为15MB/s,故多出10M带宽可分配。假定a21发生数据流突发情况,其发送速度增至27MB/s,b11也发生数据流突发情况,其发送速度增至25MB/s,而a21和b11的额定发送速度均为20MB/s,由于再分配模块是优先分配同一优先级的各数据流,故a21获得多出的7M带宽,b11获得多出的3M带宽。a11通行速度为27MB/s,b11通行速度为27MB/s,且都未超过其后漏桶限定的最大通行速度,故a21最终通行速度为27MB/s,b11最终通行速度为23MB/s。其他数据流均按额定速度发送,按额定速度正常通行。

4结束语

本文提出一种流量管控设计,针对基于工业以太网的工控网络,意在对工控领域“一网到底”的实现做出探索。通过对传统令牌桶算法做出改进,添加再分配模块以弥补传统令牌桶算法因溢出而存在的令牌浪费现象,尽力避免新生成令牌的浪费,将新生成的令牌尽可能地都用于传输数据;其次加上调度模块,以在因某数据流突发而耗尽令牌时完成紧急抽调令牌的工作。最后加以漏桶模块来对某类型数据的最终占用带宽加以限制,完成对流量的管控功能。经性能模拟达到预期效果。