以下はルーターのルーティングテーブルです。送信インターフェイスが -- であるエントリの送信インターフェイスを解決する必要があります。これらのエントリはテキスト ファイルにあります。nexthop (longes プレフィックスの一致) を解決して、発信インターフェイスを解決する必要があります。例 - 0.0.0.0/0.0.0.0 の発信インターフェイスを見つける場合、ネクストホップは 172.20.20.57 です。このネクスト ホップを取得し、[Destination] 列を調べて、172.20.20.56 である最長のプレフィックス マッチを見つけ、FastEthernet0 である発信インターフェイスを持っています。したがって、0.0.0.0/0.0.0.0 の発信インターフェイスは FastEthernet0 です。問題は、テーブルに 2000 ~ 3000 のエントリを含めることができることです。私が考えたデータ構造の 1 つがトライでした。最長の接頭辞の一致を見つけるために使用できる既存の API や、この問題を解決するための提案はありますか。私はJavaを使用しています。
Destination Network Mask NextHop OutgoingInterface
192.168.231.0 255.255.255.0 192.168.255.1 --
172.20.20.56 255.255.255.252 11.11.11.11 FastEthernet0
192.168.201.0 255.255.255.0 192.168.255.1 --
0.0.0.0 0.0.0.0 172.20.20.57 --
192.168.255.1 255.255.255.255 192.168.255.1 Serial0