您的位置:首页 > 其它

简单拓扑发现及其应用---------无向图中节点如何自主发现环,切断环。唯一路径以及原路返回。

2015-06-01 12:51 405 查看
    根据最近正在做的一个勤务电话项目,设计方案时出了一个的拓扑问题。概括就是无向图中节点如何自主发现环,切断环;

我将其简化为一下题目:

    题目:拓扑上设备数目未知,但是每台设备有四个端口,设备之间的连接,没有任何限制,即两台设备之间可以同时有2条、3条甚至

4条连接。拓扑不限,可能是链式、环式、相交环、点对点等多种。以下拓扑只是为了方便说明。拓扑中每个节点周围的数据表示端口,最多四个端口。拓扑中的仙没有权值、

设备之间的通信帧,可以自由定义,至少包括源地址、目的地址、路由长。



    第一如何确认两台设备之间的唯一路径,且能够按照最短路径原路返回?(即两点之间通话)

    第二如何让网络上的设备检测到环路,并进行切断环操作?(拓扑有环,导致数据叠加,增加负担)

    解答:

    针对这个拓扑中,每台设备我们都配置唯一的ID,

    我们首先解决直接相连设备之间的路径唯一的问题,即让设备与设备之间的连接变为一条,我们使用NDP(邻居发现协议),每台设备都可以发现自己的邻居,当他发现自己的

多个端口对应一个设备ID时,我们可以认为这几个端口,是一个端口,因为这几个端口都指向一台设备。所以我们就可以忽略题目中,两台设备之间,通过多条线连接的问题。

    对于问题1,我们采用最短路径的算法去解决,假如拓扑中节点A要找节点G,则设备A发起广播,则设备G最终会受到A发送的广播帧,广播帧没经过一个设备后,路由值都会加1,路由值初始化为0.中间转发设备要记录经过自己的帧的情况,包括源地址,目的地址,路由值,进入设备端口号,发送端口号;则设备G会收到很多广播帧,其中会有一个或几个路由值最小。然后设备G按照路由值最小的广播帧,进入的端口进行反馈应答帧。应答帧经过的设备,会对应答帧的情况与记录的广播帧的情况进行比较,发现路由值相等,且源地址与目的地址相反,则根据广播帧记录的端口进行转发。指导路由值零,正好反馈到设备A。

 

    问题2,每台设备都通过NDP(邻居发现协议)收集与自己直连的设备,建立一个邻居表。当有设备要进行环路检测时,广播整个拓扑,收集每台设备的邻居表,然后该设备对收集到的邻居表进行整理类似于TDP(拓扑发现协议)。这里以设备A进行环路检测为例进行说明。

  先说明邻居表

  设备的A的邻居表 A.1------C.2

A.1C.2
A.2NULL
A.3NULL
A.4NULL
  设备C的邻居表 C.1----E.2  C.2-----A.1   C.3------B。2

C.1E.2
C.2A.1
C.3B.2
C.4NULL
以此类推,当A设备收集完邻居表后,根据深度优先的搜索,进行对整个拓扑的遍历,一单发现有重复的点则,则认为是有环,记录重复的点,然后又发起者A,向重复点发送解环帧,该点对相应的端口进行阻塞。完成解环。

还有很多细节问题,没有考虑到。后续会继续更新。

转载请标明出处。有问题请联系xq-310@163.com         qq:842607968

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: