- PR -

ファイルサイズよりトラフィックボリュームが少ない。。

投稿者投稿内容
さんまち
会議室デビュー日: 2005/09/01
投稿数: 5
投稿日時: 2005-09-01 20:14
初めて投稿します。

LAN上のWindowsクライアントとWindowsサーバー間で共有ファイルを開いたり、コピー、移動したりする操作で発生するトラフィックの量を把握しようとしています。

OPNETやEtherrealなどを使用してトラフィックをモニター(実際に通信しているクライアントPC上で)すると、実際のファイルサイズよりも大分少ない量がレポートされます。例えば10MBのMSExcelファイルを開く操作では3MB程度、100MB超のファイルでも12MB程度しかクライアント・サーバー間でやり取りされていないことに成ってしまいます。単なるコピーや移動でも同様です。

ネットワーク上を流れるデータ量はヘッダー等により増えることは有っても実際のデータ量を下回ることは無いだろうと思い込んでいたのでどうしても納得が行きません。特にMSOfficeのファイル操作などは完全に逆の結果を期待していました。

どうしてこのようなことになるのか、基本的なことを判っていないのかも知れません。
参考になる情報伺えたら幸いです。

きつね
常連さん
会議室デビュー日: 2004/01/02
投稿数: 37
お住まい・勤務地: 西新宿
投稿日時: 2005-09-03 02:30
ファイルサイズのメガバイトとトラフィック量をメガビットを、換算せずそのまま比較しているということはないですか?
さんまち
会議室デビュー日: 2005/09/01
投稿数: 5
投稿日時: 2005-09-03 02:51
きつねさん、ありがとうございます。

ご指摘の点ですが、両方ともByteで比べています。

参考までに10MByteのファイルをサーバー上からクライアント上に移動した際の、OPNETのレポートを載せます。”A”がクライアント、”B”がサーバーです。これによると3Mbyte足らずのデータしかやり取りされていません。。反対方向の処理(クライアントからサーバーへ)も試しましたが、こちらも”Application Data(bytes)”で、2,143,664しかありませんでした。

Response Time (sec) 9.649727
Application Turns 395
Application Messages 2,701
Application Data (bytes) 2,988,368
Average Application Message (bytes) 1,106.39
Network Packets 5,277
Network Data (bytes) 3,304,002
Average Network Packet (bytes) 626.11
Latency (ms) 0
Effect of Latency (sec) 0
Bandwidth (Kbps) 100,000.00
Effect of Bandwidth (sec) 0.223783
Effect of Protocol/Congestion (sec) 0.007061
Max Application Bytes Per Turn (A -> B) 168
Max Application Bytes Per Turn (A <- B) 94,334
Max Unacknowledged Data (A -> B) (bytes) 2,268
Max Unacknowledged Data (A <- B) (bytes) 3,111,492
Retransmissions 201
Out of Sequence Packets 0
Connection Resets 0
TCP Frozen Window (sec) 0
TCP Nagle's Algorithm (sec) 0
TCP Triple-Duplicate ACK loss indications 116
きつね
常連さん
会議室デビュー日: 2004/01/02
投稿数: 37
お住まい・勤務地: 西新宿
投稿日時: 2005-09-03 03:06
んー、なかなか興味深いですね。
単なるファイルのコピーでもファイルのサイズ未満のトラフィック量しか観測されないのですよね。
Windows共有にトラフィック圧縮機能ってあるんでしたっけ…?

Ethereal等で計測しても同様の結果なんでしょうか?
Etherealで計測後にメニューから、Statistics -> Conversationsを選べば、各ホスト間でやりとりされたトラフィック量が分かると思います。
さんまち
会議室デビュー日: 2005/09/01
投稿数: 5
投稿日時: 2005-09-03 03:27
Etherealでやると↓こうなります。

Address A  172.xx.xx.aa
Port A 2491
Address B  172.xx.xx.bb
Port B 445
Packets 3,469
Bytes 2,694,881
Packets A->B 1,276
Bytes A->B 94,165
Packets A<-B 2,193
Bytes A<-B 2,600,716

ちなみにファイルの実際のサイズは、10,704,896byte です。
念のためEtherealのバッファサイズは100MByteにしましたので取りこぼしも無いと思います。
というか、OPNETと近い値(同じ時のものではありません)が出ているので、それこそWindowsが何かやっているのか?という風に思ってしまいます。
きつね
常連さん
会議室デビュー日: 2004/01/02
投稿数: 37
お住まい・勤務地: 西新宿
投稿日時: 2005-09-03 03:45
既に、単なる私の興味で申し訳ないんですが…。
zipなどで圧縮したファイルをコピーした場合はどうなのでしょうか?
もし、Windows共有にトラフィック圧縮機能があったとしても、既に圧縮されたファイルであればそのサイズに近いトラフィックが観測できると思います。

ちなみに、こちらの手元にあるsambaサーバとのファイル共有では、だいたい転送したファイルと同じぐらいのトラフィック量が観測されています。
さんまち
会議室デビュー日: 2005/09/01
投稿数: 5
投稿日時: 2005-09-03 04:12
こうなりました。Zip圧縮後のファイルサイズは、2,514,252です。
EtherealとOPNETで結果が違うのが変ですが、どちらも実際のサイズを下回ってます。(今回は一つの操作を両ツールで同時に計測しました。)
ちなみに、クライアントはWindows2000、サーバーはWindows2003です。

----Ethereal----------
Address A  172.xx.xx.aa
Port A 2491
Address B  172.xx.xx.bb
Port B 445
Packets 1,428
Bytes 1,176,705
Packets A->B 504
Bytes A->B 33,107
Packets A<-B 924
Bytes A<-B 1,143,598

----OPNET------------
Response Time (sec) 52.795065
Application Turns 392
Application Messages 1,682
Application Data (bytes) 1,693,603
Average Application Message (bytes) 1,006.90
Network Packets 3,174
Network Data (bytes) 1,891,285
Average Network Packet (bytes) 595.87
Latency (ms) 0
Effect of Latency (sec) 0
Bandwidth (Kbps) 100,000.00
Effect of Bandwidth (sec) 0.11813
Effect of Protocol/Congestion (sec) 0.002858
Max Application Bytes Per Turn (A -> B) 1,092
Max Application Bytes Per Turn (A <- B) 94,334
Max Unacknowledged Data (A -> B) (bytes) 1,935
Max Unacknowledged Data (A <- B) (bytes) 6,300
Retransmissions 201
Out of Sequence Packets 0
Connection Resets 0
TCP Frozen Window (sec) 0
TCP Nagle's Algorithm (sec) 0
TCP Triple-Duplicate ACK loss indications 69



きつね
常連さん
会議室デビュー日: 2004/01/02
投稿数: 37
お住まい・勤務地: 西新宿
投稿日時: 2005-09-03 04:59
2.5Mbyteのzipファイルを1.2Mbyte弱分のネットワークリソースしか消費せずに転送するのは物理的に不可能かと思います。となると、計測結果が怪しいですね。計測時にパケットを取りこぼしているのかもしれません。

今までクライアント側で計測をしていたなら、サーバ側で計測をしてみるとどうでしょうか?また、Windows共有以外、例えばWebからのファイルのダウンロードで転送バイト量を計測してみるとどうでしょうか?

スキルアップ/キャリアアップ(JOB@IT)