网络拓扑结构

时间:2010-08-18 07:34:56

标签: c sockets networking topology

我正在尝试构建一个使用c或c ++来显示网络拓扑的应用程序。我有套接字的知识。我知道这是一个广泛的问题,细节很少。只是我没有找到任何东西开始。我不知道该怎么做。

2 个答案:

答案 0 :(得分:5)

这就像你在生活中遇到的任何问题一样,需要明确定义问题。而且你需要把它分解成几部分。

首先,您是否需要“发现”拓扑,或者您是否已经在某个文本文件中提供了拓扑?您的要求仅仅是绘制拓扑图(在这种情况下,一个名为“graphviz”的程序可能已经完成了您需要的工作)?如果您必须发现拓扑,它是什么类型的网络? LAN? WAN? TCP / IP?还有别的吗?

然后你必须问自己为什么要使用C或C ++ - 从你的问题中可以看出你对网络没有多少经验 - 因此你不明白为什么你会想要使用一个低级语言来承担您选择的任务。也许高水平的语言在短期内是合适的。

请注意,许多人都面临着同样的挑战 - 绘制网络拓扑图;因此,有许多应用程序可以做到这一点。也许您可以详细说明您想要自己尝试此任务的原因吗?

答案 1 :(得分:1)

我要做出一些假设:
1.您具有与设备的网络连接。 2.您已经或可以获得 SNMP-read 权限。

大多数网络设备都可以与SNMP通信。 通过SNMP信息,您可以确定有关设备的大量信息。 您可以获得的信息包括" CDP" " LLDP" 信息。 " CDP"作为思科的邻居信息专有协议和" LLDP"是思科设备通常也支持的开放标准。

如果设备没有运行CDP或LLDP而您无法打开它,则可以使用 FDB (转发数据库)。 这意味着您将通过SNMP获得的接口设备的MAC地址与其他设备接口的MAC地址表进行匹配。 这有点复杂,因为MAC地址可以出现在多个接口上。我不知道它的确切表现方式。

因此,对于弄清楚事物如何连接的逻辑部分,我认为这是要走的路。 其他人必须帮助您的图形部分。