メイン Routing Protocols Implementation & Model Development データパケットのフラッディング | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
forum_admin | 投稿日時: 2006/10/18 6:56 |
管理人 登録日: 2005/5/6 居住地: 東京都中野区中央4-5-3 ?構造計画研究所 投稿: 45 |
Re: データパケットのフラッディング masaさん
> flooding が仮完成しました! ひとまず、おめでとうございます! また、詳細なフォロー情報もご提供いただきありがとうございます。 こうして詳細な途中経過のご報告を目にすると、当サイトが実際に 研究のお役に立つことができているという実感も湧き、サイトを開 設した甲斐もあったと感じられ、管理者日和に尽きるというもので す。とは言え、管理者が喜んでいるだけでは仕方の無い話となって しまいますが、実際こういったStep by Stepで改良されていく様子 は、他のユーザの皆様や将来のユーザの皆様にとっても、有益な参 考情報となっていくと思います。そういう意味でも、詳細なフォロ ー情報のご提供には感謝しています。 # 偶々この時間帯にサイトにアクセスしていたので、 # 単なる管理者の個人的な雑感を、返信させて頂きました。 実の無い投稿で申し訳ないところですが、、 今後とも当サイトをうまくご活用していって貰えれば幸いです。 それでは。 -- サイト管理者(forum_admin) |
masa | 投稿日時: 2006/10/18 4:53 |
新米 登録日: 2006/8/12 居住地: 投稿: 14 |
Re: データパケットのフラッディング flooding が仮完成しました!
最初は MCBR の改造に着手したのですが、中々うまく行かなかったので助言でいただいた考え方を ip.cpp の方で実装しました。 現状報告: ・ブロードキャストアドレス宛のパケットの再ブロードキャストについては: IsMyPacket , NetworkIpIsMulticastAddress を改造し、特定の宛先アドレスについては ForwardPacket するように設定することで解決しました。 ・重複したブロードキャストメッセージの削除については: ノードにキューの構造体を作り、その中に msg のシーケンス番号と、 msg のヘッダーに入っているノードの送信元アドレスを保存し、同じ flooding メッセージだと識別されたパケットについては MESSAGE_Free を使い、初めてのメッセージだと識別されたパケットについては再ブロードキャストしつつ、キューに保存するという方法にしました。また、AddIpHeader を改良することで flooding パケットには通常のパケットとは別に TTL を設定出来るようにしたことで無限遠への送信と、逆に flooding を届ける範囲の限定を出来るようにしました。 flooding の開始時には MCBR を使い、フラッディングアドレスとして 192.0.0.255 を利用しています。 まだかなり限定的な状況でしか動作しないので、これからはその辺りを改良して行こうと思います。 |
masa | 投稿日時: 2006/10/15 16:23 |
新米 登録日: 2006/8/12 居住地: 投稿: 14 |
Re: データパケットのフラッディング 返信が遅れてすいません。
kabocha さん、ありがとうございます! それでは早速やってみます |
kabocha | 投稿日時: 2006/10/12 10:29 |
常連 登録日: 2006/9/8 居住地: 投稿: 43 |
Re: データパケットのフラッディング 基本的に、まず同じようなことをしているプロトコルのソースをご参考にすることをお勧めします。たぶん、具体的にここにソースコードを貼り付けるのは無理だと思うので、もう少し質問内容を絞らないと回答も難しいです。
というのはさておき、「CBRを改造して」というのは、当然ですが、受信側の処理も改造することを指していました。じゃないとfloodingにならないです。受信側は受信したパケットをコピーして転送するだけでよいと思います。TTLとかが必要だと思いますが。その上で、全ノードに改造した受信側のアプリをくっつけるように node 作成部分にも手を加えれば良いと思います。1hopしか飛ばないなんてことはありません。 他のプロトコルを参考にするなら、またUDPヘッダーとかをつけたくないのであれば、例えばAODVでfloodingを行っていると思いますので、これを参考にしたら良いのではないでしょうか? ・ip protocol タイプで Floodingするプロトコルのタイプの追加/設定 ・ip の DeliverPacket(だったかな?)でipが上位層に送信する際、プロトコルタイプで 上位プロトコルをclassfierしている部分を修正 ・追加したprotocolタイプに対応するfloodingするプロトコルを作成 ・floodingの具体的な方法は AodvFloodRREQ が ipのDeliverPacketから呼ばれるまでを理解して真似する。 で出来ると思いますよ。 |
masa | 投稿日時: 2006/10/12 2:25 |
新米 登録日: 2006/8/12 居住地: 投稿: 14 |
Re: データパケットのフラッディング kabocha さん、ご返答ありがとうございます。
CBRをアプリケーション改造でANY_DEST(255.255.255.255)宛に送る事ができるようになったとしても、1ホップ先のノードに対してまでしか送ることができないのではないでしょうか。 nanashi さん同様、現在やろうとしていることは ----------------------------------------------------------- 1ホップ以内にいる全ノードにブロードキャストしたら、今度はそれらのノードが自分の通信範囲内の全ノードに対してブロードキャストを行い、これを繰り返すことでネットワーク全体に対してデータを送信するフラッディング ----------------------------------------------------------- です。 これを解決するために作成工程として考えているのが ・ブロードキャストアドレス宛のパケットの再ブロードキャスト ・重複したブロードキャストメッセージの削除 なのですが、うまく進みません。 何かわかりましたらご助言をお願いします。 |
kabocha | 投稿日時: 2006/10/11 10:42 |
常連 登録日: 2006/9/8 居住地: 投稿: 43 |
Re: データパケットのフラッディング フラッディング用のアプリケーションをCBRでも改造して作って dst:=255.255.255.255 で送信してあげるのが一番簡単そうですが。
|
masa | 投稿日時: 2006/10/9 14:05 |
新米 登録日: 2006/8/12 居住地: 投稿: 14 |
Re: データパケットのフラッディング こんにちわ、はじめまして。
QualNetを使い始めたばかりの初心者です。私も nanashi さんと同様にフラッディングの動作をさせたいのですが、 ForwardPacket(node, msg, incomingInterface, ANY_IP); を書き込む位置、条件文の書き方を色々と試してみたのですが上手くいきません。どのようにすれば動作できるのか、詳しく教えていただけると幸いです。 |
mast | 投稿日時: 2006/8/9 10:23 |
一人前 登録日: 2005/4/7 居住地: 投稿: 93 |
Re: データパケットのフラッディング 引用:
255.255.255.255宛のパケットを投げればフラッディングされるかと思ったのですが、 ハズレ…でしたか。。 |
nanashi | 投稿日時: 2006/8/8 19:25 |
新米 登録日: 2006/1/8 居住地: 投稿: 16 |
Re: データパケットのフラッディング >mastさん
詳細な回答のほうありがとうございます!! さっそく試してみたところ、if (destAddress == ANY_DEST)の場合、if (ipHeader->ip_dst == ANY_DEST)の場合 ともにif文の中に入ってきませんでした ですが、ためしに違う箇所に ForwardPacket(node, msg, incomingInterface, ANY_IP); と記述してみたところ フラッディングっぽい動作が行われることが確認できました これを参考に今後if文の条件や、詳細な設計などを行っていきたいと思います。このたびは丁寧な対応のほうありがとうございました! |
mast | 投稿日時: 2006/8/7 23:15 |
一人前 登録日: 2005/4/7 居住地: 投稿: 93 |
Re: データパケットのフラッディング すいません。コードが間違ってました。
また、ForwardPacketの第4引数がANY_IPで良いかどうかは微妙… BEFORE
↓ AFTER
|
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |