VNC使ってますか? Part4
at SOFTWARE
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