# HG changeset patch # User oshiro # Date 1542265510 -32400 # Node ID b57a41c000a115bce942b14340cfc63dcae7d499 # Parent 8e83c0829c7ca4c0b91adfe20a351c108ec96651 Correction diff -r 8e83c0829c7c -r b57a41c000a1 midterm.pdf Binary file midterm.pdf has changed diff -r 8e83c0829c7c -r b57a41c000a1 midterm.tex --- a/midterm.tex Wed Nov 14 07:53:48 2018 +0900 +++ b/midterm.tex Thu Nov 15 16:05:10 2018 +0900 @@ -39,41 +39,35 @@ TreeVNC は VNC(Virtual Network Computing) を使用した画面配信を行っている。しかし、通常の VNC では配信側に全ての参加者が接続するため、多人数の際の処理性能が落ちてしまう。TreeVNC では有線でネットワークに接続した参加者をバイナリツリー状に接続し、 配信コストをクライアントに分散させる仕組みをとっている。そのため、講義で発表者の画面を表示する際、多人数の生徒が参加しても処理性能が下がらない。また、ツリーのルートが参照している VNC サーバーを変更することで、共有する画面の切替が可能となっている。 -しかし、画像配信システムは送信するデータ量が多いため、現在の TreeVNC では無線 LAN 接続の場合、画面の配信に遅延が生じてしまう。そこで、本研究では無線 LAN での配信環境の改善を行い、TreeVNC の有用性を評価することで講義やゼミを円滑に行えることを目標とする。 +しかし、画像配信システムは送信するデータ量が多いため、現在の TreeVNC では無線 LAN 接続の場合、画面の配信に遅延が生じてしまう。そこで本研究では、マルチキャスト対応の実装やデータの分割・圧縮方法の評価を行うことにより、無線 LAN での配信環境の向上を目指し、TreeVNC の有用性を評価することで講義やゼミを円滑に行えることを目標とする。 \section{VNC} VNC(Virtual Network Computing) は、 RFB プロトコルを用いて遠隔操作を行うリモートデスクトップソフトウェアである。 サーバー側とクライアント(ビューア)側に分かれており、 サーバー起動後クライアントがサーバに接続することで遠隔操作を可能としている。 -\section{RFB プロトコル} +\section{RFB(Remote Frame Buffer) プロトコル} RFB プロトコルは、自身の画面を送信しネットワーク越しに他者の画面に表示するプロトコルである。ユーザがいる側を RFB クライアント、Framebuffer への更新が行われる側を RFB サーバと呼ぶ。Framebuffer とは、メモリ上に置かれた画像データである。 -プロトコルを起動した際の動作は以下の順である。 -\begin{enumerate} - \item プロトコルバージョンの確認や認証を行う。 - \item クライアントに向けて Framebuffer の大きさやデスクトップに付けられた名称などが含まれた初期メッセージが送信される。 - \item RFB サーバ側は Framebuffer の更新が行われるたびに RFB クライアントに対して Framebuffer の変更部分だけを送信する。 - \item RFB クライアントから FramebufferUpdateRequest が来るとそれに返信する。 -\end{enumerate} +プロトコルを起動した際の動作は以下の順である。\\ +1.プロトコルバージョンの確認や認証を行う。\\ +2.クライアントに向けて Framebuffer の大きさやデスクトップに付けられた名称などが含まれた初期メッセージが送信される。\\ +3.RFB サーバ側は Framebuffer の更新が行われるたびに RFB クライアントに対して Framebuffer の変更部分だけを送信する。\\ +4.RFB クライアントから FramebufferUpdateRequest が来るとそれに返信する。 \section{TreeVNC の構造} TreeVNC は Java を用いて作成された TightVNC を元に構成されている。TreeVNC はクライアント同士を接続させ、データを受け取ったクライアントが次のクライアントにそのデータを流す方式を取っている。また、サーバへ接続しにきたクライアントをバイナリツリー状に接続する(図\ref{fig:tree})。バイナリツリー状に接続することで、N 台のクライアントが接続しにきた場合、画面配信の画像データをコピーする回数が従来の VNC ではサーバが N 回コピーする必要があるが、TreeVNC では各ノードが2回ずつコピーするだけで済み、負荷を分散することができる。 TreeVNC で送受信される画像データ量は莫大であり、大きなネットワークスループットが必要となるため、現在では有線接続が必須となっている。 -バイナリツリーのルートのノードを Root Node と呼び、そこに接続されるノードを Node と呼ぶ。Root Node は -\begin{enumerate} - \item 子 Node にデータを流す機能 - \item 各 Node の管理 - \item VNC サーバから流れてきたデータの管理 -\end{enumerate} +バイナリツリーのルートのノードを Root Node と呼び、そこに接続されるノードを Node と呼ぶ。Root Node は\\ +1.子 Node にデータを流す機能\\ +2.各 Node の管理\\ +3.VNC サーバから流れてきたデータの管理\\ を担っている。\\ -各 Node は -\begin{enumerate} - \item 親 Node から送られてきたデータを自身の子 Node に流す機能 - \item 子 Node から送られてきたデータを親 Node に流す機能 -\end{enumerate} +各 Node は\\ +1.親 Node から送られてきたデータを自身の子 Node に流す機能\\ +2.子 Node から送られてきたデータを親 Node に流す機能\\ を担っている。 \begin{figure}[htbp] @@ -138,7 +132,7 @@ \newpage \section{マルチキャスト配信への対応} -TreeVNC は現在有線接続でのみ安定した動作をみせている。しかし、講義の際、毎回コードを持参することは負担であるため、無線接続での安定した動作を確立したい。そこで、Wi-Fiを利用したマルチキャストに対応を行う。 +TreeVNC は現在有線接続でのみ安定した動作をみせている。しかし、講義の際、毎回コードを持参することは負担であるため、無線接続での安定した動作を確立したい。そこで、Wi-Fiを利用したマルチキャストの対応を行う。 \section{まとめ} 本研究では TreeVNC によるマルチキャスト配信への対応を行っている。