P4P : P2Pの進化系？

DCIA : P4P Working Group (P4PWG)が公開している「P4P: Explicit Communications for Cooperative Control Between P2P and Network Providers」という論文を読みました。 ISPがP2Pに協力することによって、ネットワークに対する負荷を大幅に軽減できるという内容です。 アメリカのP2Pは、今後ISPと協力関係を構築していくのかも知れないと思える論文でした。

P4P WG

この論文を作成したP4P技術ワーキンググループには、結構豪華なメンバーによって構成されています。 P4Pの論文が話題になっているのは、発表したメンバーが豪華で、実際に実現(採用/デプロイ)されていく技術なのではないかと思えるからかも知れません。

以下、DCIA(Distributed Computing Industry Association)のP4PWGメンバーリストです(参考:P4P: ISPs & P2P)。

Core Group

AT&T

BitTorrent

Cisco Systems

Grid Networks

Joost

LimeWire

Manatt

Pando Networks

RawFlow

Telefonica Group

VeriSign

Verizon

Washington University

Yale University

Observer

Abacast

Cablevision

CacheLogic

Cox Communications

Comcast

MPAA

NBC Universal

Oversi

PeerApp

Time Warner Cable

Turner Broadcasting

論文要約

以下、論文の要約です。 簡単に言うと、End-Endだけでは調べきれない情報をネットワークプロバイダ側が提供する事によって、P2Pの効率を上昇させようというものです。 情報提供用のiTrackerは補助的な機能で、それが無くてもP2Pは動作できるようになっているところがポイントです。

主に手法等に注目しています。 勘違いや誤訳が含まれる可能性があるので、是非原文もご覧下さい。

P4Pとは

P4Pとは「Proactive network Provider Participation for P2P」もしくは「Provider Portal for P2P」。

P4Pの目的は、

(1) P2Pアプリケーションによるネットワークリソースの公平かつ効果的な利用を促進する。

(2) ネットワークプロバイダが保有する資源を公平かつ効果的に活用でき、アプリケーションの要求を満たし、コストを削減し、収益を増大させられるようにすること。

P4Pのモチベーション

P2Pアプリケーションが効果的な通信を実現するには、ネットワークトポロジ等を知る必要がある。 現在の測定技術では、End-Endの努力だけでネットワークトポロジを詳しく知るのは困難である。 また、各アプリケーションが個別に分析行動(probe)を行うのは無駄である。

MPLSのような新技術や、計測用のprobeに答えないルータの存在が測定をより一層難しくしている。

利用可能な帯域や、パケット喪失レートの測定をEnd-Endで行うのは困難である。 Endホストで測定できる値は、主にLast Mileのボトルネックでぼかされてしまう(例えば、Last Mileの回線が一番細いなど)。

さらに、コストやポリシーをEndが知るのは非常に難しい。 例えば、どのinterdomainリンクを通った方がコスト(経費)が安くなるかなど。 このときのコストに影響する要素としては、ピアリングしているプロバイダ間に流れるトラフィックの量(割合)などが挙げられる。

設計思想

より良いP2Pパフォーマンスを得られること

より詳細なネットワーク情報を得ることによってP4Pは効率的になる。

より効果的なネットワーク資源利用が実現できること

P2Pへネットワークに関する情報を提供する事によって、P4Pはバックボーントラフィックを軽減し、オペレーションコストを削減する。

スケーラビリティ

P4Pは、多数のユーザとP2Pネットワークを同時にサポートすべき。

プライバシー

ネットワーク情報を開示するときにプライバシーを考慮できること。

拡張性

様々なタイプのP2Pアプリケーションが存在する。 例えば、ファイル共有とストリーミングは異なる要求があるかも知れない。 ブートストラップ時に利用するtracker(appTracker)が存在するシステムもある。 P4Pには、様々なアプリケーションに適応できる柔軟性が求められる。

徐々にデプロイできること

一気に全てを入れ替える事はできない。 徐々に適応していける仕組みでなければいけない。

プロバイダが参加することによるP2Pのアクセラレーション

例えば、CoS(Class of Service)やQoS(Quality of Service)をプロバイダが提供する事や、高速サーバを用意することなどが挙げられる。

設計概要

P4Pは、コントロールプレーンとデータプレーンに分かれる。

コントロールプレーン

コントロールプレーンでは、P4PはiTrackerと呼ばれるポータルを用意する。 各ネットワーク(ISPや大学ネットワークなど)は、各自用にiTrackerを用意する。

P2Pクライアントは、各自のネットワーク内でのiTrackerのIPアドレスをDNSに問い合わせる。 DNSへの問い合わせには新しい「P4P」レコードタイプが利用される。 (！新しいDNSレコードを作って、それを使うんですね。。。)

同一ドメイン内に複数のiTrackerを用意しても良い。

データプレーン

データプレーンでは、ネットワークがP2Pアプリケーションにフィードバックを提供できる。 例えば、ECN(Explicit Congestion Notification、参考：ECN in TCP/IP)を利用してTCPパケットに輻輳マークをつけることなどが挙げられる。 それを見てEndホストは利用帯域を調整できる。

iTracker

iTrackerは、XMLで記述されたinfo/policy/capabilityの3つの情報を提供する。

info

プロバイダ内に存在しているピア候補に関する情報。 ネットワークプロバイダIDである「ASID」、ネットワークノードグループに割り当てられる「PID」、仮想的もしくは物理的位置情報を表す「LOC」などが提供される。

policy

希望するネットワークの利用方法を伝える。 例えば、inbound/outboundのトラフィックの割合、利用を避けて欲しい大まかな時間帯の提示、リンクの利用量に関するポリシー、など。

capability

ネットワークプロバイダが提供できる機能を伝える。 例えば、プロバイダが提供できる複数のサービスクラス(Class of Service)を示したり、ネットワーク内の既設サーバを示したりできる。

実験と評価

論文では、仮想的なBitTorrentシュミレータを構築したり、PlanetLab上でLiveswarmsを使って実験を行っています。 実験を行った結果、P4Pによってネットワーク利用効率と転送速度を50％〜70％改善できたと主張しています。 実験や結果に関して詳しく知りたい方は論文をご覧下さい。

Q & A

Q: 何でP2P側が勝手にできないの？

A: アプリケーションが自力でネットワーク構成や状態をリバースエンジニアするのが非常に困難だからです。 ポリシになるとさらに困難になります。

Q: ネットワーク運営者側の利点はわかるが、P2P側のインセンティブは？

A: 評価で示したようにP2P側にもメリットがあります。

一方で、P4PがなければプロバイダはP2Pアプリケーションが使う帯域を制限する可能性があります。 P2Pトラフィックはネットワーク帯域を大きく消費する反面、プロバイダの利益にならないことをP2P開発者達は気がついています。 そのため、P4Pを使った効果的な協調は魅力的であるはずです。

Q: P4Pによってrobustnessは減少してしまいますか？

A: P4Pはrobustness(頑健性/堅牢性)を制限しません。 通常の運用では、iTrackerはヒントを提供するだけです。 また、iTrackerはクリティカルパスではありません。 iTrackerが落ちても、P2Pは通常の動作をするだけです。

最近のエントリ

過去記事

過去記事一覧