人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【並行ダウンロード】
--回答受付中にもコメント欄を開いています --

ダウンロード(以下DLと略す)するファイルが沢山ある時、通常はひとつづつ
のDL完了を待って、順次DLを繰り返します。

(利用するネット環境やPCの性能に依存するとは思いますが、私の場合には)
DLするファイルが複数ある時、並行してDL(下記※)しても個々のDL所要時
間はほとんど変わりません。

例えば、ひとつのDLに10分を要する同サイズの5つのファイルを(順次DLす
れば50分を要するはずだが、)5つ並行してDLしても所要時間はほぼ10分。

なぜこのようなことが可能なのかをわかり易く説明してください。

※並行してDL
(使用しているブラウザによるのかも知れませんが、わたしの場合には)
ひとつ目のDLを仕掛けて、それが完了するのを待つことなく、ふた
つ目以降のDLを仕掛けることができます。(添付画像参照)


1306341425
●拡大する

●質問者: mkonomi
●カテゴリ:コンピュータ インターネット
✍キーワード:つの ひとつ ほと コメント欄 サイズ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● うぃんど
●30ポイント

公開サーバーでは、より多くの人が、より公平に使えるようにと

PROXYサーバやWEBサーバで帯域制限(一つの接続先が利用できる時間当たりの通信量を制限する)を行って

一つのファイルだけ(あるいは通信相手一箇所だけ)で

データの転送能力を使いきってしまわないようにしているからです

あなたが同時ダウンロードを実験したサイトでは

ダウンロードの時間から大雑把に逆算してみると107-163KB/sec程度になっているということのようです

(同時ダウンロードを大勢がいっせいにやりだすと転送速度は当然ながら落ちますので

163KB/secが設定上限を精一杯に使ってのものなのかどうかは判断できかねます)

このような情報が必要かどうかはわかりませんが、WEBサーバソフトとして有名なapacheでは

mod_bandwidth(Apache1.3系)や mod_bw(Apache2.x系)などのモジュールを組み込んで行いますので

さらに興味がありましたら検索してみてください

◎質問者からの返答

回答ありがとうございました。

コメント欄でのコメントもありがとうございます。


2 ● mezase50
●40ポイント ベストアンサー

2回目の回答をどうぞということなので、1回目の回答にはおおむねさらっと書いていますが追記します。

質問の現象は接続プロバイダ、サーバー側のプロバイダ、あるいはその両方でセッション毎やプロトコル毎に帯域制限を行っているから起こる現象です。

FTPだと速いがSSHだと遅いといった現象や、複数のセッションを張ると総合的に本来の物理的な回線速度に近い速度までまで速度を上げることができる現象などがそれです。

プロバイダは結構きめ細かくその帯域制限の値をチューンしているようです。

接続プロバイダ側での帯域制限は日本ではあまり行われていないみたいですが、海外のプロバイダの場合は結構行われているようですし、サーバー側は自分の帯域を公平に分配するためにセッション毎に帯域制限をかなり積極的に行っています。

これは何が何でも回線速度限界でパケットを流すようにするよりは実用上問題ない程度に制限することで違和感無く公平により多くのサービスを提供することができるからです。

何かをダウンロードする場合にいくつまでセッションを張れるかどうかとその時の速度の変化を見ているとそれぞれのプロバイダのポリシーが垣間見えて面白いですね。

この辺はダウンロードする側とされる側のポリシーのぶつかり合いや駆け引きだったりします。

例えばYoutubeは8個ぐらい同時にセッション張れるのでうまくダウンロードするとあっという間に終わります。1回目の回答で紹介しているInternet Download Managerはそれを自動的に行っています。このようなダウンロード方法がメジャーになると接続数をもっと少なく制限されるようになるかもしれません。

http://www.atmarkit.co.jp/flinux/rensai/apache2_08/apache08c.htm...

◎質問者からの返答

2度にわたり、丁寧で詳細な回答ありがとうございました。

とても分かり易い回答です。

「ダウンロードする側とされる側のポリシーのぶつかり合いや駆け引き」、面白いですね。

ご説明頂いた内容はすべて理解できたつもりです。

今後は知人から動画を受け取るとき、適度の小さいサイズのファイルを多数アップロードしてもらうようにし、

私はそれらを並行してダウンロードするようにしたいと思っています。


3 ● mezase50
●30ポイント

>なぜこのようなことが可能なのかをわかり易く説明してください。


接続プロバイダ側やサーバー側の設定によりひとつのコネクション(セッション)ごとに速度(流量)制限を行っているからです。

例えば回線速度8MbpsのADSLで接続をひとつ(ダウンロードをひとつ)行う場合に3Mbpsで速度制限が行われている場合はふたつ平行ダウンロードまでは回線全体の容量を超えない(3Mbpsx2<8Mbps)ので全体としての速度は落ちません。

3つ目の接続を開始した時点で必要な回線容量が実際の回線容量を超えて全体のダウンロード速度がこれにより制限されます。(3Mbpsx3>8Mbps)


この制限があるためにひとつの大きなファイルをダウンロードしようとしてもなかなか速度が上がらないという現象が起こるというデメリットの代わりに複数人数で使用した場合でもあまり速度の低下を感じさせずに済むというメリットもあります。



逆に例えばFTPのリジューム機能を上手く使ってひとつのダウンロードを複数のダウンロードに分割してしまってそれを同時に行いダウンロード時間を回線速度目一杯使って早く済ませてしまおうというダウンロードソフトも存在します。

例:Internet Download Manager

http://www.internetdownloadmanager.com/

http://cdn-ak.f.st-hatena.com/images/fotolife/m/mezase50/20110526/20110526072137.png

この画像の棒グラフを見ると分かると思いますが、このソフトはひとつのファイルを同時にできるだけ沢山複数の接続を試み、その最大接続数(サーバー側の設定でこの数は決まります)でダウンロードしています。たまたまどれかひとつの接続が遅くて他よりも時間がかかってしまっても早く終わって接続が余った分の接続を残りの部分に回すことで常にほぼ回線速度目一杯使ってダウンロードすることができてます。

◎質問者からの返答

回答ありがとうございました。

mezase50からの2度目の回答を先に開かせていただきました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ