1

いくつかのスイッチとエンド デバイスがあり、ルーターは 1 つしかないスモール ビジネス ネットワークがあります。グラフのようにネットワーク トポロジを表示したい (ルーターを上にして)。

私はネットワーク層アドレスにしかアクセスできないので、ネットワーク上のすべてのデバイスについて、そのデバイスが持つすべてのインターフェイスの IP アドレスと IP ネットワーク、つまり 192.168.2.9 と 192.168.2.0 (マスク 255.255.255.0) を取得できました。

私の推測では、データを分析して、ネットワークの論理接続を構築できたはずです。だから、私が聞きたいのは、ネットワークトポロジを知るための正しい道を進んでいるかどうかです(少なくともその論理接続については)。

これはすべてプログラムで行われ (c および object-c)、学校のプロジェクト用です。

プラス:(この情報があれば)トポロジを描画するライブラリを知っている人はいますか?

4

2 に答える 2

1

したがって、すべてのデバイスのIPアドレスがすでにあるので、便利なスタートです。そこから、「手動アルゴリズム」は次のようになります。

for each ip in devices
  traceroute ip
    for each hop in traceroute
      add hop to graph (if it's not there already)

あなたがしているのは、あなた自身とデバイスの間の各ネットワークホップをグラフ構造に追加することです。ノード(ホップ)がすでに見つかっている場合は、新しいエッジを追加します。そうでない場合は、エッジと頂点を追加します。最終結果は、ネットワーク上のすべてのノードと、それらに到達するためにたどるパス(トポロジ)のグラフになります。

したがって、必要なのは、tracerouteを自分で実装し、tracerouteの実行結果を格納するグラフ構造を構築してから、すべてをうまくプロットするための何かを作成することです。これらのそれぞれは、独自の多くの質問を生成する可能性があります。

このObjective-Cにタグを付けたので、私は飛躍し、Macでこれを行っていると仮定します。その場合、グラフィックスのニーズはCocoaの描画APIでうまく満たされます。

于 2010-11-11T22:29:59.437 に答える
1

グラフ化の場合、最も簡単な方法は、ファイルをドットで出力してから、graphviz でグラフ化することです。

于 2010-11-12T01:05:24.540 に答える