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

パスワード:


パスワード紛失

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

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

No.1:どっかの巡回ロボット4
No.2:Google巡回ロボット1

日曜日からの合計
メイン
   Miscellaneous: Architecture & Generic Development Questions
     速度について
投稿するにはまず登録を

題名 投稿者 日時
   速度について hone89 2005/12/8 21:43
   » Re: 速度について forum_support 2005/12/13 18:55
       Re: 速度について hone89 2005/12/14 14:35
         Re: 速度について forum_support 2005/12/15 17:53
フラット表示 前のトピック | 次のトピック
投稿者 スレッド
forum_support
投稿日時: 2005/12/13 18:55
モデレータ
登録日: 2005/5/17
居住地: 東京都中野区中央4-5-3 ?構造計画研究所
投稿: 322
Re: 速度について
整理を兼ねておさらいをしましょう。

ネットワークからデータが届いてアプリケーションが受け取るまでの流れです。

概念であり実態を正確に表現しているわけではありませんので注意して下さい。
一般的な*nix環境を基にしていますが、Windows環境でも概ね同様の処理です。

1: NetWork

2: NetWork Controller

3: Device Driver

4: IP Protocol Processing

5: TCP Prorocol Processing

6: Kernel to User Memory Copy (mbuf to Buffer)

7: Socket Receive System Call

8: Receive Socket Buffer

9: User Application

実環境においては、1から6まではKernel(OS)内部の処理となります。
また、7から9まではuser空間の処理となります。

『TCPから上位のアプリケーション層』ということであれば、5から9までの流れになります。

ここで、QualNetではどのような処理になっているか考えます。
まず、QualNetは全てUser空間で動作するひとつのアプリケーションです。
したがって、6におけるKernelからユーザ空間へのデータコピーは発生しません。
あくまでもユーザ空間内の単なるメモリ転送が行われます。

つまり単なるメモリ転送なので、処理時間についてはQualNet実行環境のメモリ転送速度に依存します。

さて、QualNetによるシナリオ実行中の話です。
実際の速度については単位時間あたりのデータコピー量を計測して求めることになります。

まず、この単位時間を知るためにQualNet内の時間が必要になります。
QualNet時間については次のAPIを使うことで知ることができます。

getSimTime(node);

次に、データのコピー量ですが、これはデータを受け取るアプリケーション側でも測定可能ですし、
QualNet内のTCPパケットをカウントする方法もあります。

QualNet内のTCPパケットカウントについては次の辺りが参考になると思います。

tcp_input.cppにsubmit_dataという関数があります。
この中に;
msg = MESSAGE_Alloc(node, APP_LAYER, app_type, MSG_APP_FromTransDataReceived);
という記述があり、データを受け取った、という処理に相当する部分です。

また、関数の終わりには;
MESSAGE_Send(node, msg, TRANSPORT_DELAY);
という記述があり、TRANSPORT_DELAYを意図的に発生させています。

参考になりましたか?

『TCPから上位のアプリケーション層』の速度を何のために知りたいのでしょう。
それがハッキリすれば、もう少し具体的なアドヴァイスが出来るかもしれません。
フラット表示 前のトピック | 次のトピック
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT