メイン Network Layer Protocol Implementation & Model Development パケットに2つの目的ノードへの宛先を追加 | 投稿するにはまず登録を |
題名 | 投稿者 | 日時 |
---|---|---|
パケットに2つの目的ノードへの宛先を追加 | kazuki | 2011/6/17 11:20 |
» Re: パケットに2つの目的ノードへの宛先を追加 | ino | 2011/6/20 9:22 |
Re: パケットに2つの目的ノードへの宛先を追加 | kazuki | 2011/6/20 14:24 |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
ino | 投稿日時: 2011/6/20 9:22 |
新米 登録日: 2011/1/24 居住地: 投稿: 16 |
Re: パケットに2つの目的ノードへの宛先を追加 kazukiさん、こんにちは
> ネットワーク層でIPヘッダの宛先を2つにできないでしょうか. 「IPヘッダの宛先アドレスのフィールドを拡張し、2つの宛先を込められるようにする」 といったようなことをお考えでしょうか? これを素直に実装するならばIpHeaderType構造体を修正 (ip_dst -> ip_dst1, ip_dst2の様な感じでしょうか) した上で、それにまつわる処理にも修正を加えていくことになります。 例えば、network_ip.cppのRouteThePacketUsingLookupTable()において NetworkGetInterfaceAndNextHopFromForwardingTable( node, ipHeader->ip_dst, &outgoingInterface, &nextHop); で、nextHopを引いてきていますが、これを例えばip_dst1, ip_dst2 それぞれに行うなどです。 その他にも、IpHeaderType構造体のサイズが変わることになりますので そのへんに依存したコードを丁寧に潰していく必要があります。 (チェックサム計算の修正やヘッダのpaddingなども必要? 既存の宛先一つモードとの互換性も考える必要があるでしょうか? いずれにせよかなり広範囲に渡る修正が予想されます。) > ちなみに,ルーティングをNoneにしてstaticルーティングに > しているのですが,その場合はネットワーク層の動きはどこに > 記載されているのでしょうか. こちらも、RouteThePacketUsingLookupTable()あたりから 一度コードを追ってみてはいかがでしょうか。 ProgrammersGuideの 4.4 Network Layerの章が参考になるかと思います。 - 4.4.2 Network Layer Organization: Files and Folders には具体的なソースファイル名の記述が、 - 4.4.4 Network Layer APIs and Inter-layer Communication には にはそれぞれの機能に関する記述があります。 また、もしマルチキャスト的なことをやりたいのであれば - 4.4.6 Adding a Network Layer Multicast Routing Protocol が参考になるかと思います。 |
フラット表示 | 前のトピック | 次のトピック |