CN115484214A - 一种工控网络终端类型检测及网络服务质量优化方法 - Google Patents
一种工控网络终端类型检测及网络服务质量优化方法 Download PDFInfo
- Publication number
- CN115484214A CN115484214A CN202211110586.8A CN202211110586A CN115484214A CN 115484214 A CN115484214 A CN 115484214A CN 202211110586 A CN202211110586 A CN 202211110586A CN 115484214 A CN115484214 A CN 115484214A
- Authority
- CN
- China
- Prior art keywords
- network
- terminal
- port
- controller
- industrial control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/042—Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种工控网络终端类型检测及网络服务质量优化方法。本发明中,网络拓扑识别通过LLDP协议等完成交换机间链路的识别,将不同类型的端口、链路拓扑结构等信息存储至不同的数据表中。每个控制器通过周期性地向与之相连的OpenFlow交换机发送Packet_Out消息,使交换机向全网广播SLLDP报文,交换机收到其他交换机的SLLDP报文后会将该报文封装于Packet_In消息中发给控制器,控制器会将获取到的拓扑信息作为ZNode存入Zookeeper服务器,实现了基于Zookeeper的SDN网络多控制器冗余架构。本发明通过工控网络接入端口流量数据识别终端类型,从根本上区分流量的终端来源,从而实现面向终端的网络服务质量优化。
Description
技术领域
本发明属于网络服务质量优化技术领域,具体为一种工控网络终端类型检测及网络服务质量优化方法。
背景技术
随着工业信息化的快速发展,工控系统为了适应更灵活的生产需要,逐渐走向智能化,网络化,通过计算机网络、通信、自动控制等多种技术融合,形成了工业控制网络。目前常见的工控网络有Modbus TCP、EtherCAT、Powerlink等。
但这些网络往往自成体系,开放性差,不同体系间设备连接通信困难;大多采用分层结构,信息获取、管理的集成度差;难以实现工控网络和互联网的融合与集成。
发明内容
本发明的目的在于:为了解决上述提出的问题,提供一种工控网络终端类型检测及网络服务质量优化方法。
本发明采用的技术方案如下:一种工控网络终端类型检测及网络服务质量优化方法,所述工控网络终端类型检测及网络服务质量优化方法包括以下步骤:
S1:进行工控SDN网络拓扑识别及流量感知,简化了LLDP报文的内容,并增加了DPI字段用于标识交换机身份,从而形成了一种链路发现机制——SLLDP;
S2:控制器通过周期性地向与之相连的OpenFlow交换机发送Packet_Out消息,使交换机向全网广播SLLDP报文,交换机收到其他交换机的SLLDP报文后会将该报文封装于Packet_In消息中发给控制器,从而实现对交换机间链路感知;对于底层终端接入设备的拓扑识别,控制器利用该设备发送的ARP等数据包获取接入设备的地址等信息
S3:进行终端类型识别,在初次部署时,需要使整个网络系统预运行一个工作周期,从而更准确、完备地收集SDN工控网络中各终端的网络流量行为;这里的一个工作周期是指在正常生产条件下,整个工控网络中各终端均能至少一次完成全套生产动作;
S4:通过统计和机器学习融合的算法,记录提取网络预运行期间各端口流量的时序特征,作为各端口初始的流量特征,并与算法数据库内终端类型-流量特征样本展开相似度比对,从而推断出各网络端口的接入终端类型
S5:网络正式运行过程中,SDN控制器每隔一个工作周期生成一份网络各端口流量数据记录,通过融合算法提取时序特征和空间特征,作为各端口当前工作周期的流量特征;
S6:在确定终端类型后,SDN控制器将依据不同的工控网络终端的业务特性决定的差异化网络性能需求,通过优化动态流表的方式,提高网络性能中对终端工作影响较大的指标,
S7:进行多控制器同步与协调系统的设置,使用Zookeeper来作为多控制器的分布式协调系统。
在一优选的实施方式中,所述步骤S2中,借助SDN网络架构特性,SDN控制器分别监控其管辖的网络范围内的每一端口的流量数据(包括流量速率、剩余带宽、链路间时延等),并记录后通过北向接口开放给应用层。
在一优选的实施方式中,所述步骤S3中,SDN控制器在预运行周期内将记录各端口的流量数据,并将一个工作周期时长记为T。
在一优选的实施方式中,所述步骤S5中,各端口当前工作周期的流量特征将与上一工作周期的流量特征展开相似度比对:如相似度高,则可认为端口连接终端类型没有发生变化;如相似度低,则认为端口连接终端发生变化,需再次与算法数据库内终端类型-流量特征样本比对,重新确定终端连接类型。
在一优选的实施方式中,所述步骤S6中,同时降低对终端工作没有影响或影响较小的性能指标,从而使得工控网络资源与终端需求相匹配,从而实现面向终端的网络服务质量优化。
在一优选的实施方式中,所述步骤S6中,面向带宽敏感性终端,SDN控制器优先选择大带宽、高延时链路,形成低优先级openflow流表。
在一优选的实施方式中,所述步骤S6中,面向实时性敏感型终端,SDN控制器优先选择低时延、低带宽、有线连接的链路,并形成高优先级openflow流表。
在一优选的实施方式中,所述步骤S3中,工控SDN网络中的各端口的流量速率、剩余带宽、链路间的延时等数据可实时获得、记录;这些数据可被SDN网络控制器通过北向接口提供给应用层部署的特征提取算法,用于端口流量数据特征提取。
在一优选的实施方式中,所述步骤S4中,采用传统统计与机器学习融合的方法,计算端口流量速率在一个工作周期内的峰值、均值、方差、四分位距,经过归一化形成一个统计值向量。
在一优选的实施方式中,所述步骤S4中,使用Transformer网络对各端口流量数据提取时序特征,经过归一化形成一个机器学习向量;最终将统计值向量与机器学习向量融合,形成表达端口流量速率的特征向量。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明中,网络拓扑识别通过LLDP协议等完成交换机间链路的识别,将不同类型的端口、链路拓扑结构等信息存储至不同的数据表中。本发明设计了一种链路发现机制——SLLDP,它简化了LLDP报文的内容,并增加了DPI字段用于标识交换机身份。每个控制器通过周期性地向与之相连的OpenFlow交换机发送Packet_Out消息,使交换机向全网广播SLLDP报文,交换机收到其他交换机的SLLDP报文后会将该报文封装于Packet_In消息中发给控制器,控制器会将获取到的拓扑信息作为ZNode存入Zookeeper服务器,实现了基于Zookeeper的SDN网络多控制器冗余架构。
2、本发明中,本发明通过工控网络接入端口流量数据识别终端类型,从根本上区分流量的终端来源,从而实现面向终端的网络服务质量优化。
3、本发明中,面向工控网络终端的网络服务质量优化方法。现有方法对网络流量的特征提取和建模方法主要针对主干链路中的流量展开的。在主干链路中,往往混杂了多个终端的多种类型的流量,通过使用聚类、贝叶斯或者机器学习算法,将各种类型流量分离开,从而依据流量数据类型展开针对性优化,因此这些方法是面向流量的。但相同类型的流量,在不同的工控终端中,依据终端的服务目的,有着不同的优化需求。例如车间内长时间开启的用于监控工人活动状况的网络摄像机,和生产线上间歇性开启的用于视觉定位的摄像机,产生的均为视频流数据。如在面向流量的网络服务质量优化下,两者产生的流量会被统一优化。但显然后者相比前者,为了达到更高的定位精度,对网络的实时性的要求更高,而带宽需求可能相对较低。本发明通过工控网络接入端口流量数据识别终端类型,从根本上区分流量的终端来源,从而实现面向终端的网络服务质量优化。
4、本发明中,该优化方法适应工业通信无线化发展趋势。当无线终端在工控SDN网络发生漫游行为时,虽然网络接入端口发生改变,但其流量数据特征不会发生改变,仍能通过本方法识别接入设备类型,从而达到面向终端的网络服务质量优化的目的。
附图说明
图1为本发明中基于软件定义工控网络端口流量特征的终端类型检测和网络服务质量优化方法流程图;
图2为本发明中基于软件定义网络的工业网络跨网络域通信示意图;
图3为本发明中基于软件定义网络的工业网络Zookeeper多控制器架构示意图;
图4为本发明中基于软件定义网络的工业网络交换机链路延时交互图;
图5为本发明中传统统计与机器学习融合的端口流量特征提取方法示意图;
图6为本发明中训练方式获取终端类型-流量特征数据库的模型示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1-6,
一种工控网络终端类型检测及网络服务质量优化方法,包括以下步骤:
第一步:拓扑识别:
首先需要对整个网络拓扑结构进行识别。第一部分是交换机的链路结构:控制器通过OpenFlow协议向各交换机发送LLDP协议数据包,根据协议收集的信息来识别网络拓扑并管理拓扑结构。LLDP定义在802.1a中,是一个二层协议,提供一种标准的链路层发现方法,该协议使得不同厂商的网络设备在同一网络中相互发现并交互各自的配置信息等,极大程度上便于网络的管理;第二部分是终端设备的接入:各车间摄像头以及监控台在接入交换机后主动发送ARP数据包,交换机收到该数据包后转发至控制器并进行解析,将终端设备的IP地址、MAC地址等信息进行存储。
交换机间链路连接及其具体实现:启动Ryu控制器并监听指定的TCP端口6653或6654,OpenFlow交换机与控制器之间通过TCP“三次握手”建立有效连接。接着控制器与交换机之间相互发送Hello消息来协商OpenFlow协议版本,若版本不一致则选用版本较低的OpenFlow协议。Ryu控制器通过OpenFlow协议通道向交换机发送Features request消息,交换机通过Features reply消息汇报自身的基本参数信息,包括datapath_id、n_buffers(缓冲区数量)、n_tables、capabilities等。根据交换机此时回复的信息便可获得接入交换机的编号(datapath_id),同时下发优先级为0的默认流表项,即Table-miss Flow Entry。该流表项可匹配任意的数据包,其中动作指令为发往控制器,并触发Packet-In。
为更好地监听网络资源,开启绿色监听线程discover_thread,该线程在整个监听过程中被强制指定运行,并每隔一段时间获取交换机间链路连接情况并进行展示。装饰器set_ev_cls包含了各类监听事件EventSwitchEnter、EventSwitchLeave、EventPortAdd、EventPortDelete、EventPortModify、EventLinkAdd、EventLinkDelete,当事件触发时便调用注册在set_ev_cls下的函数。Ryu/topology/api目录下的自定义函数get_link可获取相邻交换机间链路信息,包括该链路的源目端交换机编号、源目交换机对应端口号。
Ryu控制器通过LLDP(Link Layer Discovery Protocol,链路发现协议)协议探索OpenFlow交换机间链路连接状况,根据协议收集的信息来识别网络拓扑并管理拓扑结构。LLDP定义在802.1a中,是一个二层协议,提供一种标准的链路层发现方法,该协议使得不同厂商的网络设备在同一网络中相互发现并交互各自的配置信息等,极大程度上便于网络的管理。其允许接入的网络设备在局域网内发送设备标识、接口标识等信息,当其他设备接收到该设备发送的信息时便以MIB的形式进行存储。
SDN中OpenFlow交换机与传统网络有所不同,无法主动发起并完成拓扑识别工作,控制器通过Packet-Out消息向所有接入的交换机发送LLDP数据包,交换机收到后发往自身的所有端口处。由于TTL(Time To Live)的限制,某交换机收到其余交换机发来的LLDP数据包时,通过Packet-In方式将相邻两台交换机的链路信息发往控制器。控制器获取该数据包后,进行一系列的处理工作,完成拓扑识别、信息存储。针对图2所示的网络拓扑结构进行说明如下。
控制器解析LLDP数据包,将链路信息存储至Link_to_port字典结构中{(src_dpid,dst_dpid):(src_port,dst_port),...},其中src_dpid为源端交换机编号,l口号,例如:S4交换机的2号端口连接S3交换机的2号端口,字典结构为(4,3):(2,2)。交换机间拓扑结构运行结果如图4所示,交换机(Switch)自身对应的连接或非相邻交换机则显示no-link。交换机中的端口类别不唯一,可分为连接相邻交换机的端口、连接终端设备的端口,例如:S4交换机的1端口连接终端主机设备,2端口连接相邻交换机。对不同的端口类型进行分开存储便于后续工作的开展,在Switch_port_table表中已经存储了交换机的所有端口号,例如S4交换机有4个端口,则表示{4:{1,2,3,4},...}。根据Link_to_port表中交换机的链路连接情况,将链路中的交换机端口号存储至Interior_ports表中,剩余端口号用于终端设备的接入或处于闲置状态,被存储至Access_ports中。
当终端设备接入交换机进而连接网络时,由于交换机发往各端口的LLDP数据包无法被终端设备识别,所以获取交换机链路连接的方法并不适用于终端设备的识别。终端设备接入网络或与其他设备发起连接时,由于该设备的ARP缓存表并没有存储其他设备的硬件地址,往外发送询问网关的ARP数据包或是询问其他设备MAC地址的ARP数据包,并通过Wireshark抓包软件进行测试。ARP数据包发往与之相连的交换机,由于交换机中尚未下发对应的流表项,ARP包便被初始流表项发往控制器。此时控制器解析ARP数据包,将终端设备的IP地址、MAC地址、相连接的交换机编号dpid以及对应的端口号in_port存储至Access_table中。终端设备连接的交换机端口号若不在Access_ports中,便判断该终端设备接入新的交换机端口并存储设备信息。当该端口号存储在Access_ports中,需要进一步判别Access_table中是否存储该终端设备的信息,若已存储则进行更新或不做处理;若Access_table中并无设备信息则进行存储。实际意义为交换机的某端口先后接入不同的终端设备,需要对存储信息进行维护和更新。
第二步:进行多控制器整体设计;
在一体化网络中Zookeeper作为多控制器同步与协调系统,支持控制器动态添加/删除、控制器失效应付机制的多控制器架构的实现过程。本发明使用Zookeeper来作为多控制器的分布式协调系统,主要基于以下几方面的考量:
(1)Zookeeper的数据模型十分简单,这对于需要控制器不断读写大量网络拓扑信息的复杂网络来说十分重要。Zookeeper使用的数据模型ZNode使用树形结构,其视图结构与标准的UNIX文件系统非常相似,但并没有引入目录与文件的概念,这使得ZNode操作起来非常简单。
(2)Zookeeper可以构建集群。多控制器系统有赖于Zookeeper提供分布式协调服务以及选举机制、实现失效应付机制,所以保证Zookeeper服务的可靠性尤为重要。一般3-5台机器就可以组成Zookeeper集群,集群中的每台机器都维护当前的服务器状态,只要过半机器能够正常工作,Zookeeper集群即可对外提供正常的服务。在正常工作状态下,控制器会与Zookeeper集群中的任意一台机器共同维护一个TCP连接,当该连接断开后,控制器可以自动连接到集群中的其他机器上,这大大提升了Zookeeper服务的可靠性。
(3)Zookeeper的高性能。多数时间控制器以读取操作为主,即需要获取全网拓扑信息后下发流表,缩短读操作花费的时间是减少控制器响应时间的关键之一。Zookeeper将所有数据存于内存中,并直接服务于控制器的所有非事物请求,因此特别适用于读操作为主的应用场景。
(4)Zookeeper提供的一致性是弱一致性。Zookeeper确保对ZNode树的每一个修改都会被复制到集群中超过半数的机器上。那么就会存在某一个时间点上,在集群中是不一致的,也就是Zookeeper只保证最终一致性。这满足了前文所述的多控制器集群应该降低对一致性约束的需求。另外,Zookeeper还提供了sync()方法,可以由客户端调用该方法来自己保证实时的一致性。
(5)Zookeeper是目前唯一一个成熟稳定且被大规模应用的分布式一致性解决方案,在性能、稳定性与易用性上都达到了工业级产品的标准。另外,Zookeeper是开源的,一个开源且成熟的架构不仅与SDN技术的发展理念符合,更有助于在以后的工业实践中不断完善、不断改进。
Zookeeper服务层作为多控制器系统的同步与协调层,位于控制器的上层,如图3。除了提供多控制器的分布式协调管理,Zookeeper服务层还实现了全网拓扑信息的存储与控制器选举机制。为满足容灾机制,每个OpenFlow交换机均连接多个控制器,但只有一个控制器可以对其下发流表,即此控制器为该交换机的主控制器(Master Controller),其余与该交换机相连的控制器只能查询流表。多个控制器之间的信息交互以及集群管理由Zookeeper完成。为实现多控制器架构,Ryu控制器内需开发4个模块。控制器中的FlowManager模块实现流表管理的功能,Link Discovery模块负责链路发现并储存链路信息,Topology Manager负责将链路信息汇聚以及管理全局拓扑信息,Master Election模块负责交换机主控制器的选举。为了能更好地获取全网拓扑,本发明设计了一种链路发现机制——SLLDP,它简化了LLDP报文的内容,并增加了DPI字段用于标识交换机身份。每个控制器通过周期性地向与之相连的OpenFlow交换机发送Packet_Out消息,使交换机向全网广播SLLDP报文,交换机收到其他交换机的SLLDP报文后会将该报文封装于Packet_In消息中发给控制器,控制器会将获取到的拓扑信息作为ZNode存入Zookeeper服务器。
不同于现有的一些多控制器架构的实现(多控制器对外表现为一个整体,内部使用主/从结构,即一台控制器做Master,其余控制器均作为其备份),本文的实现是,每台控制器均处于工作状态、管理部分交换机,即控制器层上所有控制器是对等结构。而对于交换机而言,每台交换机连接的多个控制器中则需要选举出一台控制器作为主控制器(Master)而其余与该交换机直连的控制器为从控制器(Slave)。
为了进一步提高网络的鲁棒性,Zookeeper服务器可采用高可用集群方案(HighAvailability Cluster,HA)。利用linux-HA等开源HA软件,实现Zookeeper服务器双机或多机热备份,从而减少因Zookeeper服务器故障而导致的多控制器架构冗余失效风险。
第三步:进行端口网络流量监控:
在实际流量监控的过程中,记录交换机各端口的状态并计算数据流量速率,该过程需要使用网络拓扑识别模块中的端口信息存储表,涉及Ryu开发模块间的通信。控制器开启绿色线程monitor_thread,向各交换机发送PortDescStatsRequest、PortStatsRequest、FlowStatsRequest等信息并等待回复。控制器收到交换机回复的消息后,获取端口各类状态信息、计算端口数据流量并在运行终端显示,以便管理员或用户监控、分析。根据获取的端口流量速率和交换机自身参数,计算端口剩余带宽。
终端设备通信时必然涉及流表项的下发,根据FlowStatsReply回复的信息统计各流表项匹配的数据并计算流表项的数据流量速率,通过观察终端显示的流表流量速率,可以来判断交换机中数据流的走向。在流量监控模块中需要用到上文提及的Link_to_port、Access_table等数据结构,此时便涉及和network_awareness模块的通信。Ryu可通过开发多模块来协同工作,从而解决复杂的业务需求,模块间的通信可利用Context等方式。在RyuApp类中有一个属性是_CONTEXTS,_CONTEXTS中的内容将作为当前模块的服务,在模块初始化时得到加载。Ryu模块启动时,首先将_CONTEXTS中的模块启动,在模块的初始化函数中通过kwargs["network_awareness"]的形式获得该服务模块实例,从而获取该模块数据。在某些业务场景中需要使用其他模块的数据,但是又不希望将对方作为自己的服务来加载,则可以通过app_manager.lookup_service_brick('module name')来获取运行中的某个模块实例,从而获取其数据。
控制器接收交换机回复的PortDescStatsReply信息能详细地记录端口状态信息,其中包括端口的port-state、link-state等信息,port-state表示端口处于何种状态,link-state表示交换机相连的链路端口处于何种状态。port-state包括端口宕机(down)、无法接收信息(No Recv)、无法转发(No Forward)和无法发送Packet-In(No Packet-In)等,正常状态下为“up”。link-state包括链路端口中断(Down)、链路端口阻塞(Blocked)、链路端口正常(up)。body属性是DescStatsReply的实例,DescStatsReply为PortDescStatsReply的父类,Body属性包含描述端口的具体参数port-state、link-state、curr_speed等,其中curr_speed表示端口标定速率,可用于端口带宽的计算。
PortStatsReply回复的是端口流量相关的数据,其中属性body是OFPPortStats的资料列表,包含port_no、rx_bytes、rx_packets、rx_errors、tx_bytes、tx_packets、tx_errors、duration_sec、duration_nsec等数据信息,rx_表示交换机端口接收的字节数、数据包数、错误数,tx_则表示端口发送的数据信息,duration_表示数据生存的时间。
由于交换机端口不唯一,实际过程中利用attrgetter函式将port_no作为排序条件进行处理。端口流量速率计算中,时间为当前数据持续时间与前次持续时间之差,流量数据为当前接收与发送字节数之和与前一次的差值,计算公式为:
其中p_表示前次数据信息。
端口带宽可通过端口流量速率来计算,并且需要端口状态数据的中的curr_speed。curr_speed参数可计算端口限定带宽,限定带宽与已用端口带宽之差即为剩余带宽,curr_bw表示端口剩余带宽,计算公式为:
curr_bw=(curr_speed/103-speed_port×8/106)Kbps
在控制器终端实时显示端口流量数据,其中包括交换机编号及其各端口号、接收与发送的字节数、端口流量速率、当前自由带宽以及port-state、link-state。区别于端口状态数据信息的统计,当交换机端口状态发生变化时,交换机向控制器发送状态变化信息。控制器收到PortStatus信息后,根据端口状态变化的类型进行终端显示,同时更新拓扑信息。端口状态变化类型,包括端口的增加、删除和修改。当控制器开启时,交换机接入控制器便会显示交换机各端口的状态变化,或当交换机某端口宕机后显示“modify”状态。
交换机回复的FlowStatsReply信息,对于流表项的匹配数据而言。在网络运行过程中,控制器下发流表项至交换机,数据流通过流表项的指令发往其余交换机或终端设备,期间流表项匹配数据包,此时各交换机记录数据信息。FlowStatsReply中属性body是OFPFlowStats的实例,排序过程中排除优先级为0的流表项,该初始流表项仅用于转发至控制器,对于统计流表数据而言并无意义。依据匹配域中的in_port和ip_dst进行排序,本文的流表项下发工作主要为优先级、匹配域、指令动作等,其中指令动作为转发至交换机某端口。流表项匹配数据包成功,则进行转发并记录匹配数据信息;如果匹配失败或无对应流表项,则不进行记录同时转发至控制器。该过程与交换机端口记录数据信息有所不同,端口分为接收数据和发送数据,计算流表项的流量速率公式为:
其中p_前缀的数据表示前次数据,流量数据为当前数据与前一次的差值,时间为当前数据持续时间与前次持续时间之差。在本发明中提出一种端口流量速率计算和流表流量速率计算的方法,而流表项的流量速率与前述端口的流量速率计算方式不同,另外流表项流量速率只限于发送端与接收端之间,不需要考虑控制器间的请求发送问题,传输途径中交换机内的流表项筛选合适的数据包,若符合流表则记录流量速率,否则不作记录,另外还需要考虑流量的方向(双向)。
SDN的交换机间链路延时可由以下方法获得:
(1)控制器与交换机间链路延时
控制器发送EchoRequest消息至各个交换机,收到交换机回复EchoReply消息进行处理计算。通过收到回复消息时的时间戳(timestamp)与发送EchoRequest消息时设置的时间戳,两者之差即为控制器与交换机间的链路延时,记录为latency。发送EchoRequest消息时需要设置时间间隔,防止同时发送导致控制器在同一时间收到大量的EchoReply消息,在控制器处理过程中将会产生大量的排队等待延时,不利于后续交换机间链路延时的计算。
(2)控制器通过LLDP获取回路延时
为准确地计算交换机间的链路延时,首先需要通过LLDP协议获取整个回路的链路延时,回路即控制器下发LLDP数据至交换机直到收到回复。LLDP数据包由控制器下发后到达第一个交换机Switch_A,该交换机转发数据包至相邻交换机Switch_B。由于LLDP数据包中TTL的设置,第二个交换Switch_B通过Packet-In将该数据包转发至控制器,至此完成整个回路的转发。
在整个回路过程中,LLDP数据包的转发路径是单方向的。而在控制器与交换机间链路延时的计算中交互的数据信息是双向的,为此需要控制器下发LLDP数据包来获取Switch_B到Switch_A的延时。A-B的链路延时记为forward_delay,B-A的链路延时记为reply_delay,总体交互如图4所示。
(3)计算交换机间链路延时并进行存储:
控制器与Switch_A的链路延时为A_latency,与Switch_B的链路延时为B_latency。两个回路(forward、reply)的链路延时总和,与控制器和交换机间的链路延时之差,即为交换机间来回的链路延时,具体计算公式为:
delay=(forward_delay+reply_delay-A_latency-B_latency)/2
第四步:进行终端类型识别与网络服务质量优化:
(1)流量速率特征提取
如上所述,工控SDN网络中的各端口的流量速率、剩余带宽、链路间的延时等数据可实时获得、记录。这些数据可被SDN网络控制器通过北向接口提供给应用层部署的特征提取算法,用于端口流量数据特征提取。
端口网络流量作为典型的时序数据。传统基于统计的方法,往往使用峰值、均值、方差、四分位距等参数表达数据时时序特征。在机器学习领域,通常使用循环神经网络(Recurrent Neural Network,RNN)及其变体如LSTM(Long Short-Term Memory)、GRU(Gated Recurrent Unit)等来对时序数据展开处理,最终输出一个特征向量来表达时序数据特征。Transformer网络是谷歌公司在2017年NIPS发表的论文Attention is all youneed中提出的,是一种主要应用于NLP领域的神经网络模型,其有较强的提取时序数据特征的能力。
本发明采用传统统计与机器学习融合的方法,如图5所示:计算端口流量速率在一个工作周期内的峰值、均值、方差、四分位距,经过归一化形成一个统计值向量;使用Transformer网络对各端口流量数据提取时序特征,经过归一化形成一个机器学习向量;最终将统计值向量与机器学习向量融合,形成表达端口流量速率的特征向量。
(2)流量特征对比与终端类型识别
通过特征向量与算法内置的终端类型-流量特征数据库,开展相似度比对,即可确定终端类型。
终端类型-流量特征数据库可通过实际工控网路端口收集的终端类型-流量数据训练获得。训练模型如图6所示,在特征向量提取流程之后,增加一层softmax层,形成一个分类网络。使用监督学习的方式,利用梯度下降原理,对模型展开训练,直至收敛。保留训练后Transformer网络中的参数,选取不同类型终端的流量按图5所示流程送入模型,即得对应的特征向量,记录保存后便可形成终端类型-流量特征数据库。
在特征向量比对方法上,本实施方案采用计算向量间余弦相似度的方法。几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异,其计算公式为:
与余弦取值相同,余弦相似度的取值范围也为[-1,1]。当两个向量越相似时,向量的“夹角”越小,余弦相似度越接近1;当两个向量区别越大时,向量的“夹角”越大,余弦相似度越接近-1。每个待比对的特征向量与终端类型-流量特征数据库中的样本向量计算一次余弦相似度,选取余弦相似度最接近1的终端类型,作为该待对比特征向量所对应的终端类型。
在前后两次流量特征向量展开相似度对比时,如其余弦相似度大于0.7,即可认为两特征向量所代表的流量由同一终端产生。
第五步:进行网络服务质量优化:
不同的工控网络终端对网络性能存在差异化需求,在终端类型识别后,算法依据终端业务特点对网络服务质量展开优化。其思路为采取措施提高网络性能中对终端工作影响较大的指标,同时降低对终端工作没有影响或影响较小的性能指标,从而使得工控网络资源与终端需求相匹配。本发明专利优化了两类典型的工控网络终端服务质量。
一是带宽敏感型终端。以监控车间生产安全的高清摄像头为代表的一些网络终端,通常在工作时产生较多的数据,需要占用大带宽来保证其工作质量,但对网络时延相对不敏感。应用层算法依据工控SDN网络感知所获网络拓扑,剩余带宽等数据,通过选择带宽较大但网络时延性能不突出的链路,形成openflow流表,注入SDN交换机。此外,可降低流表项中的优先级,为高实时性需求的终端留出资源。
二是实时性敏感型终端。以工控网络开关、传感器为代表的一些网络终端,对网络带宽时延和丢包率有较高要求,但对网络带宽需求不高。应用层算法依据工控SDN网络感知数据,以链路间时延为权重,应用Dijkstra等算法,为该类终端制定时延较低且尽可能采用有线连接的链路,形成openflow流表,下发至SDN交换机。同时尽可能提高流表项中的优先级,以减少流表匹配时延。
本发明中,网络拓扑识别通过LLDP协议等完成交换机间链路的识别,将不同类型的端口、链路拓扑结构等信息存储至不同的数据表中。本发明设计了一种链路发现机制——SLLDP,它简化了LLDP报文的内容,并增加了DPI字段用于标识交换机身份。每个控制器通过周期性地向与之相连的OpenFlow交换机发送Packet_Out消息,使交换机向全网广播SLLDP报文,交换机收到其他交换机的SLLDP报文后会将该报文封装于Packet_In消息中发给控制器,控制器会将获取到的拓扑信息作为ZNode存入Zookeeper服务器,实现了基于Zookeeper的SDN网络多控制器冗余架构。
本发明中,面向工控网络终端的网络服务质量优化方法。现有方法对网络流量的特征提取和建模方法主要针对主干链路中的流量展开的。在主干链路中,往往混杂了多个终端的多种类型的流量,通过使用聚类、贝叶斯或者机器学习算法,将各种类型流量分离开,从而依据流量数据类型展开针对性优化,因此这些方法是面向流量的。但相同类型的流量,在不同的工控终端中,依据终端的服务目的,有着不同的优化需求。例如车间内长时间开启的用于监控工人活动状况的网络摄像机,和生产线上间歇性开启的用于视觉定位的摄像机,产生的均为视频流数据。如在面向流量的网络服务质量优化下,两者产生的流量会被统一优化。但显然后者相比前者,为了达到更高的定位精度,对网络的实时性的要求更高,而带宽需求可能相对较低。本发明通过工控网络接入端口流量数据识别终端类型,从根本上区分流量的终端来源,从而实现面向终端的网络服务质量优化。
本发明中,面向工控网络终端的网络服务质量优化方法。现有方法对网络流量的特征提取和建模方法主要针对主干链路中的流量展开的。在主干链路中,往往混杂了多个终端的多种类型的流量,通过使用聚类、贝叶斯或者机器学习算法,将各种类型流量分离开,从而依据流量数据类型展开针对性优化,因此这些方法是面向流量的。但相同类型的流量,在不同的工控终端中,依据终端的服务目的,有着不同的优化需求。例如车间内长时间开启的用于监控工人活动状况的网络摄像机,和生产线上间歇性开启的用于视觉定位的摄像机,产生的均为视频流数据。如在面向流量的网络服务质量优化下,两者产生的流量会被统一优化。但显然后者相比前者,为了达到更高的定位精度,对网络的实时性的要求更高,而带宽需求可能相对较低。本发明通过工控网络接入端口流量数据识别终端类型,从根本上区分流量的终端来源,从而实现面向终端的网络服务质量优化。
本发明中,该优化方法适应工业通信无线化发展趋势。当无线终端在工控SDN网络发生漫游行为时,虽然网络接入端口发生改变,但其流量数据特征不会发生改变,仍能通过本方法识别接入设备类型,从而达到面向终端的网络服务质量优化的目的。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种工控网络终端类型检测及网络服务质量优化方法,其特征在于:所述工控网络终端类型检测及网络服务质量优化方法包括以下步骤:
S1:进行工控SDN网络拓扑识别及流量感知,简化了LLDP报文的内容,并增加了DPI字段用于标识交换机身份,从而形成了一种链路发现机制——SLLDP;
S2:控制器通过周期性地向与之相连的OpenFlow交换机发送Packet_Out消息,使交换机向全网广播SLLDP报文,交换机收到其他交换机的SLLDP报文后会将该报文封装于Packet_In消息中发给控制器,从而实现对交换机间链路感知;对于底层终端接入设备的拓扑识别,控制器利用该设备发送的ARP等数据包获取接入设备的地址等信息
S3:进行终端类型识别,在初次部署时,需要使整个网络系统预运行一个工作周期,从而更准确、完备地收集SDN工控网络中各终端的网络流量行为;这里的一个工作周期是指在正常生产条件下,整个工控网络中各终端均能至少一次完成全套生产动作;
S4:通过统计和机器学习融合的算法,记录提取网络预运行期间各端口流量的时序特征,作为各端口初始的流量特征,并与算法数据库内终端类型-流量特征样本展开相似度比对,从而推断出各网络端口的接入终端类型
S5:网络正式运行过程中,SDN控制器每隔一个工作周期生成一份网络各端口流量数据记录,通过融合算法提取时序特征和空间特征,作为各端口当前工作周期的流量特征;
S6:在确定终端类型后,SDN控制器将依据不同的工控网络终端的业务特性决定的差异化网络性能需求,通过优化动态流表的方式,提高网络性能中对终端工作影响较大的指标,
S7:进行多控制器同步与协调系统的设置,使用Zookeeper来作为多控制器的分布式协调系统。
2.如权利要求1所述的一种工控网络终端类型检测及网络服务质量优化方法,其特征在于:所述步骤S2中,借助SDN网络架构特性,SDN控制器分别监控其管辖的网络范围内的每一端口的流量数据(包括流量速率、剩余带宽、链路间时延等),并记录后通过北向接口开放给应用层。
3.如权利要求1所述的一种工控网络终端类型检测及网络服务质量优化方法,其特征在于:所述步骤S3中,SDN控制器在预运行周期内将记录各端口的流量数据,并将一个工作周期时长记为T。
4.如权利要求1所述的一种工控网络终端类型检测及网络服务质量优化方法,其特征在于:所述步骤S5中,各端口当前工作周期的流量特征将与上一工作周期的流量特征展开相似度比对:如相似度高,则可认为端口连接终端类型没有发生变化;如相似度低,则认为端口连接终端发生变化,需再次与算法数据库内终端类型-流量特征样本比对,重新确定终端连接类型。
5.如权利要求1所述的一种工控网络终端类型检测及网络服务质量优化方法,其特征在于:所述步骤S6中,同时降低对终端工作没有影响或影响较小的性能指标,从而使得工控网络资源与终端需求相匹配,从而实现面向终端的网络服务质量优化。
6.如权利要求1所述的一种工控网络终端类型检测及网络服务质量优化方法,其特征在于:所述步骤S6中,面向带宽敏感性终端,SDN控制器优先选择大带宽、高延时链路,形成低优先级openflow流表。
7.如权利要求1所述的一种工控网络终端类型检测及网络服务质量优化方法,其特征在于:所述步骤S6中,面向实时性敏感型终端,SDN控制器优先选择低时延、低带宽、有线连接的链路,并形成高优先级openflow流表。
8.如权利要求1所述的一种工控网络终端类型检测及网络服务质量优化方法,其特征在于:所述步骤S3中,工控SDN网络中的各端口的流量速率、剩余带宽、链路间的延时等数据可实时获得、记录;这些数据可被SDN网络控制器通过北向接口提供给应用层部署的特征提取算法,用于端口流量数据特征提取。
9.如权利要求1所述的一种工控网络终端类型检测及网络服务质量优化方法,其特征在于:所述步骤S4中,采用传统统计与机器学习融合的方法,计算端口流量速率在一个工作周期内的峰值、均值、方差、四分位距,经过归一化形成一个统计值向量。
10.如权利要求1所述的一种工控网络终端类型检测及网络服务质量优化方法,其特征在于:所述步骤S4中,使用Transformer网络对各端口流量数据提取时序特征,经过归一化形成一个机器学习向量;最终将统计值向量与机器学习向量融合,形成表达端口流量速率的特征向量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211110586.8A CN115484214A (zh) | 2022-09-13 | 2022-09-13 | 一种工控网络终端类型检测及网络服务质量优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211110586.8A CN115484214A (zh) | 2022-09-13 | 2022-09-13 | 一种工控网络终端类型检测及网络服务质量优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115484214A true CN115484214A (zh) | 2022-12-16 |
Family
ID=84392881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211110586.8A Pending CN115484214A (zh) | 2022-09-13 | 2022-09-13 | 一种工控网络终端类型检测及网络服务质量优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115484214A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160041631A (ko) * | 2014-10-08 | 2016-04-18 | 한국전자통신연구원 | 서비스 품질 인지 라우팅 제어 장치 및 라우팅 제어 방법 |
CN106101015A (zh) * | 2016-07-19 | 2016-11-09 | 广东药科大学 | 一种移动互联网流量类别标记方法和系统 |
CN107682208A (zh) * | 2017-11-08 | 2018-02-09 | 西南民族大学 | 一种基于lldp协议的sdn网络捎带式服务质量采集方法 |
CN110557333A (zh) * | 2019-08-20 | 2019-12-10 | 广州供电局有限公司 | 软件定义网络服务质量控制保障的方法及系统 |
CN114448984A (zh) * | 2021-12-27 | 2022-05-06 | 国家电网有限公司信息通信分公司 | 跨平台通用sdn控制器的适配方法 |
-
2022
- 2022-09-13 CN CN202211110586.8A patent/CN115484214A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160041631A (ko) * | 2014-10-08 | 2016-04-18 | 한국전자통신연구원 | 서비스 품질 인지 라우팅 제어 장치 및 라우팅 제어 방법 |
CN106101015A (zh) * | 2016-07-19 | 2016-11-09 | 广东药科大学 | 一种移动互联网流量类别标记方法和系统 |
CN107682208A (zh) * | 2017-11-08 | 2018-02-09 | 西南民族大学 | 一种基于lldp协议的sdn网络捎带式服务质量采集方法 |
CN110557333A (zh) * | 2019-08-20 | 2019-12-10 | 广州供电局有限公司 | 软件定义网络服务质量控制保障的方法及系统 |
CN114448984A (zh) * | 2021-12-27 | 2022-05-06 | 国家电网有限公司信息通信分公司 | 跨平台通用sdn控制器的适配方法 |
Non-Patent Citations (1)
Title |
---|
徐传嘉: "基于流量特征的工控终端识别与安全基线建模方法", 中国优秀硕士论文电子期刊网信息科技, no. 2022 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102880475B (zh) | 计算机软件系统中基于云计算的实时事件处理系统及方法 | |
WO2020135575A1 (zh) | 一种获取网络拓扑的系统、方法和服务器 | |
CN110247784B (zh) | 确定网络拓扑结构的方法和装置 | |
KR101911579B1 (ko) | Openflow에 대한 제어기 구동 oam | |
WO2017113273A1 (zh) | 一种软件定义数据中心及其中的服务集群的调度和流量监控方法 | |
CN107820043B (zh) | 视频监控系统的控制方法、装置及系统 | |
US20080259919A1 (en) | Method for Dynamic Sensor Network Processing | |
CN101217402A (zh) | 一种提高集群可靠性的方法和一种高可靠性通信节点 | |
CN112564964B (zh) | 一种基于软件定义网络的故障链路检测与恢复方法 | |
CN111049747B (zh) | 一种面向大规模容器集群的智能虚拟网络路径规划方法 | |
US11637787B2 (en) | Preventing duplication of packets in a network | |
CN112118174A (zh) | 软件定义数据网关 | |
CN105516292A (zh) | 一种智能变电站云平台的热备方法 | |
CN109547875A (zh) | 一种fc交换网络任意端口接入设计方法 | |
CN109067633B (zh) | 基于以太网菊花链通讯网络拓扑的电源管理系统及方法 | |
CN110248156A (zh) | 视频分析方法、平台设备、智能相机和智能监控系统 | |
CN109462522A (zh) | 一种终端外接设备的状态监测方法、终端及其系统 | |
CN110290163A (zh) | 一种数据处理方法及装置 | |
CN115484214A (zh) | 一种工控网络终端类型检测及网络服务质量优化方法 | |
CN110708209B (zh) | 虚拟机流量采集方法、装置、电子设备及存储介质 | |
CN115865682A (zh) | 一种sdn链路的检测处理方法、控制器、系统及介质 | |
CN110932975B (zh) | 流表下发方法、数据转发方法、装置及电子设备 | |
CN103023793A (zh) | 一种地址解析协议表的管理装置及管理方法 | |
WO2019237543A1 (zh) | 一种数据库的切换方法及系统 | |
US20240048409A1 (en) | Information processing method, gateway device, terminal device, storage medium, and computer program product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |