4

接続しているピアの接続(アップロードレート)が最も速いかどうかをどのように判断しますか?

ピアの実際の接続が最速の人を支配しますか、それとも最も多くのチャンクを必要とするピアが、ダウンロードする人が少なくなるにつれて、彼が最速でアップロードするようにしますか?

トラッカーから返されたピアリスト内のすべてのピアを取得し、pingを使用して応答のタイミングを調整するなどの方法で、どのピアが近いかを判断するアルゴリズムを作成したいと思います。

ありがとう

4

1 に答える 1

4

ping(ICMPエコー要求/応答)は、ピアの遅延を提供しますが、ピアが持つ利用可能な帯域幅は提供しません。TCPは帯域幅*遅延積を実行し、衛星をラウンドトリップする場合でも接続を高速化する方法を理解するのに優れているため、帯域幅が必要です。

あなたがすることはそれらすべてに接続することです。40のピアが接続されていることは珍しいことではありません。そして、あなたはあなたに対する彼らの現在のレートに基づいて(あなたがシーダーになるまで)どちらをアンチョークするかを決定します。また、使用可能な帯域幅は時間の経過とともに変化するため、かなり動的である必要があります。私ができる最善のアドバイスは読むことです

http://www.bittorrent.org/bittorrentecon.pdf

これは、経済学を実装する方法の一般的な考え方を提供します。しかし、多くのクライアントは紙とは異なることをしているので、コードを読むことは別のオプションです。

つまり、遅延ではなく帯域幅を測定する必要があります。したがって、pingはジョブにとって間違ったツールです。帯域幅の測定は、パケットをピアに送信する速度を追跡することで最も簡単に実行できます。

窒息/窒息のアルゴリズムと、窒息するピアの選択は、クライアントで正しく行うのが最も難しい部分の1つだと思います。コンピューターの前に座ってコードを書くのではなく、ペン、紙、頭脳で解決するのが最善です。

于 2010-11-13T01:31:24.937 に答える