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

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/04/20:11/11
2024/04/19:16/23

2024/02/20より296/1357
人気モジュール
No.1: フォーラム 109
No.2: QualNet概要 5
No.3: ニュース 4
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット69
No.2:Linux3
No.3:Unknown OS2

No.1:どっかの巡回ロボット62
No.2:Google巡回ロボット5
No.3:Safari3

日曜日からの合計
メイン
   Application Layer Protocol Implementation & Model Development
     TCP上でのFULL BUFFERアプリケーションを作ってみました
投稿するにはまず登録を

題名 投稿者 日時
 » TCP上でのFULL BUFFERアプリケーションを作ってみました smatt 2010/4/14 11:27
フラット表示 前のトピック | 次のトピック
投稿者 スレッド
smatt
投稿日時: 2010/4/14 11:27
新米
登録日: 2005/5/15
居住地:
投稿: 15
TCP上でのFULL BUFFERアプリケーションを作ってみました
帯域をフルに使うようなTCPアプリが必要になったので、FTPを改造して作成してみました。

一応、2ノードを有線リンク(Abstract Link MAC, Link Propagation Delay 1US)で繋いで、
Link Bandwidthを10Mbyteにして試した結果、アプリケーションスループット8.8Mbps達成、
Link Bandwidthを100Mbyteにして試した結果、アプリケーションスループット88Mbps達成、
Link Bandwidthを1Gbyteにして試した結果、アプリケーションスループット880Mbps達成

となりましたので、帯域一杯使っていると言えるかと思います。


FTPの改造箇所を以下に載せておきます。(QualNet-4.0.1を使用しています。)
よければご利用ください。

改造箇所その1
app_ftp.cpp AppFtpClientSendNextItem()関数

242	242	    if (clientPtr->itemsToSend > 0) 
243	243	    { 
 	244	#ifdef FULL_BUFFER_TCP_APPLICATION
 	245	        /// 送信済みアイテム数の減算を行わないようにする。また送信アイテムサイズをINT_MAXとする。
 	246	        clientPtr->itemSizeLeft = INT_MAX; 
 	247	        AppFtpClientSendNextPacket(node, clientPtr); 
 	248	#else 
244	249	        clientPtr->itemSizeLeft = AppFtpClientItemSize(clientPtr); 
245	250	        clientPtr->itemSizeLeft += AppFtpClientCtrlPktSize(clientPtr); 
…	…	 
247	252	        AppFtpClientSendNextPacket(node, clientPtr); 
248	253	        clientPtr->itemsToSend --; 
 	254	#endif 
249	255	    } 
250	256	    else 


改造箇所その2
app_ftp.cpp AppFtpClientSendNextPacket()関数

283	289	    { 
284	290	        itemSize = APP_MAX_DATA_SIZE; 
 	291	 
 	292	#ifdef FULL_BUFFER_TCP_APPLICATION
 	293	        /// 送信アイテムサイズの減算を行わないようにする 
 	294	#else 
285	295	        clientPtr->itemSizeLeft -= APP_MAX_DATA_SIZE; 
 	296	#endif 
 	297	 
286	298	        payload = (char *)MEM_malloc(itemSize); 
287	299	        memset(payload,'d',itemSize);
フラット表示 前のトピック | 次のトピック
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT