APP下载

SDN架构下以太网实时同步解决方案

2018-03-29崔钊婧

电子设计工程 2018年2期
关键词:流表表项以太网

崔钊婧

(中国空间技术研究院北京卫星信息工程研究所,北京100086)

由于SDN将网络管理从硬件转移到软件,使得用户不再需要更新硬件设备便可以通过软件的方式更改网络功能,而这分离并解耦了网络的控制平面与转发平面,降低了网络管理的开销。因此,SDN的发展将给网络产业带来巨大的调整,成为厂商最近几年来的研究热点,故SDN的大规模应用只是时间问题[1]。

对于目前得到广泛应用的以太网,由于其成本低,速度快,拓扑简单已成为共识,它的应用已经延伸到各行各业:各个公司企业网、互联网、船舶、工业生产控制等。但由于传统以太网遵循IEEE802.3标准,针对某些特定领域,仍然存在一些缺陷,需要克服实时性、确定性、可靠性的缺点。

但由于传统以太网本身协议的缺陷,如果应用到安全关键系统中,必须克服:确定性、实时性、可靠性的缺点。针对这些缺点,时间触发以太网应运而生,解决了传统以太网可靠性低、实时性弱问题[2]。

时间触发以太网被来自奥地利的业内权威TTTech公司如下定义:

有保障的通信=以太网+被控制的速率+时间触发+时间同步+通信类别[3]

国际上对于TTE的技术研究已经发展的十分成熟,并且广泛应用与各个领域,譬如航空航天、消费电子及汽车工业[4]。

而国内对于SDN架构下的的研究尚处于开始阶段,各大核心期刊对于TTE的研究中很少有关于TTE的相关论文,不过显而易见的是,由于TTE的高可靠性以及高带宽的优越性,TTE取代传统的以太网网络只是时间的问题。

文中将在SDN的架构下,借鉴TTE的时间同步机制,给出一种以太网同步解决方案。

1 TTE同步协议

在传统以太网基础上,TTE通过建立和维护与本地时钟同步的全局时间,实现了时间触发控制,实现冗余管控、容错机制,也全面兼容以太网现有标准[3]。其协议体系架构主要包括以下标准:以太网802.3协议、主要完成时间同步机制的就是TT同步协议、IP协议、TCP/UDP协议[5]。

1.1 TTE网络构件

TTE的网络构件根据网络功能分为以下3种角色:集中控制器(CM)、同步控制器(SM)和同步客户(SC),主要由时间触发以太网交换机及其终端构成[6]。

1.2 TT同步协议流程

TT同步协议主要是通过建立全网统一的时间调度表,将终端与交换机实现同步。如图1所示,同步流程为:

首先,PCF由同步控制器产生,向集中控制器发送。协议控制帧往往是在同步控制器本地时钟等待一个时间定值之后,才发送给集中控制器。其中,协议控制帧携带了相关的参数(如发送时间),而这些参数与每个同步控制器本地时钟有关。在PCF帧传输过程中,它也会记录一些链路延迟数据,比如传播延迟、动态发送/接受延迟。

其次,各个同步控制器发送完各自的PCF帧之后,集中控制器将提取各个PCF帧携带的数据,通过先运行时序保持算法,再运行集中算法得到一个统一的新的PCF帧,然后同步发回给各个同步客户与同步控制器。集中控制器就像一个仲裁机构一样,根据同步控制器发来的PCF帧,经过时序保持算法和集中算法,计算出一个大家都认同的时钟,然后就把这个信息返回给同步控制器及同步客户,同步控制器和同步客户经过一定的处理后,就知道按什么样的标准同步了。直到这时才实现了全域同步[7]。

图1 TT同步流程

2 SDN及OpenFlow协议原理

2.1 SDN定义

2012年,ONF的SDN白皮书发布了SDN标准体系结构的定义。SDN通过控制器维护全网试图。通过SDN控制器,企业可以获得独立于运营商外的整个网络的控制权,而传统企业网络只能获得对一个逻辑节点的控制,在很大程度上简化了网络运行的设计。SDN还优化了网络设备本身,因为他们仅从SDN控制器接受指令,不再需要理解和处理成百上千的协议[8]。

2.2 OpenFlow协议原理

OpenFlow的核心理念是用于实现控制器与交换机之间的通信过程,定义看相关通信术语;定义了控制器与交换机之间的通信过程的消息类型及格式;以及控制器如何控制交换机与交换机如何反馈控制器[9-10]。

OpenFlow的核心思想是实现控制器和交换机之间的通信,进行其间涉及的通信相关术语的定义;定义控制器和交换机之间的通信格式消息类型;以及控制器如何控制交换机,交换机如何反馈控制器。

SDN控制器利用LLDP协议实现链路发现协议的功能。LLDP协谈是一种链路发现协议,可以通过将本端设备的主要功能、管理地址、设备标识符、接口标识号等标志位组成不同的TLV,即数据包的类型、长度和值,封装在LLDPDU,链路层发现协议数据单元中,发布给自己直连的网络节点,这些网络节点将这些信息以标准的管理信息库的形式保存起来,为网络管理系统提供查询及判断链路通信状况的数据库[11]。

3 基于OpenFlow交换机的时间同步架构

由于SDN网络中使用的交换机是OpenFlow交换机,所以当借鉴时间同步以太网的同步机制,重新设计一种新的解决方案的时候,需要考虑TTE网络特有的几个问题:

1)时间同步流程及同步拓扑:同步控制器(Synchronization Master)、集中控制器(Compression Master)和同步客户(Synchronization Client)的工作流程和同步连接拓扑。

2)协议控制帧(Protocol Control Frame,PCF)的定义:包括其格式与字段定义

3)单同步域全局时钟同步协议:协议总体流程设计、子算法设计、协议实现[12]。

3.1 时间同步拓扑

SDN的网络基本结构是由网络控制器和底层交换机组成。而在TT同步协议中,网络设备依据系统具体需求被指定为SM,CM和SC。考虑到这两种网络结构,我们可以在SDN架构中,将控制器指定为SM,而把交换机指定为CM。那些既没有被指定为SM,又没有被指定为CM的终端,就是SC。那么,时间同步流程即可以表示为:控制器向OpenFlow交换机发送PCF帧,之后接收通过OpenFlow交换机发送的新PCF帧;控制器接收到PCF帧后,通过北向接口运行时间同步应用,并向OpenFlow交换机发送新产生的PCF帧。交换机网络拓扑示意图如图2所示。

图2 网络拓扑示意图

由图可见,Openflow交换机分SM,SC,CM 3种角色。控制器负责下发流表控制PCF帧的转发。所有openflow交换机采用OpenvSwitch,控制器采用SDN任一控制器即可。

3.2 时间同步流程

时间同步流程主要实现了时间同步算法。底层实验环境通过OpenFlow协议和控制器建立连接,由OpenFlow交换机及其连接的主机构成。交互流程(如图3所示)。

图3 控制器与交换机同步流程示意图

在交换机在与控制器进行握手,建立通信的过程中,控制器向交换机下发上述流表项,要求从交换机本地发出的PCF帧都被转发到控制器。

交换机本地运行PCF收发模块,周期性地向外发送PCF时间同步帧。当PCF帧匹配到相应的流表项时,它被转发到控制器。

控制器在某一时间窗口内,收到多个交换机发送过来的PCF帧,然后开始执行TTEthernet协议规定的时间同步算法,包括时序保持算法,集中算法,再进行本地时钟校正,最后将用于时钟校正的PCF帧通过Packet-Out包发出去,Packet-Out中定义的Action为将该PCF帧发送到交换机本地网络栈。

最后,OpenFlow交换机接收到时钟校正的PCF帧后,进行本地时钟校正。

3.3 TTE协议控制帧与流表实现

一种特殊的控制帧在TTE的时间同步机制中扮演着非常重要的角色,而这就是协议控制帧(Protocol Control Frame,PCF)。在普通以太网中,PCF帧的Type字段值是0x891d。根据PCF帧中携带的信息,算法得以进行[13]。

下面给出了PCF帧的结构,由匹配字段、优先级、计数器、操作以及超时5部分组成[14]。PCF帧的内容填充在正常以太网帧的Payload字段。

表1 流表结构

其中,匹配字段是流表标识符,用于输入到交换机匹配的数据包;优先级用于规定每张流表中流表条目匹配的顺序;计数器用来统计当前流表条目中已匹配的数据包的数量。操作主要负责数据包的转发行为。超时字段表示用于指示最大匹配数据包数目或者流的有效时间[15]。

文中基于OpenFlow流表的定义方式并且结合时间触发以太网的性能特点,将设计的一种转发规则的匹配域内容。假定控制器已经通过链路发现协议(LLDP)获取了整个以太网的拓扑信息。

控制器在接收到交换机的Feature Message后,根据预先制定的交换机角色(CM,SC or CM),分别下发不同的流表。

1)SM与SC交换机流表

流表项1如图4所示。SM与SC交换机在接收到PCF后,根据流表项1匹配得到的PCF将被转发出去,转发端口为向CM转发数据包的端口。SM或SC向CM转发的端口信息可以通过生成树协议计算得到。以太网类型0x891d表明匹配的以太网帧是PCF。

图4 SM与SC交换机流表流表项1

流表项2如图5所示。根据流表项2,SC或SM发现PCF是来自于CM时,就会将该PCF帧发送到预留端口LOCAL。本地时间同步模块会根据PCF中的内容同步本地时间。同时,也要将该PCF帧发送到所有输出端口,保证其他SC或SM也能收到该PCF帧。

图5 SM与SC交换机流表流表项2

2)CM交换机的流表项

当CM交换机发现PCF帧是发送给自己时,也会将PCF帧发送到本地预留端口LOCAL。本地进程将进行时序保持算法与集中算法,用以计算同步时间。(如图6所示)

当CM交换机发现PCF帧是自己发出去的时间同步帧时,必须将该帧从所有其他端口发送出去,保证所有SM和SC能够收到该PCF帧。

图6 CM交换机流表流表项1

3.4 TTE协议同步算法

网络时间时延检测应用由交换机提供,我们可以得到每个交换机的LLDP数据的时间戳,在所有的时延被检测到之后,数据将被储存[16]。在得到LLDP时延以后,交换机与控制器之间的往返时延也应该被得到,它们的差值将被重新计算用于得到新的PCF帧并返回。其中时序保持算法、同步集中算法、以及全局时钟同步协议中涉及的计算流程均与TTE原有流程保持不变,通过TTE协议中提供的计算公式,重新计算得到了PCF帧中数据,发送回OpenFlow交换机。

4 结束语

随着时间触发以太网技术的成熟应用,以及近年来SDN网络架构的快速发展,本文对这两项技术进行深入理解与研究。在TTE原有的协议基础上,结合SDN网络架构,设计并提出了一种SDN架构下的控制器的时间同步配置策略及其相关流表项,为以后在SDN基础上开展实时性研究提供了一种选择,也为时间触发以太网结合SDN网络架构的开发应用提供有力的理论支撑。

[1]杨仕平,桑楠,熊光泽.基于Ethernet技术的安全关键实时网络[J].软件学报,2005(1):121-134.

[2]刘建生,武富春,常超伟.工业以太网实时调度技术的设计与实现[J].电脑开发与应用,2011(3):18-21.

[3]王相周,陈华婵.IEEE1588精确时间协议的研究与应用[J].计算机工程与设计,2009(8):1846-1849.

[4]王智.工业实时通讯网络(现场总线)的基础理论研究与现状(下)[J].信息与控制,2002(3):241-249.

[5]刘鲁源,万仁君,李斌.基于TTCAN协议的网络控制系统静态调度算法的研究[J].控制与决策.2004(7):813-816.

[6]许洪华,刘科.确定性工业以太网Ethernet Powerlink[J].冶金自动化,2004(4):23-25.

[7]刘晚春,李峭,何锋,等.时间触发以太网同步及调度机制的研究[J].航空计算技术,2011,41(4):122-127.

[8]王智,王天然,Ye-qiong SONG,孙优贤.工业实时通讯网络(现场总线)的基础理论研究与现状(上)[J].信息与控制,2002(2):146-163.

[9]王志平,熊光泽.一种基于Ethernet的硬实时通信协议[J].计算机研究与发展,2000(10):1252-1258.

[10]左青云,陈鸣,赵广松,等.基于OpenFlow的SDN技术[J].软件学报,2013(24):1078-1097.

[11]李艳,郝志安,李宁,等.基于mininet的SDN架构仿真研究[J].计算机与网络,2014(5):57-59.

[12]张彤,刘勇博,夏晶晶.软件定义网络架构及其关键技术[J].郑州牧业工程高等专科学校学报,2015(1):37-40.

[13]傅帅.软件定义网络在云计算领域的实施部署[J].信息通信技术,2015(2):41-46.

[14]苏远超.软件定义云网络产品白皮书[J].电信技术,2016(9):33-37.

[15]刘裴,李传毅,甘庆华.软件定义网络的模型研究综述[J].科技展望,2015(11):33-37.

[16]卢湛昌.软件定义网络安全技术研究[J].网络安全技术与应用,2016(12):10-11.

猜你喜欢

流表表项以太网
一种改进的TCAM路由表项管理算法及实现
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
基于时序与集合的SDN流表更新策略
基于ARMA模型预测的交换机流表更新算法
基于缓存策略的OpenFlow流表存储优化方案研究
简析yangUI流表控制
软件定义网络中一种两步式多级流表构建算法
SDN数据中心网络基于流表项转换的流表调度优化
谈实时以太网EtherCAT技术在变电站自动化中的应用
一种90W高功率以太网供电系统的设计