title: 画面配信システム TreeVNC のマルチキャストの導入 author: Ryo Yasuda, Shinji Kono profile: 並列信頼研 lang: Japanese code-engine: coderay ## 画面配信システムの活用 - 講義やゼミではプロジェクタを使用して、先生が用意した資料を見ることが多い。その際接続不良など、物理的アクシデントが起きる恐れがある - 画面配信システムで代用する場合がある。画面配信システムのとしてはAppleTVやUstreamなどが挙げられる - AppleTVは画面共有先がTVに限定されている - Ustreamは画面の切り替えを行うことができない
message message
## 画面配信システムの活用 - 画面配信システムTreeVNCは、自身のPC画面を他者のPCと共有できるソフトウェアである - javaで書かれているためOSに依存せず、物理的な制限なしに使用可能 - TreeVNCを使用することで、参加者は手元のPCを使用しながら講義を受ける事が可能になる。切り替えの際も、ボタン一つで共有する画面の切替を可能としている ## VNC - VNC(Virtual Network Computing)は、RFB(Remote Frame Buffer)プロトコルを用いてPCの遠隔操作を行うことを目的としたリモートデスクトップソフトウェア - サーバー側とクライアント側に分かれており、起動したサーバーにクライアントが接続することで遠隔操作を可能にしている - 全てのNodeが一台のサーバーに接続するため負担が大きい
message
## TreeVNCとは - TreeVNCは本研究室で開発している画面配信システム - 木構造の接続方式によりNode間で画像データのやりとりを行う - 各ノードが2回ずつ画像データをコピーすることで配信側の負荷を分散し、大人数での画面配信が可能
message
## 本研究の概要 - 画面配信は送信するデータ量が多いため、TreeVNCでは無線接続の場合、画面配信の遅延が大きくなってしまう - 現在のTreeVNCのデータ転送方法だと、無線接続で送信するには大きすぎる - 本研究ではMulticastを導入することで、Wifi環境下における画面配信の遅延対策の検討を行なった (途中に無線接続,全体delay図) ## TreeVNCの画面配信方法 - RFB (Remote Frame Buffer) プロトコルを利用し、自身の画面をネットワークを通じて送信し他者の画面に表示する - 他人のPC画面が表示される側と、FrameBufferへの更新が行われる(自身のPC画面を送信する)側に分かれ、それぞれをRFBクライアント、RFBサーバと呼ぶ - FrameBufferは、メモリ上に置かれた画像データのこと - RFBクライアントに送信するデータは画面全てではなく、変更があった部分のFrameBufferを送る ## Multicastによる画面配信 - 配信PC画面の変更があった部分のみをUpdateRectangleとしてマルチキャストで一度のみ送信する - RFBプロトコルでは画像データをRectangleで送信しているため、UpdateRectangleには複数のRectangleが入るような構成をとる
message
## Multicastの問題点 - wifiのMulticast Paketの最大サイズは64KBである - HDや4Kの画面を更新するためのサイズは大きい - 4Kの場合8MB x 8Byteで64MB - 送信データの圧縮と64KB毎のパケット変換が必要 ## RFBプロトコルのエンコードタイプ - ZRLEとはRFBプロトコルでサポートされているエンコードタイプの1つ - zlib圧縮、タイリング、run lengthエンコードを組み合わせている - 解凍に必要な辞書を書き出すことができないため、途中からデータを受け取ると正確に解凍できなくなる (タイリングとrun lengthの説明図) ## TreeVNCの画像データ圧縮方法 - ZRLEを改変したZRLEEを使用している - 辞書の書き出しを行えるようにし、データを途中から受け取っても解凍することが可能 - ZRLEを一度解凍し、辞書を書き出して再圧縮を行う
message
## ブロッキング ## paket lossする可能性 ## まとめ - WifiでMulticast paketを利用する手法についての考察を行なった - Wifiの速度とMulticastの信頼性が高ければ実用的である可能性がある - Blockingは実装中、再圧縮の時間は実用的な時間で済むと予想されている - 今後の課題 - Blockingの実装 - WifiのMulticast paket lossは接続環境や状況に依存すると思われるためさらなる実験が必要 - Node接続じの有線接続と無線接続の判断、区別処理の実装