2012/03/14

WAN高速化装置( WANアクセラレータ)とPCoIP

ICA(HDX)はWAN高速化装置が効くのに、PCoIPは効かない・・・という文言が正しいか否か。
以下に、この文言は多大なる誤解を孕んでいることを解説したい。文言的には決して間違ってはいないのだけれど、解釈を間違え易い、というパターン。

そもそも、画面転送を含む、VoIPとか動画とかみたいな「時系列で刻々と変化していくから、過ぎ去った情報は不要だし」というようなリアルタイム性が重要な情報転送にはTCPよりもUDPが適している。
実際、たとえばVoIPやRTPもUDPが基本だ。

ネットワーク技術に強くないと「UDPだと信頼性が・・・」とかいう戯言を安易に信じてしまいがちなんだけど、実はコレはそう単純な話ではない。UDPでも、たとえば「再送が必要な情報は再送させる仕組みを、アプリケーションプロトコルの中に仕込むことはできる」のだ。ちと長くなるので解説省くけど。

で、元のお題に戻ろう。WAN高速化装置。

同装置の動作原理は基本的に以下の3つ。
キャッシュ。TCPトラフィックの最適化。アプリケーションプロトコルの最適化。

まずキャッシュ。画面転送プロトコルは「セキュリティ確保のため、End to End で暗号化をかましている」ということを前提にするならば、暗号化されている時点でキャッシュは効かない。PCoIPは暗号化を解除するオプションが無いため、キャッシュは効かない。ICA(HDX)だとキャッシュが効くのだとすれば、この前提が解除されているのだ。つまり、少なくともどこかで暗号化が解除されている。はい。もう賢い読者の皆さんにはわかりましたねw

次にTCPトラフィックの最適化とアプリケーションプロトコルの最適化。
ちと状況は異なるけど、原理的には似ている。いずれも、送受信の際の「応答確認」が必要ってこと。ウィンドウサイズの大きさ次第で「応答確認」の頻度は変わるけど、頻度はさておき必要なことには変わりない。そして「応答確認」が来ない限り、次の通信は始まらない。これをWAN高速化装置で最適化する、という話。WAN高速化装置でTCPの代理応答をしたり、WAN高速化装置間で(勝手に)WANで発生したlost packetの再送をしたりすることで、End to EndのTCP処理を軽減するのだ。振り返ってPCoIPをみてみよう。基本UDPなので、そもそもこの手の「TCPならではのオーバーヘッド」は存在しない。だから、PCoIPだとこれらの最適化は不要なのだ。なので、効かなくてもなーんにも困らない。ちゃんちゃん。




※なお、アプリケーションプロトコルという観点でのPCoIPの最適化の余地は、ゼロではない。このあたりが、
http://www.riverbed.com/us/company/news/press_releases/2011/press_083011b.php
に繋がってくる話。ネットワークのQoSと、TeradiciがPCoIPの暗号化情報についてある程度Riberbedに開示することによって、PCoIPの最適化をする仕組みを利用する模様。