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

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/05/12:14/17
2024/05/11:19/23

2024/03/13より389/1391
人気モジュール
No.1: フォーラム 12
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット14

No.1:どっかの巡回ロボット12
No.2:Google巡回ロボット1
No.3:Majestic-12巡回ロボット1

日曜日からの合計
メイン
   Network Layer Protocol Implementation & Model Development
     TTLについて
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
amigo
投稿日時: 2007/1/15 15:07
新米
登録日: 2006/10/25
居住地:
投稿: 20
TTLについて
QualNetでシミュレーションを始める時、TTLが0からスタートするのですが、何故でしょうか?
kabocha
投稿日時: 2007/1/15 17:26
常連
登録日: 2006/9/8
居住地:
投稿: 43
Re: TTLについて
引用:

amigoさんは書きました:
QualNetでシミュレーションを始める時、

というのが全く具体的ではないので、よく分かりませんが、

TTLは関数AddIpHeaderの引数で指定して、普通(Transport layerからIPがパケットを受け取るとき)はNetworkIpReceivePacketFromTransportLayerからこの関数を呼び出しています。このとき、TTLには


#define IPDEFTTL   64


が指定されています。使っているプロトコルで、IPヘッダをくっつけている箇所は違うかもしれませんが、調べてみてはどうでしょうか? ご参考まで。
amigo
投稿日時: 2007/1/16 11:47
新米
登録日: 2006/10/25
居住地:
投稿: 20
Re: TTLについて
説明不足ですみません。
ルーティングプロトコルをDSRにしてシミュレーションを行っています。
このときTTLを出力してみると、TTL=0が出力されます。
その後RREQが破棄されて、TTL=64となり、シミュレーションが再スタートされます。
これは何故でしょうか?
kabocha
投稿日時: 2007/1/16 15:24
常連
登録日: 2006/9/8
居住地:
投稿: 43
Re: TTLについて
引用:

amigoさんは書きました:
説明不足ですみません。
ルーティングプロトコルをDSRにしてシミュレーションを行っています。
このときTTLを出力してみると、TTL=0が出力されます。
その後RREQが破棄されて、TTL=64となり、


dsr.cpp 内で ttl を設定しているところは幾つかあるので、そこにブレークポイントをかけてデバッグしては? ちょっとこれだけでは 何のことやら??? です。

引用:

シミュレーションが再スタートされます。
これは何故でしょうか?


意味が分かりません・・ なんでシミュレーションが再スタートされるんでしょうか? 

うーん、すみません。私では力になれそうに無いです。
amigo
投稿日時: 2007/1/17 15:07
新米
登録日: 2006/10/25
居住地:
投稿: 20
Re: TTLについて
すみません、表現が難しくて・・・。
とりあえず、シミュレーション結果を載せておきます。

シミュレーションは、ノード3個を、以下のように直線状に置きます。

?  ?  ?

1番から3番にデータを送信するシミュレーションです。

シミュレーション結果にTTLとRREQの送信状況を表示させると、以下のようになります。

---------------------------------------------------------------

ttl: 0

Node 2 received request at 70.001314216
source: 1
identification: 0
target: 3
prev: 1
Not in Seen table so adding there
ttl expired

ttl: 64

Node 2 received request at 70.033282696
source: 1
identification: 1
target: 3
prev: 1
Not in Seen table so adding there
Relaying the request

ttl: 63

Node 1 received request at 70.036926972
source: 1
identification: 1
target: 3
prev: 2
Loop in the packet so discarding it

ttl: 63

Node 3 received request at 70.036926972
source: 1
identification: 1
target: 3
prev: 2
Destination so initiating Route Reply

----------------------------------------------------------------

なぜか始めにTTLが0の状態でスタートするのですが、これは何故でしょうか?
kshima
投稿日時: 2007/1/22 18:57
半人前
登録日: 2006/10/16
居住地:
投稿: 24
Re: TTLについて
私も最近DSRを触り始めました。
もう解決なされたかと思いますが、回答いたします。

DSRのRREQ送信は関数DsrInitiateRREQで開始されます。
関数DsrInitiateRREQ内で呼び出される関数NetworkIpSendRawMessageToMacLayerWithDelayの引数に
"DSR_NON_PROPAGATING_TTL"が指定されており、
dsr.hで#define DSR_NON_PROPAGATING_TTL 1 のため
初回のTTLは0となります。

一方、関数DsrRetryRREQ内では
TTLの指定が"sentEntry->ttl"となっており、
直前で"sentEntry->ttl = DSR_PROPAGATING_TTL"が代入され
"#define DSR_PROPAGATING_TTL 65"なので
2度目のTTLは64になります。
amigo
投稿日時: 2007/1/23 11:30
新米
登録日: 2006/10/25
居住地:
投稿: 20
Re: TTLについて
ご回答ありがとうございました。
まだ解決していなかったので、とてもありがたいです。

なるほど、始めのRREQ送信ではDSR_NON_PROPAGATING_TTLが用いられていたのですね!
見逃してました。

丁寧なご説明ありがとうございました。
spidey
投稿日時: 2014/12/17 15:21
新米
登録日: 2014/11/28
居住地:
投稿: 4
Re: TTLについて
いきなり失礼します.

ホップ数について調べていたところ,こちらのフォーラムにたどり着きました.

TTLの初期値はどちらのファイルで定義されているのでしょうか?
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT