![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
10low | 投稿日時: 2015/10/2 18:07 |
新米 ![]() ![]() 登録日: 2015/9/29 居住地: 投稿: 4 |
パケットが出力キューに滞留している時間について パケットがルータの出力キューに滞留している時間を出力しようと考えています. 調査した結果if_queue.cpp の utilizationInPeriod() という関数が出力キューに滞留している時間を出力すると思っていまして,
ためしに添付ファイルの図のシミュレーショントポロジで30秒間シミュレーションを行いました. Queue::finalizeにprintf文を用いて結果を出力したのですが,想像していた結果が出力されませんでした.どのようにすれば,ルータの出力キューにパケットが出力キューに滞留している時間を出力できますか? ![]() |
maxam | 投稿日時: 2015/10/2 21:06 |
常連 ![]() ![]() 登録日: 2006/4/11 居住地: 投稿: 58 |
Re: パケットが出力キューに滞留している時間について 「パケットが出力キューに滞留している時間」の意味が良く分からなかったので、外しているかもしれませんが。
■一番滞留時間の長かったパケットの滞留時間 statに Network, FIFO,Longest Time in Queue (seconds) があります。 ■それぞれのパケットの滞留時間 上の、Longest Time in Queue を出すためには各パケットの 滞留時間を計測する必要がありますが、それを行っているのが void Queue::UpdateQueueDelayStats()なので、 このあたりを参考に、printfを入れればパケット単位の 滞留時間出力もできそうです ・・・という話ではなく、 ■シミュレーション中、キューに何かしらパケットが滞留していた時間の総計 が欲しい、ということでしょうか? Programmer'sGuide.pdfには utilizedTime: Total time that the queue was non-empty in the current measurement period. とあるので、関数的には utilizationInPeriod()で良さそうですが、その実態は function prototype と書いてあるので、実装は自分で行う必要がありそうです。 多分、キューへのinsert時にキューが空(IsEmpty)だった時の時間、 retrieve時にキューが空になった時の時間 に注目すれば、パケットが滞留していた総時間 が計測できるのではないでしょうか。 |
10low | 投稿日時: 2015/10/5 9:06 |
新米 ![]() ![]() 登録日: 2015/9/29 居住地: 投稿: 4 |
Re: パケットが出力キューに滞留している時間について 御返答ありがとうございます.
私が意図していたのは後者の方です. コメントを参考に実装してみようとと思います. |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |