显示和分析多播分布拓扑图的方法技术

技术编号:10795580 阅读:110 留言:0更新日期:2014-12-18 04:52
显示和分析多播分布的拓扑图算法,采用客户端/服务端架构,服务端分为通讯线程和服务线程。通讯线程负责接收客户端的邻居信息和多播地址信息并建立公共数据结构,该结构存放设备信息、端口相连的邻居信息、多播地址信息,并建立三者之间关联。服务线程负责绘制拓扑图和接收用户查询,用户可查看设备的多播地址并查询特定多播地址在网络中的分布。客户端进程和LLDP协议、GMRP协议、IGMP协议同步协作,将邻居信息和多播地址信息发给客户进程,客户进程处理后发给服务端。

【技术实现步骤摘要】
显示和分析多播分布拓扑图的方法
本专利技术为显示和分析多播分布拓扑图的方法,属于网络通信领域。该算法采用C/S架构,网络中一台PC机作为服务端,网络中的交换机或路由器作为客户端,客户端收集数据上报给服务端,服务端按照客户端上报的数据生成整个网络的拓扑图,同时反映网络中的多播分布情况。
技术介绍
现在网络中多播应用非常广泛,多播和广播相比有明显的优势:一点发送,多点接收,接收方可以选择离开或加入该多播组。和广播不同的是,不加入多播组的设备,可以不受多播影响,减轻了这些设置处理负担。多播的广泛的应用带来的一个问题就是管理员需要了解当前网络的多播分布情况,比如一个特定多播地址在网络中流动的路径,该多播的源发起端在何处,它的最终的目的端在何处,中间通过何种设备。本专利技术提出的算法可以解决上述问题,它计算整个网络的拓扑图,同时在拓扑图上显示多播分布情况,帮助用户诊断网络。它直观、实时地显示网络中的多播路径,查看特定多播流所经过的设备,以及该多播流的发送端和接收端。本算法支持复杂的拓扑图生成,和多播路径结合起来,可以在生成的网络拓扑图上显示特定拓扑节点的多播流,同时实时展示特定的多播流流经的拓扑节点,方便管理员的监视和管理。
技术实现思路
本算法采用C/S结构,选择网络中一台PC作为服务端,网络中交换机和路由器作为客户端,客户端和服务端之间采用UDP协议通讯。服务端的程序分成两个独立的线程,分别是通讯线程和服务线程。通讯线程负责和客户端的通讯并接收客户端的上传信息,根据上传信息生成网络拓扑图,保存各种上传数据,建立各网络节点和多播地址的对应关系。服务线程主要用来展现拓扑图,展现各个节点上的多播表,同时提供查询入口供管理人员使用。两个线程使用公共的数据结构来存放拓扑图和多播表的数据,两个线程采用同步机制,通讯线程收到客户端的数据,建立维护公共数据结构,在操作完公共数据结构后则通知服务线程,服务线程接收到通知,读取公共的数据结构,按照公共数据结构存放的信息重新绘制拓扑图。通讯线程和服务线程的同步关系如图1所示。公共数据结构包括三个部分:设备链表、多播地址表。设备链表包含设备节点。设备节点包括设备标示、设备IP地址、设备MAC地址,指向端口节点的指针、指向下一个设备节点的指针。端口节点包括:本端的端口编号、对端的端口编号,邻居设备指针、指向同一个设备的下一个端口节点的指针;多播地址表包括:多播地址节点,该节点包含多播地址的类型、多播MAC地址、多播IP地址、指向的多播设备节点的指针,指向下一个多播地址节点的指针。多播设备节点包括指向设备节点的指针、该多播地址使用的设备端口向量,指向下一个多播设备节点的指针。公共数据结构之间的关系如图2所示。服务端和客户端采用UDP协议,客户端发现连接变化或IP/MAC多播流变化时,主动上传信息给服务端。网络稳定的情况下需要上传的数据很少,当网络产生变化时需要及时将变化信息发给服务端,服务端和客户端经常是短连接,传输的数据量不大,对时间要求较高,故采用UDP协议,同时相比TCP服务器采用UDP服务端可以支持更多的UDP客户端。服务端对客户端上传的报文进行确认,为此通讯双方定义两种数据格式:客户端上传的数据格式和服务端确认的数据格式。上传的数据格式包含:序列号、发送者IP地址、发送者MAC地址、命令类型、命令的正文部分。其中一个上传的UDP报文包含一个或者多个命令的类型和命令的正文部分,命令的类型决定了正文部分的内容,命令的类型及其正文有下面几种:1.命令类型0x01,含义是加入新的邻居;该命令的正文包括:发送者的IP地址,发送者的MAC地址,本端的端口编号,对端的端口编号,邻居的IP地址,邻居的MAC地址。2.命令类型0x11,含义是失去邻居连接;该命令的正文包括:发送者的IP地址,发送者的MAC地址,本端的端口编号,对端的端口编号,邻居的IP地址,邻居的MAC地址。3.命令类型0x02,含义是新加入多播地址;该命令正文包括:发送者的IP地址,发送者的MAC地址,多播地址的类型,多播IP地址,多播MAC地址,对应的端口向量。4.命令类型0x22,含义是多播地址离开;该命令正文包括:发送者的IP地址,发送者的MAC地址,多播地址的类型,多播IP地址,多播MAC地址,对应的端口向量。首先服务端绑定双方约定的公共的UDP端口,等待客户端数据到达。服务端收到客户端的上传报文后,首先发出回应报文,回应报文内容包括上传报文的序列号,然后解析报文的内容,操作公共数据结构。服务端取出报文中发送方的IP和发送方的MAC地址,据此查询对应的设备链表。如果没有查询到对应的设备节点,则新建一个设备节点,然后查看命令的类型。如果命令类型是0x01,用命令正文中发送者设备的IP和MAC在设备链表中找到对应的发送设备节点,如果可以找到对应的设备,按照命令正文中的本端的端口编号,查找设备节点指向的端口链表有无对应的本端的端口编号的端口节点,如果有对应的端口节点存在,则将端口节点的邻居设备针指向的设备节点与命令正文中邻居设备的IP和MAC进行比较。如果相等,则证明该邻居关系已经存在,结束处理;如果邻居设备不能匹配,则用命令正文中邻居设备的IP和MAC在设备链表中找到对应的设备节点,若找到对应的邻居设备节点,则修改端口节点的邻居设备指针指向新找到的设备节点,若没有找到邻居设备,则创建一个新的设备节点,插入到设备链表的末尾,然后端口节点的邻居设备指针指向该设备;如果没找到对应的发送设备的本端的端口编号,则创建一个端口节点,插入到设备节点端口链表的尾部,用命令正文中的邻居设备的IP和MAC在设备链表中找对应的设备节点,如果找到对应的邻居设备将新创建的端口节点的邻居设备指针指向找到的设备节点,如果没有找到邻居设备,创建一个新的设备节点,插入到设备链表的末尾,该端口节点的邻居设备指针指向该设备。如果命令类型是0x11,用命令正文中发送者设备的IP和MAC在设备链表中找到对应的发送设备节点,如果没有对应的发送设备结束处理。如果有对应的发送设备,按照命令正文中的本端的端口编号,查找设备节点指向的端口表有无对应的端口,如果没有对应端口结束处理;如果有对应的端口节点,将端口节点的邻居设备指针指向的设备节点的IP和MAC与命令正文中的邻居设备的IP和MAC进行比较。如果比较相同,则把端口的设备指针设为空指针;如果比较不相同,则不作处理。如果命令的类型是0x02,则代表有新的多播地址加入,首先查找多播地址表,如果找到多播地址节点,则查找多播地址指向的多播设备节点,如果多播设备节点的设备指针所指向的设备节点的IP和MAC和报文中的IP和MAC一样,则用用命令正文中端口向量填充该节点的端口向量,结束处理流程;如果没有找到对应的设备节点,创建一个新的设备节点,插入到设备链表的末尾,用用命令正文中端口向量填充该节点的端口向量,多播设备节点的设备指针所指向新建立的设备。如果没有找到多播地址节点,则添加一个多播地址节点;然后查找该多播地址关联的设备节点是否存在,如果不存在则新建一个设备节点,该设备节点放到设备链表的末尾,然后按照报文中的端口向量创建一个或多个端口节点,新创建的设备链表节点的端口节点指针指向新创建的端口节点;新的多播地址节点的设备链表设本文档来自技高网...
显示和分析多播分布拓扑图的方法

【技术保护点】
显示和分析多播分布的拓扑图算法,采用客户端/服务端架构实时显示网络中的邻居拓扑图,同时反映网络中的多播分布情况,其特征是:服务器和客户端上分别执行下述步骤:服务端是一台并行处理大量网络数据并具有良好人机界面的服务器,包括并行执行的两个线程:通讯线程和服务线程,通讯线程;它们的运行步骤如下:A通讯线程接收客户端发来的邻居信息报文和多播地址信息报文;B通讯线程根据接收的邻居信息和多播地址信息建立公共数据结构,该数据结构包含设备信息,端口邻居信息,多播地址信息;C通讯线程在建立公共数据结构后通知服务线程;D服务线程收到通知,扫描公共数据结构的信息,绘制拓扑图,同时在隐藏图层添加关于设备的多播地址信息;E服务实时显示网络拓扑图并等待用户的查询和显示请求,按照请求显示多播地址信息;客户端由支持LLDP协议,GMRP协议,IGMP协议的设备组成,运行步骤如下:A客户端通过LLDP协议进程、GMRP协议进程、IGMP协议进程同步收集邻居信息和多播地址信息;B收集到的消息传给客户进程;C客户进程把消息上传给服务端。

【技术特征摘要】
1.显示和分析多播分布拓扑图的方法,采用客户端/服务端架构实时显示网络中的邻居拓扑图,同时反映网络中的多播分布情况,其特征是:服务器和客户端上分别执行下述步骤:服务端是一台并行处理大量网络数据并具有良好人机界面的服务器,包括并行执行的两个线程:通讯线程和服务线程;它们的运行步骤如下:A.通讯线程接收客户端发来的邻居信息报文和多播地址信息报文;B.通讯线程根据接收的邻居信息和多播地址信息建立公共数据结构,该数据结构包含设备信息,端口邻居信息,多播地址信息;C.通讯线程在建立公共数据结构后通知服务线程;D.服务线程收到通知,扫描公共数据结构的信息,绘制拓扑图,同时在隐藏图层添加关于设备的多播地址信息;E.服务线程实时显示网络拓扑图并等待用户的查询和显示请求,按照请求显示多播地址信息;客户端由支持LLDP协议、GMRP协议、IGMP协议的设备组成,运行步骤如下:F.客户端通过LLDP协议进程、GMRP协议进程、IGMP协议进程同步收集邻居信息和多播地址信息;G.收集到的消息传给客户进程;H.客户进程把消息上传给服务端。2.根据权利要求1所示的显示和分析多播分布拓扑图的方法,公共数据结构包括设备链表、多播地址链表;设备链表由设备节点组成,设备节点包含指向端口节点的指针、指向下一个设备节点的指针、设备的IP地址、设备的mac地址;端口节点包含本端的端口编号、对端的端口编号、指向它的邻居设备的设备节点指针、指向属于同一个设备的下一个端口节点的指针;多播设备节点包括指向设备节点的指针、该多播地址使用的设备端口向量、指向下一个多播设备节点的指针;设备、端口、多播地址之间通过设备链表、多播地址表、端口节点建立关联;其特征是:公共数据结构的建立步骤如下:I.服务端收到客户端上传的邻居信息,邻居信息包括发送者信息、端口消息、端口的邻居信息;判断客户端发送者在设备链表是否存在,如果不存在,执行步骤J;如果存在执行步骤K;J.创建一个设备节点,同时创建一个端口节点,设备节点中的端口指针指向该端口节点;K.判断端口节点是否存在,如果不存在创建一个端口节点,设备节点中端口指针指向该端口节点;判断它的邻居设备在设备链表中是否存在,如果存在,端口节点的邻居设备指向该设备节点;如果不存在执行步骤L;L.创建一个设备节点,端口节点的邻居设备指针指向该设备;M.服务端收到客户端上传的多播地址信息,多播地址信息包含发送者信息和多播地址信息,首先判断该多播地址是否存在,如果不存在则创建一个多播地址节点;N.判断多播地址信息中的关于发送者设备是否存在;如果不存在则创建该设备节点;O.判断多播地址节点指向的多播设备节点中是否存在,如果不存在,创建该多播设备节点,计算端口向量,并把多播设备节点的设备指针指向设备节点。3.根据权利要求1所示的显示和分析多播分布拓扑图方法,服务端的服务线程负责绘制拓扑图,设备进行深度优先搜索的得到最长路径,在深度搜索过程中,如果出现环路,设置环网标志量,记录环路中各个节点和环路节点的总数;其特征是:求设备最大深度路径的步骤是:P.设置环网标志量为0表明没有出现环路,设备链表的每个节点设置为没有搜索完成标志;Q.寻找一个没有搜索完成的设备,如果没有找到该设备退出整个步骤;如果找到该设备,把该设备的当前深度和最大深度置0,建立设备的当前深度路径向量和最大深度路径向量,同时把所有设备的所有端口设置为未被访问标志;R.建立一个栈,栈的元素包含节点的类型、设备节点、端口节点;如果类型等于0代表存放的是设备;如果类型等于1存放的是端口,此时设备存放的是端口所在的设备节点,端口存放端口节点数据,代表当前设备节点入栈;把步骤Q找到的未搜索完成设备节点入栈,设备节点存入当前深度路径向量,当前深度值1;S.判断栈是否为空,如果...

【专利技术属性】
技术研发人员:周厚明崔磊
申请(专利权)人:武汉迈威实达软件有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1