绘制动态网络拓扑的程序实现

时间:2022-06-04 05:35:55

绘制动态网络拓扑的程序实现

摘要:探讨了利用易语言根据用户输入的地址和上联地址,考虑分辨率和美观自动绘制动态拓扑图的方法。

关键词:网络拓扑 生成拓扑 易语言

Abstract: To explore the use of easy language according to user input address and an upper address, consider the resolution and beautiful automatic drawing dynamic topology method.

Key words: network topology topology easy language

[中图分类号] TP393.02[文献标识码]A[文章编号]

网络拓扑对网管人员网络管理、网络规划起到非常重要的作用。比如做网络监控, 网络故障、流量瓶颈等信息就要直接显示在网络拓扑上, 这样网管人员才能对网络状况一目了然。网管人员绘制拓扑一般有两种方法,第一种是在电脑上绘制静态拓扑,但是网络设备越来越多,更新越来越频繁,绘制静态拓扑图的方案显然已经无法胜任。第二种是利用第三方商业软件,自动发现设备并绘制拓扑,对于自动发现画出的拓扑,基本都需要人工再复杂调整,且移植性不好,在不同分辨率下适应性差。笔者通过研究,利用易语言自动绘制动态拓扑,可在不同分辨率机器上都能显示完整拓扑,并且支持网络设备多上联,清晰的表示层次,最大程度的减少交叉,无法避免的交叉线将用弧线表示。

程序实现目标

程序根据用户输入的设备IP地址和上联IP地址,算出层次,根据当前分辨率自动算出每个设备的位置,并绘制拓扑。

绘制的拓扑图该考虑布局美观,靠边设备都应该离屏幕边界一定距离,同时所有设备之间需要保持合适间距。

拓扑图要清楚的表示设备之间层次和连接关系,同一上联的设备应当排列在一起,最大程度的避免连线交叉

拓扑图要支持设备多上联情况,对于多上联将会造成无法避免的连线交叉,要判断出,并用弧线表示。

拓扑图中网络设备的IP地址、上联IP地址、设备类型等都可以随时调整,并根据调整后的数据即时刷新拓扑,根据设备类型是防火墙、交换机还是服务器,显示相应的图标。

系统具体设计实现

数据库设计

由于本程序数据量和读写都比较少,所以为便于操作维护采用桌面型数据库Access。

在表“基本库”中记录各设备的信息:

“IP”字段记录设备的IP地址。“上联1”―“上联8”字段记录设备的上联IP地址,默认情况下一个设备只有一个上联,特殊情况下,一个网络设备可能有两个甚至多个上联,为防止这种特殊情况,预备了“上联2”―“上联8”字段。字段“层次”记录程序根据设备的上联关系计算出的该设备层数。类型记录的是设备的类型,比如核心交换机、汇聚交换机、接入交换机、服务器、防火墙等,选择不同的类型,屏幕显示不同的图标。“拓扑宽度”和“拓扑高度”记录屏幕中实际显示图标的宽度和高度。“左边居中”和“顶边高度”记录的是图标在屏幕中位置。

程序模块设计

2.1、用户输入模块

提供用户对设备信息增删改的界面。

2.2、层次关系计算模块

根据用户输入的上联IP,找出最上层设备,同时判断是否有循环,有循环则提示出错,没有循环则把最上层设备层次定义为1,其下联定义为2,以下以此类推。

易语言实现关键代码如下:

2.3、图标大小及位置计算模块

相同一层的网络设备布局在屏幕的同一行,相同上联的设备排序在一起,这样可避免连线时出现交叉线。根据屏幕宽度和设备数目以及设备层数,依照算法自动调节图标宽度和间隔宽度。

易语言实现代码如下:

2.4、绘制拓扑模块

根据每个设备图标的位置显示图标,并按计算出的图标大小设置图标尺寸。绘制线条连接各设备,同时判断是否与已有线条交叉,因为当设备出现多上联时,可能要出现线条交叉。

判断两个线段是否交叉,可利用两条直线的方程求解,解就是交点,然后判断交点是否在线段内。

其中求经过点(x1,y1)和(x2,y2)的直线和经过点(x3,y3)和(x4,y4)的直线的交点易语言代码如下:

交点x = ((y2 - y1) × x1 ÷ (x2 - x1) - (y4 - y3) × x3 ÷ (x4 - x3) + y3 - y1) ÷ ((y2 - y1) ÷ (x2 - x1) - (y4 - y3) ÷ (x4 - x3))

交点y = ((y2 - y1) × (y2 - y1) × x1 × (x4 - x3) - (y4 - y3) × (y2 - y1) × (x2 - x1) × x3 + (y2 - y1) × (y3 - y1) × (x2 - x1) × (x4 - x3)) ÷ ((y2 - y1) × (x2 - x1) × (x4 - x3) - (y4 - y3) × (x2 - x1) × (x2 - x1)) - (y2 - y1) × x1 ÷ (x2 - x1) + y1

程序运行后效果:

结束语:

利用该自动绘制网络拓扑的程序,网管人员可以对网络结构和状况一目了然,在此自动绘制拓扑程序的基础上,我们又增加设计了自动监测网络和报警功能,将故障设备用红色标示,并且声音报警。该程序在我单位运行几个月来,极大地方便了网络管理和故障排除。

上一篇:电网继电保护综合自动化问题研究 下一篇:高层建筑的火灾自动报警与消防联动控制研究