cまたはc++を使用して、ネットワークトポロジを表示するアプリケーションを構築しようとしています。私はソケットの知識があります。私はこれがほとんど詳細のない幅広い質問であることを知っています。それは私が最初から何も見つけられなかったということだけです。どうしたらいいのかわからない。
2 に答える
これは、人生で直面するあらゆる問題と同様に、問題を明確に定義する必要があります。そして、それをパーツに分解する必要があります。
まず、トポロジを「発見」する必要がありますか、それともどこかのテキスト ファイルで既に提供されていますか? あなたの要件は単にトポロジをグラフ化することですか (その場合、「graphviz」と呼ばれるプログラムがおそらく必要な仕事を既に行っているでしょう)? トポロジーを発見する必要がある場合、それはどのようなネットワークですか? LAN? ワン?TCP/IP? 他の何か?
次に、なぜ C または C++ を使用する必要があるのかを自問する必要があります - あなたの質問から、あなたはネットワークの経験があまりないように思われます - したがって、なぜ低レベルのネットワークを使用するというトラブルに行きたいのかは明らかではありません。選択したタスクを実行するための言語。おそらく、短期的には高級言語が適切でしょう。
多くの人があなたと同じ課題に直面していることに注意してください。ネットワーク トポロジのグラフ化。したがって、これを行う多くのアプリケーションがあります。このタスクを自分でやりたいと思った理由を詳しく説明していただけますか?
いくつかの仮定を立て
ます。 1. 機器へのネットワーク接続がある。2. SNMP 読み取り特権を持っているか、受け取ることができる。
ほとんどのネットワーク デバイスは、SNMP と通信できます。SNMP 情報から、デバイスに関する情報の負荷を判断できます。取得できる情報の中には、「CDP」と「LLDP」の情報があります。「CDP」は、ネイバー情報用の Cisco 独自のプロトコルであり、「LLDP」は、Cisco デバイスも一般的にサポートするオープン スタンダードです。
デバイスで CDP または LLDP が実行されておらず、オンにできない場合は、代わりにFDB (転送データベース) を使用できます。これは、SNMP で取得したインターフェイス デバイスの MAC アドレスを、他のデバイス インターフェイスの MAC アドレス テーブルと照合することを意味します。MAC アドレスは複数のインターフェイスに表示される可能性があるため、これは少し複雑です。正確な表現方法はわかりませんが。
したがって、物事がどのように接続されているかを理解するという論理的な部分については、これが進むべき道だと思います. 他の誰かがあなたを助けなければならないグラフィカルな部分。