VNC使ってますか? Part4 at SOFTWARE
[2ch|▼Menu]
338:名無しさん@お腹いっぱい。
05/05/19 16:52:27 DNhWjGA8
>>337
RDPはWindowsに特化すればいいからな。

まずRDPとVNCは描画命令系統が違う。
RFB(VNCのプロトコル)は矩形でしか描画できないから斜線や曲線に弱い。
文字もRDPではテキストデータとして送られるがRFBでは矩形に符号化される。
豊富な描画命令を持つRDPは矩形しか転送できないRFBより基本的に速い。
反面RFBは実装がシンプルで、移植性は抜群にいい。

RDPはVNCよりもキャッシュが最適化されている。
例えばRDPでウィンドウ動かしてもデスクトップの壁紙は「再描画」されない。
RFBの場合はどんなウィンドウシステムが乗っかるか分からないから、
移植性を残しておくために、基本的にフレームバッファのキャッシュはしない。
(UltraVNCは画像レベルで深度1のキャッシュをしてる)

TCP/IPの挙動に対してRDPのほうがより最適化されている。
例えばVNCでマウスを動かすと、その1つ1つがTCPパケットとして送信される。
仮にMSSが1460バイトなら、たかだか6バイトのデータを送るために
スループットにして99.96%近い無駄が生じる計算になる。
反応性のためにNagleを無効化した分の最適化がおろそかになっている。
あと、TCPではRWINの範囲内でスライディングウィンドウって処理をやって
ACK待ちの速度低下を防止してるんだが、RFBではプロトコルにわざわざ
擬似的なACK待ちを持ち込んでいて、遅延の大きいネットワークでは
その遅延時間に反比例してフレームレートが落ちる事になる。
仮にPingに500msかかる場合、2fps以上の更新間隔は期待できない。

ちなみにTightでスライドショーが速いのは単に画像をJPEGで圧縮するから。
フルカラーPNGでどんなに頑張ってもJPEGに勝てないのと同じ論理。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5185日前に更新/262 KB
担当:undef