![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
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について 引用:
というのが全く具体的ではないので、よく分かりませんが、 TTLは関数AddIpHeaderの引数で指定して、普通(Transport layerからIPがパケットを受け取るとき)はNetworkIpReceivePacketFromTransportLayerからこの関数を呼び出しています。このとき、TTLには
が指定されています。使っているプロトコルで、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について 引用:
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の初期値はどちらのファイルで定義されているのでしょうか? |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |