【致大学的自己——Poxdesk二次开发】优化Poxdesk拓扑图可视化效果,图标化显示主机+交换机
发布日期:2021-05-28 16:53:32 浏览次数:25 分类:精选文章

本文共 1279 字,大约阅读时间需要 4 分钟。

优化后的文章:

{标题}

【致大学的自己——PoxDesk二次开发】优化Poxdesk拓扑图可视化效果,将主机+交换机图标化显示


背景与意义

我经过多达3年的SDN网络研究,从2018年的毕业设计起步,以POX控制器为基础开展一系列拓扑发现和可视化优化工作。如今,我希望能够通过对PoxDesk的二次开发,解决现有拓扑图展示工具的不足,实现更直观、更精确的网络拓扑可视化,特别是在展示主机和交换机的链路关系时能更清晰明了。


现有功能的不足

  • 交换机设备图标缺失:现有的PoxDesk拓扑图界面中,只以交换机编号形式显示交换机设备,而无法采用(graphical icons)图标形式展示。这种展示方式在拓扑图稍显复杂时,导致信息过于拥挤,难以快速理解网络架构。
  • 缺乏主机设备信息:PoxDesk目前仅能展示交换机之间的链路关系,但无法显示主机设备的信息。对于复杂的网络拓扑情况,用户难以直观地了解主机与交换机之间的连接关系。
  • 设备图标美观性不足:如果将交换机设备以图标形式显示,还需要进一步优化图标美观度,提升用户体验。

  • 开发目标

  • 在PoxDesk的TopoViewer基础上,改进交换机设备的图标化显示。
  • 实现对主机设备信息的显示,结合网页的链路信息表和设备信息表,提升整体可视化效果。

  • 实现过程

    第一步:交换机图标化显示

  • 开发思路

    • 修改现有绘图代码,将交换机的编号替换为统一的图标形式。
    • 根据现有拓扑数据结构,定位到绘图逻辑,通过修改代码实现交换机设备的图标化展示。
    • 最终目标是保留拓扑功能的核心同时,提升图表美观性。
  • 核心代码修改

    • 在SpringyUI.js中查找并修改绘图函数(drawNode),将交换机节点替换为图标形式。
    • 调整代码注释和初始化逻辑,确保图标与网络拓扑信息一致。
  • 实现效果

    • 交换机设备将以统一图标形式显示,减少编号堆叠,增强可读性。
  • 第二步:显示主机设备信息

  • 分析问题

    • 主机信息缺失是由于PoxDesk的数据处理模块未支持主机设备的获取。
    • 我定位到tinytopo.py文件,分析主机信息获取逻辑,发现主要集中在host_tracker模块。
  • 主机信息获取策略

    • TinyTopo类中构造一个主机设备信息表hosts,字典类型。
    • 模拟Graduate Student的研究过程中,改动host_tracker.py源码,实现动态获取主机设备信息并反馈拓扑数据。
    • do_send_table函数中,加入主机信息发送逻辑,确保主机设备数据传递到TopoViewer.js。
  • 实现效果

    • 主机设备信息可与交换机拓扑信息并存显示,拓扑图显示主机位置及链路关系。

  • 未来计划

  • 链路信息表:在网页中添加链路信息表,标注方向性(单向/双向),并可通过点击查看详细信息。
  • 设备信息表:完成主机设备信息表的图形化显示,方便用户查询主机状态和位置。

  • 总结

    通过对PoxDesk的二次开发,我希望解决现有拓扑图展示工具的不足,为SDN研究者提供一个更直观、更实用的工具。接下来,我将着重完成交换机与主机的图标化显示,并优化用户交互体验,为后续开发奠定基础。

    上一篇:IntelliJ IDEA中设置激活的profile
    下一篇:Keepass密码管理,windows+安卓+Onedrive实现云同步

    发表评论

    最新留言

    能坚持,总会有不一样的收获!
    [***.219.124.196]2025年04月21日 09时51分17秒