一种基于有限状态机的端口实时数据流可视化方法及其系统
1.本发明属于网络通信与数据可视化展示技术领域,具体涉及一种基于有限状态机的端口实时数据流可视化方法及其系统。
背景技术:
2.当前以linux bridge为代表的虚拟路径管理机制在一定程度上克服了物理交换机的管理复杂度,但仍存在传输路径阻塞以及任务协调滞后等问题,难以满足用户对数据传输及虚拟进程的有效控制,影响系统实际运行处理效率,增大路径管理难度,传输过程的路径拥塞和数据包传输过程不可控。
技术实现要素:
3.本发明的目的在于提供一种基于有限状态机的端口实时数据流可视化方法及其系统,以解决的传输过程的路径拥塞和数据包传输过程不可控问题。
4.为实现上述目的,本发明提供如下技术方案:一种基于有限状态机的端口实时数据流可视化方法,具体步骤如下:
5.步骤1、授权用户通过在主设备搭建linux系统并设计从设备及虚拟机结构,利用bridge软件对系统内部的网桥进行搭建;
6.步骤2、数据传输过程启动后,利用linux bridge在mac地址数据库中记录和更新已有通信路径;
7.步骤3、在linux bridge中设置可视化监控接口,并且为可视化监控接口设置标记识别功能并与用户界面可视化窗口联系;
8.步骤4、通过标记方案中的不同状态显示对通信路径中的数据包进行缓存和时序可视化显示;
9.步骤5、授权用户通过可视化窗口对可用路径和数据传输进行个性化动态监控和超时设置;
10.步骤6、数据包被接收后,首先从网卡传输到ring buffer中,然后依次经过硬中断、软中断处理,在软中断中再依次把包送到设备层、协议栈,最后唤醒应用程序;
11.步骤7、对于连接到网桥上的veth设备,当其收到数据包时,不会进入协议栈而是转入网桥处理,网桥到合适的转发口(合适的veth),通过此veth将数据转发出去;
12.步骤8、根据路径更新和老化机制,对地址数据库中拥塞或超时路径进行更新和删除,增强系统传输过程的可控性并减少路径拥塞情况发生。
13.一种基于有限状态机的端口实时数据流可视化方法的系统,包括可视化操作模块、数据流时序监控模块和状态协调管理模块,所述可视化操作模块具体为用户提供系统内数据实时传输可视化展示与操作界面,被授权用户可跨设备搭建通信路径并对监控节点间实施数据流控,对系统整体数据流结构和量进行可视化分析操作;所述数据流时序监控模块具体为通过bridge绑定linux其他网络设备作为从设备,关联基于mac地址的过滤数据
库,利用linux bridge对地址库相应的数据帧传输线路进行监控和超时设置,通过时序化流量监控方案为系统路径规划和用户操作提供参考信息;所述状态协调管理模块具体是对系统内虚拟设备通信状态进行管理,根据通信过程有限状态机制规划路径数量和状态,协调可视化操作模块与数据流时序监控模块,避免通信拥塞。
14.优选的,所述步骤2中mac地址数据库具体涉及mac地址和mac地址数据库管理机制;
15.所述mac地址及地址数据库管理机制主要包括:
16.(1)利用虚拟数据库记录虚拟交换机中保存的各种配置信息;
17.(2)若虚拟网络设备veth和协议栈之间保持联系,将协议栈和设备之间的联系视为网线联系;
18.(3)网桥数据库中每个通信网桥维护一个基于mac地址的过滤数据库,网桥根据这个数据库,把收到的帧往相应的局域网进行转发;
19.(4)在过滤数据库中,列出了每个可能的目的地及所属的输出线路,并对表项进行超时设置;
20.(5)随着数据库表项的路径任务时长增长,设置超过某阈值则从数据库中清除,通常将路径老化时间设置为路径阻塞300秒以上。
21.优选的,步骤2中的数据传输过程中还涉及同步机制,数据传输同步机制主要包括:
22.(1)连接同宿主机内所有容器的虚拟网络,通过bridge将数据转发到真实的物理网卡eth0中;
23.(2)收到新数据包时,route在l3网络层,使用路由协议、bridge在l2数据链路层,通过学习和缓存在链路上传输的数据包中的源地址以及物理层的输入端口,记录源mac地址和输入端口;
24.(3)根据数据包中的目的mac地址查本地缓存,判断能否到对应的mac地址记录;
25.(4)若发现记录不在本地网络,直接丢弃数据包;
26.(5)若发现记录存在对应的端口,则将数据包直接从该端口转发出去;
27.(6)如果本地缓存中不存在任何记录,则在本网段中进行广播。
28.优选的,所述步骤3中为可视化监控接口设置标记识别功能中的数据可视化标记方案主要包括:
29.(1)在linux系统中创建bridge并为其设置可视化端口及相关协议,本模块提供表视图和详细信息视图两种视图,数据包传输过程利用帧传送形式进行过滤;
30.(2)根据ack/ecn数据包、短流与长流数据包的不同特点建立流的多级优先级队列,在交换机中hdcq方法根据当前的负载状态动态调节短流队列的ecn标记阈值;
31.(3)根据当前缓存状态重新设置数据包优先级,减少方法的空间复杂度,使交换机处于浅缓存的状态以保证数据中心网络的低时延。
32.优选的,所述步骤8中对地址数据库中拥塞或超时路径进行更新和删除的主要机制包括:
33.(1)查询网桥表中是否有数据包的源mac;若无,将该mac地址及其所对应的网桥端
口信息加入网桥表,若有则继续下一步;
34.(2)查询过滤数据库,确定该目的mac地址是否在除本端口外的其它端口中,若无则不进行转发;
35.(3)在转发时,如果目的mac地址在过滤数据库中的某个端口中,确定该端口是否处在阻塞或转发状态;
36.(4)如果该端口是非阻塞的,把该帧通过此端口转发到它所连接的lan中;
37.(5)在转发时,如果目的mac地址未到,把该帧向除了它所到来的端口外的所有端口进行转发。
38.优选的,所述流控模块处理步骤主要包括:
39.(1)利用linux流控模块qdisc将数据包缓存,用来控制网络收发速度。若收到数据包的网卡属于某个网桥,数据包将进入链路层(link layer),经过一些链路层的hook点,以及二层交换机的查表转发功能,根据数据包目的mac地址判断此数据包是转发还是交给上层处理;
40.(2)若数据包的源网卡不属于某网桥,则直接进入网络层(network layer),经过一些网络层的hook点,然后进行路由选择,根据系统路由表决定数据包是转发或交给本地处理;
41.(3)在链路层网桥中处理ip数据包,将选择的监控节点的网络数据包接入监控模块,从而在主机层面控制进出虚拟机的流量。
42.本发明的技术效果和优点:在主设备搭建linux系统并设计从设备及虚拟机结构,利用bridge软件实现对系统内部的网桥记录与管理,同时在linux bridge中设置可视化监控接口,通过标记方案中的不同状态显示对通信路径中的数据包进行缓存和时序可视化显示,对传输过程进行监控和超时设置,同时对地址数据库中拥塞或超时路径进行更新和删除,增强系统传输过程的可控性并减少路径拥塞情况发生,通过提供一种基于linux bridge的虚拟通信管理方法及系统,实现了可视化动态控制虚拟机与虚拟网络之间的连通,利用数据包流量的时序显示标记,旨在实现服务器虚拟设备间传输路径的合理规划以及不同权限用户对虚拟设备的动态可视化流控管。
附图说明
43.图1为本发明的一种实施例的系统结构框图;
44.图2为本发明的一种实施例的可视化窗口示意图;
45.图3为本发明的一种实施例的有限状态机转换机制示意图;
46.图4为本发明的一种实施例的数据传输虚拟结构图;
47.图5为本发明的一种实施例的数据传输路径同步机制示意图。
具体实施方式
48.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.实施例一,本发明提供了如图中所示的一种基于有限状态机的端口实时数据流可视化方法,具体步骤如下:
50.步骤1、授权用户通过在主设备搭建linux系统并设计从设备及虚拟机结构,利用bridge软件对系统内部的网桥进行搭建;
51.步骤2、数据传输过程启动后,利用linux bridge在mac地址数据库中记录和更新已有通信路径,mac地址数据库具体涉及mac地址和mac地址数据库管理机制;
52.所述mac地址及地址数据库管理机制主要包括:
53.(1)利用虚拟数据库记录虚拟交换机中保存的各种配置信息;
54.(2)若虚拟网络设备veth和协议栈之间保持联系,将协议栈和设备之间的联系视为网线联系;
55.(3)网桥数据库中每个通信网桥维护一个基于mac地址的过滤数据库,网桥根据这个数据库,把收到的帧往相应的局域网进行转发;
56.(4)在过滤数据库中,列出了每个可能的目的地及所属的输出线路,并对表项进行超时设置;
57.(5)随着数据库表项的路径任务时长增长,设置超过某阈值则从数据库中清除,通常将路径老化时间设置为路径阻塞300秒以上;
58.步骤3、在linux bridge中设置可视化监控接口,并且为可视化监控接口设置标记识别功能并与用户界面可视化窗口联系,可视化监控接口设置标记识别功能中的数据可视化标记方案主要包括:
59.(1)在linux系统中创建bridge并为其设置可视化端口及相关协议,本模块提供表视图和详细信息视图两种视图,数据包传输过程利用帧传送形式进行过滤;
60.(2)根据ack/ecn数据包、短流与长流数据包的不同特点建立流的多级优先级队列,在交换机中hdcq方法根据当前的负载状态动态调节短流队列的ecn标记阈值;
61.(3)根据当前缓存状态重新设置数据包优先级,减少方法的空间复杂度,使交换机处于浅缓存的状态以保证数据中心网络的低时延;
62.步骤4、通过标记方案中的不同状态显示对通信路径中的数据包进行缓存和时序可视化显示;
63.步骤5、授权用户通过可视化窗口对可用路径和数据传输进行个性化动态监控和超时设置;
64.步骤6、数据包被接收后,首先从网卡传输到ring buffer中,然后依次经过硬中断、软中断处理,在软中断中再依次把包送到设备层、协议栈,最后唤醒应用程序,地址数据库中拥塞或超时路径进行更新和删除的主要机制包括:
65.(1)查询网桥表中是否有数据包的源mac;若无,将该mac地址及其所对应的网桥端口信息加入网桥表,若有则继续下一步;
66.(2)查询过滤数据库,确定该目的mac地址是否在除本端口外的其它端口中,若无则不进行转发;
67.(3)在转发时,如果目的mac地址在过滤数据库中的某个端口中,确定该端口是否处在阻塞或转发状态;
68.(4)如果该端口是非阻塞的,把该帧通过此端口转发到它所连接的lan中;
69.(5)在转发时,如果目的mac地址未到,把该帧向除了它所到来的端口外的所有端口进行转发;
70.步骤7、对于连接到网桥上的veth设备,当其收到数据包时,不会进入协议栈而是转入网桥处理,网桥到合适的转发口(合适的veth),通过此veth将数据转发出去;
71.步骤8、根据路径更新和老化机制,对地址数据库中拥塞或超时路径进行更新和删除,增强系统传输过程的可控性并减少路径拥塞情况发生。
72.如图5所示,数据传输过程中还涉及同步机制,数据传输同步机制主要包括:
73.(1)连接同宿主机内所有容器的虚拟网络,通过bridge将数据转发到真实的物理网卡eth0中;
74.(2)收到新数据包时,route在l3网络层,使用路由协议、bridge在l2数据链路层,通过学习和缓存在链路上传输的数据包中的源地址以及物理层的输入端口,记录源mac地址和输入端口;
75.(3)根据数据包中的目的mac地址查本地缓存,判断能否到对应的mac地址记录;
76.(4)若发现记录不在本地网络,直接丢弃数据包;
77.(5)若发现记录存在对应的端口,则将数据包直接从该端口转发出去;
78.(6)如果本地缓存中不存在任何记录,则在本网段中进行广播。
79.如图2所示,一种基于有限状态机的端口实时数据流可视化方法的系统,包括可视化操作模块、数据流时序监控模块和状态协调管理模块,所述可视化操作模块具体为用户提供系统内数据实时传输可视化展示与操作界面,被授权用户可跨设备搭建通信路径并对监控节点间实施数据流控,对系统整体数据流结构和量进行可视化分析操作;所述数据流时序监控模块具体为通过bridge绑定linux其他网络设备作为从设备,关联基于mac地址的过滤数据库,利用linux bridge对地址库相应的数据帧传输线路进行监控和超时设置,通过时序化流量监控方案为系统路径规划和用户操作提供参考信息;所述状态协调管理模块具体是对系统内虚拟设备通信状态进行管理,根据通信过程有限状态机制规划路径数量和状态,协调可视化操作模块与数据流时序监控模块,避免通信拥塞。
80.流控模块处理步骤主要包括:
81.(1)利用linux流控模块qdisc将数据包缓存,用来控制网络收发速度。若收到数据包的网卡属于某个网桥,数据包将进入链路层(link layer),经过一些链路层的hook点,以及二层交换机的查表转发功能,根据数据包目的mac地址判断此数据包是转发还是交给上层处理;
82.(2)若数据包的源网卡不属于某网桥,则直接进入网络层(network layer),经过一些网络层的hook点,然后进行路由选择,根据系统路由表决定数据包是转发或交给本地处理;
83.(3)在链路层网桥中处理ip数据包,将选择的监控节点的网络数据包接入监控模块,从而在主机层面控制进出虚拟机的流量。
84.如图3所示,数据流监控模块还涉及数据流标记,所述数据流标记方案包括组成元素与基本构成,具体为:
85.(1)以
“→”
作为数据流标记,并用线条粗细表示不同量级数据流。小于1500字节/
秒的数据流定义为小数据流,1500-10000字节/秒以内的数据流用中数据流,大于等于20000字节/秒的数据流定义为大数据流;
86.(2)数据流箭头方向代表流向,使用文件名及路径代码命名;
87.(3)以形如
“”
符号图形作为虚拟设备及系统设备标记形如矩形,具体形状可参考设备实体特征;
88.(4)以
“○”
代表数据包,并根据数据包大小分为小数据包(《10m)、中数据包(10m—100m)、大数据包(》100m);
89.(5)以“〓”代表对数据进行处理的单元模块,表示对数据的加工或传输过程的处理,它接收一定的数据输入对其进行处理,并产生输出。
90.具体的,限状态管理模块的有限状态包括:
91.(1)off状态表示虚拟端口处于关闭状态,状态表示端口故障或者未启动;
92.(2)down状态表示所在路径处于阻塞状态,该状态表示所在路径传输多个任务发生拥塞,无法正常进行;
93.(3)up状态表示端口处于打开状态,up状态表示端口链路协议处于正常启动状态;
94.(4)translate状态表示端口处于转发状态,在此状态下表示端口正在进行数据传输过程,且可正常运行。
95.如图4所示,数据传输发送机制,数据传输发送机制具体为:
96.(1)在系统中应用(如docker)需要发送数据时,先通过系统调用发送,这个发送会执行到协议栈进行协议头的封装等处理。经由邻居子系统到要使用的设备(veth1)后,从这个设备将数据发送出去,veth1的对端veth1_p会收到数据包;
97.(2)收到数据的veth1_p代表一个连接在bridge上的设备,此时bridge接管该veth的数据接收过程,并从其连接的所有设备中查目的设备,到veth2_p后,调用该设备的发送函数将数据发送出去,对端veth2将收到数据;
98.(3)veth2收到数据后,将与eth0等设备类似,进入正常的数据接收处理过程,docker等应用中的用户态进程将能够收到其他虚拟设备发送过来的数据。
99.整体用户在主设备搭建linux系统并设计从设备及虚拟机结构,利用bridge软件实现对系统内部的网桥记录与管理,同时在linux bridge中设置可视化监控接口,通过标记方案中的不同状态显示对通信路径中的数据包进行缓存和时序可视化显示,对传输过程进行监控和超时设置,同时对地址数据库中拥塞或超时路径进行更新和删除,增强系统传输过程的可控性并减少路径拥塞情况发生,通过提供一种基于linux bridge的虚拟通信管理方法及系统,实现了可视化动态控制虚拟机与虚拟网络之间的连通,利用数据包流量的时序显示标记,旨在实现服务器虚拟设备间传输路径的合理规划以及不同权限用户对虚拟设备的动态可视化流控管。
100.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
