# HG changeset patch # User Tatsuki IHA # Date 1455694962 -32400 # Node ID 81199769134b3f6486b9e06fe63053343d2b0427 # Parent 3e3c148a456230e521d661248fb00550d6af7f38 Fix diff -r 3e3c148a4562 -r 81199769134b paper/main.pdf Binary file paper/main.pdf has changed diff -r 3e3c148a4562 -r 81199769134b paper/main.tex --- a/paper/main.tex Wed Feb 17 14:09:02 2016 +0900 +++ b/paper/main.tex Wed Feb 17 16:42:42 2016 +0900 @@ -178,6 +178,7 @@ 通常の VNC の場合、クライアント数に比例してポート一本あたりの負荷が増えている。 TreeVNC の場合は1つの Node に対して2台の Node が接続するため、クライアント数関係なく一定である。 +% 一本は上からくる奴の説明が欲しい 図 はUpdate rectangle 送信するデータ量も通常の VNC の場合 Node 数に比例した量のデータを送信する必要があり、 CPU に負荷がかかってしまう。 それに対して TreeVNC はクライアントが増えても送信するデータはクライアント毎に分散されているため、1台の CPU に掛かる負荷は一定となる。 そのため、性能が低下せずに画面配信を行うことが出来る。 @@ -206,7 +207,7 @@ そのため図\ref{fig:zrleFail} のように、 Zlib圧縮されたデータを途中から受け取ってもデータを正しく解凍することが出来ない。 そこで ZRLEE は 一度 Root Node で受け取った ZRLE のデータを unzip し、 データをzip し直して最後に finish() をいれることで初めからデータを呼んでいなくても解凍を行えるようにした(図\ref{fig:zrlee})。 - +% ZRLEE はupdate rectangle 毎にzip, unzip する 一度 ZRLEE に変換してしまえば子 Node はそのデータをそのまま流すだけで良い。 ただし、deflater と inflater では前回までの通信で得た辞書をクリアしないといけないため、 Root Node と Node 側では毎回新しく作る必要がある。 @@ -364,7 +365,8 @@ TreeVNC は配信者の切り替えの度に生じる問題を解決している。 TreeVNC を立ち上げることで、ケーブルを使用する必要なしに、各参加者の手元の PC に発表者の画面を共有することができる。 画面の切り替えはユーザが VNC サーバーへの再接続を行うことなく、ビューアの Share Screen ボタンを押すことによって、配信者の切り替えを行うことができる。 - +% 画面の切り替えはユーザが VNC サーバーへの再接続を行うことなく、ビューアの Share Screen ボタンを押すことによって、配信者の切り替えを行うことができる。 ~ を先に書いたほうが良い +% 今回〜 切り替え用thread の話を軽く書く TreeVNC の Root Node は配信者の VNC サーバーと通信を行っている。 VNC サーバーから画面データを受信し、そのデータを 子 Node へと送信している。 配信者切り替え時に Share Screen ボタンが押されると、 SERVER\_CHANGE\_REQUEST メッセージに Node 番号やディスプレイ情報 を付加し、Root Node に送信する。 @@ -403,6 +405,11 @@ そのため、 TreeVNC が複数のネットワーク別に木構造を構成することが可能となる。 \chapter{NAT 対応} +% NAT の説明がいる +% 基本的にグローバルip は複数のインタフェース +\section{NAT} +% NAT があるとTreeVNCがどうこまるのか +% マルチキャストが送られないので TreeVNC が見つからない アドレスが重複するなど \section{TreeVNC の問題点} TreeVNC は Root Node が所属しているネットワークで木を構成する。 そのため、NAT 越えた別のネットワークからの接続を行うことが出来ない。 @@ -449,8 +456,13 @@ \end{center} \end{figure} +\section{共有画面切り替え} +% DirectConnection してやれば簡単に見えるが、NAT なので、接続先が見つからない場合がある +% Connection を張りながら入れ替える必要があるけど難しい +% 難しいといったほうがAlice で簡単にできるというのが強調できる \chapter{TreeVNC のリファクタリング} +% 全て章に \section{マルチディスプレイ対応} 画面配信側の PC がマルチディスプレイの場合 VNC サーバーからは複数の画面全体の画像データが送信されてしまう。 授業やゼミ等でTreeVNCを使用する場合、複数画面の表示は必要ない。 @@ -475,6 +487,10 @@ \end{figure} \section{画面切り替えの安定化} +% もうちょい細かく Tight VNC はシングルthread でやっていた +% ユーザーが途中でキャンセルされると辛い とかの図を入れると1章分あるか? +% protoclContext +% protocolContext とか connectionPresenter とかのクラスdiagramで書くと良い 画面切り替えを行う際、 配信中の画面を停止した後に画面の切り替え処理を実行していた。 しかし、 切り替え先の VNC サーバーへの接続に時間がかかったり、 切り替え先の設定ミスなどで画面の切替がスムーズに行えない場合があった。 @@ -485,6 +501,8 @@ 切り替え用のスレッドを用意することで、配信状況を維持したままスムーズな画面切り替えが可能になった。 \section{クライアントへのエラー通知} +% こっちも問題から定義して~ + TreeVNC には接続しているクライアントへのエラーの通知を行うことが出来なかった。 そのため、 画面切り替えを行う際に切り替え先が VNC サーバーの共有設定をしていない場合 Root Node に接続エラーのダイアログが表示されるという実装になっており、切り替えを行ったクライアントには通知されていなかった。 @@ -598,8 +616,7 @@ % 今後の課題 -\chapter{結論} -\section{まとめ} +\chapter{まとめ} 本研究では画面配信システム TreeVNC での NAT 対応、 リファクタリングによる機能改良、 TreeVNC の評価を行った。 NATを越えに対応した Direct Connection という接続方法を確立し実装した。 @@ -615,8 +632,9 @@ 今回の画像データの遅延実験を行い、 ボトルネックになっているノードがあることがわかった。 また、ボトルネックになっているノードへの対処を行った。 -\chapter{今後の課題} -\section{NATを越えた画面切り替え} +\section{今後の課題} +\subsection{NATを越えた画面切り替え} +% これは上に書いたほうが良い 今回追加した Direct Connection ではNATを越えたネットワークの画面の配信を行うのみであり、 TreeVNC の利点の1つである画面切り替えを行うことが出来ない。 そのため、NATを越えたネットワークでの画面切り替えの実装を行う必要がある。 @@ -635,12 +653,12 @@ \end{center} \end{figure} -\section{音声機能の追加} +\subsection{音声機能の追加} Direct Conenction により、NAT を越えたの画面配信が可能となった。 しかし、 遠隔地からゼミや授業等に参加する場合は画面の表示のみではなく、 音声の配信も行いたい。 そのため音声配信機能の実装を行う必要がある。 -\section{マルチディスプレイ時の画面調整} +\subsection{マルチディスプレイ時の画面調整} 今回実装したマルチディスプレイ選択の画面配信は PC の画面サイズに合わせてフルサイズで拡大・縮小する fit screen ボタンに対応しておらず、一画面のサイズの調節を行えない。 そのためマルチディスプレイの fit screen 機能を実装する必要がある。 diff -r 3e3c148a4562 -r 81199769134b prepaper/finalPre.pdf Binary file prepaper/finalPre.pdf has changed diff -r 3e3c148a4562 -r 81199769134b prepaper/finalPre.tex --- a/prepaper/finalPre.tex Wed Feb 17 14:09:02 2016 +0900 +++ b/prepaper/finalPre.tex Wed Feb 17 16:42:42 2016 +0900 @@ -21,6 +21,7 @@ \input{dummy.tex} \begin{document} \title{PC画面配信システムTreeVNCの NAT への対応} +%\title{Supporting NAT in Screen Sharing System TreeVNC} \author{125716B 氏名 {伊波}{立樹} 指導教員 : 河野 真治} \date{} \maketitle @@ -32,7 +33,13 @@ It also possible to change screen server dynamically without changing display cables. TreeVNC is useful in a lecture which contains 40-60 students or small seminar. -本研究ではTreeVNCの改良として、NATへの対応、 マルチディスプレイへの対応等のリファクタリングを行うとともに、TreeVNC 有用性を示すために画像データの遅延時間計測を行った。 +We add several improvements on TreeVNC. +By supporting NAT. +By refactoring TreeVNC. +create screen change thread. it stabilize screen change. +in case of sharing multiple screen, selected one screen sharing. +本研究ではTreeVNCの改良として、NATへの対応を行った。 +また、リファクタリングとして、マルチディスプレイへの対応、画面切り替えの安定化、エラー通知用のメッセージの追加等を行うとともに、TreeVNC 有用性を示すために画像データの遅延時間計測を行った。 \section{画面共有を利用したコミュニケーション} 授業やゼミ等で、それぞれが PC 端末を持っている場合では、