![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
Shinya | 投稿日時: 2014/4/11 13:05 |
新米 ![]() ![]() 登録日: 2013/3/26 居住地: 投稿: 10 |
パケット送信間隔の変更 お世話になります。
現在とある条件を元に送信間隔を変えてパケットを送信するシミュレーションを作成中です。 そこで質問なのですが、シミュレーション開始後にリンクを切らすことなくパケットの送信間隔を変更することは可能でしょうか? |
hiro | 投稿日時: 2014/4/11 13:17 |
長老 ![]() ![]() 登録日: 2005/7/16 居住地: 投稿: 452 |
Re: パケット送信間隔の変更 条件が非常にあいまいですが、Traffic-Traceアプリケーションのような事前設定による任意送信タイミングではなく、
動的に変更したいという事ですか。 また、どのレイヤが対象でしょうか。アプリケーションレイヤですか。 いずれにせよ標準機能には備わっていないのでソースコードレベルでの改造が必要です。 |
Shinya | 投稿日時: 2014/4/12 13:00 |
新米 ![]() ![]() 登録日: 2013/3/26 居住地: 投稿: 10 |
Re: パケット送信間隔の変更 >>hiroさん
回答ありがとうございます。 おっしゃる通り、動的に変更を行いたいと考えております。 例えばAODV方式において、 Helloパケットに自分の優先状態を追加し、 Helloパケットを受け取った各ノードは自分の優先状態と比較し、必要であれば送信間隔を変更するといった処理を追加したいと考えております。 このような処理は実装可能でしょうか? |
hiro | 投稿日時: 2014/4/12 14:08 |
長老 ![]() ![]() 登録日: 2005/7/16 居住地: 投稿: 452 |
Re: パケット送信間隔の変更 使用するApplocation依存になってしまいますが可能です。
例えばCBR場合、以下の2カ所でパケット送信を仕込みます。 関数 AppCbrClientInit の最後付近。 startTimeになったら最初のパケットを処理する。 MESSAGE_Send(node, timerMsg, startTime); 関数 AppCbrClientScheduleNextPkt の最後付近。 clientPtr->intervalにてパケットを処理する。 MESSAGE_Send(node, timerMsg, clientPtr->interval); 関数 AppLayerCbrClient の先頭付近。 実際に指定時間が経過してパケット送信する。 case MSG_APP_TimerExpired: のブロック。 という事で、 startTimeやclientPtr->intervalの値をそのまま使用せず、 自分で書き換えれば良いことになります。 めんどくさいのは、ルーティング処理部分からApplication処理部分へ 情報を伝達する処理です。 Node構造体に情報を追加して、自分自身の優先順位を管理して Application処理部から参照することになると思います。 それから、基本的に1サイクル遅れることも気にしなければなりません。 Application処理では今からxx秒後に実際のパケットを出す処理なので、 xx秒が経過する前に優先順位が変更になったらどうするのか、などの 色々と詳細処理を考える必要があります。 |
Shinya | 投稿日時: 2014/4/14 12:04 |
新米 ![]() ![]() 登録日: 2013/3/26 居住地: 投稿: 10 |
Re: パケット送信間隔の変更 >>hiroさん
ご回答ありがとうございます. とても参考になります. 構造体をうまく利用し,早速作業に取り掛かろうと思います. |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |