ルーティング解決とは?実装編

ルーティング解決とは? - Higepon’s blogの続き。
まずはストレートに実装を

 dword getIpRoute(Config& config, dword destIp)
 {
     dword destSubnet = destIp & config.getSubnetAddress();
     dword mySubnet = config.getIpAddress() & config.getSubnetAddress();

     // 同一サブネット
     if (destSubnet == mySubnet)
     {
         return destIp;
     }

     // ルーター
     return config.getDefaultGateway();
 }

同一サブネットかどうかを判定して、あて先のIPアドレスを返します。


これを組み込んでMonaで実行するとこんな感じ。


ソースは、ひげぽん/mones2/05.ICMP応答準備編 IPパケット送信/01.ルーティング解決 の編集 - Mona OS developers Wikiからどうぞ。

ちなみにこの実装の参考にしている本は


詳解TCP/IP〈Vol.1〉プロトコル

詳解TCP/IP〈Vol.1〉プロトコル

  • 作者: W.リチャードスティーヴンス,W.Richard Stevens,橘康雄,井上尚司
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/12
  • メディア: 単行本
  • 購入: 6人 クリック: 81回
  • この商品を含むブログ (41件) を見る
詳解TCP/IP〈Vol.2〉実装

詳解TCP/IP〈Vol.2〉実装

  • 作者: ゲリー・R.ライト,W.リチャードスティーヴンス,Gary R. Wright,W.Richard Stevens,徳田英幸,戸辺義人
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2002/12
  • メディア: 単行本
  • 購入: 1人 クリック: 13回
  • この商品を含むブログ (25件) を見る
マスタリングTCP/IP 入門編

マスタリングTCP/IP 入門編


あたりです。


そしてまだ読んだことないのですが、アセンブリ言語の教科書の作者である愛甲健二さんの

TCP/IPの教科書

TCP/IPの教科書


がとても気になる今日この頃です。
というのも愛甲さんのWindows Raw Socket Programmingがとてもレベルが高く、ネットワーク知識が半端じゃなさそうだからです。

これはやばい。