ビットトレントをめぐる諸問題

ビットトレントについて

ピアの接続後、ピア間ではどのような通信が行われるのですか。

ピア間のハンドシェイクが成功した後、ビットトレントプロトコルでは以下のような通信が行われます:

1. **ピースの情報の交換**:各ピアは、自分が持っているファイルのピース(部分)の情報を「bitfield」というメッセージとして他のピアに送ります。これにより、各ピアは他のピアがどのピースを持っているかを知ることができます。

2. **ダウンロードのリクエスト**:各ピアは、自分がまだ持っていないピースを持っている他のピアに対して、そのピースのダウンロードをリクエストします。このリクエストは「request」というメッセージとして送られます。

3. **ピースの送信**:ピースのダウンロードをリクエストされたピアは、「piece」というメッセージとしてそのピースのデータを送信します。

4. **ダウンロードの完了の通知**:ピースのダウンロードが完了すると、そのピアは「have」というメッセージを送って、新たにダウンロードしたピースを持っていることを他のピアに通知します。

以上のような通信がピア間で繰り返されることで、全てのピアが最終的にファイル全体を取得します。

なお、ビットトレントプロトコルには「ピースの選択戦略」という重要な概念があります。これは、どのピースを次にダウンロードするかを決定する戦略のことで、例えば「レアピース優先」という戦略では、他のピアがあまり持っていないピースを優先してダウンロードします。これにより、全体のダウンロード効率を高めることができます。