Japan QualNet Community Forums Japan QualNet Community Forums
Welcome Guest 
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/11/01:10/10
2024/10/31:25/29

2024/09/02より459/1445
人気モジュール
No.1: フォーラム 86
No.2: QualNet概要 3
No.3: ニュース 1
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット56
No.2:Windows NT15
No.3:Linux7

No.1:どっかの巡回ロボット45
No.2:Safari22
No.3:Google巡回ロボット8

日曜日からの合計
メイン
   Routing Protocols Implementation & Model Development
     OLSRのHELLOパケット
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
KIN
投稿日時: 2012/10/9 14:14
新米
登録日: 2012/6/25
居住地:
投稿: 17
OLSRのHELLOパケット
いつもお世話になっています。

私はOLSRのHELLOパケットに情報を追加して、
その追加する情報によってどれだけ通信料が増加し、
経路表を作成するのに時間がかかるかを調べたいと考えています。
具体的には、センサネットワークを想定していて、
HELLOパケットに追加する情報は、
16bitの情報を40個程度、80Byteほどの情報を追加したい
と考えています。

また、通信量の増加を調べる方法として、
http://simweb.kke.co.jp/qualnet/forum/modules/newbb/viewtopic.php?topic_id=755&forum=27
に質問させていたただいたのですが、
TCPコネクションが張られて、通信が開始されるまでにかかる時間で
情報を追加する前と追加後の時間を比較したいと考えています。


そこで、routing_olsr-inria.hの791行目の部分と
900行目の部分に、
UInt16 keyID[40];
を追加して、HELLOパケットに情報を追加しました。
その状態で、シナリオを実行すると、routing_olsr-inria.cppの7393行目の
部分でエラーが出てしまいます。
詳しく見ていったところ、routing_olsr-inria.cppの7381行目のところ
なのですが、
outputsize = (Int32)(((char *)ipv4_addr - (char *)msg) +
sizeof(NodeAddress));
と記述されていますが、情報を追加したことによってmsgの値が大きくなっていると考えたのですが、outputsizeの値も大きくなっています。
この理由がわかりません。
utsubo
投稿日時: 2012/10/9 19:24
新米
登録日: 2010/11/9
居住地:
投稿: 13
Re: OLSRのHELLOパケット
こんばんは。

outputsizeの値はmsgのサイズから計算しているので、大きくなるのが自然だと思いますが・・・

900行目の情報の追加はどのように行いましたか?
hellomsg構造体の最後のhell_info[1]は構造体のサイズを可変長にするためのものなので、必ず構造体定義の一番最後で宣言する必要があります。




KIN
投稿日時: 2012/10/10 16:44
新米
登録日: 2012/6/25
居住地:
投稿: 17
Re: OLSRのHELLOパケット
返信ありがとうございます。

式を見ると、msgの値を引き算しているので、msgの値を大きくしたらoutputsizeの大きさは小さくなるのではないかと考えたのですが、違うのでしょうか?

情報の追加は、hell_info[1]の前の行に追加を行いました。
utsubo
投稿日時: 2012/10/10 19:46
新米
登録日: 2010/11/9
居住地:
投稿: 13
Re: OLSRのHELLOパケット
ごめんなさい、間違えました。

よく見たらサイズではなく、ポインタで計算していましたね。
msgはHELLOメッセージの先頭アドレス、
ipv4_addrはHELLOメッセージの隣接ノードのIPアドレスの(メモリ上の)アドレスでした。
つまり、
((char *)ipv4_addr - (char *)msg)
でHELLOメッセージの先頭から隣接ノードのIPアドレス情報までのサイズを計算しているようです。


KINさんが情報を追加した場所は上記のサイズを計算している範囲に含まれるため、outputsizeは改造前よりも大きくなるわけです。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT